00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef StHltEvent_hh
00018 #define StHltEvent_hh
00019
00020 #include "StObject.h"
00021 #include "StContainers.h"
00022 #include "StThreeVectorF.hh"
00023
00024 class StHltTrack;
00025 class StHltTrackNode;
00026 class StHltBEmcTowerHit;
00027 class StHltBTofHit;
00028 class StHltVpdHit;
00029 class StHltHighPt;
00030 class StHltHeavyFragment;
00031 class StHltDiElectron;
00032 class StHltTriggerReason;
00033
00034 class StHltEvent : public StObject{
00035 public:
00036 StHltEvent();
00037 virtual ~StHltEvent();
00038
00039 unsigned int version() const;
00040 unsigned int triggerReasonBitOred() const;
00041
00042 StThreeVectorF& vertex();
00043 const StThreeVectorF& vertex() const;
00044
00045 StThreeVectorF& lowMultVertex();
00046 const StThreeVectorF& lowMultVertex() const;
00047
00048 float vpdVertexZ() const;
00049 float t0() const;
00050 float innerSecGain() const;
00051 float outerSecGain() const;
00052
00053 StSPtrVecHltTrack& globalTrack();
00054 const StSPtrVecHltTrack& globalTrack() const;
00055 StSPtrVecHltTrack& primaryTrack();
00056 const StSPtrVecHltTrack& primaryTrack() const;
00057 StSPtrVecHltTrackNode& trackNode();
00058 const StSPtrVecHltTrackNode& trackNode() const;
00059 StSPtrVecHltBEmcTowerHit& bEmcTowerHits();
00060 const StSPtrVecHltBEmcTowerHit& bEmcTowerHits() const;
00061 StSPtrVecHltBTofHit& bTofHit();
00062 const StSPtrVecHltBTofHit& bTofHit() const;
00063 StSPtrVecHltVpdHit& vpdHit();
00064 const StSPtrVecHltVpdHit& vpdHit() const;
00065 StSPtrVecHltHighPt& highPt();
00066 const StSPtrVecHltHighPt& highPt() const;
00067 StSPtrVecHltHeavyFragment& heavyFragment();
00068 const StSPtrVecHltHeavyFragment& heavyFragment() const;
00069 StSPtrVecHltDiElectron& diElectron();
00070 const StSPtrVecHltDiElectron& diElectron() const;
00071 StSPtrVecHltTriggerReason& triggerReason();
00072 const StSPtrVecHltTriggerReason& triggerReason() const;
00073
00074 void addGlobalTrack(const StHltTrack*);
00075 void addPrimaryTrack(const StHltTrack*);
00076 void addTrackNode(const StHltTrackNode*);
00077 void addBEmcTowerHit(const StHltBEmcTowerHit*);
00078 void addBTofHit(const StHltBTofHit*);
00079 void addVpdHit(const StHltVpdHit*);
00080 void addHighPt(const StHltHighPt*);
00081 void addHeavyFragment(const StHltHeavyFragment*);
00082 void addDiElectron(const StHltDiElectron*);
00083 void addTriggerReason(const StHltTriggerReason*);
00084
00085 void setVersion(unsigned int);
00086 void setTriggerReasonBitOred(unsigned int);
00087 void setVertex(const StThreeVectorF&);
00088 void setLowMultVertex(const StThreeVectorF&);
00089 void setVpdVertexZ(float);
00090 void setT0(float);
00091 void setInnerSecGain(float);
00092 void setOuterSecGain(float);
00093
00094
00095 private:
00096 unsigned int mVersion;
00097 unsigned int mTriggerReasonBitOred;
00098 StThreeVectorF mVertex;
00099 StThreeVectorF mLowMultVertex;
00100 float mVpdVertexZ;
00101 float mT0;
00102 float mInnerSecGain;
00103 float mOuterSecGain;
00104
00105 StSPtrVecHltTrack mGlobalTrack;
00106 StSPtrVecHltTrack mPrimaryTrack;
00107 StSPtrVecHltTrackNode mTrackNode;
00108 StSPtrVecHltBEmcTowerHit mBEmcTowerHits;
00109 StSPtrVecHltBTofHit mBTofHit;
00110 StSPtrVecHltVpdHit mVpdHit;
00111 StSPtrVecHltHighPt mHighPt;
00112 StSPtrVecHltHeavyFragment mHeavyFragment;
00113 StSPtrVecHltDiElectron mDiElectron;
00114 StSPtrVecHltTriggerReason mTriggerReason;
00115
00116 ClassDef(StHltEvent,1)
00117 };
00118
00119 inline unsigned int StHltEvent::version() const {return mVersion;}
00120 inline unsigned int StHltEvent::triggerReasonBitOred() const {return mTriggerReasonBitOred;}
00121 inline float StHltEvent::vpdVertexZ() const {return mVpdVertexZ;}
00122 inline float StHltEvent::t0() const {return mT0;}
00123 inline float StHltEvent::innerSecGain() const {return mInnerSecGain;}
00124 inline float StHltEvent::outerSecGain() const {return mOuterSecGain;}
00125
00126 inline StSPtrVecHltTrack& StHltEvent::globalTrack() {return mGlobalTrack;}
00127 inline const StSPtrVecHltTrack& StHltEvent::globalTrack() const {return mGlobalTrack;}
00128 inline StSPtrVecHltTrack& StHltEvent::primaryTrack() {return mPrimaryTrack;}
00129 inline const StSPtrVecHltTrack& StHltEvent::primaryTrack() const {return mPrimaryTrack;}
00130 inline StSPtrVecHltTrackNode& StHltEvent::trackNode() {return mTrackNode;}
00131 inline const StSPtrVecHltTrackNode& StHltEvent::trackNode() const {return mTrackNode;}
00132 inline StSPtrVecHltBEmcTowerHit& StHltEvent::bEmcTowerHits() {return mBEmcTowerHits;}
00133 inline const StSPtrVecHltBEmcTowerHit& StHltEvent::bEmcTowerHits() const {return mBEmcTowerHits;}
00134 inline StSPtrVecHltBTofHit& StHltEvent::bTofHit() {return mBTofHit;}
00135 inline const StSPtrVecHltBTofHit& StHltEvent::bTofHit() const {return mBTofHit;}
00136 inline StSPtrVecHltVpdHit& StHltEvent::vpdHit() {return mVpdHit;}
00137 inline const StSPtrVecHltVpdHit& StHltEvent::vpdHit() const {return mVpdHit;}
00138 inline StSPtrVecHltHighPt& StHltEvent::highPt() {return mHighPt;}
00139 inline const StSPtrVecHltHighPt& StHltEvent::highPt() const {return mHighPt;}
00140 inline StSPtrVecHltHeavyFragment& StHltEvent::heavyFragment() {return mHeavyFragment;}
00141 inline const StSPtrVecHltHeavyFragment& StHltEvent::heavyFragment() const {return mHeavyFragment;}
00142 inline StSPtrVecHltDiElectron& StHltEvent::diElectron() {return mDiElectron;}
00143 inline const StSPtrVecHltDiElectron& StHltEvent::diElectron() const {return mDiElectron;}
00144 inline StSPtrVecHltTriggerReason& StHltEvent::triggerReason() {return mTriggerReason;}
00145 inline const StSPtrVecHltTriggerReason& StHltEvent::triggerReason() const {return mTriggerReason;}
00146
00147
00148 #endif
00149
00150
00151