00001 #ifndef ROOT_JetEvent 00002 #define ROOT_JetEvent 00003 00004 ////////////////////////////////////////////////////////////////////////// 00005 // // 00006 // JetEvent // 00007 // // 00008 // Description of the event and track parameters // 00009 // // 00010 ////////////////////////////////////////////////////////////////////////// 00011 00012 #include "TClonesArray.h" 00013 #include "TRefArray.h" 00014 #include "TVector3.h" 00015 00016 class Hit : public TObject { 00017 00018 public: 00019 Float_t fX; //X of hit 00020 Float_t fY; //Y of hit 00021 Float_t fZ; //Z of hit 00022 00023 public: 00024 Hit() { } 00025 virtual ~Hit() { } 00026 00027 ClassDef(Hit,1) //A track hit 00028 }; 00029 00030 class Track : public TObject { 00031 00032 public: 00033 Float_t fPx; //X component of the momentum 00034 Float_t fPy; //Y component of the momentum 00035 Float_t fPz; //Z component of the momentum 00036 Int_t fNhit; //Number of hits for this track 00037 TRefArray fHits; //List of Hits for this track 00038 00039 public: 00040 Track() { } 00041 virtual ~Track() { } 00042 Int_t GetNhit() const { return fNhit; } 00043 TRefArray &GetHits() {return fHits; } 00044 00045 ClassDef(Track,1) //A track segment 00046 }; 00047 00048 00049 class Jet : public TObject { 00050 00051 public: 00052 Double_t fPt; //Pt of jet 00053 Double_t fPhi; //Phi of jet 00054 TRefArray fTracks; //List of tracks in the jet 00055 00056 public: 00057 Jet() { } 00058 virtual ~Jet(){ } 00059 TRefArray &GetTracks() {return fTracks; } 00060 00061 ClassDef(Jet,1) //Jet class 00062 }; 00063 00064 class JetEvent : public TObject { 00065 00066 private: 00067 TVector3 fVertex; //vertex coordinates 00068 Int_t fNjet; //Number of jets 00069 Int_t fNtrack; //Number of tracks 00070 Int_t fNhitA; //Number of hist in detector A 00071 Int_t fNhitB; //Number of hist in detector B 00072 TClonesArray *fJets; //->array with all jets 00073 TClonesArray *fTracks; //->array with all tracks 00074 TClonesArray *fHitsA; //->array of hits in detector A 00075 TClonesArray *fHitsB; //->array of hits in detector B 00076 00077 static TClonesArray *fgJets; 00078 static TClonesArray *fgTracks; 00079 static TClonesArray *fgHitsA; 00080 static TClonesArray *fgHitsB; 00081 00082 public: 00083 JetEvent(); 00084 virtual ~JetEvent(); 00085 void Build(Int_t jetm=3, Int_t trackm=10, Int_t hitam=100, Int_t hitbm=10); 00086 void Clear(Option_t *option =""); 00087 void Reset(Option_t *option =""); 00088 Int_t GetNjet() const { return fNjet; } 00089 Int_t GetNtrack() const { return fNtrack; } 00090 Int_t GetNhitA() const { return fNhitA; } 00091 Int_t GetNhitB() const { return fNhitB; } 00092 Jet *AddJet(); 00093 Track *AddTrack(); 00094 Hit *AddHitA(); 00095 Hit *AddHitB(); 00096 TClonesArray *GetJets() const { return fJets; } 00097 00098 ClassDef(JetEvent,1) //Event structure 00099 }; 00100 00101 #endif 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 00114 00115 00116 00117 00118 00119 00120 00121