00001 #ifndef XANAGeantEvent_h 00002 #define XANAGeantEvent_h 00003 00010 class XANAGeantTrack; 00011 class XANAGeantVertex; 00012 class XANAGeneratorParticle; 00013 class XANAGeneratorEvent; 00014 class XANAEsdEvent; 00015 00016 #include <TClonesArray.h> 00017 #include <TObjArray.h> 00018 #include <TRefArray.h> 00019 #include <TRef.h> 00020 #include <TObject.h> 00021 #include <Rtypes.h> 00022 00023 class XANAGeantEvent : public TObject { 00024 00025 public: 00026 00027 XANAGeantEvent(); 00028 00029 virtual ~XANAGeantEvent(); 00030 00032 void addGeantVertex(const XANAGeantVertex *vtx); 00034 void addGeantTrack(const XANAGeantTrack *track, XANAGeantVertex *vtx=0); 00036 void setGeneratorParticle(const XANAGeantTrack *track, XANAGeneratorParticle *p=0); 00037 00038 void clear(); 00039 void print() const; 00040 00041 // access methods 00042 TObjArray *getGeantTracks() {return tracks_;} 00043 Short_t getNumberOfGeantTracks() {return numberOfGeantTracks_;} 00044 TObjArray *getGeantVertices() {return vertices_;} 00045 Short_t getNumberOfGeantVertices() {return numberOfGeantVertices_;} 00046 XANAGeneratorEvent * getGeneratorEvent() {return (XANAGeneratorEvent *)(genEvt_.GetObject());} 00047 void addGeneratorEvent(XANAGeneratorEvent *ev); 00048 void addEsdEvent(XANAEsdEvent *ev); 00049 XANAGeantTrack *getGeantTrack(Short_t index); 00050 00051 00052 private: 00053 00055 Short_t numberOfGeantVertices_; 00057 TObjArray *vertices_; 00059 Short_t numberOfGeantTracks_; 00061 TObjArray *tracks_; 00063 TRef genEvt_; 00065 TRef esdEvt_; 00066 00067 ClassDef(XANAGeantEvent,1) // geant event class 00068 00069 }; 00070 00071 #endif