00001
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
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157 #ifndef StEvent_hh
00158 #define StEvent_hh
00159
00160 #include "St_DataSet.h"
00161 #include "TString.h"
00162 #include "StContainers.h"
00163 #include "StEnumerations.h"
00164
00165 class StCalibrationVertex;
00166 class StDetectorState;
00167 class StEventClusteringHints;
00168 class StEventInfo;
00169 class StEventSummary;
00170 class StFpdCollection;
00171 class StPhmdCollection;
00172 class StTpcHitCollection;
00173 class StFtpcHitCollection;
00174 class StSvtHitCollection;
00175 class StSsdHitCollection;
00176 class StEtrHitCollection;
00177 class StEmcCollection;
00178 class StFmsCollection;
00179 class StRichCollection;
00180 class StRpsCollection;
00181 class StTofCollection;
00182 class StBTofCollection;
00183 class StMtdCollection;
00184 class StTriggerDetectorCollection;
00185 class StTriggerIdCollection;
00186 class StTriggerData;
00187 class StL0Trigger;
00188 class StL1Trigger;
00189 class StL3Trigger;
00190 class StPrimaryVertex;
00191 class StRunInfo;
00192 class StV0Vertex;
00193 class StXiVertex;
00194 class StKinkVertex;
00195 class StPsd;
00196 class StRnDHitCollection;
00197 class StHltEvent;
00198 class StFgtCollection;
00199
00200 class StEvent : public StXRefMain {
00201 public:
00202 StEvent();
00203 virtual ~StEvent();
00204
00205 void Browse(TBrowser*);
00206 static const TString& cvsTag();
00207
00208 TString type() const;
00209 int id() const;
00210 int runId() const;
00211 int time() const;
00212 unsigned int triggerMask() const;
00213 unsigned int bunchCrossingNumber(unsigned int) const;
00214
00215 StEventInfo* info();
00216 const StEventInfo* info() const;
00217
00218 StRunInfo* runInfo();
00219 const StRunInfo* runInfo() const;
00220
00221 StEventSummary* summary();
00222 const StEventSummary* summary() const;
00223
00224 StTpcHitCollection* tpcHitCollection();
00225 const StTpcHitCollection* tpcHitCollection() const;
00226 StFtpcHitCollection* ftpcHitCollection();
00227 const StFtpcHitCollection* ftpcHitCollection() const;
00228 StSvtHitCollection* svtHitCollection();
00229 const StSvtHitCollection* svtHitCollection() const;
00230 StSsdHitCollection* ssdHitCollection();
00231 const StSsdHitCollection* ssdHitCollection() const;
00232 StEmcCollection* emcCollection();
00233 const StEmcCollection* emcCollection() const;
00234 StFmsCollection* fmsCollection();
00235 const StFmsCollection* fmsCollection() const;
00236 StRichCollection* richCollection();
00237 const StRichCollection* richCollection() const;
00238 StRpsCollection* rpsCollection();
00239 const StRpsCollection* rpsCollection() const;
00240 StTofCollection* tofCollection();
00241 const StTofCollection* tofCollection() const;
00242 StBTofCollection* btofCollection();
00243 const StBTofCollection* btofCollection() const;
00244 StMtdCollection* mtdCollection();
00245 const StMtdCollection* mtdCollection() const;
00246 StFpdCollection* fpdCollection();
00247 const StFpdCollection* fpdCollection() const;
00248 StPhmdCollection* phmdCollection();
00249 const StPhmdCollection* phmdCollection() const;
00250 StRnDHitCollection* rndHitCollection();
00251 const StRnDHitCollection* rndHitCollection() const;
00252 StEtrHitCollection* etrHitCollection();
00253 const StEtrHitCollection* etrHitCollection() const;
00254 StHltEvent* hltEvent();
00255 const StHltEvent* hltEvent() const;
00256 StFgtCollection* fgtCollection();
00257 const StFgtCollection* fgtCollection() const;
00258
00259 StL0Trigger* l0Trigger();
00260 const StL0Trigger* l0Trigger() const;
00261 StL1Trigger* l1Trigger();
00262 const StL1Trigger* l1Trigger() const;
00263 StL3Trigger* l3Trigger();
00264 const StL3Trigger* l3Trigger() const;
00265 StTriggerDetectorCollection* triggerDetectorCollection();
00266 const StTriggerDetectorCollection* triggerDetectorCollection() const;
00267 StTriggerIdCollection* triggerIdCollection();
00268 const StTriggerIdCollection* triggerIdCollection() const;
00269 StTriggerData* triggerData();
00270 const StTriggerData* triggerData() const;
00271
00272 StSPtrVecTrackDetectorInfo& trackDetectorInfo();
00273 const StSPtrVecTrackDetectorInfo& trackDetectorInfo() const;
00274
00275 StSPtrVecTrackNode& trackNodes();
00276 const StSPtrVecTrackNode& trackNodes() const;
00277
00278 unsigned int numberOfPrimaryVertices() const;
00279 StPrimaryVertex* primaryVertex(unsigned int = 0);
00280 const StPrimaryVertex* primaryVertex(unsigned int = 0) const;
00281
00282 unsigned int numberOfCalibrationVertices() const;
00283 StCalibrationVertex* calibrationVertex(unsigned int);
00284 const StCalibrationVertex* calibrationVertex(unsigned int) const;
00285
00286 StSPtrVecV0Vertex& v0Vertices();
00287 const StSPtrVecV0Vertex& v0Vertices() const;
00288 StSPtrVecXiVertex& xiVertices();
00289 const StSPtrVecXiVertex& xiVertices() const;
00290 StSPtrVecKinkVertex& kinkVertices();
00291 const StSPtrVecKinkVertex& kinkVertices() const;
00292
00293 StDetectorState* detectorState(StDetectorId);
00294 const StDetectorState* detectorState(StDetectorId) const;
00295
00296 StPsd* psd(StPwg, int);
00297 const StPsd* psd(StPwg, int) const;
00298 unsigned int numberOfPsds() const;
00299 unsigned int numberOfPsds(StPwg) const;
00300
00301 StSPtrVecHit* hitCollection(const Char_t *name);
00302
00303 StSPtrVecObject& content();
00304
00305 const StEventClusteringHints* clusteringHints() const;
00306 StEventClusteringHints* clusteringHints();
00307
00308 void statistics();
00309
00310 void setType(const char*);
00311 void setRunId(int);
00312 void setId(int);
00313 void setTime(int);
00314 void setTriggerMask(unsigned int);
00315 void setBunchCrossingNumber(unsigned int, unsigned int);
00316 void setInfo(StEventInfo*);
00317 void setRunInfo(StRunInfo*);
00318 void setSummary(StEventSummary*);
00319 void setIdTruth();
00320
00321 void setTpcHitCollection(StTpcHitCollection*);
00322 void setRnDHitCollection(StRnDHitCollection*);
00323 void setEtrHitCollection(StEtrHitCollection*);
00324 void setFtpcHitCollection(StFtpcHitCollection*);
00325 void setSvtHitCollection(StSvtHitCollection*);
00326 void setSsdHitCollection(StSsdHitCollection*);
00327 void setEmcCollection(StEmcCollection*);
00328 void setFmsCollection(StFmsCollection*);
00329 void setRichCollection(StRichCollection*);
00330 void setRpsCollection(StRpsCollection*);
00331 void setTofCollection(StTofCollection*);
00332 void setBTofCollection(StBTofCollection*);
00333 void setMtdCollection(StMtdCollection*);
00334 void setFpdCollection(StFpdCollection*);
00335 void setPhmdCollection(StPhmdCollection*);
00336 void setTriggerDetectorCollection(StTriggerDetectorCollection*);
00337 void setTriggerIdCollection(StTriggerIdCollection*);
00338 void setTriggerData(StTriggerData*);
00339 void setL0Trigger(StL0Trigger*);
00340 void setL1Trigger(StL1Trigger*);
00341 void setL3Trigger(StL3Trigger*);
00342 void setHltEvent(StHltEvent*);
00343 void setFgtCollection(StFgtCollection*);
00344 void addPrimaryVertex(StPrimaryVertex*, StPrimaryVertexOrder = orderByNumberOfDaughters);
00345 void addCalibrationVertex(StCalibrationVertex*);
00346 void addDetectorState(StDetectorState*);
00347 void addPsd(StPsd*);
00348 void removePsd(StPsd*);
00349 void addHitCollection(StSPtrVecHit* p, const Char_t *name);
00350 void removeHitCollection(const Char_t *name);
00351
00352 virtual Bool_t Notify();
00353
00354 protected:
00355 mutable StSPtrVecObject mContent;
00356 static TString mCvsTag;
00357 void Split();
00358 int IsMain() const {return 1;}
00359 private:
00360 StEvent& operator=(const StEvent&);
00361 StEvent(const StEvent&);
00362 void initToZero();
00363
00364 ClassDef(StEvent,5)
00365 };
00366 #endif
00367
00368
00369
00370
00371
00372
00373