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);
902 fPhotonDCAList[iCut]->SetName(Form(
"%s_%s_%s Photon DCA tree",cutstringEvent.Data(),cutstringPhoton.Data(),cutstringMeson.Data()));
929 fHistoConvGammaR[iCut] =
new TH1F(
"ESD_ConvGamma_R",
"ESD_ConvGamma_R",800,0,200);
932 fHistoConvGammaEta[iCut] =
new TH1F(
"ESD_ConvGamma_Eta",
"ESD_ConvGamma_Eta",2000,-2,2);
935 fHistoConvGammaPhi[iCut] =
new TH1F(
"ESD_ConvGamma_Phi",
"ESD_ConvGamma_Phi",360,0,2*TMath::Pi());
956 fMesonDCAList[iCut]->SetName(Form(
"%s_%s_%s Meson DCA tree",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
1000 sPtRDeltaROpenAngle[iCut] =
new THnSparseF(
"PhotonPair_Pt_R_DeltaR_OpenAngle",
"PhotonPair_Pt_R_DeltaR_OpenAngle",nDim2,nBins2,xMin2,xMax2);
1139 TString cutstringMeson =
"NoMesonCut";
1144 fMCList[iCut]->SetName(Form(
"%s_%s_%s MC histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
1145 fMCList[iCut]->SetOwner(kTRUE);
1204 fHistoMCPi0Pt[iCut] =
new TH1F(
"MC_Pi0_Pt",
"MC_Pi0_Pt",250,0,25);
1211 fHistoMCEtaPt[iCut] =
new TH1F(
"MC_Eta_Pt",
"MC_Eta_Pt",250,0,25);
1294 fHistoMCPi0PtY[iCut] =
new TH2F(
"MC_Pi0_Pt_Y",
"MC_Pi0_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1298 fHistoMCEtaPtY[iCut] =
new TH2F(
"MC_Eta_Pt_Y",
"MC_Eta_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1311 fTrueList[iCut]->SetName(Form(
"%s_%s_%s True histograms",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
1359 fHistoCombinatorialMothersPt[iCut] =
new TH3F(
"ESD_TrueCombinatorialMothers_Pt",
"ESD_TrueCombinatorialMothers_Pt",6,0,6,13,0,13,250,0,25);
1518 fHistoTruePi0PtY[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Y",
"ESD_TruePi0_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1521 fHistoTrueEtaPtY[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Y",
"ESD_TrueEta_Pt_Y",150,0.03,15.,150,-1.5,1.5);
1553 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
1623 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
1651 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
1653 if(eventQuality == 2 || eventQuality == 3){
1677 AliEventplane *EventPlane =
fInputEvent->GetEventplane();
1694 if((xsection==-1.) || (ntrials==-1.)) AliFatal(Form(
"ERROR: GetXSectionAndNTrials returned invalid xsection/ntrials, periodName from V0Reader: '%s'",
fV0Reader->
GetPeriodName().Data()));
1715 if(eventNotAccepted){
1723 if(eventQuality != 0){
1777 else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1787 if (nameBin.CompareTo(
"")== 0){
1789 ->GetAcceptedHeader())->At(i))->GetString();
1791 fHistoMCHeaders[iCut]->GetXaxis()->SetBinLabel(i+1,nameHeader.Data());
1885 if(!PhotonCandidate)
continue;
1888 Float_t weightMatBudgetGamma = 1.;
1895 Int_t isPosFromMBHeader
1898 Int_t isNegFromMBHeader
1935 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
1942 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
1955 GammaCandidatesStepOne->Add(PhotonCandidate);
1958 GammaCandidatesStepTwo->Add(PhotonCandidate);
1962 for(
Int_t i = 0;i<GammaCandidatesStepOne->GetEntries();i++){
1964 if(!PhotonCandidate)
continue;
1967 Float_t weightMatBudgetGamma = 1.;
1974 Int_t isPosFromMBHeader
1976 Int_t isNegFromMBHeader
2007 if (
fIsHeavyIon ==1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
2014 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
2024 }
else GammaCandidatesStepTwo->Add(PhotonCandidate);
2028 for(
Int_t i = 0;i<GammaCandidatesStepTwo->GetEntries();i++){
2030 if(!PhotonCandidate)
continue;
2033 Float_t weightMatBudgetGamma = 1.;
2039 Int_t isPosFromMBHeader
2041 Int_t isNegFromMBHeader
2071 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
2078 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
2091 delete GammaCandidatesStepOne;
2092 GammaCandidatesStepOne = 0x0;
2093 delete GammaCandidatesStepTwo;
2094 GammaCandidatesStepTwo = 0x0;
2100 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2101 Double_t mcProdVtxX = primVtxMC->GetX();
2102 Double_t mcProdVtxY = primVtxMC->GetY();
2103 Double_t mcProdVtxZ = primVtxMC->GetZ();
2106 if( magField < 0.0 ){
2113 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2114 if (AODMCTrackArray != NULL && TruePhotonCandidate != NULL){
2116 AliAODMCParticle *posDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelPositive());
2117 AliAODMCParticle *negDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelNegative());
2120 if(posDaughter == NULL || negDaughter == NULL)
return;
2121 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2123 Double_t PhiParticle[2] = {posDaughter->Phi(),negDaughter->Phi()};
2125 if(posDaughter->GetMother() != negDaughter->GetMother()){
2128 if(posDaughter->GetMother() > -1){
2129 AliAODMCParticle *Mom = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
2130 if(Mom->GetMother() == -1){
2133 AliAODMCParticle *GranMom = (AliAODMCParticle*) AODMCTrackArray->At(Mom->GetMother());
2134 if(GranMom->GetMother() == -1){
2137 AliAODMCParticle *GranGranMom = (AliAODMCParticle*) AODMCTrackArray->At(GranMom->GetMother());
2138 if(GranGranMom->GetMother() == -1){
2144 if(negDaughter->GetMother() > -1){
2145 AliAODMCParticle *Mom = (AliAODMCParticle*) AODMCTrackArray->At(negDaughter->GetMother());
2146 if(Mom->GetMother() == -1){
2149 AliAODMCParticle *GranMom = (AliAODMCParticle*) AODMCTrackArray->At(Mom->GetMother());
2150 if(GranMom->GetMother() == -1){
2153 AliAODMCParticle *GranGranMom = (AliAODMCParticle*) AODMCTrackArray->At(GranMom->GetMother());
2154 if(GranGranMom->GetMother() == -1){
2164 else if(posDaughter->GetMother() == -1){
2174 if(pdgCode[0]!=11 || pdgCode[1]!=11){
2178 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode()){
2183 AliAODMCParticle *Photon = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
2186 Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->Phi()-positronCandidate->Phi());
2188 if(Photon->GetPdgCode() != 22){
2194 if(((posDaughter->GetMCProcessCode())) != 5 || ((negDaughter->GetMCProcessCode())) != 5){
2201 rConv = sqrt( (posDaughter->Xv()*posDaughter->Xv()) + (posDaughter->Yv()*posDaughter->Yv()) );
2205 Float_t weightMatBudgetGamma = 1.;
2235 if(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother() > -1 && ((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetMother() > -1 ){
2236 if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 310){
2241 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 130) {
2246 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 3122) {
2251 }
else if (((AliAODMCParticle*)AODMCTrackArray->At(((AliAODMCParticle*)AODMCTrackArray->At(Photon->GetMother()))->GetMother()))->GetPdgCode() == 221) {
2271 if( magField < 0.0 ){
2278 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2279 Double_t mcProdVtxX = primVtxMC->GetX();
2280 Double_t mcProdVtxY = primVtxMC->GetY();
2281 Double_t mcProdVtxZ = primVtxMC->GetZ();
2289 if(posDaughter == NULL || negDaughter == NULL)
return;
2290 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2292 Double_t PhiParticle[2] = {posDaughter->Phi(),negDaughter->Phi()};
2295 if(posDaughter->GetMother(0) != negDaughter->GetMother(0)){
2298 if(posDaughter->GetMother(0) > -1){
2299 TParticle *Mom =
fMCEvent->Particle(posDaughter->GetMother(0));
2300 if(Mom->GetMother(0) == -1){
2303 TParticle *GranMom =
fMCEvent->Particle(Mom->GetMother(0));
2304 if(GranMom->GetMother(0) == -1){
2307 TParticle *GranGranMom =
fMCEvent->Particle(GranMom->GetMother(0));
2308 if(GranGranMom->GetMother(0) == -1){
2314 if(negDaughter->GetMother(0) > -1){
2315 TParticle *Mom =
fMCEvent->Particle(negDaughter->GetMother(0));
2316 if(Mom->GetMother(0) == -1){
2319 TParticle *GranMom =
fMCEvent->Particle(Mom->GetMother(0));
2320 if(GranMom->GetMother(0) == -1){
2323 TParticle *GranGranMom =
fMCEvent->Particle(GranMom->GetMother(0));
2324 if(GranGranMom->GetMother(0) == -1){
2332 }
else if(posDaughter->GetMother(0) == -1){
2341 if(pdgCode[0]!=11 || pdgCode[1]!=11)
return;
2343 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode())
return;
2348 Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->Phi()-positronCandidate->Phi());
2350 if(Photon->GetPdgCode() != 22){
2355 if(posDaughter->GetUniqueID() != 5 || negDaughter->GetUniqueID() !=5)
return;
2358 Float_t weightMatBudgetGamma = 1.;
2391 if( Photon->GetMother(0) > -1 &&
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0) > -1){
2392 if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2397 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2402 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2407 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 221) {
2426 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2427 Double_t mcProdVtxX = primVtxMC->GetX();
2428 Double_t mcProdVtxY = primVtxMC->GetY();
2429 Double_t mcProdVtxZ = primVtxMC->GetZ();
2431 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2433 if (AODMCTrackArray){
2435 for(
Int_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2437 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2438 if (!particle)
continue;
2443 Int_t isMCFromMBHeader = -1;
2453 if(particle->GetMother() >-1){
2454 switch((static_cast<AliAODMCParticle*>(AODMCTrackArray->At(particle->GetMother())))->GetPdgCode()){
2481 for(
Int_t daughterIndex=particle->GetDaughter(0);daughterIndex<=particle->GetDaughter(1);daughterIndex++){
2482 AliAODMCParticle *tmpDaughter =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(daughterIndex));
2483 if(!tmpDaughter)
continue;
2484 if(TMath::Abs(tmpDaughter->GetPdgCode()) == 11){
2485 rConv = sqrt( (tmpDaughter->Xv()*tmpDaughter->Xv()) + (tmpDaughter->Yv()*tmpDaughter->Yv()) );
2499 if (particle->E() != TMath::Abs(particle->Pz())){
2500 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2502 if( !(ratio <= 0) ){
2507 if ( particle->GetPdgCode() == 211 ){
2509 }
else if ( particle->GetPdgCode() == -211 ){
2511 }
else if ( particle->GetPdgCode() == 321 ){
2513 }
else if ( particle->GetPdgCode() == -321 ){
2515 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2517 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2519 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2521 }
else if ( TMath::Abs(particle->GetPdgCode()) == 223 ){
2523 }
else if ( TMath::Abs(particle->GetPdgCode()) == 333 ){
2525 }
else if ( TMath::Abs(particle->GetPdgCode()) == 113 ){
2531 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2532 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2535 if (particle->Pt()>0.005){
2545 if (particle->E() != TMath::Abs(particle->Pz())){
2546 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2548 if( !(ratio <= 0) ){
2553 if (particle->GetPdgCode() == 111 || particle->GetPdgCode() == 221){
2554 alpha = TMath::Abs((daughter0->E() - daughter1->E()))/(daughter0->E() + daughter1->E());
2557 if(particle->GetPdgCode() == 111){
2566 }
else if(particle->GetPdgCode() == 221){
2583 if(particle->GetPdgCode() == 111){
2587 }
else if(particle->GetPdgCode() == 221){
2597 Int_t isMCFromMBHeader = -1;
2606 if (particle->GetMother() > -1) {
2607 AliAODMCParticle *tmpMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2608 if (tmpMother->GetMother() > -1) {
2609 AliAODMCParticle *tmpGrandMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(tmpMother->GetMother()));
2610 if(tmpGrandMother->GetPdgCode() == 310) {
2612 }
else if (tmpGrandMother->GetPdgCode() == 130) {
2614 }
else if (tmpGrandMother->GetPdgCode() == 3122) {
2617 if ( !(TMath::Abs(tmpMother->GetPdgCode()) == 11 && tmpGrandMother->GetPdgCode() == 22) )
2629 if (particle->GetMother() > -1) {
2630 AliAODMCParticle *tmpMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2631 if (tmpMother->GetMother() > -1) {
2632 AliAODMCParticle *tmpGrandMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(tmpMother->GetMother()));
2633 if(tmpGrandMother->GetPdgCode() == 310) {
2635 }
else if (tmpGrandMother->GetPdgCode() == 130) {
2637 }
else if (tmpGrandMother->GetPdgCode() == 3122) {
2640 if ( !(TMath::Abs(tmpMother->GetPdgCode()) == 11 && tmpGrandMother->GetPdgCode() == 22) )
2654 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2655 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2656 AliAODMCParticle* mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2657 Int_t pdgCode = mother->GetPdgCode();
2658 if(particle->GetPdgCode() == 111){
2662 }
else if(particle->GetPdgCode() == 221){
2672 if(particle->GetPdgCode() == 111){
2687 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2688 Double_t mcProdVtxX = primVtxMC->GetX();
2689 Double_t mcProdVtxY = primVtxMC->GetY();
2690 Double_t mcProdVtxZ = primVtxMC->GetZ();
2694 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2698 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2699 if (!particle)
continue;
2701 Int_t isMCFromMBHeader = -1;
2711 if(particle->GetMother(0) >-1){
2712 switch(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()){
2748 if (particle->Energy() != TMath::Abs(particle->Pz())){
2749 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2751 if( !(ratio <= 0) ){
2756 if ( particle->GetPdgCode() == 211 ){
2758 }
else if ( particle->GetPdgCode() == -211 ){
2760 }
else if ( particle->GetPdgCode() == 321 ){
2762 }
else if ( particle->GetPdgCode() == -321 ){
2764 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2766 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2768 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2770 }
else if ( TMath::Abs(particle->GetPdgCode()) == 223 ){
2772 }
else if ( TMath::Abs(particle->GetPdgCode()) == 333 ){
2774 }
else if ( TMath::Abs(particle->GetPdgCode()) == 113 ){
2781 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2782 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2786 if (particle->Pt()>0.005){
2795 if (particle->Energy() != TMath::Abs(particle->Pz())){
2796 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2798 if( !(ratio <= 0) ){
2803 if (particle->GetPdgCode() == 111 || particle->GetPdgCode() == 221){
2804 alpha = TMath::Abs((daughter0->Energy() - daughter1->Energy()))/(daughter0->Energy() + daughter1->Energy());
2807 if(particle->GetPdgCode() == 111){
2816 }
else if(particle->GetPdgCode() == 221){
2831 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2837 if(particle->GetPdgCode() == 111){
2841 }
else if(particle->GetPdgCode() == 221){
2851 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2852 if (!particle)
continue;
2854 Int_t isMCFromMBHeader = -1;
2863 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
2864 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2866 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2868 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2871 if ( !(TMath::Abs(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()) == 11 &&
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 22) )
2880 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
2881 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
2883 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
2885 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
2888 if ( !(TMath::Abs(
fMCEvent->Particle(particle->GetMother(0))->GetPdgCode()) == 11 &&
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 22) )
2899 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2900 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2902 if(particle->GetFirstMother()>-1) pdgCode = ((TParticle*)
fMCEvent->Particle( particle->GetFirstMother() ))->GetPdgCode();
2903 if(particle->GetPdgCode() == 111){
2907 Double_t deltaX = particle->Vx() - mcProdVtxX;
2908 Double_t deltaY = particle->Vy() - mcProdVtxY;
2909 Double_t deltaZ = particle->Vz() - mcProdVtxZ;
2910 Double_t realRadius3D = TMath::Sqrt(deltaX*deltaX+deltaY*deltaY+deltaZ*deltaZ);
2913 }
else if(particle->GetPdgCode() == 221){
2923 if(particle->GetPdgCode() == 111){
2941 if (gamma0==NULL)
continue;
2942 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
2945 if (gamma1==NULL)
continue;
2952 pi0cand->
SetLabels(firstGammaIndex,secondGammaIndex);
2971 if ( pi0cand->M() > 0.05 && pi0cand->M() < 0.17){
2979 if ( pi0cand->M() > 0.45 && pi0cand->M() < 0.65){
3000 sparesFill[0] = pi0cand->M();
3001 sparesFill[1] = pi0cand->Pt();
3012 sparesFill[0] = pi0cand->M();
3013 sparesFill[1] = pi0cand->Pt();
3031 fPt = pi0cand->Pt();
3046 }
else if (
fPt > 0.299 &&
fPt < 20. ) {
3062 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3063 Double_t mcProdVtxX = primVtxMC->GetX();
3064 Double_t mcProdVtxY = primVtxMC->GetY();
3065 Double_t mcProdVtxZ = primVtxMC->GetZ();
3069 Bool_t isTruePi0 = kFALSE;
3070 Bool_t isTrueEta = kFALSE;
3071 Bool_t isTruePi0Dalitz = kFALSE;
3072 Bool_t isTrueEtaDalitz = kFALSE;
3073 Bool_t gamma0DalitzCand = kFALSE;
3074 Bool_t gamma1DalitzCand = kFALSE;
3076 Int_t gamma0MotherLabel = -1;
3077 if(gamma0MCLabel != -1){
3081 TParticle * gammaMC0 = (TParticle*)
fMCEvent->Particle(gamma0MCLabel);
3082 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3083 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3084 if(gammaMC0->GetPdgCode() == 22){
3085 gamma0MotherLabel=gammaMC0->GetFirstMother();
3088 if(gammaMC0->GetPdgCode() ==111){
3089 gamma0DalitzCand = kTRUE;
3090 gamma0MotherLabel=-111;
3092 if(gammaMC0->GetPdgCode() ==221){
3093 gamma0DalitzCand = kTRUE;
3094 gamma0MotherLabel=-221;
3100 Int_t gamma1MotherLabel = -1;
3101 if(gamma1MCLabel != -1){
3105 TParticle * gammaMC1 = (TParticle*)
fMCEvent->Particle(gamma1MCLabel);
3106 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3107 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3108 if(gammaMC1->GetPdgCode() == 22){
3109 gamma1MotherLabel=gammaMC1->GetFirstMother();
3112 if(gammaMC1->GetPdgCode() ==111 ){
3113 gamma1DalitzCand = kTRUE;
3114 gamma1MotherLabel=-111;
3116 if(gammaMC1->GetPdgCode() ==221){
3117 gamma1DalitzCand = kTRUE;
3118 gamma1MotherLabel=-221;
3122 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3123 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() == 111){
3130 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() == 221){
3140 if (gamma1DalitzCand || gamma0DalitzCand){
3141 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3142 if (gamma0MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3143 if (gamma0MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3145 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3146 if (gamma1MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3147 if (gamma1MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3152 if(isTruePi0 || isTrueEta){
3162 if ( Pi0Candidate->M() > 0.05 && Pi0Candidate->M() < 0.17){
3170 }
else if (isTrueEta){
3171 if ( Pi0Candidate->M() > 0.45 && Pi0Candidate->M() < 0.65){
3183 if(!isPrimary && gamma1MotherLabel>-1){
3184 Long_t secMotherLabel = ((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetMother(0);
3192 if (secMotherLabel >-1){
3193 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==310){
3198 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==130){
3203 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==221){
3208 if(
fMCEvent->Particle(secMotherLabel)->GetPdgCode()==3122){
3218 if (((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->Pt()>0.005){
3238 }
else if(!isTruePi0 && !isTrueEta){
3240 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3247 if( isTruePi0Dalitz || isTrueEtaDalitz ){
3251 }
else if (gamma0DalitzCand || gamma1DalitzCand){
3262 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3263 Double_t mcProdVtxX = primVtxMC->GetX();
3264 Double_t mcProdVtxY = primVtxMC->GetY();
3265 Double_t mcProdVtxZ = primVtxMC->GetZ();
3268 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3269 Bool_t isTruePi0 = kFALSE;
3270 Bool_t isTrueEta = kFALSE;
3271 Bool_t isTruePi0Dalitz = kFALSE;
3272 Bool_t isTrueEtaDalitz = kFALSE;
3273 Bool_t gamma0DalitzCand = kFALSE;
3274 Bool_t gamma1DalitzCand = kFALSE;
3276 if (AODMCTrackArray!=NULL && TrueGammaCandidate0 != NULL){
3277 AliAODMCParticle *positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelPositive()));
3278 AliAODMCParticle *negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelNegative()));
3281 Int_t gamma0MCLabel = -1;
3282 Int_t gamma0MotherLabel = -1;
3283 if(!positiveMC||!negativeMC)
3286 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3287 gamma0MCLabel = positiveMC->GetMother();
3290 if(gamma0MCLabel != -1){
3292 AliAODMCParticle * gammaMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma0MCLabel));
3293 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3294 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3295 if(gammaMC0->GetPdgCode() == 22){
3296 gamma0MotherLabel=gammaMC0->GetMother();
3299 if(gammaMC0->GetPdgCode() ==111){
3300 gamma0DalitzCand = kTRUE;
3301 gamma0MotherLabel=-111;
3303 if(gammaMC0->GetPdgCode() ==221){
3304 gamma0DalitzCand = kTRUE;
3305 gamma0MotherLabel=-221;
3309 positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelPositive()));
3310 negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelNegative()));
3312 Int_t gamma1MCLabel = -1;
3313 Int_t gamma1MotherLabel = -1;
3314 if(!positiveMC||!negativeMC)
3317 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3318 gamma1MCLabel = positiveMC->GetMother();
3320 if(gamma1MCLabel != -1){
3322 AliAODMCParticle * gammaMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MCLabel));
3323 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3324 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3325 if(gammaMC1->GetPdgCode() == 22){
3326 gamma1MotherLabel=gammaMC1->GetMother();
3329 if(gammaMC1->GetPdgCode() ==111 ){
3330 gamma1DalitzCand = kTRUE;
3331 gamma1MotherLabel=-111;
3333 if(gammaMC1->GetPdgCode() ==221){
3334 gamma1DalitzCand = kTRUE;
3335 gamma1MotherLabel=-221;
3339 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3340 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() == 111){
3347 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() == 221){
3357 if (gamma1DalitzCand || gamma0DalitzCand){
3358 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3359 if (gamma0MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3360 if (gamma0MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3362 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3363 if (gamma1MotherLabel == -111) isTruePi0Dalitz = kTRUE;
3364 if (gamma1MotherLabel == -221) isTrueEtaDalitz = kTRUE;
3368 if(isTruePi0 || isTrueEta){
3378 if ( Pi0Candidate->M() > 0.05 && Pi0Candidate->M() < 0.17){
3385 }
else if (isTrueEta){
3386 if ( Pi0Candidate->M() > 0.45 && Pi0Candidate->M() < 0.65){
3398 Long_t secMotherLabel =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->GetMother();
3406 if (secMotherLabel >-1){
3407 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==310){
3412 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==130){
3417 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==221){
3422 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==3122){
3432 if (static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt()>0.005){
3444 (Pi0Candidate->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*weightMatBudget);
3449 (Pi0Candidate->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*weightMatBudget);
3453 }
else if(!isTruePi0 && !isTrueEta) {
3455 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3462 if( isTruePi0Dalitz || isTrueEtaDalitz ){
3466 }
else if (gamma0DalitzCand || gamma1DalitzCand){
3495 Double_t massBGprob = backgroundCandidateProb->M();
3496 if(massBGprob>0.1 && massBGprob<0.14){
3498 delete backgroundCandidateProb;
3502 delete backgroundCandidateProb;
3503 backgroundCandidateProb = 0x0;
3519 delete backgroundCandidate;
3520 backgroundCandidate = 0x0;
3536 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3557 delete backgroundCandidate;
3558 backgroundCandidate = 0x0;
3565 if(previousEventV0s){
3571 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3595 delete backgroundCandidate;
3596 backgroundCandidate = 0x0;
3629 if (gamma0==NULL)
continue;
3630 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
3632 if (gamma1 == NULL)
continue;
3658 if(previousEventGammas){
3671 for(
UInt_t iPrevious=0;iPrevious<previousEventGammas->size();iPrevious++){
3698 Double_t nRadiansPM = fNDegreesPMBackground*TMath::Pi()/180;
3699 Double_t rotationValue =
fRandom.Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM;
3700 gamma->RotateZ(rotationValue);
3706 previousEventEP=previousEventEP+TMath::Pi();
3707 thisEventEP=thisEventEP+TMath::Pi();
3708 Double_t rotationValue= thisEventEP-previousEventEP;
3709 gamma->RotateZ(rotationValue);
3741 if(pdgCode[0]==11 && pdgCode[1]==11){
3743 }
else if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3745 }
else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3747 }
else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3749 }
else if( (pdgCode[0]==11 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==11) ){
3751 }
else if( pdgCode[0]==211 && pdgCode[1]==211 ){
3753 }
else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3755 }
else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3757 }
else if( (pdgCode[0]==211 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==211) ){
3759 }
else if( pdgCode[0]==321 && pdgCode[1]==321 ){
3761 }
else if( (pdgCode[0]==321 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==321) ){
3763 }
else if( (pdgCode[0]==321 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==321) ){
3765 }
else if( pdgCode[0]==2212 && pdgCode[1]==2212 ){
3767 }
else if( (pdgCode[0]==2212 && pdgCode[1]==13) || (pdgCode[0]==13 && pdgCode[1]==2212) ){
3769 }
else if( pdgCode[0]==13 && pdgCode[1]==13 ){
3776 if( (pdgCode[0]==11 && pdgCode[1]==211) || (pdgCode[0]==211 && pdgCode[1]==11) ){
3780 else if( (pdgCode[0]==11 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==11) ){
3784 else if( (pdgCode[0]==11 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==11) ){
3788 else if( (pdgCode[0]==211 && pdgCode[1]==321) || (pdgCode[0]==321 && pdgCode[1]==211) ){
3792 else if( (pdgCode[0]==211 && pdgCode[1]==2212) || (pdgCode[0]==2212 && pdgCode[1]==211) ){
3803 Int_t pdgCombPart = TMath::Abs(daughter->GetPdgCode());
3804 Int_t pdgMotherCombPart = TMath::Abs(motherCombPart->GetPdgCode());
3807 if(pdgCombPart==11){
3821 }
else if(pdgCombPart==211){