00001
00016 #ifndef StMiniMcEvent_H
00017 #define StMiniMcEvent_H
00018
00019 #include "TObject.h"
00020 #include "TClonesArray.h"
00021 #include "StMiniMcPair.h"
00022 #include "StContamPair.h"
00023
00024 enum Category { MC,MATCHED,MERGED,SPLIT,CONTAM,GHOST,MATGLOB};
00025
00026 class StMiniMcEvent : public TObject {
00027 public:
00028 StMiniMcEvent();
00029 virtual ~StMiniMcEvent();
00030 void Clear(Option_t *option="");
00031
00032 StTinyMcTrack* addMcTrack(StTinyMcTrack* mc=0);
00033 StMiniMcPair* addTrackPair(StMiniMcPair* pair=0, Category K=MATCHED);
00034 StContamPair* addContamPair(StContamPair* pair=0);
00035
00036
00037 TClonesArray* tracks(Category) const;
00038
00039 Int_t eventId() const { return mEventId; }
00040 Int_t runId() const { return mRunId; }
00041 Int_t originMult() const { return mOriginMult; }
00042 Int_t centralMult() const { return mCentralMult; }
00043 Int_t centrality() const { return mCentrality; }
00044 Int_t nUncorrectedNegativePrimaries() const { return mNUncorrectedNegativePrimaries; }
00045 Int_t nUncorrectedPrimaries() const { return mNUncorrectedPrimaries; }
00046 Int_t nUncorrectedGlobals() const { return mNUncorrectedGlobals; }
00047 Int_t nFtpcWUncorrectedPrimaries() const { return mNFtpcWUncorrectedPrimaries; }
00048 Int_t nFtpcEUncorrectedPrimaries() const { return mNFtpcEUncorrectedPrimaries; }
00049 Int_t mcMult() const { return mMcMult; }
00050 Int_t nMcNch() const { return mNMcNch; }
00051 Int_t nMcFtpcWNch() const { return mNMcFtpcWNch; }
00052 Int_t nMcFtpcENch() const { return mNMcFtpcENch; }
00053 Int_t nMcHminus() const { return mNMcHminus; }
00054 Int_t nMcGlobal() const { return mNMcGlobal; }
00055 Int_t nMcGoodGlobal20() const { return mNMcGoodGlobal20; }
00056 Int_t nRcGlobal() const { return mNRcGlobal; }
00057 Int_t nRcGoodGlobal20() const { return mNRcGoodGlobal20; }
00058 Float_t vertexX() const { return mVertexX; }
00059 Float_t vertexY() const { return mVertexY; }
00060 Float_t vertexZ() const { return mVertexZ; }
00061 const Float_t*vertexCovMatrix() const { return &mVertexCovMatrix[0];}
00062 Float_t mcVertexX() const { return mMcVertexX ; }
00063 Float_t mcVertexY() const { return mMcVertexY ; }
00064 Float_t mcVertexZ() const { return mMcVertexZ ; }
00065 Float_t centerOfMassEnergy() const { return mCenterOfMassEnergy; }
00066 Float_t magneticField() const { return mMagField ; }
00067 Float_t backgroundRate() const { return mBackgroundRate ; }
00068 Short_t beamMassNumberEast() const { return mBeamMassNumberEast; }
00069 Short_t beamMassNumberWest() const { return mBeamMassNumberWest; }
00070 Float_t ctb() const { return mCtb ; }
00071 Float_t zdcE() const { return mZdcE ; }
00072 Float_t zdcW() const { return mZdcW ; }
00073 Int_t nMcTrack() const { return mNMcTrack ; }
00074 Int_t nMatchedPair() const { return mNMatchedPair ; }
00075 Int_t nMergedPair() const { return mNMergedPair ; }
00076 Int_t nSplitPair() const { return mNSplitPair ; }
00077 Int_t nGhostPair() const { return mNGhostPair ; }
00078 Int_t nContamPair() const { return mNContamPair ; }
00079
00080 float impact() const { return mImpact ; }
00081 float impactPhi() const { return mImpactPhi ; }
00082 float timeOffset() const { return mTimeOffset ; }
00083
00084 void setEventId(Int_t val) { mEventId=val; }
00085 void setRunId(Int_t val) { mRunId=val; }
00086 void setOriginMult(Int_t val) { mOriginMult=val; }
00087 void setCentralMult(Int_t val) { mCentralMult=val; }
00088 void setCentrality(Int_t val) { mCentrality=val; }
00089 void setNUncorrectedNegativePrimaries(Int_t val) { mNUncorrectedNegativePrimaries=val; }
00090 void setNUncorrectedPrimaries(Int_t val) { mNUncorrectedPrimaries=val; }
00091 void setNUncorrectedGlobals(Int_t val) { mNUncorrectedGlobals=val; }
00092 void setNFtpcWUncorrectedPrimaries(Int_t val) { mNFtpcWUncorrectedPrimaries=val; }
00093 void setNFtpcEUncorrectedPrimaries(Int_t val) { mNFtpcEUncorrectedPrimaries=val; }
00094 void setMcMult(Int_t val) { mMcMult=val; }
00095 void setNMcNch(Int_t val) { mNMcNch=val; }
00096 void setNMcFtpcWNch(Int_t val) { mNMcFtpcWNch=val; }
00097 void setNMcFtpcENch(Int_t val) { mNMcFtpcENch=val; }
00098 void setNMcHminus(Int_t val) { mNMcHminus=val; }
00099 void setNMcGlobal(Int_t val) { mNMcGlobal=val; }
00100 void setNMcGoodGlobal20(Int_t val) { mNMcGoodGlobal20=val; }
00101 void setNRcGlobal(Int_t val) { mNRcGlobal=val; }
00102 void setNRcGoodGlobal20(Int_t val) { mNRcGoodGlobal20=val; }
00103 void setVertexX(Float_t val) { mVertexX=val; }
00104 void setVertexY(Float_t val) { mVertexY=val; }
00105 void setVertexZ(Float_t val) { mVertexZ=val; }
00106 void setVertexCovMatrix(Float_t *cov) {for (Int_t i = 0; i < 6; i++) mVertexCovMatrix[i] = cov[i];}
00107 void setMcVertexX(Float_t val) { mMcVertexX=val; }
00108 void setMcVertexY(Float_t val) { mMcVertexY=val; }
00109 void setMcVertexZ(Float_t val) { mMcVertexZ=val; }
00110 void setCenterOfMassEnergy(Float_t val) { mCenterOfMassEnergy=val; }
00111 void setMagField(Float_t val) { mMagField=val; }
00112 void setBackgroundRate(Float_t val) { mBackgroundRate=val; }
00113 void setBeamMassNumberEast(Short_t val) { mBeamMassNumberEast=val; }
00114 void setBeamMassNumberWest(Short_t val) { mBeamMassNumberWest=val; }
00115 void setCtb(Float_t val) { mCtb=val; }
00116 void setZdcE(Float_t val) { mZdcE=val; }
00117 void setZdcW(Float_t val) { mZdcW=val; }
00118 void setNMcTrack(Int_t val) { mNMcTrack =val; }
00119 void setNMatchedPair(Int_t val) { mNMatchedPair =val; }
00120 void setNMergedPair(Int_t val) { mNMergedPair =val; }
00121 void setNSplitPair(Int_t val) { mNSplitPair =val; }
00122 void setNGhostPair(Int_t val) { mNGhostPair =val; }
00123 void setNContamPair(Int_t val) { mNContamPair =val; }
00124
00125 void setImpact(float imp) { mImpact =imp ;}
00126 void setImpactPhi(float imphi) { mImpactPhi =imphi;}
00127 void setTimeOffset(float time) { mTimeOffset =time ;}
00128
00129
00130 virtual void Print(Option_t *option="") const;
00131 private:
00132
00133
00134
00135 Int_t mEventId;
00136 Int_t mRunId;
00137 Int_t mOriginMult;
00138 Int_t mCentralMult;
00139 Int_t mCentrality;
00140 Int_t mNUncorrectedNegativePrimaries;
00141 Int_t mNUncorrectedPrimaries;
00142 Int_t mNUncorrectedGlobals;
00143 Int_t mNFtpcWUncorrectedPrimaries;
00144 Int_t mNFtpcEUncorrectedPrimaries;
00145 Int_t mMcMult;
00146
00147 Int_t mNMcNch;
00148 Int_t mNMcFtpcWNch;
00149 Int_t mNMcFtpcENch;
00150 Int_t mNMcHminus;
00151
00152 Int_t mNMcGlobal;
00153 Int_t mNMcGoodGlobal20;
00154 Int_t mNRcGlobal;
00155 Int_t mNRcGoodGlobal20;
00156
00157 Float_t mImpact;
00158 Float_t mImpactPhi;
00159 Float_t mTimeOffset;
00160
00161 Float_t mVertexX;
00162 Float_t mVertexY;
00163 Float_t mVertexZ;
00164 Float_t mVertexCovMatrix[6];
00165 Float_t mMcVertexX;
00166 Float_t mMcVertexY;
00167 Float_t mMcVertexZ;
00168
00169 Float_t mMagField;
00170
00171 Float_t mCenterOfMassEnergy;
00172 Float_t mBackgroundRate;
00173 Short_t mBeamMassNumberEast;
00174 Short_t mBeamMassNumberWest;
00175
00176 Float_t mCtb;
00177 Float_t mZdcE;
00178 Float_t mZdcW;
00179
00180
00181
00182
00183
00184 Int_t mNMcTrack;
00185 Int_t mNMatchedPair;
00186 Int_t mNMergedPair;
00187 Int_t mNSplitPair;
00188 Int_t mNGhostPair;
00189 Int_t mNContamPair;
00190 Int_t mNMatGlobPair;
00191
00192 TClonesArray* mMcTracks;
00193 TClonesArray* mMatchedPairs;
00194 TClonesArray* mMergedPairs;
00195 TClonesArray* mSplitPairs;
00196 TClonesArray* mGhostPairs;
00197 TClonesArray* mContamPairs;
00198 TClonesArray* mMatGlobPairs;
00199 static Int_t mSFirst;
00200
00201 ClassDef(StMiniMcEvent,5)
00202 };
00203
00204 #endif
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247