10 Int_t StMiniMcEvent::mSFirst=1;
21 mNUncorrectedNegativePrimaries(0),
22 mNUncorrectedPrimaries(0),
23 mNUncorrectedGlobals(0),
24 mNFtpcWUncorrectedPrimaries(0),
25 mNFtpcEUncorrectedPrimaries(0),
42 mCenterOfMassEnergy(0),
44 mBeamMassNumberEast(0),
45 mBeamMassNumberWest(0),
57 cout <<
"###StMiniMcEvent::StMiniMcEvent()" << endl;
66 const Int_t nMcTrack = 6000;
67 const Int_t nMatchedPair = 6000;
68 const Int_t nMergedPair = 500;
69 const Int_t nSplitPair = 500;
70 const Int_t nGhostPair = 500;
71 const Int_t nContamPair = 500;
72 const Int_t nMatGlobPair = 6000;
74 cout <<
"\tCreating the clones arrays" << endl;
77 mMcTracks =
new TClonesArray(
"StTinyMcTrack",nMcTrack);
78 mMatchedPairs =
new TClonesArray(
"StMiniMcPair",nMatchedPair);
79 mMergedPairs =
new TClonesArray(
"StMiniMcPair",nMergedPair);
80 mSplitPairs =
new TClonesArray(
"StMiniMcPair",nSplitPair);
82 mGhostPairs =
new TClonesArray(
"StMiniMcPair",nGhostPair);
83 mContamPairs =
new TClonesArray(
"StContamPair",nContamPair);
84 mMatGlobPairs =
new TClonesArray(
"StMiniMcPair",nMatGlobPair);
85 memset (mVertexCovMatrix, 0, 6*
sizeof(Float_t));
90 StMiniMcEvent::~StMiniMcEvent()
99 TClonesArray &tracks = *mMcTracks;
108 TClonesArray &tracks = *mContamPairs;
119 TClonesArray *tracks;
128 tracks = mMatchedPairs; nPair = &mNMatchedPair;
131 tracks = mMergedPairs; nPair = &mNMergedPair;
134 tracks = mSplitPairs; nPair = &mNSplitPair;
137 tracks = mGhostPairs; nPair = &mNGhostPair;
140 tracks = mMatGlobPairs; nPair = &mNMatGlobPair;
143 Fatal(
"StMiniMcEvent",
"WRONG CATEGORY IN StMiniMcEvent::addPair()");
156 StMiniMcEvent::tracks(Category category)
162 return mMatchedPairs;
172 return mMatGlobPairs;
174 cout <<
"****WRONG CATEGORY****"<< endl
175 <<
"StMiniMcEvent::tracks()" << endl;
182 StMiniMcEvent::tracks(Category category)
const
188 return mMatchedPairs;
198 return mMatGlobPairs;
200 cout <<
"****WRONG CATEGORY****"<< endl
201 <<
"StMiniMcEvent::tracks()" << endl;
213 StMiniMcEvent::Clear(Option_t *option)
216 mMatchedPairs->Clear();
217 mMergedPairs->Clear();
218 mSplitPairs->Clear();
219 mGhostPairs->Clear();
220 mContamPairs->Clear();
221 mMatGlobPairs->Clear();
223 mNMcTrack = mNMatchedPair = mNMergedPair = mNSplitPair
224 = mNGhostPair = mNContamPair = mNMatGlobPair = 0;
227 #define PrMinMc(A) cout << #A":" << m ## A << "\t"
229 void StMiniMcEvent::Print(Option_t *option)
const {
230 cout <<
"StMiniMcEvent\t"; PrMinMc(RunId);PrMinMc(EventId);
232 PrMinMc(CentralMult);
235 PrMinMc(NUncorrectedNegativePrimaries);
236 PrMinMc(NUncorrectedPrimaries);
237 PrMinMc(NFtpcWUncorrectedPrimaries);
238 PrMinMc(NFtpcEUncorrectedPrimaries);
242 PrMinMc(NMcFtpcWNch);
243 PrMinMc(NMcFtpcENch);
247 PrMinMc(NMcGoodGlobal20);
250 PrMinMc(NRcGoodGlobal20);
252 PrMinMc(McMult); PrMinMc(NMcNch); PrMinMc(NMcFtpcWNch); PrMinMc(NMcFtpcENch); PrMinMc(NMcHminus); cout << endl;
254 cout <<
"Vertex X/Y/Z = " << mVertexX <<
"/" << mVertexY <<
"/" << mVertexZ
255 <<
"\tMc Vertex X/Y/Z = " << mMcVertexX <<
"/" <<mMcVertexY <<
"/" <<mMcVertexZ << endl;
257 PrMinMc(CenterOfMassEnergy);
258 PrMinMc(BackgroundRate);
259 PrMinMc(BeamMassNumberEast);
260 PrMinMc(BeamMassNumberWest); cout << endl;
264 PrMinMc(ZdcW); cout << endl;
266 PrMinMc(NMatchedPair);
267 PrMinMc(NMergedPair);
270 PrMinMc(NContamPair);
271 PrMinMc(NMatGlobPair); cout << endl;
275 Category Kase[] = {MC,MATCHED,MERGED,SPLIT,CONTAM,GHOST,MATGLOB};
276 for (Int_t K = MC; K <= MATGLOB; K++) {
277 TClonesArray* Tracks = ( TClonesArray* ) tracks(Kase[K]);
278 Int_t N = Tracks->GetEntriesFast();
279 for (
int l = 0; l < N; l++) {
284 cout <<
"McTracks ====================================" << endl;
285 mctrak->Print(
"desc");
294 if (K == MATCHED) cout <<
"MATCHED ======================" << endl;
295 if (K == MERGED) cout <<
"MERGED ======================" << endl;
296 if (K == SPLIT) cout <<
"SPLIT ======================" << endl;
297 if (K == CONTAM) cout <<
"CONTAM ======================" << endl;
298 if (K == GHOST) cout <<
"GHOST ======================" << endl;
299 if (K == MATGLOB) cout <<
"MATGLOB ======================" << endl;
300 mctrak->Print(
"desc"); rctrak->Print(
"desc");
302 mctrak->Print(
""); rctrak->Print();
Top level class for the MiniMcTree, containing event-wise information and the McTrack, and all TrackPair collections.
Definition of Pair for Contamination tracks (secondary tracks, weak decay tracks) ...