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),
94 fHistoMotherInvMassPt(NULL),
95 sESDMotherInvMassPtZM(NULL),
96 fHistoMotherBackInvMassPt(NULL),
97 sESDMotherBackInvMassPtZM(NULL),
98 fHistoMotherInvMassEalpha(NULL),
99 fHistoMotherPi0PtY(NULL),
100 fHistoMotherEtaPtY(NULL),
101 fHistoMotherPi0PtAlpha(NULL),
102 fHistoMotherEtaPtAlpha(NULL),
103 fHistoMotherPi0PtOpenAngle(NULL),
104 fHistoMotherEtaPtOpenAngle(NULL),
105 tESDConvGammaPtDcazCat(NULL),
106 sPtRDeltaROpenAngle(NULL),
107 fHistoCaloGammaPt(NULL),
108 fHistoCaloGammaE(NULL),
109 fHistoConvGammaPt(NULL),
110 fHistoConvGammaR(NULL),
111 fHistoConvGammaEta(NULL),
112 fHistoConvGammaPhi(NULL),
113 fHistoConvGammaPsiPairPt(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),
131 fHistoMCEtaWOWeightPt(NULL),
132 fHistoMCPi0WOWeightInAccPt(NULL),
133 fHistoMCEtaWOWeightInAccPt(NULL),
134 fHistoMCPi0InAccPt(NULL),
135 fHistoMCEtaInAccPt(NULL),
136 fHistoMCPi0WOEvtWeightInAccPt(NULL),
137 fHistoMCEtaWOEvtWeightInAccPt(NULL),
138 fHistoMCPi0PtY(NULL),
139 fHistoMCEtaPtY(NULL),
140 fHistoMCPi0PtAlpha(NULL),
141 fHistoMCEtaPtAlpha(NULL),
142 fHistoMCPrimaryPtvsSource(NULL),
143 fHistoMCSecPi0PtvsSource(NULL),
144 fHistoMCSecPi0RvsSource(NULL),
145 fHistoMCSecPi0Source(NULL),
146 fHistoMCSecPi0InAccPtvsSource(NULL),
147 fHistoMCSecEtaPt(NULL),
148 fHistoMCSecEtaSource(NULL),
149 fHistoMCPhysicalPrimariesPt(NULL),
150 fHistoMCPi0WOEvtWeightPt(NULL),
151 fHistoMCEtaWOEvtWeightPt(NULL),
152 fHistoMCPi0PtJetPt(NULL),
153 fHistoMCEtaPtJetPt(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 fHistoTruePrimaryConvGammaPt(NULL),
185 fHistoTrueSecondaryConvGammaPt(NULL),
186 fHistoTrueSecondaryConvGammaMCPt(NULL),
187 fHistoTruePrimaryConvGammaESDPtMCPt(NULL),
188 fHistoTrueSecondaryConvGammaFromXFromK0sMCPtESDPt(NULL),
189 fHistoTrueSecondaryConvGammaFromXFromK0lMCPtESDPt(NULL),
190 fHistoTrueSecondaryConvGammaFromXFromLambdaMCPtESDPt(NULL),
191 fHistoTrueDalitzPsiPairDeltaPhi(NULL),
192 fHistoTrueGammaPsiPairDeltaPhi(NULL),
193 fHistoCombinatorialPt(NULL),
194 fHistoCombinatorialMothersPt(NULL),
195 fHistoCombinatorialPtDeltaPhi_ek(NULL),
196 fHistoCombinatorialPtDeltaPhi_ep(NULL),
197 fHistoCombinatorialPtDeltaPhi_epi(NULL),
198 fHistoCombinatorialPtDeltaPhi_pik(NULL),
199 fHistoCombinatorialPtDeltaPhi_pip(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 fHistoNEventsWeighted(NULL),
214 fHistoNEventsWOWeight(NULL),
215 fProfileEtaShift(NULL),
216 fProfileJetJetXSection(NULL),
217 fhJetJetNTrials(NULL),
218 fHistoNGoodESDTracks(NULL),
219 fHistoNGoodESDTracksWeighted(NULL),
221 fHistoVertexZWeighted(NULL),
222 fHistoCentrality(NULL),
223 fDoCentralityFlat(0),
224 fWeightCentrality(NULL),
225 fHistoCentralityFlattened(NULL),
226 fHistoCentralityVsPrimaryTracks(NULL),
227 fHistoNGammaCandidates(NULL),
228 fHistoNGoodESDTracksVsNGammaCandidates(NULL),
229 fHistoSPDClusterTrackletBackground(NULL),
230 fHistoV0MultVsNumberTPCoutTracks(NULL),
231 fHistoNV0Tracks(NULL),
232 fHistoEtaShift(NULL),
233 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
240 fEventPlaneAngle(-100),
242 fnGammaCandidates(0),
253 fMoveParticleAccordingToVertex(kTRUE),
255 fDoMesonAnalysis(kTRUE),
258 fDoChargedPrimary(kFALSE),
259 fDoPlotVsCentrality(kFALSE),
260 fIsFromSelectedHeader(kTRUE),
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),
304 fHistoMotherInvMassPt(NULL),
305 sESDMotherInvMassPtZM(NULL),
306 fHistoMotherBackInvMassPt(NULL),
307 sESDMotherBackInvMassPtZM(NULL),
308 fHistoMotherInvMassEalpha(NULL),
309 fHistoMotherPi0PtY(NULL),
310 fHistoMotherEtaPtY(NULL),
311 fHistoMotherPi0PtAlpha(NULL),
312 fHistoMotherEtaPtAlpha(NULL),
313 fHistoMotherPi0PtOpenAngle(NULL),
314 fHistoMotherEtaPtOpenAngle(NULL),
315 tESDConvGammaPtDcazCat(NULL),
316 sPtRDeltaROpenAngle(NULL),
317 fHistoCaloGammaPt(NULL),
318 fHistoCaloGammaE(NULL),
319 fHistoConvGammaPt(NULL),
320 fHistoConvGammaR(NULL),
321 fHistoConvGammaEta(NULL),
322 fHistoConvGammaPhi(NULL),
323 fHistoConvGammaPsiPairPt(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),
341 fHistoMCEtaWOWeightPt(NULL),
342 fHistoMCPi0WOWeightInAccPt(NULL),
343 fHistoMCEtaWOWeightInAccPt(NULL),
344 fHistoMCPi0InAccPt(NULL),
345 fHistoMCEtaInAccPt(NULL),
346 fHistoMCPi0WOEvtWeightInAccPt(NULL),
347 fHistoMCEtaWOEvtWeightInAccPt(NULL),
348 fHistoMCPi0PtY(NULL),
349 fHistoMCEtaPtY(NULL),
350 fHistoMCPi0PtAlpha(NULL),
351 fHistoMCEtaPtAlpha(NULL),
352 fHistoMCPrimaryPtvsSource(NULL),
353 fHistoMCSecPi0PtvsSource(NULL),
354 fHistoMCSecPi0RvsSource(NULL),
355 fHistoMCSecPi0Source(NULL),
356 fHistoMCSecPi0InAccPtvsSource(NULL),
357 fHistoMCSecEtaPt(NULL),
358 fHistoMCSecEtaSource(NULL),
359 fHistoMCPhysicalPrimariesPt(NULL),
360 fHistoTrueMotherInvMassPt(NULL),
361 fHistoTruePrimaryMotherInvMassPt(NULL),
362 fHistoTruePrimaryMotherW0WeightingInvMassPt(NULL),
363 pESDTruePrimaryMotherWeightsInvMassPt(NULL),
364 fHistoTruePrimaryPi0MCPtResolPt(NULL),
365 fHistoTruePrimaryEtaMCPtResolPt(NULL),
366 fHistoTrueSecondaryMotherInvMassPt(NULL),
367 fHistoTrueSecondaryMotherFromK0sInvMassPt(NULL),
368 fHistoTrueK0sWithPi0DaughterMCPt(NULL),
369 fHistoTrueSecondaryMotherFromK0lInvMassPt(NULL),
370 fHistoTrueK0lWithPi0DaughterMCPt(NULL),
371 fHistoTrueSecondaryMotherFromEtaInvMassPt(NULL),
372 fHistoTrueEtaWithPi0DaughterMCPt(NULL),
373 fHistoTrueSecondaryMotherFromLambdaInvMassPt(NULL),
374 fHistoTrueLambdaWithPi0DaughterMCPt(NULL),
375 fHistoTrueBckGGInvMassPt(NULL),
376 fHistoTrueBckContInvMassPt(NULL),
377 fHistoTruePi0PtY(NULL),
378 fHistoTrueEtaPtY(NULL),
379 fHistoTruePi0PtAlpha(NULL),
380 fHistoTrueEtaPtAlpha(NULL),
381 fHistoTruePi0PtOpenAngle(NULL),
382 fHistoTrueEtaPtOpenAngle(NULL),
383 fHistoTrueMotherDalitzInvMassPt(NULL),
384 fHistoTrueConvGammaPt(NULL),
385 fHistoTrueConvGammaR(NULL),
386 fHistoTrueConvGammaPtMC(NULL),
387 fHistoTrueConvGammaRMC(NULL),
388 fHistoTrueConvGammaEta(NULL),
389 fHistoTrueConvGammaPsiPairPt(NULL),
390 fHistoTruePrimaryConvGammaPt(NULL),
391 fHistoTrueSecondaryConvGammaPt(NULL),
392 fHistoTrueSecondaryConvGammaMCPt(NULL),
393 fHistoTruePrimaryConvGammaESDPtMCPt(NULL),
394 fHistoTrueSecondaryConvGammaFromXFromK0sMCPtESDPt(NULL),
395 fHistoTrueSecondaryConvGammaFromXFromK0lMCPtESDPt(NULL),
396 fHistoTrueSecondaryConvGammaFromXFromLambdaMCPtESDPt(NULL),
397 fHistoTrueDalitzPsiPairDeltaPhi(NULL),
398 fHistoTrueGammaPsiPairDeltaPhi(NULL),
399 fHistoCombinatorialPt(NULL),
400 fHistoCombinatorialMothersPt(NULL),
401 fHistoCombinatorialPtDeltaPhi_ek(NULL),
402 fHistoCombinatorialPtDeltaPhi_ep(NULL),
403 fHistoCombinatorialPtDeltaPhi_epi(NULL),
404 fHistoCombinatorialPtDeltaPhi_pik(NULL),
405 fHistoCombinatorialPtDeltaPhi_pip(NULL),
406 fHistoDoubleCountTruePi0InvMassPt(NULL),
407 fHistoDoubleCountTrueEtaInvMassPt(NULL),
408 fHistoDoubleCountTrueConvGammaRPt(NULL),
409 vecDoubleCountTruePi0s(0),
410 vecDoubleCountTrueEtas(0),
411 vecDoubleCountTrueConvGammas(0),
412 fHistoMultipleCountTruePi0(NULL),
413 fHistoMultipleCountTrueEta(NULL),
414 fHistoMultipleCountTrueConvGamma(NULL),
415 mapMultipleCountTruePi0s(),
416 mapMultipleCountTrueEtas(),
417 mapMultipleCountTrueConvGammas(),
419 fHistoNEventsWeighted(NULL),
420 fHistoMCPi0WOEvtWeightPt(NULL),
421 fHistoMCEtaWOEvtWeightPt(NULL),
422 fHistoMCPi0PtJetPt(NULL),
423 fHistoMCEtaPtJetPt(NULL),
424 fHistoNEventsWOWeight(NULL),
425 fProfileEtaShift(NULL),
426 fProfileJetJetXSection(NULL),
427 fhJetJetNTrials(NULL),
428 fHistoNGoodESDTracks(NULL),
429 fHistoNGoodESDTracksWeighted(NULL),
431 fHistoVertexZWeighted(NULL),
432 fHistoCentrality(NULL),
433 fDoCentralityFlat(0),
434 fWeightCentrality(NULL),
435 fHistoCentralityFlattened(NULL),
436 fHistoCentralityVsPrimaryTracks(NULL),
437 fHistoNGammaCandidates(NULL),
438 fHistoNGoodESDTracksVsNGammaCandidates(NULL),
439 fHistoSPDClusterTrackletBackground(NULL),
440 fHistoV0MultVsNumberTPCoutTracks(NULL),
441 fHistoNV0Tracks(NULL),
442 fHistoEtaShift(NULL),
443 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
450 fEventPlaneAngle(-100),
452 fnGammaCandidates(0),
463 fMoveParticleAccordingToVertex(kTRUE),
465 fDoMesonAnalysis(kTRUE),
468 fDoChargedPrimary(kFALSE),
469 fDoPlotVsCentrality(kFALSE),
470 fIsFromSelectedHeader(kTRUE),
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(
Int_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3513 delete backgroundCandidate;
3514 backgroundCandidate = 0x0;
3521 if(previousEventV0s){
3527 for(
Int_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3551 delete backgroundCandidate;
3552 backgroundCandidate = 0x0;
3586 if (gamma0==NULL)
continue;
3587 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
3589 if (gamma1 == NULL)
continue;
3615 if(previousEventGammas){
3628 for(
Int_t iPrevious=0;iPrevious<previousEventGammas->size();iPrevious++){
3655 Double_t nRadiansPM = fNDegreesPMBackground*TMath::Pi()/180;
3656 Double_t rotationValue =
fRandom.Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM;
3657 gamma->RotateZ(rotationValue);
3663 previousEventEP=previousEventEP+TMath::Pi();
3664 thisEventEP=thisEventEP+TMath::Pi();
3665 Double_t rotationValue= thisEventEP-previousEventEP;
3666 gamma->RotateZ(rotationValue);
3698 if(pdgCode[0]==11 && pdgCode[1]==11){
3700 }
else if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3702 }
else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3704 }
else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3706 }
else if( (pdgCode[0]==11 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==11) ){
3708 }
else if( pdgCode[0]==211 && pdgCode[1]==211 ){
3710 }
else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3712 }
else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3714 }
else if( (pdgCode[0]==211 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==211) ){
3716 }
else if( pdgCode[0]==321 && pdgCode[1]==321 ){
3718 }
else if( (pdgCode[0]==321 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==321) ){
3720 }
else if( (pdgCode[0]==321 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==321) ){
3722 }
else if( pdgCode[0]==2212 && pdgCode[1]==2212 ){
3724 }
else if( (pdgCode[0]==2212 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==2212) ){
3726 }
else if( pdgCode[0]==13 && pdgCode[1]==13 ){
3733 if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3737 else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3741 else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3745 else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3749 else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3760 Int_t pdgCombPart = TMath::Abs(daughter->GetPdgCode());
3761 Int_t pdgMotherCombPart = TMath::Abs(motherCombPart->GetPdgCode());
3764 if(pdgCombPart==11){
3778 }
else if(pdgCombPart==211){