00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137 #ifndef StMcEvent_hh
00138 #define StMcEvent_hh
00139
00140 #include "Stiostream.h"
00141 #include "StMcContainers.hh"
00142 #include "TString.h"
00143 #include "TDataSet.h"
00144 #include "TBrowser.h"
00145 class StObject;
00146 class StMcTpcHitCollection;
00147 class StMcFtpcHitCollection;
00148 class StMcRichHitCollection;
00149 class StMcCtbHitCollection;
00150 class StMcSvtHitCollection;
00151 class StMcSsdHitCollection;
00152 #include "StMcEmcHitCollection.hh"
00153 class StMcEtrHitCollection;
00154 class StMcTofHitCollection;
00155 class StMcBTofHitCollection;
00156 class StMcMtdHitCollection;
00157 class StMcPixelHitCollection;
00158 class StMcIstHitCollection;
00159 class StMcFgtHitCollection;
00160 class StMcVertex;
00161 class g2t_event_st;
00162
00163 class StMcEvent : public TDataSet {
00164
00165 public:
00166 StMcEvent();
00167 StMcEvent(g2t_event_st*);
00168 virtual ~StMcEvent();
00169 virtual void Browse(TBrowser *b);
00170 virtual bool IsFolder() const {return true;};
00171 int operator==(const StMcEvent&) const;
00172 int operator!=(const StMcEvent&) const;
00173 protected:
00174 void initToZero();
00175 void makeColls();
00176 public:
00177
00178
00179
00180
00181
00182 static const TString& cvsTag() {return mCvsTag; }
00183 unsigned long eventGeneratorEventLabel() const {return mEventGeneratorEventLabel; }
00184 unsigned long eventNumber() const {return mEventNumber; }
00185 unsigned long runNumber() const {return mRunNumber;}
00186 unsigned long type() const {return mType;}
00187 unsigned long zWest() const {return mZWest;}
00188 unsigned long nWest() const {return mNWest;}
00189 unsigned long zEast() const {return mZEast;}
00190 unsigned long nEast() const {return mNEast;}
00191 unsigned long eventGeneratorFinalStateTracks() const {return mEvGenFSTracks;}
00192 unsigned long numberOfPrimaryTracks() const {return mPrimaryTracks;}
00193 unsigned long subProcessId() const {return mSubProcessId;}
00194 float impactParameter() const {return mImpactParameter; }
00195 float phiReactionPlane() const {return mPhiReactionPlane; }
00196 float triggerTimeOffset() const {return mTriggerTimeOffset;}
00197 unsigned long nBinary() const {return mNBinary;}
00198 unsigned long nWoundedEast() const {return mNWoundedEast;}
00199 unsigned long nWoundedWest() const {return mNWoundedWest;}
00200 unsigned long nJets() const {return mNJets;}
00201 StMcVertex* primaryVertex() {return mPrimaryVertex;}
00202 const StMcVertex* primaryVertex() const {return mPrimaryVertex;}
00203 StSPtrVecMcVertex& vertices() {return mVertices;}
00204 const StSPtrVecMcVertex& vertices() const {return mVertices;}
00205 StSPtrVecMcTrack& tracks() {return mTracks;}
00206 const StSPtrVecMcTrack& tracks() const {return mTracks;}
00207 StMcTpcHitCollection* tpcHitCollection() {return mTpcHits;}
00208 const StMcTpcHitCollection* tpcHitCollection() const {return mTpcHits;}
00209 StMcSvtHitCollection* svtHitCollection() {return mSvtHits;}
00210 const StMcSvtHitCollection* svtHitCollection() const {return mSvtHits;}
00211 StMcSsdHitCollection* ssdHitCollection() {return mSsdHits;}
00212 const StMcSsdHitCollection* ssdHitCollection() const {return mSsdHits;}
00213 StMcFtpcHitCollection* ftpcHitCollection() {return mFtpcHits;}
00214 const StMcFtpcHitCollection* ftpcHitCollection() const {return mFtpcHits;}
00215 StMcRichHitCollection* richHitCollection() {return mRichHits;}
00216 const StMcRichHitCollection* richHitCollection() const {return mRichHits;}
00217 StMcCtbHitCollection* ctbHitCollection() {return mCtbHits;}
00218 const StMcCtbHitCollection* ctbHitCollection() const {return mCtbHits;}
00219
00220 StMcEmcHitCollection* emcHitCollection(const Char_t *name) {
00221 StMcEmcHitCollection *emcHitColl = (StMcEmcHitCollection*) Find(name);
00222 if (! emcHitColl) {emcHitColl = new StMcEmcHitCollection(); emcHitColl->SetName(name); Add(emcHitColl);}
00223 return emcHitColl;
00224 }
00225 const StMcEmcHitCollection* emcHitCollection(const Char_t *name) const {
00226 return (const StMcEmcHitCollection*) this->Find(name);
00227 }
00228 StMcEmcHitCollection* bemcHitCollection() {return emcHitCollection("BemcHits");}
00229 const StMcEmcHitCollection* bemcHitCollection() const {return emcHitCollection("BemcHits");}
00230 StMcEmcHitCollection* bprsHitCollection() {return emcHitCollection("BprsHits");}
00231 const StMcEmcHitCollection* bprsHitCollection() const {return emcHitCollection("BprsHits");}
00232 StMcEmcHitCollection* bsmdeHitCollection() {return emcHitCollection("BsmdeHits");}
00233 const StMcEmcHitCollection* bsmdeHitCollection() const {return emcHitCollection("BsmdeHits");}
00234 StMcEmcHitCollection* bsmdpHitCollection() {return emcHitCollection("BsmdpHits");}
00235 const StMcEmcHitCollection* bsmdpHitCollection() const {return emcHitCollection("BsmdpHits");}
00236
00237 StMcTofHitCollection* tofHitCollection() {return mTofHits;}
00238 const StMcTofHitCollection* tofHitCollection() const {return mTofHits;}
00239 StMcBTofHitCollection* btofHitCollection() {return mBTofHits;}
00240 const StMcBTofHitCollection* btofHitCollection() const {return mBTofHits;}
00241 StMcMtdHitCollection* mtdHitCollection() {return mMtdHits;}
00242 const StMcMtdHitCollection* mtdHitCollection() const {return mMtdHits;}
00243
00244 StMcEmcHitCollection* eemcHitCollection() {return emcHitCollection("EemcHits");}
00245 const StMcEmcHitCollection* eemcHitCollection() const {return emcHitCollection("EemcHits");}
00246 StMcEmcHitCollection* eprsHitCollection() {return emcHitCollection("EprsHits");}
00247 const StMcEmcHitCollection* eprsHitCollection() const {return emcHitCollection("EprsHits");}
00248 StMcEmcHitCollection* esmduHitCollection() {return emcHitCollection("EsmduHits");}
00249 const StMcEmcHitCollection* esmduHitCollection() const {return emcHitCollection("EsmduHits");}
00250 StMcEmcHitCollection* esmdvHitCollection() {return emcHitCollection("EsmdvHits");}
00251 const StMcEmcHitCollection* esmdvHitCollection() const {return emcHitCollection("EsmdvHits");}
00252
00253 StMcEtrHitCollection* etrHitCollection() { return mEtrHits; }
00254 const StMcEtrHitCollection* etrHitCollection() const { return mEtrHits; }
00255
00256 StMcEmcHitCollection* fpdHitCollection() { return emcHitCollection("FpdHits"); }
00257 const StMcEmcHitCollection* fpdHitCollection() const { return emcHitCollection("FpdHits"); }
00258
00259 StMcEmcHitCollection* fscHitCollection() { return emcHitCollection("FscHits"); }
00260 const StMcEmcHitCollection* fscHitCollection() const { return emcHitCollection("FscHits"); }
00261
00262 StMcPixelHitCollection* pixelHitCollection() {return mPixelHits;}
00263 const StMcPixelHitCollection*pixelHitCollection() const {return mPixelHits;}
00264 StMcIstHitCollection* istHitCollection() {return mIstHits;}
00265 const StMcIstHitCollection* istHitCollection() const {return mIstHits;}
00266 StMcFgtHitCollection* fgtHitCollection() {return mFgtHits;}
00267 const StMcFgtHitCollection* fgtHitCollection() const {return mFgtHits;}
00268
00269
00270
00271 void setEventGeneratorEventLabel(unsigned long);
00272 void setEventNumber(unsigned long);
00273 void setRunNumber(unsigned long);
00274 void setType(unsigned long);
00275 void setZWest(unsigned long);
00276 void setNWest(unsigned long);
00277 void setZEast(unsigned long);
00278 void setNEast(unsigned long);
00279 void setEventGeneratorFinalStateTracks(unsigned long);
00280 void setNumberOfPrimaryTracks(unsigned long);
00281 void setImpactParameter(float);
00282 void setPhiReactionPlane(float);
00283 void setTriggerTimeOffset(float);
00284 void setNBinary(unsigned long);
00285 void setNWoundedEast(unsigned long);
00286 void setNWoundedWest(unsigned long);
00287 void setNJets(unsigned long);
00288 void setPrimaryVertex(StMcVertex*);
00289 void setTpcHitCollection(StMcTpcHitCollection*);
00290 void setSvtHitCollection(StMcSvtHitCollection*);
00291 void setSsdHitCollection(StMcSsdHitCollection*);
00292 void setFtpcHitCollection(StMcFtpcHitCollection*);
00293 void setRichHitCollection(StMcRichHitCollection*);
00294 void setCtbHitCollection(StMcCtbHitCollection*);
00295 void setTofHitCollection(StMcTofHitCollection*);
00296 void setBTofHitCollection(StMcBTofHitCollection*);
00297 void setMtdHitCollection(StMcMtdHitCollection*);
00298 void setPixelHitCollection(StMcPixelHitCollection*);
00299 void setIstHitCollection(StMcIstHitCollection*);
00300 void setFgtHitCollection(StMcFgtHitCollection*);
00301 void setEtrHitCollection(StMcEtrHitCollection*);
00302 virtual void Print(Option_t *option="") const;
00303 protected:
00304 char mBeg[1];
00305 unsigned long mEventGeneratorEventLabel;
00306 unsigned long mEventNumber;
00307 unsigned long mRunNumber;
00308 unsigned long mType;
00309 unsigned long mZWest;
00310 unsigned long mNWest;
00311 unsigned long mZEast;
00312 unsigned long mNEast;
00313 unsigned long mEvGenFSTracks;
00314 unsigned long mPrimaryTracks;
00315 unsigned long mSubProcessId;
00316 float mImpactParameter;
00317 float mPhiReactionPlane;
00318 float mTriggerTimeOffset;
00319 unsigned long mNBinary;
00320 unsigned long mNWoundedEast;
00321 unsigned long mNWoundedWest;
00322 unsigned long mNJets;
00323 StMcVertex* mPrimaryVertex;
00324 StObject* mBegColl[1];
00325 StMcTpcHitCollection* mTpcHits;
00326 StMcSvtHitCollection* mSvtHits;
00327 StMcSsdHitCollection* mSsdHits;
00328 StMcFtpcHitCollection* mFtpcHits;
00329 StMcRichHitCollection* mRichHits;
00330 StMcCtbHitCollection* mCtbHits;
00331 StMcTofHitCollection* mTofHits;
00332 StMcBTofHitCollection* mBTofHits;
00333 StMcMtdHitCollection* mMtdHits;
00334 StMcPixelHitCollection* mPixelHits;
00335 StMcIstHitCollection* mIstHits;
00336 StMcFgtHitCollection* mFgtHits;
00337 StMcEtrHitCollection* mEtrHits;
00338 StObject* mEndColl[1];
00339 char mEnd[1];
00340 StSPtrVecMcVertex mVertices;
00341 StSPtrVecMcTrack mTracks;
00342 static TString mCvsTag;
00343 protected:
00344 const StMcEvent& operator=(const StMcEvent&);
00345 StMcEvent(const StMcEvent&);
00346 ClassDef(StMcEvent,3)
00347 };
00348
00349 ostream& operator<<(ostream& os, const StMcEvent&);
00350
00351
00352
00353 #endif
00354