StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHltEvent.h
1 /***************************************************************************
2  *
3  * $Id: StHltEvent.h,v 2.1 2011/02/01 19:45:47 ullrich Exp $
4  *
5  * Author: Liang Xue, Aihong Tang, Jan 2011
6  ***************************************************************************
7  *
8  * Description:
9  *
10  ***************************************************************************
11  *
12  * $Log: StHltEvent.h,v $
13  * Revision 2.1 2011/02/01 19:45:47 ullrich
14  * Initial Revision
15  *
16  **************************************************************************/
17 #ifndef StHltEvent_hh
18 #define StHltEvent_hh
19 
20 #include "StObject.h"
21 #include "StContainers.h"
22 #include "StThreeVectorF.hh"
23 
24 class StHltTrack;
25 class StHltTrackNode;
26 class StHltBEmcTowerHit;
27 class StHltBTofHit;
28 class StHltVpdHit;
29 class StHltHighPt;
30 class StHltHeavyFragment;
31 class StHltDiElectron;
32 class StHltTriggerReason;
33 
34 class StHltEvent : public StObject{
35 public:
36  StHltEvent();
37  virtual ~StHltEvent();
38 
39  unsigned int version() const;
40  unsigned int triggerReasonBitOred() const;
41 
43  const StThreeVectorF& vertex() const;
44 
45  StThreeVectorF& lowMultVertex();
46  const StThreeVectorF& lowMultVertex() const;
47 
48  float vpdVertexZ() const;
49  float t0() const;
50  float innerSecGain() const;
51  float outerSecGain() const;
52 
53  StSPtrVecHltTrack& globalTrack();
54  const StSPtrVecHltTrack& globalTrack() const;
55  StSPtrVecHltTrack& primaryTrack();
56  const StSPtrVecHltTrack& primaryTrack() const;
57  StSPtrVecHltTrackNode& trackNode();
58  const StSPtrVecHltTrackNode& trackNode() const;
59  StSPtrVecHltBEmcTowerHit& bEmcTowerHits();
60  const StSPtrVecHltBEmcTowerHit& bEmcTowerHits() const;
61  StSPtrVecHltBTofHit& bTofHit();
62  const StSPtrVecHltBTofHit& bTofHit() const;
63  StSPtrVecHltVpdHit& vpdHit();
64  const StSPtrVecHltVpdHit& vpdHit() const;
65  StSPtrVecHltHighPt& highPt();
66  const StSPtrVecHltHighPt& highPt() const;
67  StSPtrVecHltHeavyFragment& heavyFragment();
68  const StSPtrVecHltHeavyFragment& heavyFragment() const;
69  StSPtrVecHltDiElectron& diElectron();
70  const StSPtrVecHltDiElectron& diElectron() const;
71  StSPtrVecHltTriggerReason& triggerReason();
72  const StSPtrVecHltTriggerReason& triggerReason() const;
73 
74  void addGlobalTrack(const StHltTrack*);
75  void addPrimaryTrack(const StHltTrack*);
76  void addTrackNode(const StHltTrackNode*);
77  void addBEmcTowerHit(const StHltBEmcTowerHit*);
78  void addBTofHit(const StHltBTofHit*);
79  void addVpdHit(const StHltVpdHit*);
80  void addHighPt(const StHltHighPt*);
81  void addHeavyFragment(const StHltHeavyFragment*);
82  void addDiElectron(const StHltDiElectron*);
83  void addTriggerReason(const StHltTriggerReason*);
84 
85  void setVersion(unsigned int);
86  void setTriggerReasonBitOred(unsigned int);
87  void setVertex(const StThreeVectorF&);
88  void setLowMultVertex(const StThreeVectorF&);
89  void setVpdVertexZ(float);
90  void setT0(float);
91  void setInnerSecGain(float);
92  void setOuterSecGain(float);
93 
94 
95 private:
96  unsigned int mVersion;
97  unsigned int mTriggerReasonBitOred;
98  StThreeVectorF mVertex;
99  StThreeVectorF mLowMultVertex;
100  float mVpdVertexZ;
101  float mT0;
102  float mInnerSecGain;
103  float mOuterSecGain;
104 
105  StSPtrVecHltTrack mGlobalTrack;
106  StSPtrVecHltTrack mPrimaryTrack;
107  StSPtrVecHltTrackNode mTrackNode;
108  StSPtrVecHltBEmcTowerHit mBEmcTowerHits;
109  StSPtrVecHltBTofHit mBTofHit;
110  StSPtrVecHltVpdHit mVpdHit;
111  StSPtrVecHltHighPt mHighPt;
112  StSPtrVecHltHeavyFragment mHeavyFragment;
113  StSPtrVecHltDiElectron mDiElectron;
114  StSPtrVecHltTriggerReason mTriggerReason;
115 
116  ClassDef(StHltEvent,1)
117 };
118 
119 inline unsigned int StHltEvent::version() const {return mVersion;}
120 inline unsigned int StHltEvent::triggerReasonBitOred() const {return mTriggerReasonBitOred;}
121 inline float StHltEvent::vpdVertexZ() const {return mVpdVertexZ;}
122 inline float StHltEvent::t0() const {return mT0;}
123 inline float StHltEvent::innerSecGain() const {return mInnerSecGain;}
124 inline float StHltEvent::outerSecGain() const {return mOuterSecGain;}
125 
126 inline StSPtrVecHltTrack& StHltEvent::globalTrack() {return mGlobalTrack;}
127 inline const StSPtrVecHltTrack& StHltEvent::globalTrack() const {return mGlobalTrack;}
128 inline StSPtrVecHltTrack& StHltEvent::primaryTrack() {return mPrimaryTrack;}
129 inline const StSPtrVecHltTrack& StHltEvent::primaryTrack() const {return mPrimaryTrack;}
130 inline StSPtrVecHltTrackNode& StHltEvent::trackNode() {return mTrackNode;}
131 inline const StSPtrVecHltTrackNode& StHltEvent::trackNode() const {return mTrackNode;}
132 inline StSPtrVecHltBEmcTowerHit& StHltEvent::bEmcTowerHits() {return mBEmcTowerHits;}
133 inline const StSPtrVecHltBEmcTowerHit& StHltEvent::bEmcTowerHits() const {return mBEmcTowerHits;}
134 inline StSPtrVecHltBTofHit& StHltEvent::bTofHit() {return mBTofHit;}
135 inline const StSPtrVecHltBTofHit& StHltEvent::bTofHit() const {return mBTofHit;}
136 inline StSPtrVecHltVpdHit& StHltEvent::vpdHit() {return mVpdHit;}
137 inline const StSPtrVecHltVpdHit& StHltEvent::vpdHit() const {return mVpdHit;}
138 inline StSPtrVecHltHighPt& StHltEvent::highPt() {return mHighPt;}
139 inline const StSPtrVecHltHighPt& StHltEvent::highPt() const {return mHighPt;}
140 inline StSPtrVecHltHeavyFragment& StHltEvent::heavyFragment() {return mHeavyFragment;}
141 inline const StSPtrVecHltHeavyFragment& StHltEvent::heavyFragment() const {return mHeavyFragment;}
142 inline StSPtrVecHltDiElectron& StHltEvent::diElectron() {return mDiElectron;}
143 inline const StSPtrVecHltDiElectron& StHltEvent::diElectron() const {return mDiElectron;}
144 inline StSPtrVecHltTriggerReason& StHltEvent::triggerReason() {return mTriggerReason;}
145 inline const StSPtrVecHltTriggerReason& StHltEvent::triggerReason() const {return mTriggerReason;}
146 
147 
148 #endif
149 
150 
151