StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHiMicroEvent.h
1 /***************************************************************************
2  *
3  * $Id: StHiMicroEvent.h,v 1.3 2002/05/31 21:54:00 jklay Exp $
4  *
5  * Author: Bum Choi, UT Austin, Apr 2002
6  *
7  ***************************************************************************
8  *
9  * Description: This is a uDST for highpt Analysis.
10  *
11  ***************************************************************************
12  *
13  * $Log: StHiMicroEvent.h,v $
14  * Revision 1.3 2002/05/31 21:54:00 jklay
15  * Added ZDC Vertex z position
16  *
17  * Revision 1.2 2002/04/02 23:34:52 jklay
18  * Added L3RichTrigger information
19  *
20  * Revision 1.1 2002/04/02 19:36:15 jklay
21  * Bums highpt uDST format
22  *
23  *
24  **************************************************************************/
25 /*
26  basically copies jeffs, and the flow teams code.
27  allocates the memory for the tracks and hits on the heap
28  only the first time a StHiMicroEvent object is created.
29 
30 */
31 
32 #ifndef StHiMicroEvent_H
33 #define StHiMicroEvent_H
34 
35 #include "TObject.h"
36 #include "TClonesArray.h"
37 #include "StHiMicroTrack.h"
38 #include "StHiMicroHit.h"
39 
40 class StHiMicroEvent : public TObject {
41  public:
43  virtual ~StHiMicroEvent();
44 
45  void Clear(Option_t* option="");
46  void AddTrack(StHiMicroTrack*);
47  void AddHit(StHiMicroHit*);
48 
49  TClonesArray* tracks() const { return mTracks; }
50  TClonesArray* hits() const { return mHits; }
51 
52  Float_t VertexZ() const { return mVertexZ; }
53  Float_t VertexY() const { return mVertexY; }
54  Float_t VertexX() const { return mVertexX; }
55  Int_t OriginMult() const { return mOriginMult; }
56  Int_t CentMult() const { return mCentMult; }
57  Int_t Centrality() const { return mCentrality; }
58  Int_t NUncorrectedNegativePrimaries() const { return mNUncorrectedNegativePrimaries; }
59  Int_t NUncorrectedPrimaries() const { return mNUncorrectedPrimaries; }
60  Int_t NAllGlobals() const { return mNAllGlobals; }
61  Int_t NFlagGlobals() const { return mNFlagGlobals; }
62  Int_t NGoodGlobals() const { return mNGoodGlobals; }
63  Int_t NGoodGlobalsA() const { return mNGoodGlobalsA; }
64  Int_t NGoodGlobalsB() const { return mNGoodGlobalsB; }
65  Int_t NGoodGlobalsC() const { return mNGoodGlobalsC; }
66  Int_t NGoodGlobalsD() const { return mNGoodGlobalsD; }
67  Int_t NGoodGlobalsE() const { return mNGoodGlobalsE; }
68  UInt_t L0TriggerWord() const { return mL0TriggerWord; }
69  Bool_t L3UnbiasedTrigger() const { return mL3UnbiasedTrigger; }
70  Bool_t L3RichTrigger() const { return mL3RichTrigger; }
71  Double_t CenterOfMassEnergy() const { return mCenterOfMassEnergy; }
72  Double_t MagneticField() const { return mMagneticField; }
73  Short_t BeamMassNumberEast() const { return mBeamMassNumberEast; }
74  Short_t BeamMassNumberWest() const { return mBeamMassNumberWest; }
75  Int_t EventId() const { return mEventId; }
76  Int_t RunId() const { return mRunId; }
77  Int_t NTrack() const { return mNTrack; }
78  Float_t CTB() const { return mCTB; }
79  Float_t ZDCe() const { return mZDCe; }
80  Float_t ZDCw() const { return mZDCw; }
81  Float_t ZDCVertexZ() const { return mZDCVertexZ; }
82  Int_t NHit() const { return mNHit; }
83 
84  void SetCentrality(Int_t);
85 
86  void SetVertexZ(Float_t val) { mVertexZ=val; }
87  void SetVertexY(Float_t val) { mVertexY=val; }
88  void SetVertexX(Float_t val) { mVertexX=val; }
89  void SetOriginMult(Int_t val) { mOriginMult=val; }
90  void SetCentMult(Int_t val) { mCentMult=val; }
91  void SetNUncorrectedNegativePrimaries(Int_t val) { mNUncorrectedNegativePrimaries=val; }
92  void SetNUncorrectedPrimaries(Int_t val) { mNUncorrectedPrimaries=val; }
93  void SetNAllGlobals(Int_t val) { mNAllGlobals=val; }
94  void SetNFlagGlobals(Int_t val) { mNFlagGlobals=val; }
95  void SetNGoodGlobals(Int_t val) { mNGoodGlobals=val; }
96  void SetNGoodGlobalsA(Int_t val) { mNGoodGlobalsA=val; }
97  void SetNGoodGlobalsB(Int_t val) { mNGoodGlobalsB=val; }
98  void SetNGoodGlobalsC(Int_t val) { mNGoodGlobalsC=val; }
99  void SetNGoodGlobalsD(Int_t val) { mNGoodGlobalsD=val; }
100  void SetNGoodGlobalsE(Int_t val) { mNGoodGlobalsE=val; }
101  void SetL0TriggerWord(UInt_t val) { mL0TriggerWord=val; }
102  void SetL3UnbiasedTrigger(Bool_t val) { mL3UnbiasedTrigger=val; }
103  void SetL3RichTrigger(Bool_t val) { mL3RichTrigger=val; }
104  void SetCenterOfMassEnergy(Double_t val) { mCenterOfMassEnergy=val; }
105  void SetMagneticField(Double_t val) { mMagneticField=val; }
106  void SetBeamMassNumberEast(Short_t val) { mBeamMassNumberEast=val; }
107  void SetBeamMassNumberWest(Short_t val) { mBeamMassNumberWest=val; }
108  void SetEventId(Int_t val) { mEventId=val; }
109  void SetRunId(Int_t val) { mRunId=val; }
110  void SetNTrack(Int_t val) { mNTrack=val; }
111  void SetCTB(Float_t val) { mCTB=val; }
112  void SetZDCe(Float_t val) { mZDCe=val; }
113  void SetZDCw(Float_t val) { mZDCw=val; }
114  void SetZDCVertexZ(Float_t val) { mZDCVertexZ=val; }
115  void SetNHit(Int_t val) { mNHit=val; }
116 
117  private:
118  Float_t mVertexZ;
119  Float_t mVertexX; //Self-explanatory
120  Float_t mVertexY;
121  Int_t mOriginMult; //stEvent->primaryVertex()->numberOfDaughters()
122  Int_t mCentMult; //|Eta|<0.5, flag >0, to go with Zhangbu's centrality definition
123  Int_t mCentrality; //Uses Zhangbu's numbers for Year 2, based on definition of CentMult above
124  Int_t mNUncorrectedNegativePrimaries; // manuel's h-
125  Int_t mNUncorrectedPrimaries;
126 
127  Int_t mNAllGlobals;
128  Int_t mNFlagGlobals; //flag > 0
129  Int_t mNGoodGlobals; //25 fitpts, flag >0, charge != 0
130  Int_t mNGoodGlobalsA; //10 fitpts, flag >0, charge != 0
131  Int_t mNGoodGlobalsB; //15 fitpts, flag >0, charge != 0
132  Int_t mNGoodGlobalsC; //20 fitpts, flag >0, charge != 0
133  Int_t mNGoodGlobalsD; //30 fitpts, flag >0, charge != 0
134  Int_t mNGoodGlobalsE; //25 fitpts, all flags, charge != 0
135 
136  //** new 01/28/02
137  UInt_t mL0TriggerWord; // l0 trigger word for > y1 data
138  Bool_t mL3UnbiasedTrigger; // for l3 triggered events, unbiased or not?
139  Bool_t mL3RichTrigger; // for l3 Rich triggered events, see http://ikf1.star.bnl.gov/L3doc/algorithms/
140  Double_t mCenterOfMassEnergy;
141  Double_t mMagneticField;
142  Short_t mBeamMassNumberEast;
143  Short_t mBeamMassNumberWest;
144  // ** end new
145  Int_t mEventId;
146  Int_t mRunId;
147  Int_t mNTrack; // numbers of tracks in the track branch
148  Float_t mCTB;
149  Float_t mZDCe;
150  Float_t mZDCw;
151  Float_t mZDCVertexZ; //Info from ZDC timing can be used to assess vertex efficiency
152  Int_t mNHit; //number of hist in the hit branch
153 
154 //These were always private
155  static TClonesArray* mSTracks;
156  TClonesArray* mTracks;
157 
158  static TClonesArray* mSHits;
159  TClonesArray* mHits; //
160 
161  ClassDef(StHiMicroEvent,1)
162 
163 };
164 
165 #endif
166