| #include "Event.h" |
| Inheritance Chart: | |||||||||
|
public:
Track()
Track(const Track& orig)
Track(Float_t random)
virtual ~Track()
static TClass* Class()
virtual void Clear(Option_t* option = "")
Float_t GetBx() const
Float_t GetBy() const
Double32_t GetCharge() const
Float_t GetMass2() const
Float_t GetMeanCharge() const
Int_t GetN() const
Int_t GetNpoint() const
Double32_t GetPointValue(Int_t i = 0) const
Float_t GetPt() const
Float_t GetPx() const
Float_t GetPy() const
Float_t GetPz() const
Float_t GetRandom() const
TBits& GetTriggerBits()
Short_t GetValid() const
Double32_t GetVertex(Int_t i = 0)
Float_t GetXfirst() const
Float_t GetXlast() const
Float_t GetYfirst() const
Float_t GetYlast() const
Float_t GetZfirst() const
Float_t GetZlast() const
virtual TClass* IsA() const
Track& operator=(const Track&)
virtual void SetValid(Int_t valid = 1)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
Float_t fPx X component of the momentum
Float_t fPy Y component of the momentum
Float_t fPz Z component of the momentum
Float_t fRandom A random track quantity
Float_t fMass2 The mass square of this particle
Float_t fBx X intercept at the vertex
Float_t fBy Y intercept at the vertex
Float_t fMeanCharge Mean charge deposition of all hits of this track
Float_t fXfirst X coordinate of the first point
Float_t fXlast X coordinate of the last point
Float_t fYfirst Y coordinate of the first point
Float_t fYlast Y coordinate of the last point
Float_t fZfirst Z coordinate of the first point
Float_t fZlast Z coordinate of the last point
Double32_t fCharge [-1,1,2] Charge of this track
Double32_t fVertex[3] [-30,30,16] Track vertex position
Int_t fNpoint Number of points for this track
Short_t fValid Validity criterion
Int_t fNsp Number of points for this track with a special value
Double32_t* fPointValue [fNsp][0,3] a special quantity for some point.
TBits fTriggerBits Bits triggered by this track.
Event and Track classes
=======================
The Event class is a naive/simple example of an event structure.
public:
char fType[20];
char *fEventName; //run+event number in character format
Int_t fNtrack;
Int_t fNseg;
Int_t fNvertex;
UInt_t fFlag;
Double32_t fTemperature;
Int_t fMeasures[10];
Double32_t fMatrix[4][4];
Double32_t *fClosestDistance; //[fNvertex] indexed array!
EventHeader fEvtHdr;
TClonesArray *fTracks;
TRefArray *fHighPt; //array of High Pt tracks only
TRefArray *fMuons; //array of Muon tracks only
TRef fLastTrack; //pointer to last track
TRef fHistoWeb; //EXEC:GetHistoWeb reference to an histogram in a TWebFile
TH1F *fH;
TBits fTriggerBits; //Bits triggered by this event.
The EventHeader class has 3 data members (integers):
public:
Int_t fEvtNum;
Int_t fRun;
Int_t fDate;
The Event data member fTracks is a pointer to a TClonesArray.
It is an array of a variable number of tracks per event.
Each element of the array is an object of class Track with the members:
private:
Float_t fPx; //X component of the momentum
Float_t fPy; //Y component of the momentum
Float_t fPz; //Z component of the momentum
Float_t fRandom; //A random track quantity
Float_t fMass2; //The mass square of this particle
Float_t fBx; //X intercept at the vertex
Float_t fBy; //Y intercept at the vertex
Float_t fMeanCharge; //Mean charge deposition of all hits of this track
Float_t fXfirst; //X coordinate of the first point
Float_t fXlast; //X coordinate of the last point
Float_t fYfirst; //Y coordinate of the first point
Float_t fYlast; //Y coordinate of the last point
Float_t fZfirst; //Z coordinate of the first point
Float_t fZlast; //Z coordinate of the last point
Double32_t fCharge; //Charge of this track
Double32_t fVertex[3]; //Track vertex position
Int_t fNpoint; //Number of points for this track
Short_t fValid; //Validity criterion
Int_t fNsp; //Number of points for this track with a special value
Double32_t *fPointValue; //[fNsp] a special quantity for some point.
TBits fTriggerBits; //Bits triggered by this track.
An example of a batch program to use the Event/Track classes is given
in this directory: MainEvent.
Look also in the same directory at the following macros:
- eventa.C an example how to read the tree
- eventb.C how to read events conditionally
During the processing of the event (optionally) also a large number
of histograms can be filled. The creation and handling of the
histograms is taken care of by the HistogramManager class.
Create a track object. Note that in this example, data members do not have any physical meaning.