29 #include "THnSparse.h" 32 #include "AliAnalysisTask.h" 33 #include "AliAnalysisManager.h" 34 #include "AliESDEvent.h" 35 #include "AliESDInputHandler.h" 36 #include "AliMCEventHandler.h" 37 #include "AliMCEvent.h" 38 #include "AliMCParticle.h" 39 #include "AliCentrality.h" 40 #include "AliESDVZERO.h" 41 #include "AliESDpid.h" 43 #include "AliVParticle.h" 44 #include "AliESDtrack.h" 45 #include "AliESDtrackCuts.h" 46 #include "AliKFVertex.h" 48 #include "AliGenCocktailEventHeader.h" 49 #include "AliAODMCParticle.h" 50 #include "AliAODMCHeader.h" 51 #include "AliEventplane.h" 53 #include "AliAODEvent.h" 54 #include "AliAODInputHandler.h" 55 #include "AliESDEvent.h" 56 #include "AliESDInputHandler.h" 57 #include "AliInputEventHandler.h" 67 fV0ReaderName("V0ReaderV1"),
69 fDoLightOutput(kFALSE),
76 fHeaderNameList(NULL),
77 fOutputContainer(NULL),
78 fNClusterCandidates(0),
79 fNClusterMergedCandidates(0),
82 fClusterCutArray(NULL),
83 fClusterMergedCutArray(NULL),
86 fHistoMotherInvMassPt(NULL),
87 fHistoMotherPtY(NULL),
88 fHistoMotherPtAlpha(NULL),
89 fHistoClusGammaPt(NULL),
90 fHistoClusGammaE(NULL),
91 fHistoClusOverlapHeadersGammaPt(NULL),
92 fHistoClusNLMPt(NULL),
93 fHistoClusMergedPtvsM02(NULL),
94 fHistoClusMergedPtvsM02Accepted(NULL),
95 fHistoClusMergedEvsM02Accepted(NULL),
96 fHistoClusNCellsPt(NULL),
97 fHistoClusMergedNCellsPt(NULL),
98 fHistoClusMergedNParticlePt(NULL),
99 fHistoClusMergedNCellsAroundPt(NULL),
100 fHistoClusMergedNCellsAroundAndInPt(NULL),
101 fHistoClusMergedEAroundE(NULL),
102 fHistoMCHeaders(NULL),
104 fHistoMCPi0WOWeightPt(NULL),
105 fHistoMCPi0WOEvtWeightPt(NULL),
107 fHistoMCEtaWOWeightPt(NULL),
108 fHistoMCEtaWOEvtWeightPt(NULL),
109 fHistoMCPi0DalitzPt(NULL),
110 fHistoMCPi0DalitzWOWeightPt(NULL),
111 fHistoMCPi0DalitzWOEvtWeightPt(NULL),
112 fHistoMCEtaDalitzPt(NULL),
113 fHistoMCEtaDalitzWOWeightPt(NULL),
114 fHistoMCEtaDalitzWOEvtWeightPt(NULL),
115 fHistoMCPi0InAccPt(NULL),
116 fHistoMCEtaInAccPt(NULL),
117 fHistoMCPi0WOEvtWeightInAccPt(NULL),
118 fHistoMCEtaWOEvtWeightInAccPt(NULL),
119 fHistoMCPi0DalitzInAccPt(NULL),
120 fHistoMCEtaDalitzInAccPt(NULL),
121 fHistoMCPi0DalitzWOEvtWeightInAccPt(NULL),
122 fHistoMCEtaDalitzWOEvtWeightInAccPt(NULL),
123 fHistoMCSecPi0PtvsSource(NULL),
124 fHistoMCSecPi0InAccPtvsSource(NULL),
125 fHistoMCPi0PtJetPt(NULL),
126 fHistoMCEtaPtJetPt(NULL),
127 fHistoMCPrimaryPtvsSource(NULL),
128 fHistoMCPrimaryYvsSource(NULL),
129 fHistoMCDecayGammaPt(NULL),
130 fHistoMCAllGammaPt(NULL),
131 fHistoTrueClusMergedPtvsM02(NULL),
132 fHistoTrueClusPi0PtvsM02(NULL),
133 fHistoTrueClusPi0DalitzPtvsM02(NULL),
134 fHistoTrueClusPrimPi0PtvsM02(NULL),
135 fHistoTrueClusSecPi0PtvsM02(NULL),
136 fHistoTrueClusSecPi0FromK0sPtvsM02(NULL),
137 fHistoTrueClusSecPi0FromK0lPtvsM02(NULL),
138 fHistoTrueClusSecPi0FromLambdaPtvsM02(NULL),
139 fHistoTrueClusEtaPtvsM02(NULL),
140 fHistoTrueClusEtaDalitzPtvsM02(NULL),
141 fHistoTrueClusMergedPureFromPi0PtvsM02(NULL),
142 fHistoTrueClusMergedPureFromEtaPtvsM02(NULL),
143 fHistoTrueClusMergedPartConvFromPi0PtvsM02(NULL),
144 fHistoTrueClusMergedPartConvFromEtaPtvsM02(NULL),
145 fHistoTrueClusGammaFromPi0PtvsM02(NULL),
146 fHistoTrueClusGammaFromEtaPtvsM02(NULL),
147 fHistoTrueClusElectronFromPi0PtvsM02(NULL),
148 fHistoTrueClusElectronFromEtaPtvsM02(NULL),
149 fHistoTrueSecPi0PtvsDiffReco(NULL),
150 fHistoTrueClusBGPtvsM02(NULL),
151 fHistoTrueClusGammaPtvsM02(NULL),
152 fHistoTrueClusGammaPartConvPtvsM02(NULL),
153 fHistoTrueClusElectronPtvsM02(NULL),
154 fHistoTrueClusElectronFromGammaPtvsM02(NULL),
155 fHistoTrueClusMergedInvMassvsPt(NULL),
156 fHistoTrueClusPi0InvMassvsPt(NULL),
157 fHistoTrueClusPrimPi0InvMassvsPt(NULL),
158 fHistoTrueClusEtaInvMassvsPt(NULL),
159 fHistoTrueClusBGInvMassvsPt(NULL),
160 fHistoTrueClusGammaInvMassvsPt(NULL),
161 fHistoTrueClusElectronInvMassvsPt(NULL),
162 fHistoTrueClusBGPtvsSource(NULL),
163 fHistoTrueClusGammaPtvsSource(NULL),
164 fHistoTrueClusElectronPtvsSource(NULL),
168 fHistoTrueMergedMissedPDG(NULL),
169 fHistoTruePi0PtY(NULL),
170 fHistoTrueEtaPtY(NULL),
171 fHistoTruePi0PtAlpha(NULL),
172 fHistoTrueEtaPtAlpha(NULL),
173 fHistoTrueClusGammaEM02(NULL),
174 fHistoTrueClusElectronEM02(NULL),
175 fHistoTrueClusPi0EM02(NULL),
176 fHistoTrueClusEtaEM02(NULL),
177 fHistoTruePrimaryPi0PureMergedMCPtResolPt(NULL),
178 fHistoTruePrimaryPi0MergedPartConvMCPtResolPt(NULL),
179 fHistoTruePrimaryPi01GammaMCPtResolPt(NULL),
180 fHistoTruePrimaryPi01ElectronMCPtResolPt(NULL),
181 fHistoTruePrimaryEtaMCPtResolPt(NULL),
182 fHistoTrueSecondaryPi0MCPtResolPt(NULL),
183 fHistoDoubleCountTruePi0PtvsM02(NULL),
184 fHistoDoubleCountTrueSecPi0Pt(NULL),
185 fHistoDoubleCountTrueEtaPtvsM02(NULL),
186 fVectorDoubleCountTruePi0s(0),
187 fVectorDoubleCountTrueEtas(0),
189 fHistoNEventsWOWeight(NULL),
190 fHistoNGoodESDTracks(NULL),
192 fHistoNClusterCandidates(NULL),
193 fHistoNClusterMergedCandidates(NULL),
194 fHistoNGoodESDTracksVsNClusterCandidates(NULL),
195 fHistoSPDClusterTrackletBackground(NULL),
196 fHistoNV0Tracks(NULL),
197 fProfileEtaShift(NULL),
198 fProfileJetJetXSection(NULL),
199 fHistoJetJetNTrials(NULL),
206 fIsFromMBHeader(kTRUE),
207 fIsOverlappingWithOtherHeader(kFALSE),
209 fSetPlotHistsExtQA(kFALSE),
212 fEnableDetailedPrintOut(kFALSE),
213 fEnableSortForClusMC(kFALSE),
215 fFileNameBroken(NULL),
216 fDoDetailedM02(NULL),
217 fTrackMatcherRunningMode(0)
226 fV0ReaderName(
"V0ReaderV1"),
227 fCorrTaskSetting(
""),
228 fDoLightOutput(kFALSE),
235 fHeaderNameList(NULL),
236 fOutputContainer(NULL),
237 fNClusterCandidates(0),
238 fNClusterMergedCandidates(0),
239 fEventCutArray(NULL),
241 fClusterCutArray(NULL),
242 fClusterMergedCutArray(NULL),
243 fMesonCutArray(NULL),
245 fHistoMotherInvMassPt(NULL),
246 fHistoMotherPtY(NULL),
247 fHistoMotherPtAlpha(NULL),
248 fHistoClusGammaPt(NULL),
249 fHistoClusGammaE(NULL),
250 fHistoClusOverlapHeadersGammaPt(NULL),
251 fHistoClusNLMPt(NULL),
252 fHistoClusMergedPtvsM02(NULL),
253 fHistoClusMergedPtvsM02Accepted(NULL),
254 fHistoClusMergedEvsM02Accepted(NULL),
255 fHistoClusNCellsPt(NULL),
256 fHistoClusMergedNCellsPt(NULL),
257 fHistoClusMergedNParticlePt(NULL),
258 fHistoClusMergedNCellsAroundPt(NULL),
259 fHistoClusMergedNCellsAroundAndInPt(NULL),
260 fHistoClusMergedEAroundE(NULL),
261 fHistoMCHeaders(NULL),
263 fHistoMCPi0WOWeightPt(NULL),
264 fHistoMCPi0WOEvtWeightPt(NULL),
266 fHistoMCEtaWOWeightPt(NULL),
267 fHistoMCEtaWOEvtWeightPt(NULL),
268 fHistoMCPi0DalitzPt(NULL),
269 fHistoMCPi0DalitzWOWeightPt(NULL),
270 fHistoMCPi0DalitzWOEvtWeightPt(NULL),
271 fHistoMCEtaDalitzPt(NULL),
272 fHistoMCEtaDalitzWOWeightPt(NULL),
273 fHistoMCEtaDalitzWOEvtWeightPt(NULL),
274 fHistoMCPi0InAccPt(NULL),
275 fHistoMCEtaInAccPt(NULL),
276 fHistoMCPi0WOEvtWeightInAccPt(NULL),
277 fHistoMCEtaWOEvtWeightInAccPt(NULL),
278 fHistoMCPi0DalitzInAccPt(NULL),
279 fHistoMCEtaDalitzInAccPt(NULL),
280 fHistoMCPi0DalitzWOEvtWeightInAccPt(NULL),
281 fHistoMCEtaDalitzWOEvtWeightInAccPt(NULL),
282 fHistoMCSecPi0PtvsSource(NULL),
283 fHistoMCSecPi0InAccPtvsSource(NULL),
284 fHistoMCPi0PtJetPt(NULL),
285 fHistoMCEtaPtJetPt(NULL),
286 fHistoMCPrimaryPtvsSource(NULL),
287 fHistoMCPrimaryYvsSource(NULL),
288 fHistoMCDecayGammaPt(NULL),
289 fHistoMCAllGammaPt(NULL),
290 fHistoTrueClusMergedPtvsM02(NULL),
291 fHistoTrueClusPi0PtvsM02(NULL),
292 fHistoTrueClusPi0DalitzPtvsM02(NULL),
293 fHistoTrueClusPrimPi0PtvsM02(NULL),
294 fHistoTrueClusSecPi0PtvsM02(NULL),
295 fHistoTrueClusSecPi0FromK0sPtvsM02(NULL),
296 fHistoTrueClusSecPi0FromK0lPtvsM02(NULL),
297 fHistoTrueClusSecPi0FromLambdaPtvsM02(NULL),
298 fHistoTrueClusEtaPtvsM02(NULL),
299 fHistoTrueClusEtaDalitzPtvsM02(NULL),
300 fHistoTrueClusMergedPureFromPi0PtvsM02(NULL),
301 fHistoTrueClusMergedPureFromEtaPtvsM02(NULL),
302 fHistoTrueClusMergedPartConvFromPi0PtvsM02(NULL),
303 fHistoTrueClusMergedPartConvFromEtaPtvsM02(NULL),
304 fHistoTrueClusGammaFromPi0PtvsM02(NULL),
305 fHistoTrueClusGammaFromEtaPtvsM02(NULL),
306 fHistoTrueClusElectronFromPi0PtvsM02(NULL),
307 fHistoTrueClusElectronFromEtaPtvsM02(NULL),
308 fHistoTrueSecPi0PtvsDiffReco(NULL),
309 fHistoTrueClusBGPtvsM02(NULL),
310 fHistoTrueClusGammaPtvsM02(NULL),
311 fHistoTrueClusGammaPartConvPtvsM02(NULL),
312 fHistoTrueClusElectronPtvsM02(NULL),
313 fHistoTrueClusElectronFromGammaPtvsM02(NULL),
314 fHistoTrueClusMergedInvMassvsPt(NULL),
315 fHistoTrueClusPi0InvMassvsPt(NULL),
316 fHistoTrueClusPrimPi0InvMassvsPt(NULL),
317 fHistoTrueClusEtaInvMassvsPt(NULL),
318 fHistoTrueClusBGInvMassvsPt(NULL),
319 fHistoTrueClusGammaInvMassvsPt(NULL),
320 fHistoTrueClusElectronInvMassvsPt(NULL),
321 fHistoTrueClusBGPtvsSource(NULL),
322 fHistoTrueClusGammaPtvsSource(NULL),
323 fHistoTrueClusElectronPtvsSource(NULL),
327 fHistoTrueMergedMissedPDG(NULL),
328 fHistoTruePi0PtY(NULL),
329 fHistoTrueEtaPtY(NULL),
330 fHistoTruePi0PtAlpha(NULL),
331 fHistoTrueEtaPtAlpha(NULL),
332 fHistoTrueClusGammaEM02(NULL),
333 fHistoTrueClusElectronEM02(NULL),
334 fHistoTrueClusPi0EM02(NULL),
335 fHistoTrueClusEtaEM02(NULL),
336 fHistoTruePrimaryPi0PureMergedMCPtResolPt(NULL),
337 fHistoTruePrimaryPi0MergedPartConvMCPtResolPt(NULL),
338 fHistoTruePrimaryPi01GammaMCPtResolPt(NULL),
339 fHistoTruePrimaryPi01ElectronMCPtResolPt(NULL),
340 fHistoTruePrimaryEtaMCPtResolPt(NULL),
341 fHistoTrueSecondaryPi0MCPtResolPt(NULL),
342 fHistoDoubleCountTruePi0PtvsM02(NULL),
343 fHistoDoubleCountTrueSecPi0Pt(NULL),
344 fHistoDoubleCountTrueEtaPtvsM02(NULL),
345 fVectorDoubleCountTruePi0s(0),
346 fVectorDoubleCountTrueEtas(0),
348 fHistoNEventsWOWeight(NULL),
349 fHistoNGoodESDTracks(NULL),
351 fHistoNClusterCandidates(NULL),
352 fHistoNClusterMergedCandidates(NULL),
353 fHistoNGoodESDTracksVsNClusterCandidates(NULL),
354 fHistoSPDClusterTrackletBackground(NULL),
355 fHistoNV0Tracks(NULL),
356 fProfileEtaShift(NULL),
357 fProfileJetJetXSection(NULL),
358 fHistoJetJetNTrials(NULL),
365 fIsFromMBHeader(kTRUE),
366 fIsOverlappingWithOtherHeader(kFALSE),
368 fSetPlotHistsExtQA(kFALSE),
371 fEnableDetailedPrintOut(kFALSE),
372 fEnableSortForClusMC(kFALSE),
374 fFileNameBroken(NULL),
375 fDoDetailedM02(NULL),
376 fTrackMatcherRunningMode(0)
379 DefineOutput(1, TList::Class());
391 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
394 Int_t invMassBins = 800;
409 Int_t ptBinsDefClus = 500;
417 Int_t ptBinsLog = 200;
424 for(
Int_t i=0; i<ptBins+1;i++){
425 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
439 for(
Int_t i=0; i<ptBins+2;i++){
441 arrPtBinning[i] = 10.+0.1*i;
443 arrPtBinning[i] = 50.+0.2*(i-400);
445 arrPtBinning[i] = 70.+0.5*(i-500);
447 arrPtBinning[i] = 90.+1.0*(i-540);
449 arrPtBinning[i] = 120+2.0*(i-570);
454 ptBinsDefClus = 1000;
462 for(
Int_t i=0; i<ptBins+1;i++){
463 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
468 ptBinsDefClus = 1000;
472 for(
Int_t i=0; i<ptBins+1;i++){
473 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
477 Int_t showerShapeBins = 500;
547 fCutFolder[iCut]->SetName(Form(
"Cut Number %s_%s_%s_%s",cutstringEvent.Data(), cutstringCalo.Data(), cutstringCaloMerged.Data(), cutstringMeson.Data()));
551 fESDList[iCut]->SetName(Form(
"%s_%s_%s_%s ESD histograms",cutstringEvent.Data(), cutstringCalo.Data(), cutstringCaloMerged.Data(), cutstringMeson.Data()));
555 fHistoNEvents[iCut] =
new TH1F(
"NEvents",
"NEvents",14,-0.5,13.5);
557 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
558 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Miss. MC or inc. ev.");
560 TString TriggerNames =
"Not Trigger: ";
562 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
567 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
571 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problems");
572 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(11,
"rejectedForJetJetMC");
573 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
574 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
575 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(14,
"Pileup V0M-TPCout Tracks");
584 TString TriggerNames =
"Not Trigger: ";
617 fHistoVertexZ[iCut] =
new TH1F(
"VertexZ",
"VertexZ",1000,-50,50);
649 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",30000,-0.5,29999.5);
651 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",2500,-0.5,2499.5);
653 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",1500,-0.5,1499.5);
669 fHistoClusGammaPt[iCut] =
new TH1F(
"ClusGamma_Pt",
"ClusGamma_Pt",ptBinsDefClus, startPtDefClus, endPtDefClus);
671 fHistoClusGammaE[iCut] =
new TH1F(
"ClusGamma_E",
"ClusGamma_E",ptBinsDefClus, startPtDefClus, endPtDefClus);
675 fHistoClusMergedPtvsM02[iCut] =
new TH2F(
"ClusMerged_Pt_M02",
"ClusMerged_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
677 fHistoClusMergedPtvsM02Accepted[iCut] =
new TH2F(
"ClusMerged_Pt_M02_AcceptedMeson",
"ClusMerged_Pt_M02_AcceptedMeson",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
679 fHistoClusMergedEvsM02Accepted[iCut] =
new TH2F(
"ClusMerged_E_M02_AcceptedMeson",
"ClusMerged_E_M02_AcceptedMeson",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
681 fHistoClusNLMPt[iCut] =
new TH2F(
"ClusMerged_NLM_Pt_AcceptedMeson",
"ClusMerged_NLM_Pt_AcceptedMeson",12, -0.5, 11.5, ptBins, arrPtBinning);
696 fHistoClusNCellsPt[iCut] =
new TH2F(
"Clus_NCells_Pt",
"Clus_NCells_Pt",100,-0.5,99.5,ptBins, arrPtBinning);
704 fHistoClusMergedEAroundE[iCut] =
new TH2F(
"ClusMerged_EAroundClus_E",
"ClusMerged_EAroundClus_E",ptBinsDefClus, startPtDefClus, endPtDefClus, ptBins, arrPtBinning);
722 fHistoMotherInvMassPt[iCut] =
new TH2F(
"ESD_Mother_InvMass_Pt",
"ESD_Mother_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
730 fHistoMotherPtY[iCut] =
new TH2F(
"ESD_Mother_Pt_Y",
"ESD_Mother_Pt_Y", ptBinsLog, startPtLog, endPtLog, 150, -1.5, 1.5);
733 fHistoMotherPtAlpha[iCut] =
new TH2F(
"ESD_Mother_Pt_Alpha",
"ESD_Mother_Pt_Alpha", ptBinsLog, startPtLog, endPtLog, 100, 0, 1);
869 fMCList[iCut]->SetName(Form(
"%s_%s_%s_%s MC histograms",cutstringEvent.Data(),cutstringCalo.Data(),cutstringCaloMerged.Data(), cutstringMeson.Data()));
870 fMCList[iCut]->SetOwner(kTRUE);
874 fHistoMCPi0Pt[iCut] =
new TH1F(
"MC_Pi0_Pt",
"MC_Pi0_Pt",ptBins, arrPtBinning);
877 fHistoMCEtaPt[iCut] =
new TH1F(
"MC_Eta_Pt",
"MC_Eta_Pt",ptBins, arrPtBinning);
903 fHistoMCDecayGammaPt[iCut] =
new TH1F(
"MC_DecayGamma_Pt",
"MC_DecayGamma_Pt",ptBins, arrPtBinning);
906 fHistoMCAllGammaPt[iCut] =
new TH1F(
"MC_AllGamma_Pt",
"MC_AllGamma_Pt",ptBins, arrPtBinning);
911 fHistoMCPi0WOWeightPt[iCut] =
new TH1F(
"MC_Pi0_WOWeights_Pt",
"MC_Pi0_WOWeights_Pt",ptBins, arrPtBinning);
913 fHistoMCPi0InAccPt[iCut] =
new TH1F(
"MC_Pi0InAcc_Pt",
"MC_Pi0InAcc_Pt",ptBins, arrPtBinning);
916 fHistoMCPi0DalitzPt[iCut] =
new TH1F(
"MC_Pi0Dalitz_Pt",
"MC_Pi0Dalitz_Pt",ptBins, arrPtBinning);
935 fHistoMCEtaWOWeightPt[iCut] =
new TH1F(
"MC_Eta_WOWeights_Pt",
"MC_Eta_WOWeights_Pt",ptBins, arrPtBinning);
937 fHistoMCEtaInAccPt[iCut] =
new TH1F(
"MC_EtaInAcc_Pt",
"MC_EtaInAcc_Pt",ptBins, arrPtBinning);
940 fHistoMCEtaDalitzPt[iCut] =
new TH1F(
"MC_EtaDalitz_Pt",
"MC_EtaDalitz_Pt",ptBins, arrPtBinning);
954 fHistoMCPi0WOEvtWeightPt[iCut] =
new TH1F(
"MC_Pi0_WOEventWeights_Pt",
"MC_Pi0_WOEventWeights_Pt",ptBins, arrPtBinning);
968 fHistoMCEtaWOEvtWeightPt[iCut] =
new TH1F(
"MC_Eta_WOEventWeights_Pt",
"MC_Eta_WOEventWeights_Pt",ptBins, arrPtBinning);
979 fHistoMCPi0PtJetPt[iCut] =
new TH2F(
"MC_Pi0_Pt_JetPt",
"MC_Pi0_Pt_JetPt", ptBinsLog, startPtLog, endPtLog, 200, -0.5, 199.5);
985 fHistoMCEtaPtJetPt[iCut] =
new TH2F(
"MC_Eta_Pt_JetPt",
"MC_Eta_Pt_JetPt", ptBinsLog, startPtLog, endPtLog, 200, -0.5, 199.5);
994 fTrueList[iCut]->SetName(Form(
"%s_%s_%s_%s True histograms",cutstringEvent.Data(),cutstringCalo.Data(),cutstringCaloMerged.Data(), cutstringMeson.Data()));
998 fHistoTrueClusMergedPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMerged_Pt_M02",
"ESD_TrueClusMerged_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1000 fHistoTrueClusPi0PtvsM02 [iCut] =
new TH2F(
"ESD_TrueClusFromPi0_Pt_M02",
"ESD_TrueClusFromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1002 fHistoTrueClusPi0DalitzPtvsM02 [iCut] =
new TH2F(
"ESD_TrueClusFromPi0Dalitz_Pt_M02",
"ESD_TrueClusFromPi0Dalitz_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1004 fHistoTrueClusEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromEta_Pt_M02",
"ESD_TrueClusFromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1006 fHistoTrueClusEtaDalitzPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromEtaDalitz_Pt_M02",
"ESD_TrueClusFromEtaDalitz_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1008 fHistoTrueClusMergedPureFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMergedPureFromPi0_Pt_M02",
"ESD_TrueClusMergedPureFromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1010 fHistoTrueClusMergedPureFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMergedPureFromEta_Pt_M02",
"ESD_TrueClusMergedPureFromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1017 fHistoTrueClusBGPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusBG_Pt_M02",
"ESD_TrueClusBG_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1019 fHistoTrueClusGammaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_Pt_M02",
"ESD_TrueClusGamma_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1021 fHistoTrueClusGammaFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_FromPi0_Pt_M02",
"ESD_TrueClusGamma_FromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1023 fHistoTrueClusGammaFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_FromEta_Pt_M02",
"ESD_TrueClusGamma_FromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1025 fHistoTrueClusElectronPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_Pt_M02",
"ESD_TrueClusElectron_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1027 fHistoTrueClusElectronFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromPi0_Pt_M02",
"ESD_TrueClusElectron_FromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1029 fHistoTrueClusElectronFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromEta_Pt_M02",
"ESD_TrueClusElectron_FromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1031 fHistoTrueClusElectronFromGammaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromGamma_Pt_M02",
"ESD_TrueClusElectron_FromGamma_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1035 fHistoTrueClusPrimPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromPrimPi0_Pt_M02",
"ESD_TrueClusFromPrimPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1037 fHistoTrueClusSecPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0_Pt_M02",
"ESD_TrueClusFromSecPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1039 fHistoTrueClusSecPi0FromK0sPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromK0s_Pt_M02",
"ESD_TrueClusFromSecPi0FromK0s_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1041 fHistoTrueClusSecPi0FromK0lPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromK0l_Pt_M02",
"ESD_TrueClusFromSecPi0FromK0l_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1043 fHistoTrueClusSecPi0FromLambdaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromLambda_Pt_M02",
"ESD_TrueClusFromSecPi0FromLambda_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1045 fHistoTrueSecPi0PtvsDiffReco[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0_Pt_RecoMethod",
"ESD_TrueClusFromSecPi0_Pt_RecoMethod",ptBins, arrPtBinning, 4, -0.5, 3.5);
1065 fHistoDoubleCountTruePi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueDoubleCountPi0_Pt_M02",
"ESD_TrueDoubleCountPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1069 fHistoDoubleCountTrueEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueDoubleCountEta_Pt_M02",
"ESD_TrueDoubleCountEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1076 fHistoTrueClusPi0InvMassvsPt [iCut] =
new TH2F(
"ESD_TrueClusFromPi0_InvMass_Pt",
"ESD_TrueClusFromPi0_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1078 fHistoTrueClusEtaInvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusFromEta_InvMass_Pt",
"ESD_TrueClusFromEta_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1080 fHistoTrueClusBGInvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusBG_InvMass_Pt",
"ESD_TrueClusBG_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1087 fHistoTrueClusPrimPi0InvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusFromPrimPi0_InvMass_Pt",
"ESD_TrueClusFromPrimPi0_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1093 fHistoTrueClusGammaEM02[iCut] =
new TH2F(
"TrueClusGammaEM02",
"TrueClusGammaEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1095 fHistoTrueClusElectronEM02[iCut] =
new TH2F(
"TrueClusElectronEM02",
"TrueClusElectronEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1097 fHistoTrueClusPi0EM02[iCut] =
new TH2F(
"TrueClusPi0EM02",
"TrueClusPi0EM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1099 fHistoTrueClusEtaEM02[iCut] =
new TH2F(
"TrueClusEtaEM02",
"TrueClusEtaEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1102 fHistoTruePi0PtY[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Y",
"ESD_TruePi0_Pt_Y",ptBinsLog, startPtLog, endPtLog,150,-1.5,1.5);
1105 fHistoTruePi0PtAlpha[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Alpha",
"ESD_TruePi0_Pt_Alpha",ptBinsLog, startPtLog, endPtLog,100,0,1);
1125 fHistoTrueEtaPtY[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Y",
"ESD_TrueEta_Pt_Y",ptBinsLog, startPtLog, endPtLog,150,-1.5,1.5);
1128 fHistoTrueEtaPtAlpha[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Alpha",
"ESD_TrueEta_Pt_Alpha",ptBinsLog, startPtLog, endPtLog,100,0,0.5);
1221 for(
Int_t iMatcherTask = 0; iMatcherTask < 3; iMatcherTask++){
1282 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
1289 Bool_t doNonLinCorr = kTRUE;
1291 doNonLinCorr = kFALSE;
1293 doNonLinCorr = kTRUE;
1295 doNonLinCorr = kTRUE;
1297 doNonLinCorr = kFALSE;
1298 cout <<
"ERROR: something went wrong in the configuration, different non linearity corrections have been chosen in the standard and merged cluster, which are incompatible" << endl;
1299 cout <<
"INFO: switching off the non lin corr for merged cluster" << endl;
1319 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
1322 if(eventQuality == 2 || eventQuality == 3){
1347 Bool_t isRunningEMCALrelAna = kFALSE;
1355 if((xsection==-1.) || (ntrials==-1.)) AliFatal(Form(
"ERROR: GetXSectionAndNTrials returned invalid xsection/ntrials, periodName from V0Reader: '%s'",
fV0Reader->
GetPeriodName().Data()));
1369 Bool_t triggered = kTRUE;
1370 if(eventNotAccepted){
1374 if (eventNotAccepted==3 &&
fIsMC>0){
1381 if(eventQuality != 0){
1388 if (triggered == kTRUE) {
1414 else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1423 if (nameBin.CompareTo(
"")== 0){
1425 ->GetAcceptedHeader())->At(i))->GetString();
1426 fHistoMCHeaders[iCut]->GetXaxis()->SetBinLabel(i+1,nameHeader.Data());
1439 if (triggered==kFALSE)
continue;
1465 TClonesArray * arrClustersProcess = NULL;
1470 if(!arrClustersProcess)
1471 AliFatal(Form(
"%sClustersBranch was not found in AliAnalysisTaskGammaCaloMerged! Check the correction framework settings!",
fCorrTaskSetting.Data()));
1472 nclus = arrClustersProcess->GetEntries();
1477 if(nclus == 0)
return;
1494 InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1497 for(Long_t i = 0; i < nclus; i++){
1502 AliVCluster* clus = NULL;
1504 if(arrClustersProcess)
1505 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(i));
1507 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(i));
1508 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1509 if(arrClustersProcess)
1510 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(i));
1512 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(i));
1523 tempClusterWeight = 1;
1533 TLorentzVector clusterVector;
1534 clus->GetMomentum(clusterVector,vertex);
1536 TLorentzVector* tmpvec =
new TLorentzVector();
1537 tmpvec->SetPxPyPzE(clusterVector.Px(),clusterVector.Py(),clusterVector.Pz(),clusterVector.E());
1541 if(!PhotonCandidate){
1544 if (PhotonCandidate)
delete PhotonCandidate;
1554 Int_t* mclabelsCluster = clus->GetLabels();
1556 Int_t nValidClusters = 0;
1558 if (clus->GetNLabels()>0){
1559 for (
Int_t k =0; k< (
Int_t)clus->GetNLabels(); k++){
1561 if (mclabelsCluster[k]>0){
1564 if (nValidClusters< 50)PhotonCandidate->
SetCaloPhotonMCLabel(nValidClusters,mclabelsCluster[k]);
1582 if (clus->GetNLabels()>1){
1583 Int_t* mclabelsCluster = clus->GetLabels();
1584 for (
Int_t l = 1; l < (
Int_t)clus->GetNLabels(); l++ ){
1605 delete PhotonCandidate;
1612 delete PhotonCandidate;
1618 AliAODCaloCluster* clusSub1 =
new AliAODCaloCluster();
1619 AliAODCaloCluster* clusSub2 =
new AliAODCaloCluster();
1634 const Int_t nc = clus->GetNCells();
1635 Int_t absCellIdList[nc];
1646 TLorentzVector clusterVector1;
1647 clusSub1->GetMomentum(clusterVector1,vertex);
1648 TLorentzVector* tmpvec1 =
new TLorentzVector();
1649 tmpvec1->SetPxPyPzE(clusterVector1.Px(),clusterVector1.Py(),clusterVector1.Pz(),clusterVector1.E());
1652 if(!PhotonCandidate1){
1661 TLorentzVector clusterVector2;
1662 clusSub2->GetMomentum(clusterVector2,vertex);
1663 TLorentzVector* tmpvec2 =
new TLorentzVector();
1664 tmpvec2->SetPxPyPzE(clusterVector2.Px(),clusterVector2.Py(),clusterVector2.Pz(),clusterVector2.E());
1667 if(!PhotonCandidate2){
1693 for (
Int_t j = 0; j < nclus; j++){
1694 if (j == i)
continue;
1695 AliVCluster* clusTemp = NULL;
1697 if(arrClustersProcess)
1698 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(j));
1700 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(j));
1701 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1702 if(arrClustersProcess)
1703 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(j));
1705 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(j));
1716 nCellsAround = nCellsAround+clusTemp->GetNCells();
1717 energyAround = energyAround+clusTemp->E();
1732 if(
fIsMC> 0 && PhotonCandidate && PhotonCandidate1 && PhotonCandidate2){
1745 delete PhotonCandidate1;
1748 delete PhotonCandidate2;
1752 delete PhotonCandidate;
1763 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1764 Double_t mcProdVtxX = primVtxMC->GetX();
1765 Double_t mcProdVtxY = primVtxMC->GetY();
1766 Double_t mcProdVtxZ = primVtxMC->GetZ();
1769 TParticle *Photon = NULL;
1770 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
1783 if (!mesonIsSelected){
1787 Int_t pdgCodeParticle = Photon->GetPdgCode();
1790 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
1796 Int_t clusterClass = 0;
1803 Long_t motherLab = -1;
1835 TParticle *mother = NULL;
1836 Int_t motherPDG = -1;
1837 if (motherLab > -1){
1838 mother =
fMCEvent->Particle(motherLab);
1842 motherPDG = TMath::Abs(mother->GetPdgCode());
1853 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
1858 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
1859 if (motherPDG == 111){
1865 if (motherPDG == 221)
1868 if (motherPDG == 111){
1874 if (motherPDG == 221)
1876 }
else if (clusterClass == 2){
1877 if (motherPDG == 111){
1882 }
if (motherPDG == 221)
1884 }
else if (clusterClass == 3){
1885 if (motherPDG == 111) {
1891 if (motherPDG == 221)
1896 if (motherPDG == 111){
1905 if (TrueClusterCandidate->
IsDalitz()){
1922 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
1926 else if (clusterClass == 2)
1928 else if (clusterClass == 3)
1936 Int_t grandMaLab = mother->GetMother(0);
1937 if (grandMaLab > -1){
1938 if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 310){
1940 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 130){
1942 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 3122){
1949 }
else if (motherPDG == 221){
1951 if (TrueClusterCandidate->
IsDalitz()){
1978 if (motherLab == -1){
1981 if (motherPDG == 111)
1983 else if (motherPDG == 221)
1985 else if (motherPDG == 331)
1987 else if (motherPDG == 223)
1989 else if (motherPDG == 333)
1991 else if (motherPDG == 3122)
2007 Int_t motherLab = Photon->GetMother(0);
2008 mother =
fMCEvent->Particle(motherLab);
2011 motherPDG = TMath::Abs(mother->GetPdgCode());
2014 if (motherLab == -1){
2017 if (motherPDG == 22){
2020 }
else if (motherPDG == 111){
2022 }
else if (motherPDG == 221){
2024 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2026 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2028 }
else if (motherPDG == 23 || motherPDG == 24){
2030 }
else if (motherPDG == 15) {
2044 if (m02 >= 0 && m02 < maxM02){
2067 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2068 Double_t mcProdVtxX = primVtxMC->GetX();
2069 Double_t mcProdVtxY = primVtxMC->GetY();
2070 Double_t mcProdVtxZ = primVtxMC->GetZ();
2073 AliAODMCParticle *Photon = NULL;
2074 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2075 if (AODMCTrackArray){
2076 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
2082 AliInfo(
"AODMCTrackArray could not be loaded");
2093 if (!mesonIsSelected){
2097 Int_t pdgCodeParticle = Photon->GetPdgCode();
2100 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
2106 Int_t clusterClass = 0;
2113 Long_t motherLab = -1;
2133 if (TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 111 || TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 221 ){
2145 AliAODMCParticle *mother = NULL;
2146 Int_t motherPDG = -1;
2147 if (motherLab > -1){
2148 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(motherLab));
2152 motherPDG = TMath::Abs(mother->GetPdgCode());
2164 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
2169 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
2170 if (motherPDG == 111){
2176 if (motherPDG == 221)
2179 if (motherPDG == 111){
2185 if (motherPDG == 221)
2187 }
else if (clusterClass == 2){
2188 if (motherPDG == 111){
2193 }
if (motherPDG == 221)
2195 }
else if (clusterClass == 3){
2196 if (motherPDG == 111) {
2202 if (motherPDG == 221)
2207 if (motherPDG == 111){
2216 if (TrueClusterCandidate->
IsDalitz()){
2233 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
2237 else if (clusterClass == 2)
2239 else if (clusterClass == 3)
2247 Int_t grandMaLab = mother->GetMother();
2248 if (grandMaLab > -1){
2249 if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 310){
2251 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 130){
2253 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 3122){
2260 }
else if (motherPDG == 221){
2262 if (TrueClusterCandidate->
IsDalitz()){
2288 if (motherLab == -1){
2291 if (motherPDG == 111)
2293 else if (motherPDG == 221)
2295 else if (motherPDG == 331)
2297 else if (motherPDG == 223)
2299 else if (motherPDG == 333)
2301 else if (motherPDG == 3122)
2316 Int_t motherLab = Photon->GetMother();
2317 if (motherLab == -1){
2320 if (motherPDG == 22){
2323 }
else if (motherPDG == 111){
2325 }
else if (motherPDG == 221){
2327 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2329 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2331 }
else if (motherPDG == 23 || motherPDG == 24){
2333 }
else if (motherPDG == 15) {
2346 if (m02 >= 0 && m02 < maxM02){
2367 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2368 Double_t mcProdVtxX = primVtxMC->GetX();
2369 Double_t mcProdVtxY = primVtxMC->GetY();
2370 Double_t mcProdVtxZ = primVtxMC->GetZ();
2373 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2377 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2378 if (!particle)
continue;
2380 Int_t isMCFromMBHeader = -1;
2390 if (particle->Energy() != TMath::Abs(particle->Pz())){
2391 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2393 if( !(ratio <= 0) ){
2398 if ( particle->GetPdgCode() == 211 ){
2400 }
else if ( particle->GetPdgCode() == -211 ){
2402 }
else if ( particle->GetPdgCode() == 321 ){
2404 }
else if ( particle->GetPdgCode() == -321 ){
2406 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2408 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2410 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2415 if ( particle->GetPdgCode() == 211 ){
2417 }
else if ( particle->GetPdgCode() == -211 ){
2419 }
else if ( particle->GetPdgCode() == 321 ){
2421 }
else if ( particle->GetPdgCode() == -321 ){
2423 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2425 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2427 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2429 }
else if ( particle->GetPdgCode() == 22 ){
2431 if(particle->GetMother(0) > -1){
2432 TParticle* mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2433 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2434 TMath::Abs(mother->GetPdgCode()) == 113 ||
2435 TMath::Abs(mother->GetPdgCode()) == 221 ||
2436 TMath::Abs(mother->GetPdgCode()) == 223 ||
2437 TMath::Abs(mother->GetPdgCode()) == 331 ||
2438 TMath::Abs(mother->GetPdgCode()) == 333 ||
2439 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2440 TMath::Abs(mother->GetPdgCode()) == 213
2451 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2452 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2456 if (particle->Pt()>0.005){
2461 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2470 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2484 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2496 Int_t gammaLabel = -1;
2497 Int_t electronLabel = -1;
2498 Int_t positronLabel = -1;
2502 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2503 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2504 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2505 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2509 if (particle->Pt()>0.005){
2534 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2552 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2553 if (!particle)
continue;
2555 Int_t isMCFromMBHeader = -1;
2566 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2567 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2568 TParticle* mother = NULL;
2569 Int_t motherPDG = -1000000;
2570 if (particle->GetMother(0) > -1){
2571 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2573 motherPDG = TMath::Abs(mother->GetPdgCode());
2576 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2584 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2591 Int_t gammaLabel = -1;
2592 Int_t electronLabel = -1;
2593 Int_t positronLabel = -1;
2597 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2598 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2599 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2600 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2602 TParticle* mother = NULL;
2603 Int_t motherPDG = -1000000;
2604 if (particle->GetMother(0) > -1){
2605 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2607 motherPDG = TMath::Abs(mother->GetPdgCode());
2610 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2619 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2633 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2634 Double_t mcProdVtxX = primVtxMC->GetX();
2635 Double_t mcProdVtxY = primVtxMC->GetY();
2636 Double_t mcProdVtxZ = primVtxMC->GetZ();
2638 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2639 if (AODMCTrackArray == NULL)
return;
2642 for(Long_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2644 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2645 if (!particle)
continue;
2650 Int_t isMCFromMBHeader = -1;
2660 if (particle->E() != TMath::Abs(particle->Pz())){
2661 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2663 if( !(ratio <= 0) ){
2668 if ( particle->GetPdgCode() == 211 ){
2670 }
else if ( particle->GetPdgCode() == -211 ){
2672 }
else if ( particle->GetPdgCode() == 321 ){
2674 }
else if ( particle->GetPdgCode() == -321 ){
2676 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2678 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2680 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2685 if ( particle->GetPdgCode() == 211 ){
2687 }
else if ( particle->GetPdgCode() == -211 ){
2689 }
else if ( particle->GetPdgCode() == 321 ){
2691 }
else if ( particle->GetPdgCode() == -321 ){
2693 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2695 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2697 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2699 }
else if ( particle->GetPdgCode() == 22 ){
2701 if(particle->GetMother() > -1){
2702 AliAODMCParticle *mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2703 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2704 TMath::Abs(mother->GetPdgCode()) == 113 ||
2705 TMath::Abs(mother->GetPdgCode()) == 221 ||
2706 TMath::Abs(mother->GetPdgCode()) == 223 ||
2707 TMath::Abs(mother->GetPdgCode()) == 331 ||
2708 TMath::Abs(mother->GetPdgCode()) == 333 ||
2709 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2710 TMath::Abs(mother->GetPdgCode()) == 213
2721 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2722 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2726 if (particle->Pt()>0.005){
2731 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2740 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2754 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2766 Int_t gammaLabel = -1;
2767 Int_t electronLabel = -1;
2768 Int_t positronLabel = -1;
2772 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2773 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2774 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2775 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
2779 if (particle->Pt()>0.005){
2804 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2822 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2823 if (!particle)
continue;
2825 Int_t isMCFromMBHeader = -1;
2835 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2836 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2837 AliAODMCParticle* mother = NULL;
2838 Int_t motherPDG = -1000000;
2839 if (particle->GetMother() > -1){
2840 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2842 motherPDG = TMath::Abs(mother->GetPdgCode());
2845 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2853 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2860 Int_t gammaLabel = -1;
2861 Int_t electronLabel = -1;
2862 Int_t positronLabel = -1;
2866 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2867 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2868 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2869 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
2871 AliAODMCParticle* mother = NULL;
2872 Int_t motherPDG = -1000000;
2873 if (particle->GetMother() > -1){
2874 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2876 motherPDG = TMath::Abs(mother->GetPdgCode());
2879 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2888 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2902 TAxis *axisafter = histoRebin->GetXaxis();
2903 Int_t bins = axisafter->GetNbins();
2904 Double_t from = axisafter->GetXmin();
2905 Double_t to = axisafter->GetXmax();
2908 Double_t factor = TMath::Power(to/from, 1./bins);
2909 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
2910 axisafter->Set(bins, newbins);
2917 if(tobechecked > -1)
2919 vector<Int_t>::iterator it;
2920 it = find (vec.begin(), vec.end(), tobechecked);
2921 if (it != vec.end())
return true;
2923 vec.push_back(tobechecked);
2940 if( ma.find(tobechecked) != ma.end() ) ma[tobechecked] += 1;
2941 else ma[tobechecked] = 2;
2947 map<Int_t, Int_t>::iterator it;
2948 for (it = ma.begin(); it != ma.end(); it++){
2959 if (daughter == 111) {
2960 if (TMath::Abs(pdgCode) == 310)
return 1;
2961 else if (TMath::Abs(pdgCode) == 3122)
return 2;
2962 else if (TMath::Abs(pdgCode) == 130)
return 3;
2963 else if (TMath::Abs(pdgCode) == 2212)
return 4;
2964 else if (TMath::Abs(pdgCode) == 2112)
return 5;
2965 else if (TMath::Abs(pdgCode) == 211)
return 6;
2966 else if (TMath::Abs(pdgCode) == 321)
return 7;
2967 else if (TMath::Abs(pdgCode) == 113 || TMath::Abs(pdgCode) == 213 )
return 8;
2968 else if (TMath::Abs(pdgCode) == 3222 || TMath::Abs(pdgCode) == 3212 || TMath::Abs(pdgCode) == 3112 )
return 9;
2969 else if (TMath::Abs(pdgCode) == 2224 || TMath::Abs(pdgCode) == 2214 || TMath::Abs(pdgCode) == 2114 || TMath::Abs(pdgCode) == 1114 )
return 10;
2970 else if (TMath::Abs(pdgCode) == 313 || TMath::Abs(pdgCode) == 323 )
return 11;
TH2F ** fHistoClusMergedNCellsPt
array of histos with cluster NCells vs Pt
TH1F ** fHistoNGoodESDTracks
array of histos with event information without event weights
TH2F ** fHistoTrueClusElectronPtvsSource
TH1F ** fHistoMCPi0DalitzInAccPt
array of histos without evt weight eta in acceptance, pT
TH2F ** fHistoTrueClusMergedInvMassvsPt
TH2F ** fHistoTruePrimaryEtaMCPtResolPt
array of histos with validated weighted primary pi0, MCpt, resol pt
TH2F ** fHistoTrueClusGammaInvMassvsPt
TH2F ** fHistoTrueClusBGInvMassvsPt
TH2F ** fHistoClusMergedNCellsAroundPt
array of histos with merged cluster N MC paricles in cluster vs Pt
TH2F ** fHistoTruePi0PtAlpha
array of histos with validated eta, pt, Y
void SetCaloClusterRef(Long_t ref)
TH1F ** fHistoClusOverlapHeadersGammaPt
array of histos with cluster, E
TH2F ** fHistoTrueClusMergedPureFromEtaPtvsM02
void FillMultipleCountHistoAndClear(map< Int_t, Int_t > &ma, TH1F *hist)
TObjString * fFileNameBroken
TH2F ** fHistoMotherPtAlpha
array of histograms with signal +BG pt, Y
void SetCaloPhotonMCFlags(AliMCEvent *mcEvent, Bool_t enableSort)
TH1F ** fHistoMCPi0InAccPt
array of histos without event weights eta Dalitz, pT
TH2F ** fHistoTrueClusGammaFromEtaPtvsM02
TH2F ** fHistoTruePrimaryPi0MergedPartConvMCPtResolPt
array of histos with validated weighted primary pi0, MCpt, resol pt
TH1F ** fHistoMCEtaDalitzWOWeightPt
array of histos with weighted eta Dalitz, pT
TH2F ** fHistoTrueEtaPtAlpha
array of histos with validated pi0, pt, alpha
TH1F ** fHistoMCPi0DalitzPt
array of histos without event weights eta, pT
TH2F ** fHistoTrueClusEtaDalitzPtvsM02
TH2F ** fHistoTrueClusPi0DalitzPtvsM02
TH1F ** fHistoMCAllGammaPt
array of histos with weighted decay gamma
TH2F ** fHistoTrueClusBGPtvsSource
Int_t GetNumberOfPrimaryTracks()
TH2F ** fHistoTrueClusElectronInvMassvsPt
TH2F ** fHistoTrueClusElectronFromPi0PtvsM02
Int_t fNClusterCandidates
TH1F ** fHistoClusGammaE
array of histos with cluster, pt
TH2F ** fHistoMCPrimaryPtvsSource
array of histos with weighted eta, pT, hardest jet pt
TH2F ** fHistoSPDClusterTrackletBackground
array of histos with number of good tracks vs gamma candidates
TH2F ** fHistoMCSecPi0InAccPtvsSource
array of histos with weighted pi0 from sec, pT for different sources
TH2F ** fHistoTrueClusPi0PtvsM02
TString GetCurrentFileName()
TH1F ** fHistoNEvents
vector containing labels of validated eta
virtual Int_t GetLabel(Int_t i) const
AliAnalysisTaskGammaCaloMerged()
TH2F ** fHistoTrueClusEtaEM02
array of histos with validated pi0, E, m02
TH2F ** fHistoTrueSecPi0PtvsDiffReco
TH2F ** fHistoTrueClusEtaPtvsM02
TH1F ** fHistoNEventsWOWeight
array of histos with event information
void SetCaloPhotonMCLabel(Int_t i, Int_t labelCaloPhoton)
TH2F ** fHistoClusMergedNCellsAroundAndInPt
array of histos with number of cells surrounding merged cluster vs merged cluster Pt ...
TH2F ** fHistoTrueClusSecPi0FromK0lPtvsM02
TH1F ** fHistoClusGammaPt
array of histograms with signal +BG pt, alpha
Int_t GetCaloPhotonMotherMCLabel(Int_t i)
TH1F ** fHistoMCEtaWOEvtWeightPt
array of histos with unweighted eta, pT
TH1I ** fHistoMCHeaders
array of histos with E surrounding merged cluster vs merged cluster E
virtual void UserCreateOutputObjects()
TH1F ** fHistoMCDecayGammaPt
array of histos with weighted primary particles, Y vs source
TH2F ** fHistoTrueClusEtaInvMassvsPt
void PrintCaloMCLabelsAndInfo(AliMCEvent *mcEvent)
TH2F ** fHistoClusNCellsPt
array of histos with cluster merged accepted mesons, E vs M02
TH1F ** fHistoMCPi0DalitzWOWeightPt
array of histos with weighted pi0 Dalitz, pT
TH2F ** fHistoTrueClusPrimPi0PtvsM02
TH2F ** fHistoTrueClusGammaPtvsM02
TH2F ** fHistoClusMergedEvsM02Accepted
array of histos with cluster merged accepted mesons, pt vs M02
Bool_t fIsOverlappingWithOtherHeader
TH2F ** fHistoClusMergedPtvsM02Accepted
array of histos with cluster merged, pt vs M02
TH1F ** fHistoMCEtaDalitzPt
array of histos without event weights pi0 Dalitz, pT
Class handling all kinds of selection cuts for Gamma Calo analysis.
TH2F ** fHistoClusMergedEAroundE
array of histos with number of cells surrounding merged cluster + Ncells in clus vs merged cluster Pt...
TH1F ** fHistoNClusterMergedCandidates
array of histos with number of cluster candidates per event
TH2F ** fHistoMCPrimaryYvsSource
array of histos with weighted primary particles, pT vs source
TH1F ** fHistoMCEtaDalitzWOEvtWeightPt
array of histos with unweighted eta Dalitz, pT
TH1F ** fHistoMCPi0WOWeightPt
array of histos with weighted pi0, pT
TList * fClusterMergedCutArray
TH2F ** fHistoTrueClusSecPi0FromK0sPtvsM02
Bool_t CheckVectorForDoubleCount(vector< Int_t > &vec, Int_t tobechecked)
TH1F ** fHistoMCPi0WOEvtWeightPt
array of histos with unweighted pi0, pT
TH1F ** fHistoNClusterCandidates
array of histos with vertex z distribution for selected events
Int_t fNClusterMergedCandidates
current number of cluster candidates
Bool_t fEnableDetailedPrintOut
AliConversionPhotonCuts * GetConversionCuts()
TH1F ** fHistoMCPi0WOEvtWeightInAccPt
array of histos with weighted eta in acceptance, pT
TH2F ** fHistoMotherPtY
array of histogram with signal + BG for same event photon pairs, inv Mass, pt
void ProcessTrueClusterCandidatesAOD(AliAODConversionPhoton *TruePhotonCandidate, Float_t m02, AliAODConversionPhoton *TrueSubClusterCandidate1, AliAODConversionPhoton *TrueSubClusterCandidate2)
virtual ~AliAnalysisTaskGammaCaloMerged()
TH2F ** fHistoMCPi0PtJetPt
array of histos with weighted pi0 from sec in acceptance, pT for different sources ...
TH1F ** fHistoNV0Tracks
array of histos with SPD tracklets vs SPD clusters for background rejection
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH2F ** fHistoTrueClusMergedPartConvFromPi0PtvsM02
TH2F ** fHistoTrueSecondaryPi0MCPtResolPt
array of histos with validated weighted primary eta, MCpt, resol pt
TH1F ** fHistoJetJetNTrials
array of profiles with xsection for jetjet
TH2F ** fHistoTrueClusPrimPi0InvMassvsPt
Bool_t IsLargestComponentElectron()
virtual void UserExec(Option_t *)
TH2F ** fHistoTruePrimaryPi01GammaMCPtResolPt
array of histos with validated weighted primary pi0, MCpt, resol pt
TH1F ** fHistoMCEtaDalitzInAccPt
array of histos with weighted pi0 dalitz in acceptance, pT
Int_t fTrackMatcherRunningMode
TH1F ** fHistoMCPi0Pt
array of histos for header names
TH1F ** fHistoMCEtaDalitzWOEvtWeightInAccPt
array of histos without evt weight pi0 in acceptance, pT
TH2F ** fHistoTrueClusPi0EM02
array of histos with validated electrons, E, m02
TH2F ** fHistoTrueClusElectronFromGammaPtvsM02
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
Int_t GetCaloPhotonMCLabel(Int_t i)
TH2F ** fHistoClusMergedNParticlePt
array of histos with merged cluster NCells vs Pt
TH1F ** fHistoMCEtaWOEvtWeightInAccPt
array of histos without evt weight pi0 in acceptance, pT
Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode)
Int_t GetNCaloPhotonMCLabels()
TH2F ** fHistoTrueClusGammaEM02
array of histos with validated eta, pt, alpha
TList * GetCaloTrackMatcherHistograms()
void SetLogBinningXTH2(TH2 *histoRebin)
TH2F ** fHistoDoubleCountTrueEtaPtvsM02
array of histos with double counted secondary pi0s, pT, M02
TH2F ** fHistoTrueClusBGPtvsM02
virtual void Terminate(const Option_t *)
TH2F ** fHistoClusMergedPtvsM02
array of histos with cluster NLM vs Pt
TProfile ** fProfileEtaShift
array of histos with V0 counts
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH2F ** fHistoMCEtaPtJetPt
array of histos with weighted pi0, pT, hardest jet pt
TH2F ** fHistoTrueClusElectronPtvsM02
TH2F ** fHistoDoubleCountTruePi0PtvsM02
array of histos with validated weighted secondary pi0, MCpt, resol pt
TH2F ** fHistoTrueClusMergedPtvsM02
array of histos with weighted all gamma
AliV0ReaderV1 * fV0Reader
Double_t GetAlpha() const
void SetNCaloPhotonMCLabels(Int_t nLabels)
Bool_t IsConversionFullyContained()
TH1F ** fHistoDoubleCountTrueSecPi0Pt
array of histos with double counted pi0s, pT, M02
TH1F ** fHistoMCEtaPt
array of histos without event weights pi0, pT
void ProcessMCParticles()
TH1F ** fHistoMCEtaWOWeightPt
array of histos with weighted eta, pT
void ProcessTrueClusterCandidates(AliAODConversionPhoton *TruePhotonCandidate, Float_t m02, AliAODConversionPhoton *TrueSubClusterCandidate1, AliAODConversionPhoton *TrueSubClusterCandidate2)
TH2F ** fHistoTrueClusGammaFromPi0PtvsM02
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH1F ** fHistoMCPi0DalitzWOEvtWeightInAccPt
array of histos with weighted eta dalitz in acceptance, pT
TH2F ** fHistoNGoodESDTracksVsNClusterCandidates
array of histos with number of merged cluster candidates per event
TH2F ** fHistoMCSecPi0PtvsSource
array of histos without evt weight eta in acceptance, pT
TH2F ** fHistoMotherInvMassPt
TH1F ** fHistoMCPi0DalitzWOEvtWeightPt
array of histos with unweighted pi0 Dalitz, pT
TH2F ** fHistoTrueClusElectronFromEtaPtvsM02
TH2F ** fHistoTrueClusSecPi0PtvsM02
Int_t GetNCaloPhotonMotherMCLabels()
AliConvEventCuts * GetEventCuts()
Bool_t IsElectronFromFragPhoton()
TList * fEventCutArray
current number of merged cluster candidates
TH2F ** fHistoTrueClusMergedPartConvFromEtaPtvsM02
TH1F ** fHistoMCEtaInAccPt
array of histos with weighted pi0 in acceptance, pT
TH2F ** fHistoTruePrimaryPi01ElectronMCPtResolPt
array of histos with validated weighted primary pi0, MCpt, resol pt
TProfile ** fProfileJetJetXSection
array of profiles with eta shift
vector< Int_t > fVectorDoubleCountTrueEtas
vector containing labels of validated pi0
Bool_t fSetPlotHistsExtQA
TH1F ** fHistoVertexZ
array of histos with number of good tracks (2010 Standard track cuts)
vector< Int_t > fVectorDoubleCountTruePi0s
array of histos with double counted etas, pT, M02
void SetCaloPhotonMCFlagsAOD(AliVEvent *event, Bool_t enableSort)
TH2F ** fHistoTrueClusGammaPtvsSource
TH2F ** fHistoTrueClusMergedPureFromPi0PtvsM02
TH2F ** fHistoTrueClusPi0InvMassvsPt
TH2F ** fHistoTruePrimaryPi0PureMergedMCPtResolPt
array of histos with validated eta, E, m02
Int_t GetSelectedMesonID()
void ProcessAODMCParticles()
TH2F ** fHistoClusNLMPt
array of histos with cluster, pt overlapping with other headers
TH2F ** fHistoTrueEtaPtY
array of histos with validated pi0, pt, Y
Bool_t IsLargestComponentPhoton()
void FillMultipleCountMap(map< Int_t, Int_t > &ma, Int_t tobechecked)
Bool_t fEnableSortForClusMC
TH2F ** fHistoTrueClusSecPi0FromLambdaPtvsM02
TH1F ** fHistoTrueMergedMissedPDG
Bool_t IsMergedPartConv()
TH2F ** fHistoTrueClusElectronEM02
array of histos with validated gamma, E, m02