1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoCutMonitorV0 //
5 ////////////////////////////////////////////////////////////////////////////////
6 #include "AliFemtoCutMonitorV0.h"
11 #include "AliFemtoModelHiddenInfo.h"
13 AliFemtoCutMonitorV0::AliFemtoCutMonitorV0():
18 fDcaV0ToPrimVertex(0),
19 fDcaPosToPrimVertex(0),
20 fDcaNegToPrimVertex(0),
29 fTOFtimePosDaughter(0),
30 fTOFtimeNegDaughter(0),
38 // Default constructor
39 fLambdaMass = new TH1F("LambdaMass", "Mass Assuming Lambda Hypothesis", 10000, 0, 5);
40 fAntiLambdaMass = new TH1F("AntiLambdaMass", "Mass Assuming AntiLambda Hypothesis", 10000, 0, 5);
41 fK0ShortMass= new TH1F("K0ShortMass", "Mass Assuming K0 short Hypothesis", 500, 0, 5);
42 fDcaDaughters = new TH1F("DcaDaughters", "DCA Daughters", 500, 0, 2);
43 fDcaV0ToPrimVertex = new TH1F("DcaV0ToPrimVertex", "DCA V0 to primary vertex", 500, 0, 3);
44 fDcaPosToPrimVertex = new TH1F("DcaPosToPrimVertex", "DCA V0 to primary vertex", 500, 0, 3);
45 fDcaNegToPrimVertex = new TH1F("DcaNegToPrimVertex", "DCA V0 to primary vertex", 500, 0, 3);
46 fCosPointingAngle = new TH1F("CosPointingAngle","Cosinus Pointing Angle",500,0,1);
47 fDecayLength = new TH1F("DecayLength","V0 Decay Length",100,0,100);
48 fEtaV0 = new TH1F("EtaV0", "|Eta| distribution of V0s", 500, 0.0, 8.);
49 fPtV0 = new TH1F("PtV0", "Pt distribution of V0s", 500, 0.0, 8.);
50 fPtPosDaughter = new TH1F("PtPosDaughter", "Pt distribution of positive daughters", 500, 0.0, 5.);
51 fPtNegDaughter = new TH1F("PtNegDaughter", "Pt distribution of negative daughters", 500, 0.0, 5.);
53 fdEdxPosDaughter = new TH2D("dEdxPosDaughter","dEdx of positive daughters",200, 0.1, 4.0, 250, 0.0, 500.0);
54 fdEdxNegDaughter = new TH2D("dEdxNegDaughter","dEdx of negative daughters",200, 0.1, 4.0, 250, 0.0, 500.0);
55 fTOFtimePosDaughter = new TH2D("TOFtimePosDaughter","TOF time of positive daughters",100,0.,1.1,100,0.,3.0);
56 fTOFtimeNegDaughter = new TH2D("TOFtimeNegDaughter","TOF time of negative daughters",100,0.,1.1,100,0.,3.0);
58 fnsigmaPosL = new TH1D("fnsigmaPosL","Number of sigmas of positive Lambda daughters",200,-8,8);
59 fnsigmaNegL = new TH1D("fnsigmaNegL","Number of sigmas of negative Lambda daughters",200,-8,8);
60 fnsigmaPosAL = new TH1D("fnsigmaPosAL","Number of sigmas of positive AntiLambda daughters",200,-8,8);
61 fnsigmaNegAL = new TH1D("fnsigmaNegAL","Number of sigmas of negative AntiLambda daughters",200,-8,8);
63 fParticleOrigin = new TH1D("POrigin", "Mothers PDG Codes", 6000, 0.0, 6000.0);
64 fParticleId = new TH1D("PId", "Particle PDG Codes", 6000, 0.0, 6000.0);
67 fAntiLambdaMass->Sumw2();
68 fK0ShortMass->Sumw2();
69 fDcaDaughters->Sumw2();
70 fDcaV0ToPrimVertex->Sumw2();
71 fDcaPosToPrimVertex->Sumw2();
72 fDcaNegToPrimVertex->Sumw2();
73 fCosPointingAngle->Sumw2();
74 fDecayLength->Sumw2();
76 fPtPosDaughter->Sumw2();
77 fPtNegDaughter->Sumw2();
78 fdEdxPosDaughter->Sumw2();
79 fdEdxNegDaughter->Sumw2();
80 fTOFtimePosDaughter->Sumw2();
81 fTOFtimeNegDaughter->Sumw2();
84 fnsigmaPosAL->Sumw2();
85 fnsigmaNegAL->Sumw2();
88 AliFemtoCutMonitorV0::AliFemtoCutMonitorV0(const char *aName):
94 fDcaV0ToPrimVertex(0),
95 fDcaPosToPrimVertex(0),
96 fDcaNegToPrimVertex(0),
105 fTOFtimePosDaughter(0),
106 fTOFtimeNegDaughter(0),
114 // Normal constructor
116 snprintf(name, 200, "LambdaMass%s", aName);
117 fLambdaMass = new TH1F(name, "Mass Assuming Lambda Hypothesis", 10000, 0, 5);
118 snprintf(name, 200, "AntiLambdaMass%s", aName);
119 fAntiLambdaMass = new TH1F(name, "Mass Assuming AntiLambda Hypothesis", 10000, 0, 5);
120 snprintf(name, 200, "K0ShortMass%s", aName);
121 fK0ShortMass = new TH1F(name, "Mass Assuming K0 short Hypothesis", 500, 0, 5);
122 snprintf(name, 200, "DcaDaughters%s", aName);
123 fDcaDaughters = new TH1F(name, "DCA Daughters", 500, 0, 2);
124 snprintf(name, 200, "DcaV0ToPrimVertex%s", aName);
125 fDcaV0ToPrimVertex = new TH1F(name, "DCA V0 to primary vertex", 500, 0, 3);
126 snprintf(name, 200, "DcaPosToPrimVertex%s", aName);
127 fDcaPosToPrimVertex = new TH1F(name, "DCA pos. daughter V0 to primary vertex", 500, 0, 3);
128 snprintf(name, 200, "DcaNegToPrimVertex%s", aName);
129 fDcaNegToPrimVertex = new TH1F(name, "DCA neg. daughter V0 to primary vertex", 500, 0, 3);
130 snprintf(name, 200, "CosPointingAngle%s", aName);
131 fCosPointingAngle = new TH1F(name,"Cosinus Pointing Angle",500,0,1);
132 snprintf(name, 200, "DecayLength%s", aName);
133 fDecayLength = new TH1F(name,"Decay Length",100,0,100);
134 snprintf(name, 200, "EtaV0%s", aName);
135 fEtaV0 = new TH1F(name, "|Eta| distribution of V0s", 500, 0.0, 1.);
136 snprintf(name, 200, "PtV0%s", aName);
137 fPtV0 = new TH1F(name, "Pt distribution of V0s", 500, 0.0, 8.);
138 snprintf(name, 200, "fPtPosDaughter%s", aName);
139 fPtPosDaughter = new TH1F(name, "Pt distribution of positive daughters", 500, 0.0, 5.);
140 snprintf(name, 200, "fPtNegDaughter%s", aName);
141 fPtNegDaughter = new TH1F(name, "Pt distribution of negative daughters", 500, 0.0, 5.);
142 snprintf(name, 200, "fdEdxPosDaughter%s", aName);
143 fdEdxPosDaughter = new TH2D(name,"dEdx of positive daughters",200, 0.1, 4.0, 250, 0.0, 500.0);
144 snprintf(name, 200, "fdEdxNegDaughter%s", aName);
145 fdEdxNegDaughter = new TH2D(name,"dEdx of negative daughters",200, 0.1, 4.0, 250, 0.0, 500.0);
146 snprintf(name, 200, "fTOFtimePosDaughter%s", aName);
147 fTOFtimePosDaughter = new TH2D(name,"TOF time of positive daughters",190, 0.1, 2.0, 400, -4000.0, 4000.0);
148 snprintf(name, 200, " fTOFtimeNegDaughter%s", aName);
149 fTOFtimeNegDaughter = new TH2D(name,"TOF time of negative daughters",190, 0.1, 2.0, 400, -4000.0, 4000.0);
150 snprintf(name, 200, " fnsigmaPosL%s", aName);
151 fnsigmaPosL = new TH1D(name,"Number of sigmas of positive Lambda daughters",200,-10,10);
152 snprintf(name, 200, " fnsigmaNegL%s", aName);
153 fnsigmaNegL = new TH1D(name,"Number of sigmas of negative Lambda daughters",200,-10,10);
154 snprintf(name, 200, " fnsigmaPosAL%s", aName);
155 fnsigmaPosAL = new TH1D(name,"Number of sigmas of positive AntiLambda daughters",200,-10,10);
156 snprintf(name, 200, " fnsigmaNegAL%s", aName);
157 fnsigmaNegAL = new TH1D(name,"Number of sigmas of negative AntiLambda daughters",200,-10,10);
159 snprintf(name, 200, "POrigin%s", aName);
160 fParticleOrigin = new TH1D(name, "Mothers PDG Codes", 6000, 0.0, 6000.0);
162 snprintf(name, 200, "PId%s", aName);
163 fParticleId = new TH1D(name, "Particle PDG Codes", 6000, 0.0, 6000.0);
165 fLambdaMass->Sumw2();
166 fAntiLambdaMass->Sumw2();
167 fK0ShortMass->Sumw2();
168 fDcaDaughters->Sumw2();
169 fDcaV0ToPrimVertex->Sumw2();
170 fDcaPosToPrimVertex->Sumw2();
171 fDcaNegToPrimVertex->Sumw2();
172 fCosPointingAngle->Sumw2();
173 fDecayLength->Sumw2();
175 fPtPosDaughter->Sumw2();
176 fPtNegDaughter->Sumw2();
177 fdEdxPosDaughter->Sumw2();
178 fdEdxNegDaughter->Sumw2();
179 fTOFtimePosDaughter->Sumw2();
180 fTOFtimeNegDaughter->Sumw2();
181 fnsigmaPosL->Sumw2();
182 fnsigmaNegL->Sumw2();
183 fnsigmaPosAL->Sumw2();
184 fnsigmaNegAL->Sumw2();
187 AliFemtoCutMonitorV0::AliFemtoCutMonitorV0(const AliFemtoCutMonitorV0 &aCut):
188 AliFemtoCutMonitor(),
193 fDcaV0ToPrimVertex(0),
194 fDcaPosToPrimVertex(0),
195 fDcaNegToPrimVertex(0),
196 fCosPointingAngle(0),
204 fTOFtimePosDaughter(0),
205 fTOFtimeNegDaughter(0),
214 if (fLambdaMass) delete fLambdaMass;
215 fLambdaMass = new TH1F(*aCut.fLambdaMass);
216 if (fAntiLambdaMass) delete fAntiLambdaMass;
217 fAntiLambdaMass = new TH1F(*aCut.fAntiLambdaMass);
218 if (fK0ShortMass) delete fK0ShortMass;
219 fK0ShortMass = new TH1F(*aCut.fK0ShortMass);
220 if (fDcaDaughters) delete fDcaDaughters;
221 fDcaDaughters = new TH1F(*aCut.fDcaDaughters);
222 if (fDcaV0ToPrimVertex) delete fDcaV0ToPrimVertex;
223 fDcaV0ToPrimVertex = new TH1F(*aCut.fDcaV0ToPrimVertex);
224 if (fDcaPosToPrimVertex) delete fDcaPosToPrimVertex;
225 fDcaPosToPrimVertex = new TH1F(*aCut.fDcaPosToPrimVertex);
226 if (fDcaNegToPrimVertex) delete fDcaNegToPrimVertex;
227 fDcaNegToPrimVertex = new TH1F(*aCut.fDcaNegToPrimVertex);
228 if(fCosPointingAngle) delete fCosPointingAngle;
229 fCosPointingAngle = new TH1F(*aCut.fCosPointingAngle);
230 if(fDecayLength) delete fDecayLength;
231 fDecayLength = new TH1F(*aCut.fDecayLength);
232 if(fEtaV0) delete fEtaV0;
233 fEtaV0 = new TH1F(*aCut.fEtaV0);
234 if(fPtV0) delete fPtV0;
235 fPtV0 = new TH1F(*aCut.fPtV0);
236 if(fPtPosDaughter) delete fPtPosDaughter;
237 fPtPosDaughter = new TH1F(*aCut.fPtPosDaughter);
238 if(fPtNegDaughter) delete fPtNegDaughter;
239 fPtNegDaughter = new TH1F(*aCut.fPtNegDaughter);
240 if(fdEdxPosDaughter) delete fdEdxPosDaughter;
241 fdEdxNegDaughter = new TH2D(*aCut.fdEdxNegDaughter);
242 if(fdEdxNegDaughter) delete fdEdxNegDaughter;
243 fdEdxNegDaughter = new TH2D(*aCut.fdEdxNegDaughter);
244 if(fTOFtimePosDaughter) delete fTOFtimePosDaughter;
245 fTOFtimePosDaughter = new TH2D(*aCut.fTOFtimePosDaughter);
246 if(fTOFtimeNegDaughter) delete fTOFtimeNegDaughter;
247 fTOFtimeNegDaughter = new TH2D(*aCut.fTOFtimeNegDaughter);
248 if(fnsigmaPosL) delete fnsigmaPosL;
249 fnsigmaPosL = new TH1D(*aCut.fnsigmaPosL);
250 if(fnsigmaNegL) delete fnsigmaNegL;
251 fnsigmaNegL = new TH1D(*aCut.fnsigmaNegL);
252 if(fnsigmaPosAL) delete fnsigmaPosAL;
253 fnsigmaPosAL = new TH1D(*aCut.fnsigmaPosAL);
254 if(fnsigmaNegAL) delete fnsigmaNegAL;
255 fnsigmaNegAL = new TH1D(*aCut.fnsigmaNegAL);
257 if (fParticleOrigin) delete fParticleOrigin;
258 fParticleOrigin= new TH1D(*aCut.fParticleOrigin);
259 if (fParticleId) delete fParticleId;
260 fParticleId= new TH1D(*aCut.fParticleId);
262 fLambdaMass->Sumw2();
263 fAntiLambdaMass->Sumw2();
264 fK0ShortMass->Sumw2();
265 fDcaDaughters->Sumw2();
266 fDcaV0ToPrimVertex->Sumw2();
267 fDcaPosToPrimVertex->Sumw2();
268 fDcaNegToPrimVertex->Sumw2();
269 fCosPointingAngle->Sumw2();
270 fDecayLength->Sumw2();
272 fPtPosDaughter->Sumw2();
273 fPtNegDaughter->Sumw2();
274 fdEdxPosDaughter->Sumw2();
275 fdEdxNegDaughter->Sumw2();
276 fTOFtimePosDaughter->Sumw2();
277 fTOFtimeNegDaughter->Sumw2();
278 fnsigmaPosL->Sumw2();
279 fnsigmaNegL->Sumw2();
280 fnsigmaPosAL->Sumw2();
281 fnsigmaNegAL->Sumw2();
284 AliFemtoCutMonitorV0::~AliFemtoCutMonitorV0()
288 delete fAntiLambdaMass;
290 delete fDcaDaughters;
291 delete fDcaV0ToPrimVertex;
292 delete fDcaPosToPrimVertex;
293 delete fDcaNegToPrimVertex;
294 delete fCosPointingAngle;
298 delete fPtPosDaughter;
299 delete fPtNegDaughter;
300 delete fdEdxPosDaughter;
301 delete fdEdxNegDaughter;
302 delete fTOFtimePosDaughter;
303 delete fTOFtimeNegDaughter;
309 delete fParticleOrigin;
313 AliFemtoCutMonitorV0& AliFemtoCutMonitorV0::operator=(const AliFemtoCutMonitorV0& aCut)
315 // assignment operator
319 if (fLambdaMass) delete fLambdaMass;
320 fLambdaMass = new TH1F(*aCut.fLambdaMass);
321 if (fAntiLambdaMass) delete fAntiLambdaMass;
322 fAntiLambdaMass = new TH1F(*aCut.fAntiLambdaMass);
323 if (fK0ShortMass) delete fK0ShortMass;
324 fK0ShortMass = new TH1F(*aCut.fK0ShortMass);
325 if (fDcaDaughters) delete fDcaDaughters;
326 fDcaDaughters = new TH1F(*aCut.fDcaDaughters);
327 if (fDcaV0ToPrimVertex) delete fDcaV0ToPrimVertex;
328 fDcaV0ToPrimVertex = new TH1F(*aCut.fDcaV0ToPrimVertex);
329 if (fDcaPosToPrimVertex) delete fDcaPosToPrimVertex;
330 fDcaPosToPrimVertex = new TH1F(*aCut.fDcaPosToPrimVertex);
331 if (fDcaNegToPrimVertex) delete fDcaNegToPrimVertex;
332 fDcaNegToPrimVertex = new TH1F(*aCut.fDcaNegToPrimVertex);
333 if(fCosPointingAngle) delete fCosPointingAngle;
334 fCosPointingAngle = new TH1F(*aCut.fCosPointingAngle);
335 if(fDecayLength) delete fDecayLength;
336 fDecayLength = new TH1F(*aCut.fDecayLength);
337 if(fEtaV0) delete fEtaV0;
338 fEtaV0 = new TH1F(*aCut.fEtaV0);
339 if(fPtV0) delete fPtV0;
340 fPtV0 = new TH1F(*aCut.fPtV0);
341 if(fPtPosDaughter) delete fPtPosDaughter;
342 fPtPosDaughter = new TH1F(*aCut.fPtPosDaughter);
343 if(fPtNegDaughter) delete fPtNegDaughter;
344 fPtNegDaughter = new TH1F(*aCut.fPtNegDaughter);
345 if(fdEdxPosDaughter) delete fdEdxPosDaughter;
346 fdEdxNegDaughter = new TH2D(*aCut.fdEdxNegDaughter);
347 if(fdEdxNegDaughter) delete fdEdxNegDaughter;
348 fdEdxNegDaughter = new TH2D(*aCut.fdEdxNegDaughter);
349 if(fTOFtimePosDaughter) delete fTOFtimePosDaughter;
350 fTOFtimePosDaughter = new TH2D(*aCut.fTOFtimePosDaughter);
351 if(fTOFtimeNegDaughter) delete fTOFtimeNegDaughter;
352 fTOFtimeNegDaughter = new TH2D(*aCut.fTOFtimeNegDaughter);
353 if(fnsigmaPosL) delete fnsigmaPosL;
354 fnsigmaPosL = new TH1D(*aCut.fnsigmaPosL);
355 if(fnsigmaNegL) delete fnsigmaNegL;
356 fnsigmaNegL = new TH1D(*aCut.fnsigmaNegL);
357 if(fnsigmaPosAL) delete fnsigmaPosAL;
358 fnsigmaPosAL = new TH1D(*aCut.fnsigmaPosAL);
359 if(fnsigmaNegAL) delete fnsigmaNegAL;
360 fnsigmaNegAL = new TH1D(*aCut.fnsigmaNegAL);
362 if (fParticleOrigin) delete fParticleOrigin;
363 fParticleOrigin= new TH1D(*aCut.fParticleOrigin);
364 if (fParticleId) delete fParticleId;
365 fParticleId= new TH1D(*aCut.fParticleId);
367 fLambdaMass->Sumw2();
368 fAntiLambdaMass->Sumw2();
369 fK0ShortMass->Sumw2();
370 fDcaDaughters->Sumw2();
371 fDcaV0ToPrimVertex->Sumw2();
372 fDcaPosToPrimVertex->Sumw2();
373 fDcaNegToPrimVertex->Sumw2();
374 fCosPointingAngle->Sumw2();
375 fDecayLength->Sumw2();
377 fPtPosDaughter->Sumw2();
378 fPtNegDaughter->Sumw2();
379 fdEdxPosDaughter->Sumw2();
380 fdEdxNegDaughter->Sumw2();
381 fTOFtimePosDaughter->Sumw2();
382 fTOFtimeNegDaughter->Sumw2();
383 fnsigmaPosL->Sumw2();
384 fnsigmaNegL->Sumw2();
385 fnsigmaPosAL->Sumw2();
386 fnsigmaNegAL->Sumw2();
391 AliFemtoString AliFemtoCutMonitorV0::Report(){
392 // Prepare report from the execution
393 string stemp = "*** AliFemtoCutMonitorV0 report";
394 AliFemtoString returnThis = stemp;
398 void AliFemtoCutMonitorV0::Fill(const AliFemtoV0* aV0)
400 // Fill momentum resolution histograms for the particle
401 fLambdaMass->Fill(aV0->MassLambda());
402 fAntiLambdaMass->Fill(aV0->MassAntiLambda());
403 fK0ShortMass->Fill(aV0->MassK0Short());
404 fDcaDaughters->Fill(aV0->DcaV0Daughters());
405 fDcaV0ToPrimVertex->Fill(aV0->DcaV0ToPrimVertex());
406 fDcaPosToPrimVertex->Fill(aV0->DcaPosToPrimVertex());
407 fDcaNegToPrimVertex->Fill(aV0->DcaNegToPrimVertex());
408 fCosPointingAngle->Fill(aV0->CosPointingAngle());
409 fDecayLength->Fill(aV0->DecayLengthV0());
410 fEtaV0->Fill(aV0->EtaV0());
411 fPtV0->Fill(aV0->PtV0());
412 fPtPosDaughter->Fill(aV0->PtPos());
413 fPtNegDaughter->Fill(aV0->PtNeg());
414 fdEdxPosDaughter->Fill(aV0->GetTPCMomentumPos(),aV0->DedxPos());
415 fdEdxNegDaughter->Fill(aV0->GetTPCMomentumNeg(),aV0->DedxNeg());
417 fTOFtimePosDaughter->Fill(aV0->PtPos(),aV0->TOFProtonTimePos()); //true only for lambdas
418 fTOFtimeNegDaughter->Fill(aV0->PtNeg(),aV0->TOFPionTimeNeg());
420 fnsigmaPosL->Fill(aV0->PosNSigmaTPCP());
421 fnsigmaNegL->Fill(aV0->NegNSigmaTPCPi());
422 fnsigmaNegAL->Fill(aV0->NegNSigmaTPCP());
423 fnsigmaPosAL->Fill(aV0->PosNSigmaTPCPi());
425 AliFemtoModelHiddenInfo *tInfo = (AliFemtoModelHiddenInfo*)aV0->GetHiddenInfo();
427 Int_t partID = TMath::Abs(tInfo->GetPDGPid());
428 Int_t motherID = TMath::Abs(tInfo->GetMotherPdgCode());
430 fParticleId->Fill(partID);
431 fParticleOrigin->Fill(motherID);
435 void AliFemtoCutMonitorV0::Write()
437 // Write out the relevant histograms
438 fLambdaMass->Write();
439 fAntiLambdaMass->Write();
440 fK0ShortMass->Write();
441 fDcaDaughters->Write();
442 fDcaV0ToPrimVertex->Write();
443 fDcaPosToPrimVertex->Write();
444 fDcaNegToPrimVertex->Write();
445 fCosPointingAngle->Write();
446 fDecayLength->Write();
449 fPtPosDaughter->Write();
450 fPtNegDaughter->Write();
451 fdEdxPosDaughter->Write();
452 fdEdxNegDaughter->Write();
453 fTOFtimePosDaughter->Write();
454 fTOFtimeNegDaughter->Write();
455 fnsigmaPosL->Write();
456 fnsigmaNegL->Write();
457 fnsigmaPosAL->Write();
458 fnsigmaNegAL->Write();
460 fParticleId->Write();
461 fParticleOrigin->Write();
464 TList *AliFemtoCutMonitorV0::GetOutputList()
466 // Get the list of histograms to write
467 TList *tOutputList = new TList();
468 tOutputList->Add(fLambdaMass);
469 tOutputList->Add(fAntiLambdaMass);
470 tOutputList->Add(fK0ShortMass);
471 tOutputList->Add(fDcaDaughters);
472 tOutputList->Add(fDcaV0ToPrimVertex);
473 tOutputList->Add(fDcaPosToPrimVertex);
474 tOutputList->Add(fDcaNegToPrimVertex);
475 tOutputList->Add(fCosPointingAngle);
476 tOutputList->Add(fDecayLength);
477 tOutputList->Add(fEtaV0);
478 tOutputList->Add(fPtV0);
479 tOutputList->Add(fPtPosDaughter);
480 tOutputList->Add(fPtNegDaughter);
481 tOutputList->Add(fdEdxPosDaughter);
482 tOutputList->Add(fdEdxNegDaughter);
483 tOutputList->Add(fTOFtimePosDaughter);
484 tOutputList->Add(fTOFtimeNegDaughter);
485 tOutputList->Add(fnsigmaPosL);
486 tOutputList->Add(fnsigmaNegL);
487 tOutputList->Add(fnsigmaPosAL);
488 tOutputList->Add(fnsigmaNegAL);
490 tOutputList->Add(fParticleId);
491 tOutputList->Add(fParticleOrigin);