33 #include "THnSparse.h"
36 #include "AliAnalysisTask.h"
37 #include "AliAnalysisManager.h"
38 #include "AliESDEvent.h"
39 #include "AliESDInputHandler.h"
40 #include "AliMCEventHandler.h"
41 #include "AliMCEvent.h"
42 #include "AliMCParticle.h"
43 #include "AliCentrality.h"
44 #include "AliESDVZERO.h"
45 #include "AliESDpid.h"
47 #include "AliVParticle.h"
48 #include "AliESDtrack.h"
49 #include "AliESDtrackCuts.h"
50 #include "AliKFVertex.h"
51 #include "AliGenCocktailEventHeader.h"
53 #include "AliAODMCParticle.h"
54 #include "AliAODMCHeader.h"
55 #include "AliEventplane.h"
56 #include "AliAODEvent.h"
66 fV0ReaderName("V0ReaderV1"),
67 fDoLightOutput(kFALSE),
80 fHeaderNameList(NULL),
83 fGammaCandidates(NULL),
87 fClusterCutArray(NULL),
88 fHistoCaloGammaPt(NULL),
89 fHistoCaloGammaE(NULL),
90 fHistoConvGammaPt(NULL),
91 fHistoConvGammaR(NULL),
92 fHistoConvGammaEta(NULL),
93 fHistoConvGammaPhi(NULL),
94 fHistoConvGammaPsiPairPt(NULL),
95 tESDConvGammaPtDcazCat(NULL),
102 fHistoMotherInvMassPt(NULL),
103 sESDMotherInvMassPtZM(NULL),
104 fHistoMotherBackInvMassPt(NULL),
105 sESDMotherBackInvMassPtZM(NULL),
106 fHistoMotherInvMassEalpha(NULL),
107 fHistoMotherPi0PtY(NULL),
108 fHistoMotherEtaPtY(NULL),
109 fHistoMotherPi0PtAlpha(NULL),
110 fHistoMotherEtaPtAlpha(NULL),
111 fHistoMotherPi0PtOpenAngle(NULL),
112 fHistoMotherEtaPtOpenAngle(NULL),
113 sPtRDeltaROpenAngle(NULL),
114 fHistoMCHeaders(NULL),
115 fHistoMCAllGammaPt(NULL),
116 fHistoMCAllSecondaryGammaPt(NULL),
117 fHistoMCDecayGammaPi0Pt(NULL),
118 fHistoMCDecayGammaRhoPt(NULL),
119 fHistoMCDecayGammaEtaPt(NULL),
120 fHistoMCDecayGammaOmegaPt(NULL),
121 fHistoMCDecayGammaEtapPt(NULL),
122 fHistoMCDecayGammaPhiPt(NULL),
123 fHistoMCDecayGammaSigmaPt(NULL),
124 fHistoMCConvGammaPt(NULL),
125 fHistoMCSecondaryConvGammaPt(NULL),
126 fHistoMCConvGammaR(NULL),
127 fHistoMCConvGammaEta(NULL),
129 fHistoMCPi0WOWeightPt(NULL),
130 fHistoMCPi0WOEvtWeightPt(NULL),
131 fHistoMCEtaWOEvtWeightPt(NULL),
133 fHistoMCEtaWOWeightPt(NULL),
134 fHistoMCPi0WOWeightInAccPt(NULL),
135 fHistoMCEtaWOWeightInAccPt(NULL),
136 fHistoMCPi0InAccPt(NULL),
137 fHistoMCEtaInAccPt(NULL),
138 fHistoMCPi0WOEvtWeightInAccPt(NULL),
139 fHistoMCEtaWOEvtWeightInAccPt(NULL),
140 fHistoMCPi0PtY(NULL),
141 fHistoMCEtaPtY(NULL),
142 fHistoMCPi0PtAlpha(NULL),
143 fHistoMCEtaPtAlpha(NULL),
144 fHistoMCPrimaryPtvsSource(NULL),
145 fHistoMCSecPi0PtvsSource(NULL),
146 fHistoMCSecPi0RvsSource(NULL),
147 fHistoMCSecPi0Source(NULL),
148 fHistoMCSecPi0InAccPtvsSource(NULL),
149 fHistoMCSecEtaPt(NULL),
150 fHistoMCSecEtaSource(NULL),
151 fHistoMCPi0PtJetPt(NULL),
152 fHistoMCEtaPtJetPt(NULL),
153 fHistoMCPhysicalPrimariesPt(NULL),
154 fHistoTrueMotherInvMassPt(NULL),
155 fHistoTruePrimaryMotherInvMassPt(NULL),
156 fHistoTruePrimaryMotherW0WeightingInvMassPt(NULL),
157 pESDTruePrimaryMotherWeightsInvMassPt(NULL),
158 fHistoTruePrimaryPi0MCPtResolPt(NULL),
159 fHistoTruePrimaryEtaMCPtResolPt(NULL),
160 fHistoTrueSecondaryMotherInvMassPt(NULL),
161 fHistoTrueSecondaryMotherFromK0sInvMassPt(NULL),
162 fHistoTrueK0sWithPi0DaughterMCPt(NULL),
163 fHistoTrueSecondaryMotherFromK0lInvMassPt(NULL),
164 fHistoTrueK0lWithPi0DaughterMCPt(NULL),
165 fHistoTrueSecondaryMotherFromEtaInvMassPt(NULL),
166 fHistoTrueEtaWithPi0DaughterMCPt(NULL),
167 fHistoTrueSecondaryMotherFromLambdaInvMassPt(NULL),
168 fHistoTrueLambdaWithPi0DaughterMCPt(NULL),
169 fHistoTrueBckGGInvMassPt(NULL),
170 fHistoTrueBckContInvMassPt(NULL),
171 fHistoTruePi0PtY(NULL),
172 fHistoTrueEtaPtY(NULL),
173 fHistoTruePi0PtAlpha(NULL),
174 fHistoTrueEtaPtAlpha(NULL),
175 fHistoTruePi0PtOpenAngle(NULL),
176 fHistoTrueEtaPtOpenAngle(NULL),
177 fHistoTrueMotherDalitzInvMassPt(NULL),
178 fHistoTrueConvGammaPt(NULL),
179 fHistoTrueConvGammaR(NULL),
180 fHistoTrueConvGammaPtMC(NULL),
181 fHistoTrueConvGammaRMC(NULL),
182 fHistoTrueConvGammaEta(NULL),
183 fHistoTrueConvGammaPsiPairPt(NULL),
184 fHistoCombinatorialPt(NULL),
185 fHistoCombinatorialMothersPt(NULL),
186 fHistoCombinatorialPtDeltaPhi_ek(NULL),
187 fHistoCombinatorialPtDeltaPhi_ep(NULL),
188 fHistoCombinatorialPtDeltaPhi_epi(NULL),
189 fHistoCombinatorialPtDeltaPhi_pik(NULL),
190 fHistoCombinatorialPtDeltaPhi_pip(NULL),
191 fHistoTruePrimaryConvGammaPt(NULL),
192 fHistoTrueSecondaryConvGammaPt(NULL),
193 fHistoTrueSecondaryConvGammaMCPt(NULL),
194 fHistoTruePrimaryConvGammaESDPtMCPt(NULL),
195 fHistoTrueSecondaryConvGammaFromXFromK0sMCPtESDPt(NULL),
196 fHistoTrueSecondaryConvGammaFromXFromK0lMCPtESDPt(NULL),
197 fHistoTrueSecondaryConvGammaFromXFromLambdaMCPtESDPt(NULL),
198 fHistoTrueDalitzPsiPairDeltaPhi(NULL),
199 fHistoTrueGammaPsiPairDeltaPhi(NULL),
200 fHistoDoubleCountTruePi0InvMassPt(NULL),
201 fHistoDoubleCountTrueEtaInvMassPt(NULL),
202 fHistoDoubleCountTrueConvGammaRPt(NULL),
203 vecDoubleCountTruePi0s(0),
204 vecDoubleCountTrueEtas(0),
205 vecDoubleCountTrueConvGammas(0),
206 fHistoMultipleCountTruePi0(NULL),
207 fHistoMultipleCountTrueEta(NULL),
208 fHistoMultipleCountTrueConvGamma(NULL),
209 mapMultipleCountTruePi0s(),
210 mapMultipleCountTrueEtas(),
211 mapMultipleCountTrueConvGammas(),
213 fHistoNEventsWOWeight(NULL),
214 fHistoNGoodESDTracks(NULL),
215 fHistoNEventsWeighted(NULL),
216 fHistoNGoodESDTracksWeighted(NULL),
218 fHistoVertexZWeighted(NULL),
219 fDoCentralityFlat(0),
220 fHistoCentrality(NULL),
221 fHistoCentralityFlattened(NULL),
222 fHistoCentralityVsPrimaryTracks(NULL),
223 fHistoNGammaCandidates(NULL),
224 fHistoNGoodESDTracksVsNGammaCandidates(NULL),
225 fHistoSPDClusterTrackletBackground(NULL),
226 fHistoV0MultVsNumberTPCoutTracks(NULL),
227 fHistoNV0Tracks(NULL),
228 fProfileEtaShift(NULL),
229 fProfileJetJetXSection(NULL),
230 fhJetJetNTrials(NULL),
231 fHistoEtaShift(NULL),
232 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
239 fEventPlaneAngle(-100),
241 fnGammaCandidates(0),
252 fMoveParticleAccordingToVertex(kTRUE),
254 fDoMesonAnalysis(kTRUE),
257 fDoChargedPrimary(kFALSE),
258 fDoPlotVsCentrality(kFALSE),
259 fIsFromSelectedHeader(kTRUE),
263 fWeightCentrality(NULL),
264 fEnableClusterCutsForTrigger(kFALSE),
265 fDoMaterialBudgetWeightingOfGammasForTrueMesons(kFALSE),
267 fFileNameBroken(NULL)
276 fV0ReaderName(
"V0ReaderV1"),
277 fDoLightOutput(kFALSE),
286 fPhotonDCAList(NULL),
290 fHeaderNameList(NULL),
293 fGammaCandidates(NULL),
294 fEventCutArray(NULL),
296 fMesonCutArray(NULL),
297 fClusterCutArray(NULL),
298 fHistoCaloGammaPt(NULL),
299 fHistoCaloGammaE(NULL),
300 fHistoConvGammaPt(NULL),
301 fHistoConvGammaR(NULL),
302 fHistoConvGammaEta(NULL),
303 fHistoConvGammaPhi(NULL),
304 fHistoConvGammaPsiPairPt(NULL),
305 tESDConvGammaPtDcazCat(NULL),
312 fHistoMotherInvMassPt(NULL),
313 sESDMotherInvMassPtZM(NULL),
314 fHistoMotherBackInvMassPt(NULL),
315 sESDMotherBackInvMassPtZM(NULL),
316 fHistoMotherInvMassEalpha(NULL),
317 fHistoMotherPi0PtY(NULL),
318 fHistoMotherEtaPtY(NULL),
319 fHistoMotherPi0PtAlpha(NULL),
320 fHistoMotherEtaPtAlpha(NULL),
321 fHistoMotherPi0PtOpenAngle(NULL),
322 fHistoMotherEtaPtOpenAngle(NULL),
323 sPtRDeltaROpenAngle(NULL),
324 fHistoMCHeaders(NULL),
325 fHistoMCAllGammaPt(NULL),
326 fHistoMCAllSecondaryGammaPt(NULL),
327 fHistoMCDecayGammaPi0Pt(NULL),
328 fHistoMCDecayGammaRhoPt(NULL),
329 fHistoMCDecayGammaEtaPt(NULL),
330 fHistoMCDecayGammaOmegaPt(NULL),
331 fHistoMCDecayGammaEtapPt(NULL),
332 fHistoMCDecayGammaPhiPt(NULL),
333 fHistoMCDecayGammaSigmaPt(NULL),
334 fHistoMCConvGammaPt(NULL),
335 fHistoMCSecondaryConvGammaPt(NULL),
336 fHistoMCConvGammaR(NULL),
337 fHistoMCConvGammaEta(NULL),
339 fHistoMCPi0WOWeightPt(NULL),
340 fHistoMCPi0WOEvtWeightPt(NULL),
341 fHistoMCEtaWOEvtWeightPt(NULL),
343 fHistoMCEtaWOWeightPt(NULL),
344 fHistoMCPi0WOWeightInAccPt(NULL),
345 fHistoMCEtaWOWeightInAccPt(NULL),
346 fHistoMCPi0InAccPt(NULL),
347 fHistoMCEtaInAccPt(NULL),
348 fHistoMCPi0WOEvtWeightInAccPt(NULL),
349 fHistoMCEtaWOEvtWeightInAccPt(NULL),
350 fHistoMCPi0PtY(NULL),
351 fHistoMCEtaPtY(NULL),
352 fHistoMCPi0PtAlpha(NULL),
353 fHistoMCEtaPtAlpha(NULL),
354 fHistoMCPrimaryPtvsSource(NULL),
355 fHistoMCSecPi0PtvsSource(NULL),
356 fHistoMCSecPi0RvsSource(NULL),
357 fHistoMCSecPi0Source(NULL),
358 fHistoMCSecPi0InAccPtvsSource(NULL),
359 fHistoMCSecEtaPt(NULL),
360 fHistoMCSecEtaSource(NULL),
361 fHistoMCPi0PtJetPt(NULL),
362 fHistoMCEtaPtJetPt(NULL),
363 fHistoMCPhysicalPrimariesPt(NULL),
364 fHistoTrueMotherInvMassPt(NULL),
365 fHistoTruePrimaryMotherInvMassPt(NULL),
366 fHistoTruePrimaryMotherW0WeightingInvMassPt(NULL),
367 pESDTruePrimaryMotherWeightsInvMassPt(NULL),
368 fHistoTruePrimaryPi0MCPtResolPt(NULL),
369 fHistoTruePrimaryEtaMCPtResolPt(NULL),
370 fHistoTrueSecondaryMotherInvMassPt(NULL),
371 fHistoTrueSecondaryMotherFromK0sInvMassPt(NULL),
372 fHistoTrueK0sWithPi0DaughterMCPt(NULL),
373 fHistoTrueSecondaryMotherFromK0lInvMassPt(NULL),
374 fHistoTrueK0lWithPi0DaughterMCPt(NULL),
375 fHistoTrueSecondaryMotherFromEtaInvMassPt(NULL),
376 fHistoTrueEtaWithPi0DaughterMCPt(NULL),
377 fHistoTrueSecondaryMotherFromLambdaInvMassPt(NULL),
378 fHistoTrueLambdaWithPi0DaughterMCPt(NULL),
379 fHistoTrueBckGGInvMassPt(NULL),
380 fHistoTrueBckContInvMassPt(NULL),
381 fHistoTruePi0PtY(NULL),
382 fHistoTrueEtaPtY(NULL),
383 fHistoTruePi0PtAlpha(NULL),
384 fHistoTrueEtaPtAlpha(NULL),
385 fHistoTruePi0PtOpenAngle(NULL),
386 fHistoTrueEtaPtOpenAngle(NULL),
387 fHistoTrueMotherDalitzInvMassPt(NULL),
388 fHistoTrueConvGammaPt(NULL),
389 fHistoTrueConvGammaR(NULL),
390 fHistoTrueConvGammaPtMC(NULL),
391 fHistoTrueConvGammaRMC(NULL),
392 fHistoTrueConvGammaEta(NULL),
393 fHistoTrueConvGammaPsiPairPt(NULL),
394 fHistoCombinatorialPt(NULL),
395 fHistoCombinatorialMothersPt(NULL),
396 fHistoCombinatorialPtDeltaPhi_ek(NULL),
397 fHistoCombinatorialPtDeltaPhi_ep(NULL),
398 fHistoCombinatorialPtDeltaPhi_epi(NULL),
399 fHistoCombinatorialPtDeltaPhi_pik(NULL),
400 fHistoCombinatorialPtDeltaPhi_pip(NULL),
401 fHistoTruePrimaryConvGammaPt(NULL),
402 fHistoTrueSecondaryConvGammaPt(NULL),
403 fHistoTrueSecondaryConvGammaMCPt(NULL),
404 fHistoTruePrimaryConvGammaESDPtMCPt(NULL),
405 fHistoTrueSecondaryConvGammaFromXFromK0sMCPtESDPt(NULL),
406 fHistoTrueSecondaryConvGammaFromXFromK0lMCPtESDPt(NULL),
407 fHistoTrueSecondaryConvGammaFromXFromLambdaMCPtESDPt(NULL),
408 fHistoTrueDalitzPsiPairDeltaPhi(NULL),
409 fHistoTrueGammaPsiPairDeltaPhi(NULL),
410 fHistoDoubleCountTruePi0InvMassPt(NULL),
411 fHistoDoubleCountTrueEtaInvMassPt(NULL),
412 fHistoDoubleCountTrueConvGammaRPt(NULL),
413 vecDoubleCountTruePi0s(0),
414 vecDoubleCountTrueEtas(0),
415 vecDoubleCountTrueConvGammas(0),
416 fHistoMultipleCountTruePi0(NULL),
417 fHistoMultipleCountTrueEta(NULL),
418 fHistoMultipleCountTrueConvGamma(NULL),
419 mapMultipleCountTruePi0s(),
420 mapMultipleCountTrueEtas(),
421 mapMultipleCountTrueConvGammas(),
423 fHistoNEventsWOWeight(NULL),
424 fHistoNGoodESDTracks(NULL),
425 fHistoNEventsWeighted(NULL),
426 fHistoNGoodESDTracksWeighted(NULL),
428 fHistoVertexZWeighted(NULL),
429 fDoCentralityFlat(0),
430 fHistoCentrality(NULL),
431 fHistoCentralityFlattened(NULL),
432 fHistoCentralityVsPrimaryTracks(NULL),
433 fHistoNGammaCandidates(NULL),
434 fHistoNGoodESDTracksVsNGammaCandidates(NULL),
435 fHistoSPDClusterTrackletBackground(NULL),
436 fHistoV0MultVsNumberTPCoutTracks(NULL),
437 fHistoNV0Tracks(NULL),
438 fProfileEtaShift(NULL),
439 fProfileJetJetXSection(NULL),
440 fhJetJetNTrials(NULL),
441 fHistoEtaShift(NULL),
442 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
449 fEventPlaneAngle(-100),
451 fnGammaCandidates(0),
462 fMoveParticleAccordingToVertex(kTRUE),
464 fDoMesonAnalysis(kTRUE),
467 fDoChargedPrimary(kFALSE),
468 fDoPlotVsCentrality(kFALSE),
469 fIsFromSelectedHeader(kTRUE),
473 fWeightCentrality(NULL),
474 fEnableClusterCutsForTrigger(kFALSE),
475 fDoMaterialBudgetWeightingOfGammasForTrueMesons(kFALSE),
477 fFileNameBroken(NULL)
480 DefineOutput(1, TList::Class());
507 const Int_t nDim = 4;
508 Int_t nBins[nDim] = {800,250,7,4};
511 Int_t nBinsRP[nDim] = {800,250,7,8};
513 Double_t xMaxRP[nDim] = {0.8,25,7,8};
531 if(collisionSystem == 1 || collisionSystem == 2 ||
532 collisionSystem == 5 || collisionSystem == 8 ||
533 collisionSystem == 9){
534 centMin = centMin*10;
535 centMax = centMax*10;
536 if(centMax ==0 && centMax!=centMin) centMax=100;
537 }
else if(collisionSystem == 3 || collisionSystem == 6) {
540 }
else if(collisionSystem == 4 || collisionSystem == 7) {
541 centMin = ((centMin*5)+45);
542 centMax = ((centMax*5)+45);
547 fBackList[iCut]->SetName(Form(
"%s_%s_%s Back histograms",cutstringEvent.Data(), cutstringPhoton.Data(),cutstringMeson.Data()));
552 sESDMotherBackInvMassPtZM[iCut] =
new THnSparseF(
"Back_Back_InvMass_Pt_z_m",
"Back_Back_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
554 sESDMotherBackInvMassPtZM[iCut] =
new THnSparseF(
"Back_Back_InvMass_Pt_z_psi",
"Back_Back_InvMass_Pt_z_psi",nDim,nBinsRP,xMinRP,xMaxRP);
560 fMotherList[iCut]->SetName(Form(
"%s_%s_%s Mother histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
565 sESDMotherInvMassPtZM[iCut] =
new THnSparseF(
"Back_Mother_InvMass_Pt_z_m",
"Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
567 sESDMotherInvMassPtZM[iCut] =
new THnSparseF(
"Back_Mother_InvMass_Pt_z_psi",
"Back_Mother_InvMass_Pt_z_psi",nDim,nBinsRP,xMinRP,xMaxRP);
574 collisionSystem,centMin,centMax,
596 }
else if (
fIsMC == 3){
660 const Int_t nDim2 = 4;
661 Int_t nBins2[nDim2] = {250,180,100,100};
663 Double_t xMax2[nDim2] = {25,180,10,0.1};
695 TString cutstringMeson =
"NoMesonCut";
700 fCutFolder[iCut]->SetName(Form(
"Cut Number %s_%s_%s",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
704 fESDList[iCut]->SetName(Form(
"%s_%s_%s ESD histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
709 fHistoNEvents[iCut] =
new TH1F(
"NEventsUnweighted",
"NEventsUnweighted",14,-0.5,13.5);
711 fHistoNEvents[iCut] =
new TH1F(
"NEvents",
"NEvents",14,-0.5,13.5);
713 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
714 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Miss. MC or inc. ev.");
716 TString TriggerNames =
"Not Trigger: ";
718 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
723 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
727 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problem");
728 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(11,
"rejectedForJetJetMC");
729 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
730 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
731 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(14,
"Pileup V0M-TPCout Tracks");
739 TString TriggerNames =
"Not Trigger: ";
771 TString TriggerNames =
"Not Trigger: ";
792 fHistoNGoodESDTracks[iCut] =
new TH1F(
"GoodESDTracksUnweighted",
"GoodESDTracksUnweighted",4000,0,4000);
794 fHistoVertexZ[iCut] =
new TH1F(
"VertexZUnweighted",
"VertexZUnweighted",1000,-50,50);
811 fHistoVertexZ[iCut] =
new TH1F(
"VertexZ",
"VertexZ",1000,-50,50);
861 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",30000,0,30000);
863 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",2500,0,2500);
865 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",1500,0,1500);
868 fHistoEtaShift[iCut] =
new TProfile(
"Eta Shift",
"Eta Shift",1, -0.5,0.5);
871 fHistoConvGammaPt[iCut] =
new TH1F(
"ESD_ConvGamma_Pt",
"ESD_ConvGamma_Pt",250,0,25);
899 fPhotonDCAList[iCut]->SetName(Form(
"%s_%s_%s Photon DCA tree",cutstringEvent.Data(),cutstringPhoton.Data(),cutstringMeson.Data()));
926 fHistoConvGammaR[iCut] =
new TH1F(
"ESD_ConvGamma_R",
"ESD_ConvGamma_R",800,0,200);
929 fHistoConvGammaEta[iCut] =
new TH1F(
"ESD_ConvGamma_Eta",
"ESD_ConvGamma_Eta",2000,-2,2);
932 fHistoConvGammaPhi[iCut] =
new TH1F(
"ESD_ConvGamma_Phi",
"ESD_ConvGamma_Phi",360,0,2*TMath::Pi());
953 fMesonDCAList[iCut]->SetName(Form(
"%s_%s_%s Meson DCA tree",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
997 sPtRDeltaROpenAngle[iCut] =
new THnSparseF(
"PhotonPair_Pt_R_DeltaR_OpenAngle",
"PhotonPair_Pt_R_DeltaR_OpenAngle",nDim2,nBins2,xMin2,xMax2);
1136 TString cutstringMeson =
"NoMesonCut";
1141 fMCList[iCut]->SetName(Form(
"%s_%s_%s MC histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
1142 fMCList[iCut]->SetOwner(kTRUE);
1201 fHistoMCPi0Pt[iCut] =
new TH1F(
"MC_Pi0_Pt",
"MC_Pi0_Pt",250,0,25);
1208 fHistoMCEtaPt[iCut] =
new TH1F(
"MC_Eta_Pt",
"MC_Eta_Pt",250,0,25);
1291 fHistoMCPi0PtY[iCut] =
new TH2F(
"MC_Pi0_Pt_Y",
"MC_Pi0_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1295 fHistoMCEtaPtY[iCut] =
new TH2F(
"MC_Eta_Pt_Y",
"MC_Eta_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1308 fTrueList[iCut]->SetName(Form(
"%s_%s_%s True histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
1356 fHistoCombinatorialMothersPt[iCut] =
new TH3F(
"ESD_TrueCombinatorialMothers_Pt",
"ESD_TrueCombinatorialMothers_Pt",6,0,6,13,0,13,250,0,25);
1514 fHistoTruePi0PtY[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Y",
"ESD_TruePi0_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1517 fHistoTrueEtaPtY[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Y",
"ESD_TrueEta_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1549 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
1619 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
1647 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
1649 if(eventQuality == 2 || eventQuality == 3){
1673 AliEventplane *EventPlane =
fInputEvent->GetEventplane();
1690 if((xsection==-1.) || (ntrials==-1.)) AliFatal(Form(
"ERROR: GetXSectionAndNTrials returned invalid xsection/ntrials, periodName from V0Reader: '%s'",
fV0Reader->
GetPeriodName().Data()));
1711 if(eventNotAccepted){
1719 if(eventQuality != 0){
1773 else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1783 if (nameBin.CompareTo(
"")== 0){
1785 ->GetAcceptedHeader())->At(i))->GetString();
1787 fHistoMCHeaders[iCut]->GetXaxis()->SetBinLabel(i+1,nameHeader.Data());
1881 if(!PhotonCandidate)
continue;
1884 Int_t isPosFromMBHeader
1887 Int_t isNegFromMBHeader
1923 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
1930 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
1943 GammaCandidatesStepOne->Add(PhotonCandidate);
1946 GammaCandidatesStepTwo->Add(PhotonCandidate);
1950 for(
Int_t i = 0;i<GammaCandidatesStepOne->GetEntries();i++){
1952 if(!PhotonCandidate)
continue;
1955 Int_t isPosFromMBHeader
1957 Int_t isNegFromMBHeader
1988 if (
fIsHeavyIon ==1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
1995 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
2005 }
else GammaCandidatesStepTwo->Add(PhotonCandidate);
2009 for(
Int_t i = 0;i<GammaCandidatesStepTwo->GetEntries();i++){
2011 if(!PhotonCandidate)
continue;
2014 Int_t isPosFromMBHeader
2016 Int_t isNegFromMBHeader
2046 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
2053 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
2066 delete GammaCandidatesStepOne;
2067 GammaCandidatesStepOne = 0x0;
2068 delete GammaCandidatesStepTwo;
2069 GammaCandidatesStepTwo = 0x0;
2075 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2076 Double_t mcProdVtxX = primVtxMC->GetX();
2077 Double_t mcProdVtxY = primVtxMC->GetY();
2078 Double_t mcProdVtxZ = primVtxMC->GetZ();
2081 if( magField < 0.0 ){
2088 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2089 if (AODMCTrackArray != NULL && TruePhotonCandidate != NULL){
2091 AliAODMCParticle *posDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelPositive());
2092 AliAODMCParticle *negDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelNegative());
2095 if(posDaughter == NULL || negDaughter == NULL)
return;
2096 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2098 Double_t PhiParticle[2] = {posDaughter->Phi(),negDaughter->Phi()};
2100 if(posDaughter->GetMother() != negDaughter->GetMother()){
2103 if(posDaughter->GetMother() > -1){
2104 AliAODMCParticle *Mom = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
2105 if(Mom->GetMother() == -1){
2108 AliAODMCParticle *GranMom = (AliAODMCParticle*) AODMCTrackArray->At(Mom->GetMother());
2109 if(GranMom->GetMother() == -1){
2112 AliAODMCParticle *GranGranMom = (AliAODMCParticle*) AODMCTrackArray->At(GranMom->GetMother());
2113 if(GranGranMom->GetMother() == -1){
2119 if(negDaughter->GetMother() > -1){
2120 AliAODMCParticle *Mom = (AliAODMCParticle*) AODMCTrackArray->At(negDaughter->GetMother());
2121 if(Mom->GetMother() == -1){
2124 AliAODMCParticle *GranMom = (AliAODMCParticle*) AODMCTrackArray->At(Mom->GetMother());
2125 if(GranMom->GetMother() == -1){
2128 AliAODMCParticle *GranGranMom = (AliAODMCParticle*) AODMCTrackArray->At(GranMom->GetMother());
2129 if(GranGranMom->GetMother() == -1){
2139 else if(posDaughter->GetMother() == -1){
2149 if(pdgCode[0]!=11 || pdgCode[1]!=11){
2153 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode()){
2158 AliAODMCParticle *Photon = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
2161 Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->Phi()-positronCandidate->Phi());
2163 if(Photon->GetPdgCode() != 22){
2169 if(((posDaughter->GetMCProcessCode())) != 5 || ((negDaughter->GetMCProcessCode())) != 5){
2176 rConv = sqrt( (posDaughter->Xv()*posDaughter->Xv()) + (posDaughter->Yv()*posDaughter->Yv()) );
2204 if(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother() > -1 && ((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetMother() > -1 ){
2205 if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 310){
2210 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 130) {
2215 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 3122) {
2220 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 221) {
2240 if( magField < 0.0 ){
2247 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2248 Double_t mcProdVtxX = primVtxMC->GetX();
2249 Double_t mcProdVtxY = primVtxMC->GetY();
2250 Double_t mcProdVtxZ = primVtxMC->GetZ();
2258 if(posDaughter == NULL || negDaughter == NULL)
return;
2259 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2261 Double_t PhiParticle[2] = {posDaughter->Phi(),negDaughter->Phi()};
2264 if(posDaughter->GetMother(0) != negDaughter->GetMother(0)){
2267 if(posDaughter->GetMother(0) > -1){
2268 TParticle *Mom =
fMCEvent->Particle(posDaughter->GetMother(0));
2269 if(Mom->GetMother(0) == -1){
2272 TParticle *GranMom =
fMCEvent->Particle(Mom->GetMother(0));
2273 if(GranMom->GetMother(0) == -1){
2276 TParticle *GranGranMom =
fMCEvent->Particle(GranMom->GetMother(0));
2277 if(GranGranMom->GetMother(0) == -1){
2283 if(negDaughter->GetMother(0) > -1){
2284 TParticle *Mom =
fMCEvent->Particle(negDaughter->GetMother(0));
2285 if(Mom->GetMother(0) == -1){
2288 TParticle *GranMom =
fMCEvent->Particle(Mom->GetMother(0));
2289 if(GranMom->GetMother(0) == -1){
2292 TParticle *GranGranMom =
fMCEvent->Particle(GranMom->GetMother(0));
2293 if(GranGranMom->GetMother(0) == -1){
2301 }
else if(posDaughter->GetMother(0) == -1){
2310 if(pdgCode[0]!=11 || pdgCode[1]!=11)
return;
2312 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode())
return;
2317 Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->Phi()-positronCandidate->Phi());
2319 if(Photon->GetPdgCode() != 22){
2324 if(posDaughter->GetUniqueID() != 5 || negDaughter->GetUniqueID() !=5)
return;
2353 if( Photon->GetMother(0) > -1 &&
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0) > -1){
2354 if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2359 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2364 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2369 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 221) {
2388 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2389 Double_t mcProdVtxX = primVtxMC->GetX();
2390 Double_t mcProdVtxY = primVtxMC->GetY();
2391 Double_t mcProdVtxZ = primVtxMC->GetZ();
2393 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2395 if (AODMCTrackArray){
2397 for(
Int_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2399 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2400 if (!particle)
continue;
2405 Int_t isMCFromMBHeader = -1;
2415 if(particle->GetMother() >-1){
2416 switch((static_cast<AliAODMCParticle*>(AODMCTrackArray->At(particle->GetMother())))->GetPdgCode()){
2443 for(
Int_t daughterIndex=particle->GetDaughter(0);daughterIndex<=particle->GetDaughter(1);daughterIndex++){
2444 AliAODMCParticle *tmpDaughter =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(daughterIndex));
2445 if(!tmpDaughter)
continue;
2446 if(TMath::Abs(tmpDaughter->GetPdgCode()) == 11){
2447 rConv = sqrt( (tmpDaughter->Xv()*tmpDaughter->Xv()) + (tmpDaughter->Yv()*tmpDaughter->Yv()) );
2460 if(particle->E() - particle->Pz() == 0 || particle->E() + particle->Pz() == 0){
2463 mesonY = 0.5*(TMath::Log((particle->E()+particle->Pz()) / (particle->E()-particle->Pz())))
2468 if ( particle->GetPdgCode() == 211 ){
2470 }
else if ( particle->GetPdgCode() == -211 ){
2472 }
else if ( particle->GetPdgCode() == 321 ){
2474 }
else if ( particle->GetPdgCode() == -321 ){
2476 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2478 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2480 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2482 }
else if ( TMath::Abs(particle->GetPdgCode()) == 223 ){
2484 }
else if ( TMath::Abs(particle->GetPdgCode()) == 333 ){
2486 }
else if ( TMath::Abs(particle->GetPdgCode()) == 113 ){
2492 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2493 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2496 if (particle->Pt()>0.005){
2504 if(particle->E() - particle->Pz() == 0 || particle->E() + particle->Pz() == 0){
2507 mesonY = 0.5*(TMath::Log((particle->E()+particle->Pz()) / (particle->E()-particle->Pz())))
2512 if (particle->GetPdgCode() == 111 || particle->GetPdgCode() == 221){
2513 alpha = TMath::Abs((daughter0->E() - daughter1->E()))/(daughter0->E() + daughter1->E());
2516 if(particle->GetPdgCode() == 111){
2525 }
else if(particle->GetPdgCode() == 221){
2542 if(particle->GetPdgCode() == 111){
2546 }
else if(particle->GetPdgCode() == 221){
2556 Int_t isMCFromMBHeader = -1;
2565 if (particle->GetMother() > -1) {
2566 AliAODMCParticle *tmpMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2567 if (tmpMother->GetMother() > -1) {
2568 AliAODMCParticle *tmpGrandMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(tmpMother->GetMother()));
2569 if(tmpGrandMother->GetPdgCode() == 310) {
2571 }
else if (tmpGrandMother->GetPdgCode() == 130) {
2573 }
else if (tmpGrandMother->GetPdgCode() == 3122) {
2576 if ( !(TMath::Abs(tmpMother->GetPdgCode()) == 11 && tmpGrandMother->GetPdgCode() == 22) )
2588 if (particle->GetMother() > -1) {
2589 AliAODMCParticle *tmpMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2590 if (tmpMother->GetMother() > -1) {
2591 AliAODMCParticle *tmpGrandMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(tmpMother->GetMother()));
2592 if(tmpGrandMother->GetPdgCode() == 310) {
2594 }
else if (tmpGrandMother->GetPdgCode() == 130) {
2596 }
else if (tmpGrandMother->GetPdgCode() == 3122) {
2599 if ( !(TMath::Abs(tmpMother->GetPdgCode()) == 11 && tmpGrandMother->GetPdgCode() == 22) )
2613 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2614 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2615 AliAODMCParticle* mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2616 Int_t pdgCode = mother->GetPdgCode();
2617 if(particle->GetPdgCode() == 111){
2621 }
else if(particle->GetPdgCode() == 221){
2631 if(particle->GetPdgCode() == 111){
2646 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2647 Double_t mcProdVtxX = primVtxMC->GetX();
2648 Double_t mcProdVtxY = primVtxMC->GetY();
2649 Double_t mcProdVtxZ = primVtxMC->GetZ();
2653 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2657 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2658 if (!particle)
continue;
2660 Int_t isMCFromMBHeader = -1;
2670 if(particle->GetMother(0) >-1){
2671 switch(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()){
2706 if(particle->Energy() - particle->Pz() == 0 || particle->Energy() + particle->Pz() == 0){
2709 mesonY = 0.5*(TMath::Log((particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz())))
2714 if ( particle->GetPdgCode() == 211 ){
2716 }
else if ( particle->GetPdgCode() == -211 ){
2718 }
else if ( particle->GetPdgCode() == 321 ){
2720 }
else if ( particle->GetPdgCode() == -321 ){
2722 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2724 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2726 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2728 }
else if ( TMath::Abs(particle->GetPdgCode()) == 223 ){
2730 }
else if ( TMath::Abs(particle->GetPdgCode()) == 333 ){
2732 }
else if ( TMath::Abs(particle->GetPdgCode()) == 113 ){
2739 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2740 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2744 if (particle->Pt()>0.005){
2752 if(particle->Energy() - particle->Pz() == 0 || particle->Energy() + particle->Pz() == 0){
2755 mesonY = 0.5*(TMath::Log((particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz())))
2759 if (particle->GetPdgCode() == 111 || particle->GetPdgCode() == 221){
2760 alpha = TMath::Abs((daughter0->Energy() - daughter1->Energy()))/(daughter0->Energy() + daughter1->Energy());
2763 if(particle->GetPdgCode() == 111){
2772 }
else if(particle->GetPdgCode() == 221){
2787 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2793 if(particle->GetPdgCode() == 111){
2797 }
else if(particle->GetPdgCode() == 221){
2807 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2808 if (!particle)
continue;
2810 Int_t isMCFromMBHeader = -1;
2819 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
2820 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2822 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2824 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2827 if ( !(TMath::Abs(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()) == 11 &&
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 22) )
2836 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
2837 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2839 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2841 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2844 if ( !(TMath::Abs(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()) == 11 &&
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 22) )
2855 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2856 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2858 if(particle->GetFirstMother()>-1) pdgCode = ((TParticle*)
fMCEvent->Particle( particle->GetFirstMother() ))->GetPdgCode();
2859 if(particle->GetPdgCode() == 111){
2863 Double_t deltaX = particle->Vx() - mcProdVtxX;
2864 Double_t deltaY = particle->Vy() - mcProdVtxY;
2865 Double_t deltaZ = particle->Vz() - mcProdVtxZ;
2866 Double_t realRadius3D = TMath::Sqrt(deltaX*deltaX+deltaY*deltaY+deltaZ*deltaZ);
2869 }
else if(particle->GetPdgCode() == 221){
2879 if(particle->GetPdgCode() == 111){
2897 if (gamma0==NULL)
continue;
2898 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
2901 if (gamma1==NULL)
continue;
2908 pi0cand->
SetLabels(firstGammaIndex,secondGammaIndex);
2927 if ( pi0cand->M() > 0.05 && pi0cand->M() < 0.17){
2935 if ( pi0cand->M() > 0.45 && pi0cand->M() < 0.65){
2956 sparesFill[0] = pi0cand->M();
2957 sparesFill[1] = pi0cand->Pt();
2968 sparesFill[0] = pi0cand->M();
2969 sparesFill[1] = pi0cand->Pt();
2987 fPt = pi0cand->Pt();
3002 }
else if (
fPt > 0.299 &&
fPt < 20. ) {
3018 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3019 Double_t mcProdVtxX = primVtxMC->GetX();
3020 Double_t mcProdVtxY = primVtxMC->GetY();
3021 Double_t mcProdVtxZ = primVtxMC->GetZ();
3025 Bool_t isTruePi0 = kFALSE;
3026 Bool_t isTrueEta = kFALSE;
3027 Bool_t isTruePi0Dalitz = kFALSE;
3028 Bool_t isTrueEtaDalitz = kFALSE;
3029 Bool_t gamma0DalitzCand = kFALSE;
3030 Bool_t gamma1DalitzCand = kFALSE;
3032 Int_t gamma0MotherLabel = -1;
3033 if(gamma0MCLabel != -1){
3037 TParticle * gammaMC0 = (TParticle*)
fMCEvent->Particle(gamma0MCLabel);
3038 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3039 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3040 if(gammaMC0->GetPdgCode() == 22){
3041 gamma0MotherLabel=gammaMC0->GetFirstMother();
3044 if(gammaMC0->GetPdgCode() ==111){
3045 gamma0DalitzCand = kTRUE;
3046 gamma0MotherLabel=-111;
3048 if(gammaMC0->GetPdgCode() ==221){
3049 gamma0DalitzCand = kTRUE;
3050 gamma0MotherLabel=-221;
3056 Int_t gamma1MotherLabel = -1;
3057 if(gamma1MCLabel != -1){
3061 TParticle * gammaMC1 = (TParticle*)
fMCEvent->Particle(gamma1MCLabel);
3062 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3063 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3064 if(gammaMC1->GetPdgCode() == 22){
3065 gamma1MotherLabel=gammaMC1->GetFirstMother();
3068 if(gammaMC1->GetPdgCode() ==111 ){
3069 gamma1DalitzCand = kTRUE;
3070 gamma1MotherLabel=-111;
3072 if(gammaMC1->GetPdgCode() ==221){
3073 gamma1DalitzCand = kTRUE;
3074 gamma1MotherLabel=-221;
3078 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3079 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() == 111){
3086 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() == 221){
3096 if (gamma1DalitzCand || gamma0DalitzCand){
3097 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3098 if (gamma0MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3099 if (gamma0MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3101 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3102 if (gamma1MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3103 if (gamma1MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3108 if(isTruePi0 || isTrueEta){
3118 if ( Pi0Candidate->M() > 0.05 && Pi0Candidate->M() < 0.17){
3126 }
else if (isTrueEta){
3127 if ( Pi0Candidate->M() > 0.45 && Pi0Candidate->M() < 0.65){
3139 if(!isPrimary && gamma1MotherLabel>-1){
3140 Long_t secMotherLabel = ((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetMother(0);
3148 if (secMotherLabel >-1){
3149 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==310){
3154 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==130){
3159 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==221){
3164 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==3122){
3174 if (((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->Pt()>0.005){
3194 }
else if(!isTruePi0 && !isTrueEta){
3196 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3203 if( isTruePi0Dalitz || isTrueEtaDalitz ){
3207 }
else if (gamma0DalitzCand || gamma1DalitzCand){
3218 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3219 Double_t mcProdVtxX = primVtxMC->GetX();
3220 Double_t mcProdVtxY = primVtxMC->GetY();
3221 Double_t mcProdVtxZ = primVtxMC->GetZ();
3224 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3225 Bool_t isTruePi0 = kFALSE;
3226 Bool_t isTrueEta = kFALSE;
3227 Bool_t isTruePi0Dalitz = kFALSE;
3228 Bool_t isTrueEtaDalitz = kFALSE;
3229 Bool_t gamma0DalitzCand = kFALSE;
3230 Bool_t gamma1DalitzCand = kFALSE;
3232 if (AODMCTrackArray!=NULL && TrueGammaCandidate0 != NULL){
3233 AliAODMCParticle *positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelPositive()));
3234 AliAODMCParticle *negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelNegative()));
3237 Int_t gamma0MCLabel = -1;
3238 Int_t gamma0MotherLabel = -1;
3239 if(!positiveMC||!negativeMC)
3242 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3243 gamma0MCLabel = positiveMC->GetMother();
3246 if(gamma0MCLabel != -1){
3248 AliAODMCParticle * gammaMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma0MCLabel));
3249 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3250 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3251 if(gammaMC0->GetPdgCode() == 22){
3252 gamma0MotherLabel=gammaMC0->GetMother();
3255 if(gammaMC0->GetPdgCode() ==111){
3256 gamma0DalitzCand = kTRUE;
3257 gamma0MotherLabel=-111;
3259 if(gammaMC0->GetPdgCode() ==221){
3260 gamma0DalitzCand = kTRUE;
3261 gamma0MotherLabel=-221;
3265 positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelPositive()));
3266 negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelNegative()));
3268 Int_t gamma1MCLabel = -1;
3269 Int_t gamma1MotherLabel = -1;
3270 if(!positiveMC||!negativeMC)
3273 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3274 gamma1MCLabel = positiveMC->GetMother();
3276 if(gamma1MCLabel != -1){
3278 AliAODMCParticle * gammaMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MCLabel));
3279 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3280 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3281 if(gammaMC1->GetPdgCode() == 22){
3282 gamma1MotherLabel=gammaMC1->GetMother();
3285 if(gammaMC1->GetPdgCode() ==111 ){
3286 gamma1DalitzCand = kTRUE;
3287 gamma1MotherLabel=-111;
3289 if(gammaMC1->GetPdgCode() ==221){
3290 gamma1DalitzCand = kTRUE;
3291 gamma1MotherLabel=-221;
3295 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3296 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() == 111){
3303 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() == 221){
3313 if (gamma1DalitzCand || gamma0DalitzCand){
3314 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3315 if (gamma0MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3316 if (gamma0MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3318 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3319 if (gamma1MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3320 if (gamma1MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3324 if(isTruePi0 || isTrueEta){
3334 if ( Pi0Candidate->M() > 0.05 && Pi0Candidate->M() < 0.17){
3341 }
else if (isTrueEta){
3342 if ( Pi0Candidate->M() > 0.45 && Pi0Candidate->M() < 0.65){
3354 Long_t secMotherLabel =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->GetMother();
3362 if (secMotherLabel >-1){
3363 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==310){
3368 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==130){
3373 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==221){
3378 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==3122){
3388 if (static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt()>0.005){
3400 (Pi0Candidate->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*weightMatBudget);
3405 (Pi0Candidate->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*weightMatBudget);
3409 }
else if(!isTruePi0 && !isTrueEta) {
3411 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3418 if( isTruePi0Dalitz || isTrueEtaDalitz ){
3422 }
else if (gamma0DalitzCand || gamma1DalitzCand){
3451 Double_t massBGprob = backgroundCandidateProb->M();
3452 if(massBGprob>0.1 && massBGprob<0.14){
3454 delete backgroundCandidateProb;
3458 delete backgroundCandidateProb;
3459 backgroundCandidateProb = 0x0;
3475 delete backgroundCandidate;
3476 backgroundCandidate = 0x0;
3492 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3513 delete backgroundCandidate;
3514 backgroundCandidate = 0x0;
3521 if(previousEventV0s){
3527 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3551 delete backgroundCandidate;
3552 backgroundCandidate = 0x0;
3585 if (gamma0==NULL)
continue;
3586 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
3588 if (gamma1 == NULL)
continue;
3614 if(previousEventGammas){
3627 for(
UInt_t iPrevious=0;iPrevious<previousEventGammas->size();iPrevious++){
3654 Double_t nRadiansPM = fNDegreesPMBackground*TMath::Pi()/180;
3655 Double_t rotationValue =
fRandom.Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM;
3656 gamma->RotateZ(rotationValue);
3662 previousEventEP=previousEventEP+TMath::Pi();
3663 thisEventEP=thisEventEP+TMath::Pi();
3664 Double_t rotationValue= thisEventEP-previousEventEP;
3665 gamma->RotateZ(rotationValue);
3697 if(pdgCode[0]==11 && pdgCode[1]==11){
3699 }
else if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3701 }
else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3703 }
else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3705 }
else if( (pdgCode[0]==11 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==11) ){
3707 }
else if( pdgCode[0]==211 && pdgCode[1]==211 ){
3709 }
else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3711 }
else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3713 }
else if( (pdgCode[0]==211 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==211) ){
3715 }
else if( pdgCode[0]==321 && pdgCode[1]==321 ){
3717 }
else if( (pdgCode[0]==321 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==321) ){
3719 }
else if( (pdgCode[0]==321 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==321) ){
3721 }
else if( pdgCode[0]==2212 && pdgCode[1]==2212 ){
3723 }
else if( (pdgCode[0]==2212 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==2212) ){
3725 }
else if( pdgCode[0]==13 && pdgCode[1]==13 ){
3732 if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3736 else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3740 else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3744 else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3748 else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3759 Int_t pdgCombPart = TMath::Abs(daughter->GetPdgCode());
3760 Int_t pdgMotherCombPart = TMath::Abs(motherCombPart->GetPdgCode());
3763 if(pdgCombPart==11){
3777 }
else if(pdgCombPart==211){
3791 }
else if(pdgCombPart==321){