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),
225 fV0ReaderName(
"V0ReaderV1"),
226 fCorrTaskSetting(
""),
227 fDoLightOutput(kFALSE),
234 fHeaderNameList(NULL),
235 fOutputContainer(NULL),
236 fNClusterCandidates(0),
237 fNClusterMergedCandidates(0),
238 fEventCutArray(NULL),
240 fClusterCutArray(NULL),
241 fClusterMergedCutArray(NULL),
242 fMesonCutArray(NULL),
244 fHistoMotherInvMassPt(NULL),
245 fHistoMotherPtY(NULL),
246 fHistoMotherPtAlpha(NULL),
247 fHistoClusGammaPt(NULL),
248 fHistoClusGammaE(NULL),
249 fHistoClusOverlapHeadersGammaPt(NULL),
250 fHistoClusNLMPt(NULL),
251 fHistoClusMergedPtvsM02(NULL),
252 fHistoClusMergedPtvsM02Accepted(NULL),
253 fHistoClusMergedEvsM02Accepted(NULL),
254 fHistoClusNCellsPt(NULL),
255 fHistoClusMergedNCellsPt(NULL),
256 fHistoClusMergedNParticlePt(NULL),
257 fHistoClusMergedNCellsAroundPt(NULL),
258 fHistoClusMergedNCellsAroundAndInPt(NULL),
259 fHistoClusMergedEAroundE(NULL),
260 fHistoMCHeaders(NULL),
262 fHistoMCPi0WOWeightPt(NULL),
263 fHistoMCPi0WOEvtWeightPt(NULL),
265 fHistoMCEtaWOWeightPt(NULL),
266 fHistoMCEtaWOEvtWeightPt(NULL),
267 fHistoMCPi0DalitzPt(NULL),
268 fHistoMCPi0DalitzWOWeightPt(NULL),
269 fHistoMCPi0DalitzWOEvtWeightPt(NULL),
270 fHistoMCEtaDalitzPt(NULL),
271 fHistoMCEtaDalitzWOWeightPt(NULL),
272 fHistoMCEtaDalitzWOEvtWeightPt(NULL),
273 fHistoMCPi0InAccPt(NULL),
274 fHistoMCEtaInAccPt(NULL),
275 fHistoMCPi0WOEvtWeightInAccPt(NULL),
276 fHistoMCEtaWOEvtWeightInAccPt(NULL),
277 fHistoMCPi0DalitzInAccPt(NULL),
278 fHistoMCEtaDalitzInAccPt(NULL),
279 fHistoMCPi0DalitzWOEvtWeightInAccPt(NULL),
280 fHistoMCEtaDalitzWOEvtWeightInAccPt(NULL),
281 fHistoMCSecPi0PtvsSource(NULL),
282 fHistoMCSecPi0InAccPtvsSource(NULL),
283 fHistoMCPi0PtJetPt(NULL),
284 fHistoMCEtaPtJetPt(NULL),
285 fHistoMCPrimaryPtvsSource(NULL),
286 fHistoMCPrimaryYvsSource(NULL),
287 fHistoMCDecayGammaPt(NULL),
288 fHistoMCAllGammaPt(NULL),
289 fHistoTrueClusMergedPtvsM02(NULL),
290 fHistoTrueClusPi0PtvsM02(NULL),
291 fHistoTrueClusPi0DalitzPtvsM02(NULL),
292 fHistoTrueClusPrimPi0PtvsM02(NULL),
293 fHistoTrueClusSecPi0PtvsM02(NULL),
294 fHistoTrueClusSecPi0FromK0sPtvsM02(NULL),
295 fHistoTrueClusSecPi0FromK0lPtvsM02(NULL),
296 fHistoTrueClusSecPi0FromLambdaPtvsM02(NULL),
297 fHistoTrueClusEtaPtvsM02(NULL),
298 fHistoTrueClusEtaDalitzPtvsM02(NULL),
299 fHistoTrueClusMergedPureFromPi0PtvsM02(NULL),
300 fHistoTrueClusMergedPureFromEtaPtvsM02(NULL),
301 fHistoTrueClusMergedPartConvFromPi0PtvsM02(NULL),
302 fHistoTrueClusMergedPartConvFromEtaPtvsM02(NULL),
303 fHistoTrueClusGammaFromPi0PtvsM02(NULL),
304 fHistoTrueClusGammaFromEtaPtvsM02(NULL),
305 fHistoTrueClusElectronFromPi0PtvsM02(NULL),
306 fHistoTrueClusElectronFromEtaPtvsM02(NULL),
307 fHistoTrueSecPi0PtvsDiffReco(NULL),
308 fHistoTrueClusBGPtvsM02(NULL),
309 fHistoTrueClusGammaPtvsM02(NULL),
310 fHistoTrueClusGammaPartConvPtvsM02(NULL),
311 fHistoTrueClusElectronPtvsM02(NULL),
312 fHistoTrueClusElectronFromGammaPtvsM02(NULL),
313 fHistoTrueClusMergedInvMassvsPt(NULL),
314 fHistoTrueClusPi0InvMassvsPt(NULL),
315 fHistoTrueClusPrimPi0InvMassvsPt(NULL),
316 fHistoTrueClusEtaInvMassvsPt(NULL),
317 fHistoTrueClusBGInvMassvsPt(NULL),
318 fHistoTrueClusGammaInvMassvsPt(NULL),
319 fHistoTrueClusElectronInvMassvsPt(NULL),
320 fHistoTrueClusBGPtvsSource(NULL),
321 fHistoTrueClusGammaPtvsSource(NULL),
322 fHistoTrueClusElectronPtvsSource(NULL),
326 fHistoTrueMergedMissedPDG(NULL),
327 fHistoTruePi0PtY(NULL),
328 fHistoTrueEtaPtY(NULL),
329 fHistoTruePi0PtAlpha(NULL),
330 fHistoTrueEtaPtAlpha(NULL),
331 fHistoTrueClusGammaEM02(NULL),
332 fHistoTrueClusElectronEM02(NULL),
333 fHistoTrueClusPi0EM02(NULL),
334 fHistoTrueClusEtaEM02(NULL),
335 fHistoTruePrimaryPi0PureMergedMCPtResolPt(NULL),
336 fHistoTruePrimaryPi0MergedPartConvMCPtResolPt(NULL),
337 fHistoTruePrimaryPi01GammaMCPtResolPt(NULL),
338 fHistoTruePrimaryPi01ElectronMCPtResolPt(NULL),
339 fHistoTruePrimaryEtaMCPtResolPt(NULL),
340 fHistoTrueSecondaryPi0MCPtResolPt(NULL),
341 fHistoDoubleCountTruePi0PtvsM02(NULL),
342 fHistoDoubleCountTrueSecPi0Pt(NULL),
343 fHistoDoubleCountTrueEtaPtvsM02(NULL),
344 fVectorDoubleCountTruePi0s(0),
345 fVectorDoubleCountTrueEtas(0),
347 fHistoNEventsWOWeight(NULL),
348 fHistoNGoodESDTracks(NULL),
350 fHistoNClusterCandidates(NULL),
351 fHistoNClusterMergedCandidates(NULL),
352 fHistoNGoodESDTracksVsNClusterCandidates(NULL),
353 fHistoSPDClusterTrackletBackground(NULL),
354 fHistoNV0Tracks(NULL),
355 fProfileEtaShift(NULL),
356 fProfileJetJetXSection(NULL),
357 fHistoJetJetNTrials(NULL),
364 fIsFromMBHeader(kTRUE),
365 fIsOverlappingWithOtherHeader(kFALSE),
367 fSetPlotHistsExtQA(kFALSE),
370 fEnableDetailedPrintOut(kFALSE),
371 fEnableSortForClusMC(kFALSE),
373 fFileNameBroken(NULL),
377 DefineOutput(1, TList::Class());
389 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
392 Int_t invMassBins = 800;
407 Int_t ptBinsDefClus = 500;
415 Int_t ptBinsLog = 200;
422 for(
Int_t i=0; i<ptBins+1;i++){
423 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
435 for(
Int_t i=0; i<ptBins+2;i++){
437 arrPtBinning[i] = 10.+0.1*i;
439 arrPtBinning[i] = 50.+0.2*(i-400);
441 arrPtBinning[i] = 70.+0.5*(i-500);
443 arrPtBinning[i] = 90.+1.0*(i-540);
445 arrPtBinning[i] = 120+2.0*(i-570);
450 ptBinsDefClus = 1000;
459 for(
Int_t i=0; i<ptBins+1;i++){
460 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
465 ptBinsDefClus = 1000;
469 for(
Int_t i=0; i<ptBins+1;i++){
470 arrPtBinning[i] = 10.+((endPt-startPt)/ptBins)*i;
474 Int_t showerShapeBins = 500;
544 fCutFolder[iCut]->SetName(Form(
"Cut Number %s_%s_%s_%s",cutstringEvent.Data(), cutstringCalo.Data(), cutstringCaloMerged.Data(), cutstringMeson.Data()));
548 fESDList[iCut]->SetName(Form(
"%s_%s_%s_%s ESD histograms",cutstringEvent.Data(), cutstringCalo.Data(), cutstringCaloMerged.Data(), cutstringMeson.Data()));
552 fHistoNEvents[iCut] =
new TH1F(
"NEvents",
"NEvents",14,-0.5,13.5);
554 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
555 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Miss. MC or inc. ev.");
557 TString TriggerNames =
"Not Trigger: ";
559 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
564 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
568 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problems");
569 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(11,
"rejectedForJetJetMC");
570 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
571 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
572 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(14,
"Pileup V0M-TPCout Tracks");
581 TString TriggerNames =
"Not Trigger: ";
614 fHistoVertexZ[iCut] =
new TH1F(
"VertexZ",
"VertexZ",1000,-50,50);
646 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",30000,-0.5,29999.5);
648 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",2500,-0.5,2499.5);
650 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity",1500,-0.5,1499.5);
666 fHistoClusGammaPt[iCut] =
new TH1F(
"ClusGamma_Pt",
"ClusGamma_Pt",ptBinsDefClus, startPtDefClus, endPtDefClus);
668 fHistoClusGammaE[iCut] =
new TH1F(
"ClusGamma_E",
"ClusGamma_E",ptBinsDefClus, startPtDefClus, endPtDefClus);
672 fHistoClusMergedPtvsM02[iCut] =
new TH2F(
"ClusMerged_Pt_M02",
"ClusMerged_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
674 fHistoClusMergedPtvsM02Accepted[iCut] =
new TH2F(
"ClusMerged_Pt_M02_AcceptedMeson",
"ClusMerged_Pt_M02_AcceptedMeson",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
676 fHistoClusMergedEvsM02Accepted[iCut] =
new TH2F(
"ClusMerged_E_M02_AcceptedMeson",
"ClusMerged_E_M02_AcceptedMeson",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
678 fHistoClusNLMPt[iCut] =
new TH2F(
"ClusMerged_NLM_Pt_AcceptedMeson",
"ClusMerged_NLM_Pt_AcceptedMeson",12, -0.5, 11.5, ptBins, arrPtBinning);
693 fHistoClusNCellsPt[iCut] =
new TH2F(
"Clus_NCells_Pt",
"Clus_NCells_Pt",100,-0.5,99.5,ptBins, arrPtBinning);
701 fHistoClusMergedEAroundE[iCut] =
new TH2F(
"ClusMerged_EAroundClus_E",
"ClusMerged_EAroundClus_E",ptBinsDefClus, startPtDefClus, endPtDefClus, ptBins, arrPtBinning);
719 fHistoMotherInvMassPt[iCut] =
new TH2F(
"ESD_Mother_InvMass_Pt",
"ESD_Mother_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
727 fHistoMotherPtY[iCut] =
new TH2F(
"ESD_Mother_Pt_Y",
"ESD_Mother_Pt_Y", ptBinsLog, startPtLog, endPtLog, 150, -1.5, 1.5);
730 fHistoMotherPtAlpha[iCut] =
new TH2F(
"ESD_Mother_Pt_Alpha",
"ESD_Mother_Pt_Alpha", ptBinsLog, startPtLog, endPtLog, 100, 0, 1);
865 fMCList[iCut]->SetName(Form(
"%s_%s_%s_%s MC histograms",cutstringEvent.Data(),cutstringCalo.Data(),cutstringCaloMerged.Data(), cutstringMeson.Data()));
866 fMCList[iCut]->SetOwner(kTRUE);
869 fHistoMCPi0Pt[iCut] =
new TH1F(
"MC_Pi0_Pt",
"MC_Pi0_Pt",ptBins, arrPtBinning);
872 fHistoMCEtaPt[iCut] =
new TH1F(
"MC_Eta_Pt",
"MC_Eta_Pt",ptBins, arrPtBinning);
898 fHistoMCDecayGammaPt[iCut] =
new TH1F(
"MC_DecayGamma_Pt",
"MC_DecayGamma_Pt",ptBins, arrPtBinning);
901 fHistoMCAllGammaPt[iCut] =
new TH1F(
"MC_AllGamma_Pt",
"MC_AllGamma_Pt",ptBins, arrPtBinning);
906 fHistoMCPi0WOWeightPt[iCut] =
new TH1F(
"MC_Pi0_WOWeights_Pt",
"MC_Pi0_WOWeights_Pt",ptBins, arrPtBinning);
908 fHistoMCPi0InAccPt[iCut] =
new TH1F(
"MC_Pi0InAcc_Pt",
"MC_Pi0InAcc_Pt",ptBins, arrPtBinning);
911 fHistoMCPi0DalitzPt[iCut] =
new TH1F(
"MC_Pi0Dalitz_Pt",
"MC_Pi0Dalitz_Pt",ptBins, arrPtBinning);
930 fHistoMCEtaWOWeightPt[iCut] =
new TH1F(
"MC_Eta_WOWeights_Pt",
"MC_Eta_WOWeights_Pt",ptBins, arrPtBinning);
932 fHistoMCEtaInAccPt[iCut] =
new TH1F(
"MC_EtaInAcc_Pt",
"MC_EtaInAcc_Pt",ptBins, arrPtBinning);
935 fHistoMCEtaDalitzPt[iCut] =
new TH1F(
"MC_EtaDalitz_Pt",
"MC_EtaDalitz_Pt",ptBins, arrPtBinning);
949 fHistoMCPi0WOEvtWeightPt[iCut] =
new TH1F(
"MC_Pi0_WOEventWeights_Pt",
"MC_Pi0_WOEventWeights_Pt",ptBins, arrPtBinning);
963 fHistoMCEtaWOEvtWeightPt[iCut] =
new TH1F(
"MC_Eta_WOEventWeights_Pt",
"MC_Eta_WOEventWeights_Pt",ptBins, arrPtBinning);
974 fHistoMCPi0PtJetPt[iCut] =
new TH2F(
"MC_Pi0_Pt_JetPt",
"MC_Pi0_Pt_JetPt", ptBinsLog, startPtLog, endPtLog, 200, -0.5, 199.5);
980 fHistoMCEtaPtJetPt[iCut] =
new TH2F(
"MC_Eta_Pt_JetPt",
"MC_Eta_Pt_JetPt", ptBinsLog, startPtLog, endPtLog, 200, -0.5, 199.5);
989 fTrueList[iCut]->SetName(Form(
"%s_%s_%s_%s True histograms",cutstringEvent.Data(),cutstringCalo.Data(),cutstringCaloMerged.Data(), cutstringMeson.Data()));
993 fHistoTrueClusMergedPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMerged_Pt_M02",
"ESD_TrueClusMerged_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
995 fHistoTrueClusPi0PtvsM02 [iCut] =
new TH2F(
"ESD_TrueClusFromPi0_Pt_M02",
"ESD_TrueClusFromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
997 fHistoTrueClusPi0DalitzPtvsM02 [iCut] =
new TH2F(
"ESD_TrueClusFromPi0Dalitz_Pt_M02",
"ESD_TrueClusFromPi0Dalitz_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
999 fHistoTrueClusEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromEta_Pt_M02",
"ESD_TrueClusFromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1001 fHistoTrueClusEtaDalitzPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromEtaDalitz_Pt_M02",
"ESD_TrueClusFromEtaDalitz_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1003 fHistoTrueClusMergedPureFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMergedPureFromPi0_Pt_M02",
"ESD_TrueClusMergedPureFromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1005 fHistoTrueClusMergedPureFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusMergedPureFromEta_Pt_M02",
"ESD_TrueClusMergedPureFromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1012 fHistoTrueClusBGPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusBG_Pt_M02",
"ESD_TrueClusBG_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1014 fHistoTrueClusGammaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_Pt_M02",
"ESD_TrueClusGamma_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1016 fHistoTrueClusGammaFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_FromPi0_Pt_M02",
"ESD_TrueClusGamma_FromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1018 fHistoTrueClusGammaFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusGamma_FromEta_Pt_M02",
"ESD_TrueClusGamma_FromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1020 fHistoTrueClusElectronPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_Pt_M02",
"ESD_TrueClusElectron_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1022 fHistoTrueClusElectronFromPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromPi0_Pt_M02",
"ESD_TrueClusElectron_FromPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1024 fHistoTrueClusElectronFromEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromEta_Pt_M02",
"ESD_TrueClusElectron_FromEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1026 fHistoTrueClusElectronFromGammaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusElectron_FromGamma_Pt_M02",
"ESD_TrueClusElectron_FromGamma_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1030 fHistoTrueClusPrimPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromPrimPi0_Pt_M02",
"ESD_TrueClusFromPrimPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1032 fHistoTrueClusSecPi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0_Pt_M02",
"ESD_TrueClusFromSecPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1034 fHistoTrueClusSecPi0FromK0sPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromK0s_Pt_M02",
"ESD_TrueClusFromSecPi0FromK0s_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1036 fHistoTrueClusSecPi0FromK0lPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromK0l_Pt_M02",
"ESD_TrueClusFromSecPi0FromK0l_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1038 fHistoTrueClusSecPi0FromLambdaPtvsM02[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0FromLambda_Pt_M02",
"ESD_TrueClusFromSecPi0FromLambda_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1040 fHistoTrueSecPi0PtvsDiffReco[iCut] =
new TH2F(
"ESD_TrueClusFromSecPi0_Pt_RecoMethod",
"ESD_TrueClusFromSecPi0_Pt_RecoMethod",ptBins, arrPtBinning, 4, -0.5, 3.5);
1060 fHistoDoubleCountTruePi0PtvsM02[iCut] =
new TH2F(
"ESD_TrueDoubleCountPi0_Pt_M02",
"ESD_TrueDoubleCountPi0_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1064 fHistoDoubleCountTrueEtaPtvsM02[iCut] =
new TH2F(
"ESD_TrueDoubleCountEta_Pt_M02",
"ESD_TrueDoubleCountEta_Pt_M02",ptBins, arrPtBinning,showerShapeBins, startShowerShape, endShowerShape);
1071 fHistoTrueClusPi0InvMassvsPt [iCut] =
new TH2F(
"ESD_TrueClusFromPi0_InvMass_Pt",
"ESD_TrueClusFromPi0_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1073 fHistoTrueClusEtaInvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusFromEta_InvMass_Pt",
"ESD_TrueClusFromEta_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1075 fHistoTrueClusBGInvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusBG_InvMass_Pt",
"ESD_TrueClusBG_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1082 fHistoTrueClusPrimPi0InvMassvsPt[iCut] =
new TH2F(
"ESD_TrueClusFromPrimPi0_InvMass_Pt",
"ESD_TrueClusFromPrimPi0_InvMass_Pt",invMassBins, startMass, endMass,ptBins, arrPtBinning);
1088 fHistoTrueClusGammaEM02[iCut] =
new TH2F(
"TrueClusGammaEM02",
"TrueClusGammaEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1090 fHistoTrueClusElectronEM02[iCut] =
new TH2F(
"TrueClusElectronEM02",
"TrueClusElectronEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1092 fHistoTrueClusPi0EM02[iCut] =
new TH2F(
"TrueClusPi0EM02",
"TrueClusPi0EM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1094 fHistoTrueClusEtaEM02[iCut] =
new TH2F(
"TrueClusEtaEM02",
"TrueClusEtaEM02",ptBins, arrPtBinning, showerShapeBins, startShowerShape, endShowerShape);
1097 fHistoTruePi0PtY[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Y",
"ESD_TruePi0_Pt_Y",ptBinsLog, startPtLog, endPtLog,150,-1.5,1.5);
1100 fHistoTruePi0PtAlpha[iCut] =
new TH2F(
"ESD_TruePi0_Pt_Alpha",
"ESD_TruePi0_Pt_Alpha",ptBinsLog, startPtLog, endPtLog,100,0,1);
1120 fHistoTrueEtaPtY[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Y",
"ESD_TrueEta_Pt_Y",ptBinsLog, startPtLog, endPtLog,150,-1.5,1.5);
1123 fHistoTrueEtaPtAlpha[iCut] =
new TH2F(
"ESD_TrueEta_Pt_Alpha",
"ESD_TrueEta_Pt_Alpha",ptBinsLog, startPtLog, endPtLog,100,0,0.5);
1216 for(
Int_t iMatcherTask = 0; iMatcherTask < 3; iMatcherTask++){
1277 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
1284 Bool_t doNonLinCorr = kTRUE;
1286 doNonLinCorr = kFALSE;
1288 doNonLinCorr = kTRUE;
1290 doNonLinCorr = kTRUE;
1292 doNonLinCorr = kFALSE;
1293 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;
1294 cout <<
"INFO: switching off the non lin corr for merged cluster" << endl;
1314 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
1317 if(eventQuality == 2 || eventQuality == 3){
1342 Bool_t isRunningEMCALrelAna = kFALSE;
1350 if((xsection==-1.) || (ntrials==-1.)) AliFatal(Form(
"ERROR: GetXSectionAndNTrials returned invalid xsection/ntrials, periodName from V0Reader: '%s'",
fV0Reader->
GetPeriodName().Data()));
1364 Bool_t triggered = kTRUE;
1365 if(eventNotAccepted){
1369 if (eventNotAccepted==3 &&
fIsMC>0){
1376 if(eventQuality != 0){
1383 if (triggered == kTRUE) {
1409 else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1418 if (nameBin.CompareTo(
"")== 0){
1420 ->GetAcceptedHeader())->At(i))->GetString();
1421 fHistoMCHeaders[iCut]->GetXaxis()->SetBinLabel(i+1,nameHeader.Data());
1434 if (triggered==kFALSE)
continue;
1461 TClonesArray * arrClustersProcess = NULL;
1466 if(!arrClustersProcess)
1467 AliFatal(Form(
"%sClustersBranch was not found in AliAnalysisTaskGammaCaloMerged! Check the correction framework settings!",
fCorrTaskSetting.Data()));
1468 nclus = arrClustersProcess->GetEntries();
1473 if(nclus == 0)
return;
1490 InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1493 for(Long_t i = 0; i < nclus; i++){
1496 AliVCluster* clus = NULL;
1498 if(arrClustersProcess)
1499 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(i));
1501 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(i));
1502 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1503 if(arrClustersProcess)
1504 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(i));
1506 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(i));
1521 TLorentzVector clusterVector;
1522 clus->GetMomentum(clusterVector,vertex);
1524 TLorentzVector* tmpvec =
new TLorentzVector();
1525 tmpvec->SetPxPyPzE(clusterVector.Px(),clusterVector.Py(),clusterVector.Pz(),clusterVector.E());
1529 if(!PhotonCandidate){
1532 if (PhotonCandidate)
delete PhotonCandidate;
1542 Int_t* mclabelsCluster = clus->GetLabels();
1544 Int_t nValidClusters = 0;
1546 if (clus->GetNLabels()>0){
1547 for (
Int_t k =0; k< (
Int_t)clus->GetNLabels(); k++){
1549 if (mclabelsCluster[k]>0){
1552 if (nValidClusters< 50)PhotonCandidate->
SetCaloPhotonMCLabel(nValidClusters,mclabelsCluster[k]);
1568 if (clus->GetNLabels()>1){
1569 Int_t* mclabelsCluster = clus->GetLabels();
1570 for (
Int_t l = 1; l < (
Int_t)clus->GetNLabels(); l++ ){
1591 delete PhotonCandidate;
1598 delete PhotonCandidate;
1604 AliAODCaloCluster* clusSub1 =
new AliAODCaloCluster();
1605 AliAODCaloCluster* clusSub2 =
new AliAODCaloCluster();
1620 const Int_t nc = clus->GetNCells();
1621 Int_t absCellIdList[nc];
1632 TLorentzVector clusterVector1;
1633 clusSub1->GetMomentum(clusterVector1,vertex);
1634 TLorentzVector* tmpvec1 =
new TLorentzVector();
1635 tmpvec1->SetPxPyPzE(clusterVector1.Px(),clusterVector1.Py(),clusterVector1.Pz(),clusterVector1.E());
1638 if(!PhotonCandidate1){
1647 TLorentzVector clusterVector2;
1648 clusSub2->GetMomentum(clusterVector2,vertex);
1649 TLorentzVector* tmpvec2 =
new TLorentzVector();
1650 tmpvec2->SetPxPyPzE(clusterVector2.Px(),clusterVector2.Py(),clusterVector2.Pz(),clusterVector2.E());
1653 if(!PhotonCandidate2){
1679 for (
Int_t j = 0; j < nclus; j++){
1680 if (j == i)
continue;
1681 AliVCluster* clusTemp = NULL;
1683 if(arrClustersProcess)
1684 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(j));
1686 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(j));
1687 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1688 if(arrClustersProcess)
1689 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(j));
1691 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(j));
1702 nCellsAround = nCellsAround+clusTemp->GetNCells();
1703 energyAround = energyAround+clusTemp->E();
1718 if(
fIsMC> 0 && PhotonCandidate && PhotonCandidate1 && PhotonCandidate2){
1731 delete PhotonCandidate1;
1734 delete PhotonCandidate2;
1738 delete PhotonCandidate;
1749 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1750 Double_t mcProdVtxX = primVtxMC->GetX();
1751 Double_t mcProdVtxY = primVtxMC->GetY();
1752 Double_t mcProdVtxZ = primVtxMC->GetZ();
1754 TParticle *Photon = NULL;
1755 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
1768 if (!mesonIsSelected){
1772 Int_t pdgCodeParticle = Photon->GetPdgCode();
1775 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
1781 Int_t clusterClass = 0;
1788 Long_t motherLab = -1;
1820 TParticle *mother = NULL;
1821 Int_t motherPDG = -1;
1822 if (motherLab > -1){
1823 mother =
fMCEvent->Particle(motherLab);
1827 motherPDG = TMath::Abs(mother->GetPdgCode());
1834 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
1839 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
1840 if (motherPDG == 111){
1846 if (motherPDG == 221)
1849 if (motherPDG == 111){
1855 if (motherPDG == 221)
1857 }
else if (clusterClass == 2){
1858 if (motherPDG == 111){
1863 }
if (motherPDG == 221)
1865 }
else if (clusterClass == 3){
1866 if (motherPDG == 111) {
1872 if (motherPDG == 221)
1877 if (motherPDG == 111){
1886 if (TrueClusterCandidate->
IsDalitz()){
1903 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
1907 else if (clusterClass == 2)
1909 else if (clusterClass == 3)
1917 Int_t grandMaLab = mother->GetMother(0);
1918 if (grandMaLab > -1){
1919 if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 310){
1921 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 130){
1923 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 3122){
1930 }
else if (motherPDG == 221){
1932 if (TrueClusterCandidate->
IsDalitz()){
1959 if (motherLab == -1){
1962 if (motherPDG == 111)
1964 else if (motherPDG == 221)
1966 else if (motherPDG == 331)
1968 else if (motherPDG == 223)
1970 else if (motherPDG == 333)
1972 else if (motherPDG == 3122)
1988 Int_t motherLab = Photon->GetMother(0);
1989 mother =
fMCEvent->Particle(motherLab);
1992 motherPDG = TMath::Abs(mother->GetPdgCode());
1995 if (motherLab == -1){
1998 if (motherPDG == 22){
2001 }
else if (motherPDG == 111){
2003 }
else if (motherPDG == 221){
2005 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2007 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2009 }
else if (motherPDG == 23 || motherPDG == 24){
2011 }
else if (motherPDG == 15) {
2025 if (m02 >= 0 && m02 < maxM02){
2048 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2049 Double_t mcProdVtxX = primVtxMC->GetX();
2050 Double_t mcProdVtxY = primVtxMC->GetY();
2051 Double_t mcProdVtxZ = primVtxMC->GetZ();
2053 AliAODMCParticle *Photon = NULL;
2054 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2055 if (AODMCTrackArray){
2056 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
2062 AliInfo(
"AODMCTrackArray could not be loaded");
2073 if (!mesonIsSelected){
2077 Int_t pdgCodeParticle = Photon->GetPdgCode();
2080 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
2086 Int_t clusterClass = 0;
2093 Long_t motherLab = -1;
2113 if (TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 111 || TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 221 ){
2125 AliAODMCParticle *mother = NULL;
2126 Int_t motherPDG = -1;
2127 if (motherLab > -1){
2128 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(motherLab));
2132 motherPDG = TMath::Abs(mother->GetPdgCode());
2139 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
2144 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
2145 if (motherPDG == 111){
2151 if (motherPDG == 221)
2154 if (motherPDG == 111){
2160 if (motherPDG == 221)
2162 }
else if (clusterClass == 2){
2163 if (motherPDG == 111){
2168 }
if (motherPDG == 221)
2170 }
else if (clusterClass == 3){
2171 if (motherPDG == 111) {
2177 if (motherPDG == 221)
2182 if (motherPDG == 111){
2191 if (TrueClusterCandidate->
IsDalitz()){
2208 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
2212 else if (clusterClass == 2)
2214 else if (clusterClass == 3)
2222 Int_t grandMaLab = mother->GetMother();
2223 if (grandMaLab > -1){
2224 if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 310){
2226 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 130){
2228 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 3122){
2235 }
else if (motherPDG == 221){
2237 if (TrueClusterCandidate->
IsDalitz()){
2263 if (motherLab == -1){
2266 if (motherPDG == 111)
2268 else if (motherPDG == 221)
2270 else if (motherPDG == 331)
2272 else if (motherPDG == 223)
2274 else if (motherPDG == 333)
2276 else if (motherPDG == 3122)
2291 Int_t motherLab = Photon->GetMother();
2292 if (motherLab == -1){
2295 if (motherPDG == 22){
2298 }
else if (motherPDG == 111){
2300 }
else if (motherPDG == 221){
2302 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2304 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2306 }
else if (motherPDG == 23 || motherPDG == 24){
2308 }
else if (motherPDG == 15) {
2321 if (m02 >= 0 && m02 < maxM02){
2342 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2343 Double_t mcProdVtxX = primVtxMC->GetX();
2344 Double_t mcProdVtxY = primVtxMC->GetY();
2345 Double_t mcProdVtxZ = primVtxMC->GetZ();
2348 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2351 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2352 if (!particle)
continue;
2354 Int_t isMCFromMBHeader = -1;
2362 if (particle->Energy() != TMath::Abs(particle->Pz())){
2363 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2365 if( !(ratio <= 0) ){
2370 if ( particle->GetPdgCode() == 211 ){
2372 }
else if ( particle->GetPdgCode() == -211 ){
2374 }
else if ( particle->GetPdgCode() == 321 ){
2376 }
else if ( particle->GetPdgCode() == -321 ){
2378 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2380 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2382 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2387 if ( particle->GetPdgCode() == 211 ){
2389 }
else if ( particle->GetPdgCode() == -211 ){
2391 }
else if ( particle->GetPdgCode() == 321 ){
2393 }
else if ( particle->GetPdgCode() == -321 ){
2395 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2397 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2399 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2401 }
else if ( particle->GetPdgCode() == 22 ){
2403 if(particle->GetMother(0) > -1){
2404 TParticle* mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2405 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2406 TMath::Abs(mother->GetPdgCode()) == 113 ||
2407 TMath::Abs(mother->GetPdgCode()) == 221 ||
2408 TMath::Abs(mother->GetPdgCode()) == 223 ||
2409 TMath::Abs(mother->GetPdgCode()) == 331 ||
2410 TMath::Abs(mother->GetPdgCode()) == 333 ||
2411 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2412 TMath::Abs(mother->GetPdgCode()) == 213
2423 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2424 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2428 if (particle->Pt()>0.005){
2433 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2442 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2456 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2468 Int_t gammaLabel = -1;
2469 Int_t electronLabel = -1;
2470 Int_t positronLabel = -1;
2474 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2475 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2476 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2477 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2481 if (particle->Pt()>0.005){
2506 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2524 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2525 if (!particle)
continue;
2527 Int_t isMCFromMBHeader = -1;
2536 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2537 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2538 TParticle* mother = NULL;
2539 Int_t motherPDG = -1000000;
2540 if (particle->GetMother(0) > -1){
2541 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2543 motherPDG = TMath::Abs(mother->GetPdgCode());
2546 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2554 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2561 Int_t gammaLabel = -1;
2562 Int_t electronLabel = -1;
2563 Int_t positronLabel = -1;
2567 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2568 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2569 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2570 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2572 TParticle* mother = NULL;
2573 Int_t motherPDG = -1000000;
2574 if (particle->GetMother(0) > -1){
2575 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2577 motherPDG = TMath::Abs(mother->GetPdgCode());
2580 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2589 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2603 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2604 Double_t mcProdVtxX = primVtxMC->GetX();
2605 Double_t mcProdVtxY = primVtxMC->GetY();
2606 Double_t mcProdVtxZ = primVtxMC->GetZ();
2608 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2609 if (AODMCTrackArray == NULL)
return;
2612 for(Long_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2614 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2615 if (!particle)
continue;
2620 Int_t isMCFromMBHeader = -1;
2628 if (particle->E() != TMath::Abs(particle->Pz())){
2629 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2631 if( !(ratio <= 0) ){
2636 if ( particle->GetPdgCode() == 211 ){
2638 }
else if ( particle->GetPdgCode() == -211 ){
2640 }
else if ( particle->GetPdgCode() == 321 ){
2642 }
else if ( particle->GetPdgCode() == -321 ){
2644 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2646 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2648 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2653 if ( particle->GetPdgCode() == 211 ){
2655 }
else if ( particle->GetPdgCode() == -211 ){
2657 }
else if ( particle->GetPdgCode() == 321 ){
2659 }
else if ( particle->GetPdgCode() == -321 ){
2661 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2663 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2665 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2667 }
else if ( particle->GetPdgCode() == 22 ){
2669 if(particle->GetMother() > -1){
2670 AliAODMCParticle *mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2671 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2672 TMath::Abs(mother->GetPdgCode()) == 113 ||
2673 TMath::Abs(mother->GetPdgCode()) == 221 ||
2674 TMath::Abs(mother->GetPdgCode()) == 223 ||
2675 TMath::Abs(mother->GetPdgCode()) == 331 ||
2676 TMath::Abs(mother->GetPdgCode()) == 333 ||
2677 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2678 TMath::Abs(mother->GetPdgCode()) == 213
2689 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2690 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2694 if (particle->Pt()>0.005){
2699 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2708 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2722 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2734 Int_t gammaLabel = -1;
2735 Int_t electronLabel = -1;
2736 Int_t positronLabel = -1;
2740 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2741 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2742 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2743 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
2747 if (particle->Pt()>0.005){
2772 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2790 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2791 if (!particle)
continue;
2793 Int_t isMCFromMBHeader = -1;
2802 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2803 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2804 AliAODMCParticle* mother = NULL;
2805 Int_t motherPDG = -1000000;
2806 if (particle->GetMother() > -1){
2807 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2809 motherPDG = TMath::Abs(mother->GetPdgCode());
2812 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2820 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2827 Int_t gammaLabel = -1;
2828 Int_t electronLabel = -1;
2829 Int_t positronLabel = -1;
2833 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2834 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2835 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2836 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
2838 AliAODMCParticle* mother = NULL;
2839 Int_t motherPDG = -1000000;
2840 if (particle->GetMother() > -1){
2841 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2843 motherPDG = TMath::Abs(mother->GetPdgCode());
2846 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2855 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2869 TAxis *axisafter = histoRebin->GetXaxis();
2870 Int_t bins = axisafter->GetNbins();
2871 Double_t from = axisafter->GetXmin();
2872 Double_t to = axisafter->GetXmax();
2875 Double_t factor = TMath::Power(to/from, 1./bins);
2876 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
2877 axisafter->Set(bins, newbins);
2884 if(tobechecked > -1)
2886 vector<Int_t>::iterator it;
2887 it = find (vec.begin(), vec.end(), tobechecked);
2888 if (it != vec.end())
return true;
2890 vec.push_back(tobechecked);
2907 if( ma.find(tobechecked) != ma.end() ) ma[tobechecked] += 1;
2908 else ma[tobechecked] = 2;
2914 map<Int_t, Int_t>::iterator it;
2915 for (it = ma.begin(); it != ma.end(); it++){
2926 if (daughter == 111) {
2927 if (TMath::Abs(pdgCode) == 310)
return 1;
2928 else if (TMath::Abs(pdgCode) == 3122)
return 2;
2929 else if (TMath::Abs(pdgCode) == 130)
return 3;
2930 else if (TMath::Abs(pdgCode) == 2212)
return 4;
2931 else if (TMath::Abs(pdgCode) == 2112)
return 5;
2932 else if (TMath::Abs(pdgCode) == 211)
return 6;
2933 else if (TMath::Abs(pdgCode) == 321)
return 7;
2934 else if (TMath::Abs(pdgCode) == 113 || TMath::Abs(pdgCode) == 213 )
return 8;
2935 else if (TMath::Abs(pdgCode) == 3222 || TMath::Abs(pdgCode) == 3212 || TMath::Abs(pdgCode) == 3112 )
return 9;
2936 else if (TMath::Abs(pdgCode) == 2224 || TMath::Abs(pdgCode) == 2214 || TMath::Abs(pdgCode) == 2114 || TMath::Abs(pdgCode) == 1114 )
return 10;
2937 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
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