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;
1460 TClonesArray * arrClustersProcess = NULL;
1465 if(!arrClustersProcess)
1466 AliFatal(Form(
"%sClustersBranch was not found in AliAnalysisTaskGammaCaloMerged! Check the correction framework settings!",
fCorrTaskSetting.Data()));
1467 nclus = arrClustersProcess->GetEntries();
1472 if(nclus == 0)
return;
1489 InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1492 for(Long_t i = 0; i < nclus; i++){
1495 AliVCluster* clus = NULL;
1497 if(arrClustersProcess)
1498 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(i));
1500 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(i));
1501 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1502 if(arrClustersProcess)
1503 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(i));
1505 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(i));
1520 TLorentzVector clusterVector;
1521 clus->GetMomentum(clusterVector,vertex);
1523 TLorentzVector* tmpvec =
new TLorentzVector();
1524 tmpvec->SetPxPyPzE(clusterVector.Px(),clusterVector.Py(),clusterVector.Pz(),clusterVector.E());
1528 if(!PhotonCandidate){
1531 if (PhotonCandidate)
delete PhotonCandidate;
1541 Int_t* mclabelsCluster = clus->GetLabels();
1543 Int_t nValidClusters = 0;
1545 if (clus->GetNLabels()>0){
1546 for (
Int_t k =0; k< (
Int_t)clus->GetNLabels(); k++){
1548 if (mclabelsCluster[k]>0){
1551 if (nValidClusters< 50)PhotonCandidate->
SetCaloPhotonMCLabel(nValidClusters,mclabelsCluster[k]);
1567 if (clus->GetNLabels()>1){
1568 Int_t* mclabelsCluster = clus->GetLabels();
1569 for (
Int_t l = 1; l < (
Int_t)clus->GetNLabels(); l++ ){
1590 delete PhotonCandidate;
1597 delete PhotonCandidate;
1603 AliAODCaloCluster* clusSub1 =
new AliAODCaloCluster();
1604 AliAODCaloCluster* clusSub2 =
new AliAODCaloCluster();
1619 const Int_t nc = clus->GetNCells();
1620 Int_t absCellIdList[nc];
1631 TLorentzVector clusterVector1;
1632 clusSub1->GetMomentum(clusterVector1,vertex);
1633 TLorentzVector* tmpvec1 =
new TLorentzVector();
1634 tmpvec1->SetPxPyPzE(clusterVector1.Px(),clusterVector1.Py(),clusterVector1.Pz(),clusterVector1.E());
1637 if(!PhotonCandidate1){
1646 TLorentzVector clusterVector2;
1647 clusSub2->GetMomentum(clusterVector2,vertex);
1648 TLorentzVector* tmpvec2 =
new TLorentzVector();
1649 tmpvec2->SetPxPyPzE(clusterVector2.Px(),clusterVector2.Py(),clusterVector2.Pz(),clusterVector2.E());
1652 if(!PhotonCandidate2){
1678 for (
Int_t j = 0; j < nclus; j++){
1679 if (j == i)
continue;
1680 AliVCluster* clusTemp = NULL;
1682 if(arrClustersProcess)
1683 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(j));
1685 clusTemp =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(j));
1686 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1687 if(arrClustersProcess)
1688 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(j));
1690 clusTemp =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(j));
1701 nCellsAround = nCellsAround+clusTemp->GetNCells();
1702 energyAround = energyAround+clusTemp->E();
1717 if(
fIsMC> 0 && PhotonCandidate && PhotonCandidate1 && PhotonCandidate2){
1730 delete PhotonCandidate1;
1733 delete PhotonCandidate2;
1737 delete PhotonCandidate;
1748 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1749 Double_t mcProdVtxX = primVtxMC->GetX();
1750 Double_t mcProdVtxY = primVtxMC->GetY();
1751 Double_t mcProdVtxZ = primVtxMC->GetZ();
1753 TParticle *Photon = NULL;
1754 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
1767 if (!mesonIsSelected){
1771 Int_t pdgCodeParticle = Photon->GetPdgCode();
1774 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
1780 Int_t clusterClass = 0;
1787 Long_t motherLab = -1;
1819 TParticle *mother = NULL;
1820 Int_t motherPDG = -1;
1821 if (motherLab > -1){
1822 mother =
fMCEvent->Particle(motherLab);
1826 motherPDG = TMath::Abs(mother->GetPdgCode());
1833 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
1838 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
1839 if (motherPDG == 111){
1845 if (motherPDG == 221)
1848 if (motherPDG == 111){
1854 if (motherPDG == 221)
1856 }
else if (clusterClass == 2){
1857 if (motherPDG == 111){
1862 }
if (motherPDG == 221)
1864 }
else if (clusterClass == 3){
1865 if (motherPDG == 111) {
1871 if (motherPDG == 221)
1876 if (motherPDG == 111){
1885 if (TrueClusterCandidate->
IsDalitz()){
1902 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
1906 else if (clusterClass == 2)
1908 else if (clusterClass == 3)
1916 Int_t grandMaLab = mother->GetMother(0);
1917 if (grandMaLab > -1){
1918 if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 310){
1920 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 130){
1922 }
else if (TMath::Abs(
fMCEvent->Particle(grandMaLab)->GetPdgCode()) == 3122){
1929 }
else if (motherPDG == 221){
1931 if (TrueClusterCandidate->
IsDalitz()){
1958 if (motherLab == -1){
1961 if (motherPDG == 111)
1963 else if (motherPDG == 221)
1965 else if (motherPDG == 331)
1967 else if (motherPDG == 223)
1969 else if (motherPDG == 333)
1971 else if (motherPDG == 3122)
1987 Int_t motherLab = Photon->GetMother(0);
1988 mother =
fMCEvent->Particle(motherLab);
1991 motherPDG = TMath::Abs(mother->GetPdgCode());
1994 if (motherLab == -1){
1997 if (motherPDG == 22){
2000 }
else if (motherPDG == 111){
2002 }
else if (motherPDG == 221){
2004 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2006 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2008 }
else if (motherPDG == 23 || motherPDG == 24){
2010 }
else if (motherPDG == 15) {
2024 if (m02 >= 0 && m02 < maxM02){
2047 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2048 Double_t mcProdVtxX = primVtxMC->GetX();
2049 Double_t mcProdVtxY = primVtxMC->GetY();
2050 Double_t mcProdVtxZ = primVtxMC->GetZ();
2052 AliAODMCParticle *Photon = NULL;
2053 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2054 if (AODMCTrackArray){
2055 if (!TrueClusterCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
2061 AliInfo(
"AODMCTrackArray could not be loaded");
2072 if (!mesonIsSelected){
2076 Int_t pdgCodeParticle = Photon->GetPdgCode();
2079 cout << endl << endl <<
"Cluster energy: " << TrueClusterCandidate->E() << endl;;
2085 Int_t clusterClass = 0;
2092 Long_t motherLab = -1;
2112 if (TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 111 || TMath::Abs(((AliAODMCParticle*) AODMCTrackArray->At(TrueClusterCandidate->
GetCaloPhotonMotherMCLabel(1)))->GetPdgCode()) == 221 ){
2124 AliAODMCParticle *mother = NULL;
2125 Int_t motherPDG = -1;
2126 if (motherLab > -1){
2127 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(motherLab));
2131 motherPDG = TMath::Abs(mother->GetPdgCode());
2138 if (clusterClass == 1 || clusterClass == 2 || clusterClass == 3 ){
2143 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged()){
2144 if (motherPDG == 111){
2150 if (motherPDG == 221)
2153 if (motherPDG == 111){
2159 if (motherPDG == 221)
2161 }
else if (clusterClass == 2){
2162 if (motherPDG == 111){
2167 }
if (motherPDG == 221)
2169 }
else if (clusterClass == 3){
2170 if (motherPDG == 111) {
2176 if (motherPDG == 221)
2181 if (motherPDG == 111){
2190 if (TrueClusterCandidate->
IsDalitz()){
2207 if (clusterClass == 1 && TrueClusterCandidate->
IsMerged())
2211 else if (clusterClass == 2)
2213 else if (clusterClass == 3)
2221 Int_t grandMaLab = mother->GetMother();
2222 if (grandMaLab > -1){
2223 if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 310){
2225 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 130){
2227 }
else if (TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(grandMaLab))->GetPdgCode()) == 3122){
2234 }
else if (motherPDG == 221){
2236 if (TrueClusterCandidate->
IsDalitz()){
2262 if (motherLab == -1){
2265 if (motherPDG == 111)
2267 else if (motherPDG == 221)
2269 else if (motherPDG == 331)
2271 else if (motherPDG == 223)
2273 else if (motherPDG == 333)
2275 else if (motherPDG == 3122)
2290 Int_t motherLab = Photon->GetMother();
2291 if (motherLab == -1){
2294 if (motherPDG == 22){
2297 }
else if (motherPDG == 111){
2299 }
else if (motherPDG == 221){
2301 }
else if (
int(motherPDG/100.)==5 || int(motherPDG/1000.)==5 ){
2303 }
else if (
int(motherPDG/100.)==4 || int(motherPDG/1000.)==4 ){
2305 }
else if (motherPDG == 23 || motherPDG == 24){
2307 }
else if (motherPDG == 15) {
2320 if (m02 >= 0 && m02 < maxM02){
2341 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2342 Double_t mcProdVtxX = primVtxMC->GetX();
2343 Double_t mcProdVtxY = primVtxMC->GetY();
2344 Double_t mcProdVtxZ = primVtxMC->GetZ();
2347 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2350 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2351 if (!particle)
continue;
2353 Int_t isMCFromMBHeader = -1;
2361 if (particle->Energy() != TMath::Abs(particle->Pz())){
2362 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2364 if( !(ratio <= 0) ){
2369 if ( particle->GetPdgCode() == 211 ){
2371 }
else if ( particle->GetPdgCode() == -211 ){
2373 }
else if ( particle->GetPdgCode() == 321 ){
2375 }
else if ( particle->GetPdgCode() == -321 ){
2377 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2379 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2381 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2386 if ( particle->GetPdgCode() == 211 ){
2388 }
else if ( particle->GetPdgCode() == -211 ){
2390 }
else if ( particle->GetPdgCode() == 321 ){
2392 }
else if ( particle->GetPdgCode() == -321 ){
2394 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2396 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2398 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2400 }
else if ( particle->GetPdgCode() == 22 ){
2402 if(particle->GetMother(0) > -1){
2403 TParticle* mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2404 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2405 TMath::Abs(mother->GetPdgCode()) == 113 ||
2406 TMath::Abs(mother->GetPdgCode()) == 221 ||
2407 TMath::Abs(mother->GetPdgCode()) == 223 ||
2408 TMath::Abs(mother->GetPdgCode()) == 331 ||
2409 TMath::Abs(mother->GetPdgCode()) == 333 ||
2410 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2411 TMath::Abs(mother->GetPdgCode()) == 213
2422 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2423 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2427 if (particle->Pt()>0.005){
2432 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2441 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2455 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2467 Int_t gammaLabel = -1;
2468 Int_t electronLabel = -1;
2469 Int_t positronLabel = -1;
2473 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2474 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2475 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2476 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2480 if (particle->Pt()>0.005){
2505 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2523 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2524 if (!particle)
continue;
2526 Int_t isMCFromMBHeader = -1;
2535 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2536 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2537 TParticle* mother = NULL;
2538 Int_t motherPDG = -1000000;
2539 if (particle->GetMother(0) > -1){
2540 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2542 motherPDG = TMath::Abs(mother->GetPdgCode());
2545 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2553 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2560 Int_t gammaLabel = -1;
2561 Int_t electronLabel = -1;
2562 Int_t positronLabel = -1;
2566 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2567 TParticle* gamma = (TParticle*)
fMCEvent->Particle(gammaLabel);
2568 TParticle* electron = (TParticle*)
fMCEvent->Particle(electronLabel);
2569 TParticle* positron = (TParticle*)
fMCEvent->Particle(positronLabel);
2571 TParticle* mother = NULL;
2572 Int_t motherPDG = -1000000;
2573 if (particle->GetMother(0) > -1){
2574 mother = (TParticle*)
fMCEvent->Particle(particle->GetMother(0));
2576 motherPDG = TMath::Abs(mother->GetPdgCode());
2579 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2588 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2602 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2603 Double_t mcProdVtxX = primVtxMC->GetX();
2604 Double_t mcProdVtxY = primVtxMC->GetY();
2605 Double_t mcProdVtxZ = primVtxMC->GetZ();
2607 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2608 if (AODMCTrackArray == NULL)
return;
2611 for(Long_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2613 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2614 if (!particle)
continue;
2619 Int_t isMCFromMBHeader = -1;
2627 if (particle->E() != TMath::Abs(particle->Pz())){
2628 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2630 if( !(ratio <= 0) ){
2635 if ( particle->GetPdgCode() == 211 ){
2637 }
else if ( particle->GetPdgCode() == -211 ){
2639 }
else if ( particle->GetPdgCode() == 321 ){
2641 }
else if ( particle->GetPdgCode() == -321 ){
2643 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2645 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2647 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2652 if ( particle->GetPdgCode() == 211 ){
2654 }
else if ( particle->GetPdgCode() == -211 ){
2656 }
else if ( particle->GetPdgCode() == 321 ){
2658 }
else if ( particle->GetPdgCode() == -321 ){
2660 }
else if ( TMath::Abs(particle->GetPdgCode()) == 310 ){
2662 }
else if ( TMath::Abs(particle->GetPdgCode()) == 130 ){
2664 }
else if ( TMath::Abs(particle->GetPdgCode()) == 3122 ){
2666 }
else if ( particle->GetPdgCode() == 22 ){
2668 if(particle->GetMother() > -1){
2669 AliAODMCParticle *mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2670 if ( TMath::Abs(mother->GetPdgCode()) == 111 ||
2671 TMath::Abs(mother->GetPdgCode()) == 113 ||
2672 TMath::Abs(mother->GetPdgCode()) == 221 ||
2673 TMath::Abs(mother->GetPdgCode()) == 223 ||
2674 TMath::Abs(mother->GetPdgCode()) == 331 ||
2675 TMath::Abs(mother->GetPdgCode()) == 333 ||
2676 TMath::Abs(mother->GetPdgCode()) == 3212 ||
2677 TMath::Abs(mother->GetPdgCode()) == 213
2688 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2689 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2693 if (particle->Pt()>0.005){
2698 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2707 }
else if( TMath::Abs(particle->GetPdgCode()) == 221 ){
2721 if( kDaughter0IsPrim && kDaughter1IsPrim &&
2733 Int_t gammaLabel = -1;
2734 Int_t electronLabel = -1;
2735 Int_t positronLabel = -1;
2739 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2740 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2741 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2742 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
2746 if (particle->Pt()>0.005){
2771 if( kGammaIsPrim && kElectronIsPrim && kPositronIsPrim &&
2789 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2790 if (!particle)
continue;
2792 Int_t isMCFromMBHeader = -1;
2801 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2802 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2803 AliAODMCParticle* mother = NULL;
2804 Int_t motherPDG = -1000000;
2805 if (particle->GetMother() > -1){
2806 mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetMother()));
2808 motherPDG = TMath::Abs(mother->GetPdgCode());
2811 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2819 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2826 Int_t gammaLabel = -1;
2827 Int_t electronLabel = -1;
2828 Int_t positronLabel = -1;
2832 if( (gammaLabel > -1) && (electronLabel > -1) && (positronLabel > -1) ){
2833 AliAODMCParticle* gamma =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaLabel));
2834 AliAODMCParticle* electron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(electronLabel));
2835 AliAODMCParticle* positron =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(positronLabel));
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 ){
2854 if( TMath::Abs(particle->GetPdgCode()) == 111 ){
2868 TAxis *axisafter = histoRebin->GetXaxis();
2869 Int_t bins = axisafter->GetNbins();
2870 Double_t from = axisafter->GetXmin();
2871 Double_t to = axisafter->GetXmax();
2874 Double_t factor = TMath::Power(to/from, 1./bins);
2875 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
2876 axisafter->Set(bins, newbins);
2883 if(tobechecked > -1)
2885 vector<Int_t>::iterator it;
2886 it = find (vec.begin(), vec.end(), tobechecked);
2887 if (it != vec.end())
return true;
2889 vec.push_back(tobechecked);
2906 if( ma.find(tobechecked) != ma.end() ) ma[tobechecked] += 1;
2907 else ma[tobechecked] = 2;
2913 map<Int_t, Int_t>::iterator it;
2914 for (it = ma.begin(); it != ma.end(); it++){
2925 if (daughter == 111) {
2926 if (TMath::Abs(pdgCode) == 310)
return 1;
2927 else if (TMath::Abs(pdgCode) == 3122)
return 2;
2928 else if (TMath::Abs(pdgCode) == 130)
return 3;
2929 else if (TMath::Abs(pdgCode) == 2212)
return 4;
2930 else if (TMath::Abs(pdgCode) == 2112)
return 5;
2931 else if (TMath::Abs(pdgCode) == 211)
return 6;
2932 else if (TMath::Abs(pdgCode) == 321)
return 7;
2933 else if (TMath::Abs(pdgCode) == 113 || TMath::Abs(pdgCode) == 213 )
return 8;
2934 else if (TMath::Abs(pdgCode) == 3222 || TMath::Abs(pdgCode) == 3212 || TMath::Abs(pdgCode) == 3112 )
return 9;
2935 else if (TMath::Abs(pdgCode) == 2224 || TMath::Abs(pdgCode) == 2214 || TMath::Abs(pdgCode) == 2114 || TMath::Abs(pdgCode) == 1114 )
return 10;
2936 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