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" 47 #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"),
72 fBGClusHandlerRP(NULL),
81 fOutputContainer(NULL),
83 fGammaCandidates(NULL),
84 fClusterCandidates(NULL),
88 fConversionCuts(NULL),
89 fClusterCutArray(NULL),
90 fCaloPhotonCuts(NULL),
93 fHistoConvGammaPt(NULL),
94 fHistoMotherInvMassPt(NULL),
95 fHistoMotherMatchedInvMassPt(NULL),
96 fSparseMotherInvMassPtZM(NULL),
97 fHistoMotherBackInvMassPt(NULL),
98 fSparseMotherBackInvMassPtZM(NULL),
99 fHistoMotherMesonPtY(NULL),
100 fHistoMotherMesonPtAlpha(NULL),
101 fHistoMotherMesonPtOpenAngle(NULL),
102 fHistoMotherMesonConvPhotonEtaPhi(NULL),
103 fHistoClusGammaPt(NULL),
104 fHistoClusGammaE(NULL),
105 fHistoClusOverlapHeadersGammaPt(NULL),
106 fHistoClusAllHeadersGammaPt(NULL),
107 fHistoClusRejectedHeadersGammaPt(NULL),
108 fHistoMCHeaders(NULL),
109 fHistoMCMesonPt(NULL),
110 fHistoMCMesonWOWeightPt(NULL),
111 fHistoMCMesonWOEvtWeightPt(NULL),
112 fHistoMCMesonInAccPt(NULL),
113 fHistoMCMesonWOWeightInAccPt(NULL),
114 fHistoMCMesonWOEvtWeightInAccPt(NULL),
115 fHistoMCMesonPtY(NULL),
116 fHistoMCMesonPtAlpha(NULL),
117 fHistoMCMesonPtJetPt(NULL),
118 fHistoTrueMesonInvMassPt(NULL),
119 fHistoTrueMesonMatchedInvMassPt(NULL),
120 fHistoTrueMesonCaloPhotonInvMassPt(NULL),
121 fHistoTrueMesonCaloConvertedPhotonInvMassPt(NULL),
122 fHistoTrueMesonCaloMixedPhotonConvPhotonInvMassPt(NULL),
123 fHistoTrueMesonCaloConvertedPhotonMatchedInvMassPt(NULL),
124 fHistoTrueMesonCaloElectronInvMassPt(NULL),
125 fHistoTrueMesonCaloMergedClusterInvMassPt(NULL),
126 fHistoTrueMesonCaloMergedClusterPartConvInvMassPt(NULL),
127 fHistoTruePrimaryMesonInvMassPt(NULL),
128 fHistoTruePrimaryMesonW0WeightingInvMassPt(NULL),
129 fProfileTruePrimaryMesonWeightsInvMassPt(NULL),
130 fHistoTruePrimaryMesonMCPtResolPt(NULL),
131 fHistoTrueMotherMesonConvPhotonEtaPhi(NULL),
132 fHistoTrueBckGGInvMassPt(NULL),
133 fHistoTrueBckFullMesonContainedInOneClusterInvMassPt(NULL),
134 fHistoTrueBckAsymEClustersInvMassPt(NULL),
135 fHistoTrueBckContInvMassPt(NULL),
136 fHistoTrueMesonPtY(NULL),
137 fHistoTrueMesonPtAlpha(NULL),
138 fHistoTrueMesonPtOpenAngle(NULL),
139 fHistoTrueConvGammaPt(NULL),
140 fHistoTruePrimaryConvGammaPt(NULL),
141 fHistoTrueClusGammaPt(NULL),
142 fHistoTrueClusConvGammaPt(NULL),
143 fHistoTrueClusConvGammaFullyPt(NULL),
144 fHistoTrueNLabelsInClusPt(NULL),
145 fHistoTruePrimaryClusGammaPt(NULL),
146 fHistoTruePrimaryClusConvGammaPt(NULL),
147 fVectorRecTrueMesons(0),
148 fHistoDoubleCountTrueMesonInvMassPt(NULL),
149 fHistoDoubleCountTrueConvGammaRPt(NULL),
150 fHistoDoubleCountTrueClusterGammaPt(NULL),
151 fVectorDoubleCountTrueMesons(0),
152 fVectorDoubleCountTrueConvGammas(0),
153 fVectorDoubleCountTrueClusterGammas(0),
154 fHistoMultipleCountTrueMeson(NULL),
155 fHistoMultipleCountTrueConvGamma(NULL),
156 fHistoMultipleCountTrueClusterGamma(NULL),
157 fMapMultipleCountTrueMesons(),
158 fMapMultipleCountTrueConvGammas(),
159 fMapMultipleCountTrueClusterGammas(),
161 fHistoNEventsWOWeight(NULL),
162 fHistoNGoodESDTracks(NULL),
166 fHistoNGammaConvCandidates(NULL),
167 fHistoNGammaCaloCandidates(NULL),
168 fHistoSPDClusterTrackletBackground(NULL),
169 fHistoNV0Tracks(NULL),
170 fProfileEtaShift(NULL),
171 fProfileJetJetXSection(NULL),
172 fHistoJetJetNTrials(NULL),
173 fEventPlaneAngle(-100),
175 fNGammaCandidates(0),
186 fMoveParticleAccordingToVertex(kTRUE),
188 fDoLightOutput(kFALSE),
194 fMesonInvMassNBins(0),
195 fMesonInvMassWindow(NULL),
199 fIsFromDesiredHeader(kTRUE),
200 fIsOverlappingWithOtherHeader(kFALSE),
203 fSetPlotHistsExtQA(kFALSE),
205 fDoConvGammaShowerShapeTree(kFALSE),
206 fEnableSortForClusMC(kFALSE),
207 fDoPrimaryTrackMatching(kFALSE),
208 fDoInvMassShowerShapeTree(kFALSE),
210 fFileNameBroken(NULL),
211 fAllowOverlapHeaders(kTRUE),
212 fEnableClusterCutsForTrigger(kFALSE)
221 fV0ReaderName(
"V0ReaderV1"),
222 fCorrTaskSetting(
""),
225 fBGClusHandler(NULL),
226 fBGClusHandlerRP(NULL),
237 fGammaCandidates(NULL),
238 fClusterCandidates(NULL),
239 fEventCutArray(NULL),
242 fConversionCuts(NULL),
243 fClusterCutArray(NULL),
244 fCaloPhotonCuts(NULL),
245 fMesonCutArray(NULL),
247 fHistoConvGammaPt(NULL),
248 fHistoMotherInvMassPt(NULL),
249 fHistoMotherMatchedInvMassPt(NULL),
250 fSparseMotherInvMassPtZM(NULL),
251 fHistoMotherBackInvMassPt(NULL),
252 fSparseMotherBackInvMassPtZM(NULL),
253 fHistoMotherMesonPtY(NULL),
254 fHistoMotherMesonPtAlpha(NULL),
255 fHistoMotherMesonPtOpenAngle(NULL),
256 fHistoMotherMesonConvPhotonEtaPhi(NULL),
257 fHistoClusGammaPt(NULL),
258 fHistoClusGammaE(NULL),
259 fHistoClusOverlapHeadersGammaPt(NULL),
260 fHistoClusAllHeadersGammaPt(NULL),
261 fHistoClusRejectedHeadersGammaPt(NULL),
262 fHistoMCHeaders(NULL),
263 fHistoMCMesonPt(NULL),
264 fHistoMCMesonWOWeightPt(NULL),
265 fHistoMCMesonWOEvtWeightPt(NULL),
266 fHistoMCMesonInAccPt(NULL),
267 fHistoMCMesonWOWeightInAccPt(NULL),
268 fHistoMCMesonWOEvtWeightInAccPt(NULL),
269 fHistoMCMesonPtY(NULL),
270 fHistoMCMesonPtAlpha(NULL),
271 fHistoMCMesonPtJetPt(NULL),
272 fHistoTrueMesonInvMassPt(NULL),
273 fHistoTrueMesonMatchedInvMassPt(NULL),
274 fHistoTrueMesonCaloPhotonInvMassPt(NULL),
275 fHistoTrueMesonCaloConvertedPhotonInvMassPt(NULL),
276 fHistoTrueMesonCaloMixedPhotonConvPhotonInvMassPt(NULL),
277 fHistoTrueMesonCaloConvertedPhotonMatchedInvMassPt(NULL),
278 fHistoTrueMesonCaloElectronInvMassPt(NULL),
279 fHistoTrueMesonCaloMergedClusterInvMassPt(NULL),
280 fHistoTrueMesonCaloMergedClusterPartConvInvMassPt(NULL),
281 fHistoTruePrimaryMesonInvMassPt(NULL),
282 fHistoTruePrimaryMesonW0WeightingInvMassPt(NULL),
283 fProfileTruePrimaryMesonWeightsInvMassPt(NULL),
284 fHistoTruePrimaryMesonMCPtResolPt(NULL),
285 fHistoTrueMotherMesonConvPhotonEtaPhi(NULL),
286 fHistoTrueBckGGInvMassPt(NULL),
287 fHistoTrueBckFullMesonContainedInOneClusterInvMassPt(NULL),
288 fHistoTrueBckAsymEClustersInvMassPt(NULL),
289 fHistoTrueBckContInvMassPt(NULL),
290 fHistoTrueMesonPtY(NULL),
291 fHistoTrueMesonPtAlpha(NULL),
292 fHistoTrueMesonPtOpenAngle(NULL),
293 fHistoTrueConvGammaPt(NULL),
294 fHistoTruePrimaryConvGammaPt(NULL),
295 fHistoTrueClusGammaPt(NULL),
296 fHistoTrueClusConvGammaPt(NULL),
297 fHistoTrueClusConvGammaFullyPt(NULL),
298 fHistoTrueNLabelsInClusPt(NULL),
299 fHistoTruePrimaryClusGammaPt(NULL),
300 fHistoTruePrimaryClusConvGammaPt(NULL),
301 fVectorRecTrueMesons(0),
302 fHistoDoubleCountTrueMesonInvMassPt(NULL),
303 fHistoDoubleCountTrueConvGammaRPt(NULL),
304 fHistoDoubleCountTrueClusterGammaPt(NULL),
305 fVectorDoubleCountTrueMesons(0),
306 fVectorDoubleCountTrueConvGammas(0),
307 fVectorDoubleCountTrueClusterGammas(0),
308 fHistoMultipleCountTrueMeson(NULL),
309 fHistoMultipleCountTrueConvGamma(NULL),
310 fHistoMultipleCountTrueClusterGamma(NULL),
311 fMapMultipleCountTrueMesons(),
312 fMapMultipleCountTrueConvGammas(),
313 fMapMultipleCountTrueClusterGammas(),
315 fHistoNEventsWOWeight(NULL),
316 fHistoNGoodESDTracks(NULL),
320 fHistoNGammaConvCandidates(NULL),
321 fHistoNGammaCaloCandidates(NULL),
322 fHistoSPDClusterTrackletBackground(NULL),
323 fHistoNV0Tracks(NULL),
324 fProfileEtaShift(NULL),
325 fProfileJetJetXSection(NULL),
326 fHistoJetJetNTrials(NULL),
327 fEventPlaneAngle(-100),
329 fNGammaCandidates(0),
340 fMoveParticleAccordingToVertex(kTRUE),
342 fDoLightOutput(kFALSE),
348 fMesonInvMassNBins(0),
349 fMesonInvMassWindow(NULL),
353 fIsFromDesiredHeader(kTRUE),
354 fIsOverlappingWithOtherHeader(kFALSE),
357 fSetPlotHistsExtQA(kFALSE),
359 fDoConvGammaShowerShapeTree(kFALSE),
360 fEnableSortForClusMC(kFALSE),
361 fDoPrimaryTrackMatching(kFALSE),
362 fDoInvMassShowerShapeTree(kFALSE),
364 fFileNameBroken(NULL),
365 fAllowOverlapHeaders(kTRUE),
366 fEnableClusterCutsForTrigger(kFALSE)
369 DefineOutput(1, TList::Class());
402 const Int_t nDim = 4;
403 Int_t nBins[nDim] = {800,300,7,4};
421 TString cutstringConvGamma =
"";
422 TString cutstringCaloGamma =
"";
428 if (
fMesonRecoMode == 0) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringConvGamma.Data(), cutstringMeson.Data());
429 else if (
fMesonRecoMode == 1) fullCutString = Form(
"%i_%s_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(), cutstringMeson.Data());
430 else if (
fMesonRecoMode == 2) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringCaloGamma.Data(), cutstringMeson.Data());
436 if( collisionSystem == 1 || collisionSystem == 2 ||
437 collisionSystem == 5 || collisionSystem == 8 ||
438 collisionSystem == 9){
439 centMin = centMin*10;
440 centMax = centMax*10;
441 if(centMax ==0 && centMax!=centMin) centMax=100;
442 }
else if(collisionSystem == 3 || collisionSystem == 6){
445 }
else if(collisionSystem == 4 || collisionSystem == 7){
446 centMin = ((centMin*5)+45);
447 centMax = ((centMax*5)+45);
452 fBackList[iCut]->SetName(Form(
"%s Back histograms",fullCutString.Data()));
460 fMotherList[iCut]->SetName(Form(
"%s Mother histograms",fullCutString.Data()));
464 fSparseMotherInvMassPtZM[iCut] =
new THnSparseF(
"Back_Mother_InvMass_Pt_z_m",
"Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
495 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
499 }
else if (
fIsMC == 3){
578 if (fMesonType < 0 || fMesonType > 2){
579 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
607 Int_t nBinsQAPt = 170;
609 Int_t nBinsClusterPt = 500;
619 for(
Int_t i=0; i<nBinsQAPt+1;i++){
620 if(i<60) arrQAPtBinning[i] = 0.05*i;
621 else if(i<130) arrQAPtBinning[i] = 3.+0.1*(i-60);
622 else if(i<170) arrQAPtBinning[i] = 10.+0.25*(i-130);
623 else if(i<190) arrQAPtBinning[i] = 20.+1.0*(i-170);
624 else arrQAPtBinning[i] = maxQAPt;
629 for(
Int_t i=0; i<nBinsPt+1;i++){
630 arrPtBinning[i] = ((maxPt-minPt)/nBinsPt)*i;
632 nBinsClusterPt = 800;
635 for(
Int_t i=0; i<nBinsPt+1;i++){
636 arrClusPtBinning[i] = ((maxClusterPt-minClusterPt)/nBinsClusterPt)*i;
646 for(
Int_t i=0; i<nBinsPt+1;i++){
647 if (i < 1) arrPtBinning[i] = 0.3*i;
648 else if(i<55) arrPtBinning[i] = 0.3+0.05*(i-1);
649 else if(i<125) arrPtBinning[i] = 3.+0.1*(i-55);
650 else if(i<165) arrPtBinning[i] = 10.+0.25*(i-125);
651 else if(i<205) arrPtBinning[i] = 20.+1.0*(i-165);
652 else arrPtBinning[i] = maxPt;
656 for(
Int_t i=0; i<nBinsQAPt+1;i++){
657 if(i<60) arrQAPtBinning[i] = 0.05*i;
658 else if(i<130) arrQAPtBinning[i] = 3.+0.1*(i-60);
659 else if(i<170) arrQAPtBinning[i] = 10.+0.25*(i-130);
660 else if(i<210) arrQAPtBinning[i] = 20.+1.0*(i-170);
661 else arrQAPtBinning[i] = maxQAPt;
663 nBinsClusterPt = 301;
666 for(
Int_t i=0; i<nBinsClusterPt+1;i++){
667 if (i < 1) arrClusPtBinning[i] = 0.3*i;
668 else if(i<55) arrClusPtBinning[i] = 0.3+0.05*(i-1);
669 else if(i<125) arrClusPtBinning[i] = 3.+0.1*(i-55);
670 else if(i<155) arrClusPtBinning[i] = 10.+0.2*(i-125);
671 else if(i<211) arrClusPtBinning[i] = 16.+0.25*(i-155);
672 else if(i<251) arrClusPtBinning[i] = 30.+0.5*(i-211);
673 else if(i<301) arrClusPtBinning[i] = 50.+1.0*(i-251);
674 else arrClusPtBinning[i] = maxClusterPt;
684 for(
Int_t i=0; i<nBinsPt+1;i++){
685 if (i < 1) arrPtBinning[i] = 0.3*i;
686 else if(i<55) arrPtBinning[i] = 0.3+0.05*(i-1);
687 else if(i<125) arrPtBinning[i] = 3.+0.1*(i-55);
688 else if(i<185) arrPtBinning[i] = 10.+0.25*(i-125);
689 else if(i<235) arrPtBinning[i] = 25.+0.5*(i-185);
690 else if(i<285) arrPtBinning[i] = 50.+1.0*(i-235);
691 else arrPtBinning[i] = maxPt;
695 for(
Int_t i=0; i<nBinsQAPt+1;i++){
696 if(i<60) arrQAPtBinning[i] = 0.05*i;
697 else if(i<130) arrQAPtBinning[i] = 3.+0.1*(i-60);
698 else if(i<170) arrQAPtBinning[i] = 10.+0.25*(i-130);
699 else if(i<210) arrQAPtBinning[i] = 20.+0.5*(i-170);
700 else if(i<270) arrQAPtBinning[i] = 40.+1.0*(i-210);
701 else arrQAPtBinning[i] = maxQAPt;
703 nBinsClusterPt = 301;
706 for(
Int_t i=0; i<nBinsClusterPt+1;i++){
707 if (i < 1) arrClusPtBinning[i] = 0.3*i;
708 else if(i<55) arrClusPtBinning[i] = 0.3+0.05*(i-1);
709 else if(i<125) arrClusPtBinning[i] = 3.+0.1*(i-55);
710 else if(i<155) arrClusPtBinning[i] = 10.+0.2*(i-125);
711 else if(i<211) arrClusPtBinning[i] = 16.+0.25*(i-155);
712 else if(i<251) arrClusPtBinning[i] = 30.+0.5*(i-211);
713 else if(i<301) arrClusPtBinning[i] = 50.+1.0*(i-251);
714 else arrClusPtBinning[i] = maxClusterPt;
720 for(
Int_t i=0; i<nBinsPt+1;i++){
721 if (i < 1) arrPtBinning[i] = 0.3*i;
722 else if(i<58) arrPtBinning[i] = 0.3+0.1*(i-1);
723 else if(i<82) arrPtBinning[i] = 6.+0.25*(i-58);
724 else if(i<90) arrPtBinning[i] = 12.+1.0*(i-82);
725 else arrPtBinning[i] = maxPt;
729 for(
Int_t i=0; i<nBinsQAPt+1;i++){
730 if(i<60) arrQAPtBinning[i] = 0.1*i;
731 else if(i<84) arrQAPtBinning[i] = 6.+0.25*(i-60);
732 else if(i<92) arrQAPtBinning[i] = 12.+1.0*(i-84);
733 else arrQAPtBinning[i] = maxQAPt;
735 nBinsClusterPt = 148;
738 for(
Int_t i=0; i<nBinsClusterPt+1;i++){
739 if (i < 1) arrClusPtBinning[i] = 0.3*i;
740 else if(i<98) arrClusPtBinning[i] = 0.3+0.1*(i-1);
741 else if(i<123) arrClusPtBinning[i] = 10.+0.2*(i-98);
742 else if(i<148) arrClusPtBinning[i] = 15.+1.0*(i-123);
743 else arrClusPtBinning[i] = maxClusterPt;
749 for(
Int_t i=0; i<nBinsPt+1;i++){
750 if (i < 1) arrPtBinning[i] = 0.3*i;
751 else if(i<58) arrPtBinning[i] = 0.3+0.1*(i-1);
752 else if(i<82) arrPtBinning[i] = 6.+0.25*(i-58);
753 else if(i<90) arrPtBinning[i] = 12.+1.0*(i-82);
754 else arrPtBinning[i] = maxPt;
758 for(
Int_t i=0; i<nBinsQAPt+1;i++){
759 if(i<60) arrQAPtBinning[i] = 0.1*i;
760 else if(i<84) arrQAPtBinning[i] = 6.+0.25*(i-60);
761 else if(i<92) arrQAPtBinning[i] = 12.+1.0*(i-84);
762 else arrQAPtBinning[i] = maxQAPt;
764 nBinsClusterPt = 148;
767 for(
Int_t i=0; i<nBinsClusterPt+1;i++){
768 if (i < 1) arrClusPtBinning[i] = 0.3*i;
769 else if(i<98) arrClusPtBinning[i] = 0.3+0.1*(i-1);
770 else if(i<123) arrClusPtBinning[i] = 10.+0.2*(i-98);
771 else if(i<148) arrClusPtBinning[i] = 15.+1.0*(i-123);
772 else arrClusPtBinning[i] = maxClusterPt;
776 for(
Int_t i=0; i<nBinsPt+1;i++){
777 arrPtBinning[i] = ((maxPt-minPt)/nBinsPt)*i;
779 for(
Int_t i=0; i<nBinsClusterPt+1;i++){
780 arrClusPtBinning[i] = ((maxClusterPt-minClusterPt)/nBinsClusterPt)*i;
782 for(
Int_t i=0; i<nBinsQAPt+1;i++){
783 if(i<60) arrQAPtBinning[i] = 0.05*i;
784 else if(i<130) arrQAPtBinning[i] = 3.+0.1*(i-60);
785 else if(i<170) arrQAPtBinning[i] = 10.+0.25*(i-130);
786 else arrQAPtBinning[i] = maxQAPt;
792 TString cutstringConvGamma =
"";
793 TString cutstringCaloGamma =
"";
799 if (
fMesonRecoMode == 0) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringConvGamma.Data(), cutstringMeson.Data());
800 else if (
fMesonRecoMode == 1) fullCutString = Form(
"%i_%s_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(), cutstringMeson.Data());
801 else if (
fMesonRecoMode == 2) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringCaloGamma.Data(), cutstringMeson.Data());
804 fCutFolder[iCut]->SetName(Form(
"Cut Number %s",fullCutString.Data()));
805 fCutFolder[iCut]->SetOwner(kTRUE);
808 fESDList[iCut]->SetName(Form(
"%s ESD histograms",fullCutString.Data()));
810 fCutFolder[iCut]->Add(
fESDList[iCut]);
812 fHistoNEvents[iCut] =
new TH1F(
"NEvents",
"NEvents", 14, -0.5, 13.5);
814 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
815 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Miss. MC or inc. ev.");
817 TString TriggerNames =
"Not Trigger: ";
819 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
824 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
828 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problem");
829 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(11,
"rejectedForJetJetMC");
830 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
831 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
832 fHistoNEvents[iCut]->GetXaxis()->SetBinLabel(14,
"Pileup V0M-TPCout Tracks");
841 TString TriggerNames =
"Not Trigger: ";
869 fHistoNGoodESDTracks[iCut] =
new TH1F(
"GoodESDTracks",
"GoodESDTracks; # TPC tracks", 4000, 0, 4000);
871 fHistoNGoodESDTracks[iCut] =
new TH1F(
"GoodESDTracks",
"GoodESDTracks; # TPC tracks", 400, 0, 400);
873 fHistoNGoodESDTracks[iCut] =
new TH1F(
"GoodESDTracks",
"GoodESDTracks; # TPC tracks", 200, 0, 200);
876 fHistoVertexZ[iCut] =
new TH1F(
"VertexZ",
"VertexZ", 200, -10, 10);
879 fHistoVertexX[iCut] =
new TH1F(
"VertexX",
"VertexX", 100, -5, 5);
881 fHistoVertexY[iCut] =
new TH1F(
"VertexY",
"VertexY", 100, -5, 5);
887 fHistoNGammaConvCandidates[iCut] =
new TH1F(
"GammaConvCandidates",
"GammaConvCandidates; # accepted #gamma_{conv}", 100, 0, 100);
889 fHistoNGammaConvCandidates[iCut] =
new TH1F(
"GammaConvCandidates",
"GammaConvCandidates; # accepted #gamma_{conv}", 50, 0, 50);
891 fHistoNGammaConvCandidates[iCut] =
new TH1F(
"GammaConvCandidates",
"GammaConvCandidates; # accepted #gamma_{conv}", 50, 0, 50);
896 fHistoNGammaCaloCandidates[iCut] =
new TH1F(
"GammaCaloCandidates",
"GammaCaloCandidates; # accepted #gamma_{conv}", 100, 0, 100);
898 fHistoNGammaCaloCandidates[iCut] =
new TH1F(
"GammaCaloCandidates",
"GammaCaloCandidates; # accepted #gamma_{conv}", 50, 0, 50);
900 fHistoNGammaCaloCandidates[iCut] =
new TH1F(
"GammaCaloCandidates",
"GammaCaloCandidates; # accepted #gamma_{conv}", 50, 0, 50);
909 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity; VZERO amp [arb. units]", 30000, 0, 30000);
911 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity; VZERO amp [arb. units]", 2500, 0, 2500);
913 fHistoNV0Tracks[iCut] =
new TH1F(
"V0 Multiplicity",
"V0 Multiplicity; VZERO amp [arb. units]", 1500, 0, 1500);
917 fHistoConvGammaPt[iCut] =
new TH1F(
"ESD_ConvGamma_Pt",
"ESD_ConvGamma_Pt; p_{T,conv}(GeV/c)", (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
921 fHistoClusGammaPt[iCut] =
new TH1F(
"ClusGamma_Pt",
"ClusGamma_Pt; p_{T,clus} (GeV/c)", nBinsClusterPt, arrClusPtBinning);
923 fHistoClusGammaE[iCut] =
new TH1F(
"ClusGamma_E",
"ClusGamma_E; E_{clus} (GeV)", nBinsClusterPt, arrClusPtBinning);
926 fHistoClusOverlapHeadersGammaPt[iCut] =
new TH1F(
"ClusGammaOverlapHeaders_Pt",
"ClusGammaOverlapHeaders_Pt; p_{T,clus} (GeV/c), selected header w/ overlap",
927 nBinsClusterPt, arrClusPtBinning);
930 nBinsClusterPt, arrClusPtBinning);
933 nBinsClusterPt, arrClusPtBinning);
940 fProfileEtaShift[iCut] =
new TProfile(
"Eta Shift",
"Eta Shift", 1, -0.5, 0.5);
968 fHistoMotherInvMassPt[iCut] =
new TH2F(
"ESD_Mother_InvMass_Pt",
"ESD_Mother_InvMass_Pt; M_{inv} (GeV/c^{2}); p_{T,pair} (GeV/c)",
974 fHistoMotherMatchedInvMassPt[iCut] =
new TH2F(
"ESD_MotherMatched_InvMass_Pt",
"ESD_MotherMatched_InvMass_Pt; M_{inv} (GeV/c^{2}) matched conv e^{+/-}to cluster; p_{T,pair} (GeV/c)",
980 fHistoMotherBackInvMassPt[iCut] =
new TH2F(
"ESD_Background_InvMass_Pt",
"ESD_Background_InvMass_Pt; M_{inv, mxed}(GeV/c^{2}); p_{T,BG pair} (GeV/c)",
991 fHistoMotherMesonPtY[iCut] =
new TH2F(
"ESD_MotherMeson_Pt_Y",
"ESD_MotherMeson_Pt_Y; p_{T, meson cand} (GeV/c); y_{meson cand}",
992 nBinsQAPt, arrQAPtBinning, 150, -1.5, 1.5);
994 fHistoMotherMesonPtAlpha[iCut] =
new TH2F(
"ESD_MotherMeson_Pt_Alpha",
"ESD_MotherMeson_Pt_Alpha; p_{T, meson cand} (GeV/c); #alpha_{meson cand}",
995 nBinsQAPt, arrQAPtBinning, 200, -1, 1);
997 fHistoMotherMesonPtOpenAngle[iCut] =
new TH2F(
"ESD_MotherMeson_Pt_OpenAngle",
"ESD_MotherMeson_Pt_OpenAngle; p_{T, meson cand} (GeV/c); #theta_{meson cand}",
998 nBinsQAPt, arrQAPtBinning, 100, 0, 1);
1001 600, 0, 2*TMath::Pi(), 200, -1, 1);
1097 TString cutstringConvGamma =
"";
1098 TString cutstringCaloGamma =
"";
1104 if (
fMesonRecoMode == 0) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringConvGamma.Data(), cutstringMeson.Data());
1105 else if (
fMesonRecoMode == 1) fullCutString = Form(
"%i_%s_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(), cutstringMeson.Data());
1106 else if (
fMesonRecoMode == 2) fullCutString = Form(
"%i_%s_%s_%s",
fMesonRecoMode, cutstringEvent.Data(), cutstringCaloGamma.Data(), cutstringMeson.Data());
1109 fMCList[iCut]->SetName(Form(
"%s MC histograms",fullCutString.Data()));
1110 fMCList[iCut]->SetOwner(kTRUE);
1117 fHistoMCMesonPt[iCut] =
new TH1F(
"MC_Meson_Pt",
"MC_Meson_Pt; p_{T} (GeV/c)",
1118 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1122 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1126 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1130 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1137 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1140 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1145 nBinsQAPt, arrQAPtBinning, 200, 0, 200);
1154 nBinsQAPt, arrQAPtBinning, 150, -1.5, 1.5);
1158 nBinsQAPt, arrQAPtBinning, 200, -1, 1);
1167 fTrueList[iCut]->SetName(Form(
"%s True histograms",fullCutString.Data()));
1173 fHistoTrueConvGammaPt[iCut] =
new TH1F(
"ESD_TrueConvGamma_Pt",
"ESD_TrueConvGamma_Pt; p_{T,conv} (GeV/c); counts",
1174 (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1177 800, 0, 200, (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1181 fHistoTruePrimaryConvGammaPt[iCut] =
new TH1F(
"ESD_TruePrimaryConvGamma_Pt",
"ESD_TruePrimaryConvGamma_Pt;p_{T,conv} (GeV/c); counts", (
Int_t)((maxPt-minPt)/binWidthPt), minPt, maxPt);
1185 fHistoTrueClusGammaPt[iCut] =
new TH1F(
"TrueClusGamma_Pt",
"ESD_TrueClusGamma_Pt; p_{T,clus} (GeV/c); counts", nBinsClusterPt, arrClusPtBinning);
1187 fHistoTruePrimaryClusGammaPt[iCut] =
new TH1F(
"TruePrimaryClusGamma_Pt",
"ESD_TruePrimaryClusGamma_Pt; p_{T,clus} (GeV/c); counts", nBinsClusterPt, arrClusPtBinning);
1189 fHistoTrueClusConvGammaPt[iCut] =
new TH1F(
"TrueClusConvGamma_Pt",
"TrueClusConvGamma_Pt; p_{T,clus} (GeV/c); counts", nBinsClusterPt, arrClusPtBinning);
1191 fHistoTruePrimaryClusConvGammaPt[iCut] =
new TH1F(
"TruePrimaryClusConvGamma_Pt",
"ESD_TruePrimaryClusConvGamma_Pt; p_{T,clus} (GeV/c); counts", nBinsClusterPt, arrClusPtBinning);
1194 nBinsClusterPt, arrClusPtBinning, 2, 0, 2);
1198 fHistoTrueClusConvGammaFullyPt[iCut] =
new TH1F(
"TrueClusConvGammaFullyContained_Pt",
"TrueClusConvGammaFullyContained_Pt; p_{T,clus} (GeV/c); counts",
1199 nBinsClusterPt, arrClusPtBinning);
1202 100, -0.5, 99.5, nBinsClusterPt, arrClusPtBinning);
1237 fHistoMultipleCountTrueMeson[iCut] =
new TH1F(
"ESD_TrueMultipleCountMeson",
"ESD_TrueMultipleCountMeson;# number of multiple counts;#", 10, 1, 11);
1247 "ESD_TruePrimaryMesonW0Weights_InvMass_Pt;M_{inv}(GeV/c^{2});p_{T}(GeV/c)",
1252 "ESD_TruePrimaryMesonWeights_InvMass_Pt;M_{inv}(GeV/c^{2});p_{T}(GeV/c)",
1272 "ESD_TrueMesonCaloPhoton_InvMass_Pt; M_{inv}(GeV/c^{2}) #gamma #gamma;p_{T}(GeV/c) ",
1276 "ESD_TrueMesonCaloConvertedPhoton_InvMass_Pt;M_{inv}(GeV/c^{2}) #gamma #gamma_{conv};p_{T}(GeV/c)",
1280 "ESD_TrueMesonCaloElectron_InvMass_Pt; M_{inv}(GeV/c^{2}) #gamma e^{#pm}; ; p_{T}(GeV/c)",
1284 "ESD_TrueMesonCaloMergedCluster_InvMass_Pt; M_{inv}(GeV/c^{2}) #gamma merged cluster; p_{T}(GeV/c)",
1288 "ESD_TrueMesonCaloMergedClusterPartConv_InvMass_Pt; M_{inv}(GeV/c^{2}) #gamma merged cluster, part conv; p_{T}(GeV/c)",
1294 "ESD_TrueMesonCaloConvertedPhotonMatched_InvMass_Pt;M_{inv}(GeV/c^{2}) #gamma #gamma_{conv,matched};p_{T}(GeV/c)",
1298 600, 0, 2*TMath::Pi(), 200, -1, 1);
1303 "ESD_TrueMesonCaloMixedPhotonConvertedPhoton_InvMass_Pt;M_{inv}(GeV/c^{2}) #gamma #gamma_{conv,matched};p_{T}(GeV/c)",
1308 "ESD_TruePrimaryMeson_ResolPt_MCPt; p_{T,MC}(GeV/c); (p_{T,rec}-p_{T,MC})/p_{T,MC}()",
1309 500, 0.03, 25, 1000, -1., 1.);
1316 "ESD_TrueBckGG_InvMass_Pt; M_{inv} (GeV/c^{2}) #gamma #gamma no signal; #pair p_{T}(GeV/c)",
1320 "ESD_TrueBckFullMesonContained_InvMass_Pt; M_{inv} (GeV/c^{2}) #gamma #gamma, calo gamma with full pi0; #pair p_{T}(GeV/c)",
1324 "ESD_TrueBckAsymEClus_InvMass_Pt; M_{inv} (GeV/c^{2}) #gamma #gamma, calo gamma >70% of pi0 energy; #pair p_{T}(GeV/c)",
1328 "ESD_TrueBckCont_InvMass_Pt; M_{inv} (GeV/c^{2}) contamination; #pair p_{T}(GeV/c)",
1333 nBinsQAPt, arrQAPtBinning, 150, -1.5, 1.5);
1336 nBinsQAPt, arrQAPtBinning, 200, -1, 1);
1339 nBinsQAPt, arrQAPtBinning, 100, 0, 1);
1381 for(
Int_t iMatcherTask = 0; iMatcherTask < 3; iMatcherTask++){
1444 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
1464 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
1466 if(eventQuality == 2 || eventQuality == 3){
1492 AliEventplane *EventPlane =
fInputEvent->GetEventplane();
1504 Bool_t isRunningEMCALrelAna = kFALSE;
1515 if((xsection==-1.) || (ntrials==-1.)) AliFatal(Form(
"ERROR: GetXSectionAndNTrials returned invalid xsection/ntrials, periodName from V0Reader: '%s'",
fV0Reader->
GetPeriodName().Data()));
1536 Bool_t triggered = kTRUE;
1538 if(eventNotAccepted!= 0){
1542 if (eventNotAccepted==3 &&
fIsMC > 0){
1549 if(eventQuality != 0){
1556 if (triggered==kTRUE){
1579 else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1588 if (nameBin.CompareTo(
"")== 0){
1590 ->GetAcceptedHeader())->At(i))->GetString();
1591 fHistoMCHeaders[iCut]->GetXaxis()->SetBinLabel(i+1,nameHeader.Data());
1604 if (triggered==kFALSE)
continue;
1685 TClonesArray * arrClustersProcess = NULL;
1690 if(!arrClustersProcess)
1691 AliFatal(Form(
"%sClustersBranch was not found in AliAnalysisTaskHeavyNeutralMesonToGG! Check the correction framework settings!",
fCorrTaskSetting.Data()));
1692 nclus = arrClustersProcess->GetEntries();
1697 if(nclus == 0)
return;
1707 InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1710 for(
Int_t i = 0; i < nclus; i++){
1711 AliVCluster* clus = NULL;
1713 if(arrClustersProcess)
1714 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersProcess->At(i));
1716 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)
fInputEvent->GetCaloCluster(i));
1717 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
1718 if(arrClustersProcess)
1719 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersProcess->At(i));
1721 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)
fInputEvent->GetCaloCluster(i));
1724 if (!clus)
continue;
1731 TLorentzVector clusterVector;
1732 clus->GetMomentum(clusterVector,vertex);
1734 TLorentzVector* tmpvec =
new TLorentzVector();
1735 tmpvec->SetPxPyPzE(clusterVector.Px(),clusterVector.Py(),clusterVector.Pz(),clusterVector.E());
1739 if(!PhotonCandidate){
delete clus;
delete tmpvec;
continue;}
1749 Int_t* mclabelsCluster = clus->GetLabels();
1752 if (clus->GetNLabels()>0){
1753 for (
Int_t k =0; k<(
Int_t)clus->GetNLabels(); k++){
1769 if (clus->GetNLabels()>1){
1770 Int_t* mclabelsCluster = clus->GetLabels();
1771 for (
Int_t l = 1; l < (
Int_t)clus->GetNLabels(); l++ ){
1797 delete PhotonCandidate;
1808 TParticle *Photon = NULL;
1809 if (!TruePhotonCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
1823 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1824 Double_t mcProdVtxX = primVtxMC->GetX();
1825 Double_t mcProdVtxY = primVtxMC->GetY();
1826 Double_t mcProdVtxZ = primVtxMC->GetZ();
1863 Int_t motherLab = Photon->GetMother(0);
1864 if (motherLab > -1){
1871 Int_t grandMotherLab =
fMCEvent->Particle(motherLab)->GetMother(0);
1872 if (grandMotherLab > -1){
1888 AliAODMCParticle *Photon = NULL;
1889 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
1890 if (AODMCTrackArray){
1891 if (!TruePhotonCandidate->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set task will abort");
1895 AliInfo(
"AODMCTrackArray could not be loaded");
1907 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1908 Double_t mcProdVtxX = primVtxMC->GetX();
1909 Double_t mcProdVtxY = primVtxMC->GetY();
1910 Double_t mcProdVtxZ = primVtxMC->GetZ();
1915 if (Photon->GetMother()> -1){
1916 AliAODMCParticle *Mother = (AliAODMCParticle*) AODMCTrackArray->At(Photon->GetMother());
1940 Int_t motherLab = Photon->GetMother();
1941 if (motherLab > -1){
1948 Int_t grandMotherLab = ((AliAODMCParticle*) AODMCTrackArray->At(motherLab))->GetMother();
1949 if (grandMotherLab > -1){
1971 if(!PhotonCandidate)
continue;
1999 GammaCandidatesStepOne->Add(PhotonCandidate);
2002 GammaCandidatesStepTwo->Add(PhotonCandidate);
2007 for(
Int_t i = 0;i<GammaCandidatesStepOne->GetEntries();i++){
2009 if(!PhotonCandidate)
continue;
2028 }
else GammaCandidatesStepTwo->Add(PhotonCandidate);
2033 for(
Int_t i = 0;i<GammaCandidatesStepTwo->GetEntries();i++){
2035 if(!PhotonCandidate)
continue;
2056 delete GammaCandidatesStepOne;
2057 GammaCandidatesStepOne = 0x0;
2058 delete GammaCandidatesStepTwo;
2059 GammaCandidatesStepTwo = 0x0;
2066 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2067 Double_t mcProdVtxX = primVtxMC->GetX();
2068 Double_t mcProdVtxY = primVtxMC->GetY();
2069 Double_t mcProdVtxZ = primVtxMC->GetZ();
2071 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2072 if (AODMCTrackArray == NULL)
return;
2073 AliAODMCParticle *posDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelPositive());
2074 AliAODMCParticle *negDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelNegative());
2076 if(posDaughter == NULL || negDaughter == NULL)
return;
2077 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2079 if(posDaughter->GetMother() != negDaughter->GetMother()){
2081 }
else if(posDaughter->GetMother() == -1){
2085 if(pdgCode[0]!=11 || pdgCode[1]!=11){
2089 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode()){
2093 AliAODMCParticle *Photon = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
2094 if(Photon->GetPdgCode() != 22){
2098 if(((posDaughter->GetMCProcessCode())) != 5 || ((negDaughter->GetMCProcessCode())) != 5){
2129 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2130 Double_t mcProdVtxX = primVtxMC->GetX();
2131 Double_t mcProdVtxY = primVtxMC->GetY();
2132 Double_t mcProdVtxZ = primVtxMC->GetZ();
2138 if(posDaughter == NULL || negDaughter == NULL)
return;
2139 Int_t pdgCode[2] = {TMath::Abs(posDaughter->GetPdgCode()),TMath::Abs(negDaughter->GetPdgCode())};
2140 if(posDaughter->GetMother(0) != negDaughter->GetMother(0)){
2143 else if(posDaughter->GetMother(0) == -1){
2147 if(pdgCode[0]!=11 || pdgCode[1]!=11)
return;
2149 if(posDaughter->GetPdgCode()==negDaughter->GetPdgCode())
return;
2153 if(Photon->GetPdgCode() != 22){
2157 if(posDaughter->GetUniqueID() != 5 || negDaughter->GetUniqueID() !=5)
return;
2183 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2184 Double_t mcProdVtxX = primVtxMC->GetX();
2185 Double_t mcProdVtxY = primVtxMC->GetY();
2186 Double_t mcProdVtxZ = primVtxMC->GetZ();
2188 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2189 if (AODMCTrackArray == NULL)
return;
2192 for(Long_t i = 0; i < AODMCTrackArray->GetEntriesFast(); i++) {
2194 AliAODMCParticle* particle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(i));
2195 if (!particle)
continue;
2200 Int_t isMCFromMBHeader = -1;
2212 if (particle->E() != TMath::Abs(particle->Pz())){
2213 ratio = (particle->E()+particle->Pz()) / (particle->E()-particle->Pz());
2215 if( !(ratio <= 0) ){
2221 AliAODMCParticle* daughter0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(0)));
2222 AliAODMCParticle* daughter1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(particle->GetDaughter(1)));
2225 if (particle->Pt()>0.005){
2231 if(particle->GetPdgCode() ==
fMesonPDG){
2232 alpha = (daughter0->E() - daughter1->E())/(daughter0->E() + daughter1->E());
2283 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2284 Double_t mcProdVtxX = primVtxMC->GetX();
2285 Double_t mcProdVtxY = primVtxMC->GetY();
2286 Double_t mcProdVtxZ = primVtxMC->GetZ();
2290 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
2293 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
2294 if (!particle)
continue;
2296 Int_t isMCFromMBHeader = -1;
2309 if (particle->Energy() != TMath::Abs(particle->Pz())){
2310 ratio = (particle->Energy()+particle->Pz()) / (particle->Energy()-particle->Pz());
2312 if( !(ratio <= 0) ){
2318 TParticle* daughter0 = (TParticle*)
fMCEvent->Particle(particle->GetFirstDaughter());
2319 TParticle* daughter1 = (TParticle*)
fMCEvent->Particle(particle->GetLastDaughter());
2323 if (particle->Pt()>0.005){
2329 if(particle->GetPdgCode() ==
fMesonPDG){
2330 alpha = (daughter0->Energy() - daughter1->Energy())/(daughter0->Energy() + daughter1->Energy());
2343 if( kDaughter0IsPrim && kDaughter1IsPrim ){
2384 TClonesArray * arrClustersMesonCand = NULL;
2386 arrClustersMesonCand = dynamic_cast<TClonesArray*>(
fInputEvent->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
2392 if (gamma0==NULL)
continue;
2393 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fGammaCandidates->GetEntries();secondGammaIndex++){
2396 if (gamma1==NULL)
continue;
2403 mesonCand->
SetLabels(firstGammaIndex,secondGammaIndex);
2456 if (gamma0==NULL)
continue;
2461 if (gamma1==NULL)
continue;
2464 AliVCluster* cluster = NULL;
2466 if(arrClustersMesonCand)
2467 cluster =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersMesonCand->At(gamma1->
GetCaloClusterRef()));
2470 }
else if(
fInputEvent->IsA()==AliAODEvent::Class()){
2471 if(arrClustersMesonCand)
2472 cluster =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersMesonCand->At(gamma1->
GetCaloClusterRef()));
2478 if(arrClustersMesonCand)
delete cluster;
2482 mesonCand->
SetLabels(firstGammaIndex,secondGammaIndex);
2541 if (gamma0==NULL)
continue;
2542 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<
fClusterCandidates->GetEntries();secondGammaIndex++){
2544 if (gamma1==NULL)
continue;
2547 mesonCand->
SetLabels(firstGammaIndex,secondGammaIndex);
2597 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2598 Double_t mcProdVtxX = primVtxMC->GetX();
2599 Double_t mcProdVtxY = primVtxMC->GetY();
2600 Double_t mcProdVtxZ = primVtxMC->GetZ();
2604 Bool_t isTrueMeson = kFALSE;
2605 Int_t gamma0MCLabel = -1;
2606 Int_t gamma0MotherLabel = -1;
2609 if(gamma0MCLabel>-1){
2610 TParticle * gammaMC0 = (TParticle*)
fMCEvent->Particle(gamma0MCLabel);
2611 gamma0MotherLabel=gammaMC0->GetFirstMother();
2614 if (!TrueGammaCandidate1->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set. Aborting");
2617 Int_t gamma1MotherLabel = -1;
2620 TParticle * gammaMC1 = 0x0;
2621 if(gamma1MCLabel != -1){
2623 gammaMC1 = (TParticle*)
fMCEvent->Particle(gamma1MCLabel);
2627 gamma1MotherLabel=gammaMC1->GetMother(0);
2629 if (TrueGammaCandidate1->
IsConversion() && gammaMC1->GetMother(0)>-1) gamma1MotherLabel=
fMCEvent->Particle(gammaMC1->GetMother(0))->GetMother(0);
2630 else gamma1MotherLabel=gammaMC1->GetMother(0);
2635 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
2636 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
2685 if (((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->Pt()>0.005){
2707 }
else if(!isTrueMeson ){
2709 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
2712 ( ((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG 2716 }
else if( TrueGammaCandidate1->E()/mesonCand->E() > 0.7 ){
2724 if (isTrueMeson && !matched){
2736 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2737 Double_t mcProdVtxX = primVtxMC->GetX();
2738 Double_t mcProdVtxY = primVtxMC->GetY();
2739 Double_t mcProdVtxZ = primVtxMC->GetZ();
2742 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2743 if (AODMCTrackArray == NULL)
return;
2744 Bool_t isTrueMeson = kFALSE;
2746 AliAODMCParticle *positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelPositive()));
2747 AliAODMCParticle *negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelNegative()));
2749 Int_t gamma0MCLabel = -1;
2750 Int_t gamma0MotherLabel = -1;
2751 if(!positiveMC||!negativeMC)
2755 gamma0MCLabel = positiveMC->GetMother();
2756 AliAODMCParticle * gammaMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma0MCLabel));
2757 gamma0MotherLabel=gammaMC0->GetMother();
2760 if (!TrueGammaCandidate1->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set. Aborting");
2762 Int_t gamma1MotherLabel = -1;
2765 AliAODMCParticle * gammaMC1 = 0x0;
2766 if(gamma1MCLabel != -1){
2768 gammaMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MCLabel));
2772 gamma1MotherLabel=gammaMC1->GetMother();
2775 AliAODMCParticle * gammaGrandMotherMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaMC1->GetMother()));
2776 gamma1MotherLabel=gammaGrandMotherMC1->GetMother();
2777 }
else gamma1MotherLabel=gammaMC1->GetMother();
2782 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
2783 if(((AliAODMCParticle*)AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
2830 if (static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt()>0.005){
2847 (mesonCand->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*
fWeightJetJetMC);
2853 }
else if(!isTrueMeson ) {
2855 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
2858 if( (((AliAODMCParticle*)AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG 2862 }
else if( TrueGammaCandidate1->E()/mesonCand->E() > 0.7 ){
2870 if (isTrueMeson && !matched){
2882 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
2883 Double_t mcProdVtxX = primVtxMC->GetX();
2884 Double_t mcProdVtxY = primVtxMC->GetY();
2885 Double_t mcProdVtxZ = primVtxMC->GetZ();
2887 Bool_t isTrueMeson = kFALSE;
2889 Int_t gamma0MotherLabel = -1;
2891 TParticle * gammaMC0 = 0x0;
2892 if(gamma0MCLabel != -1){
2893 gammaMC0 = (TParticle*)
fMCEvent->Particle(gamma0MCLabel);
2897 gamma0MotherLabel=gammaMC0->GetMother(0);
2899 if (TrueGammaCandidate0->
IsConversion() && (gammaMC0->GetMother(0) > -1)){
2900 gamma0MotherLabel=
fMCEvent->Particle(gammaMC0->GetMother(0))->GetMother(0);
2902 gamma0MotherLabel=gammaMC0->GetMother(0);
2907 if (!TrueGammaCandidate1->
GetIsCaloPhoton()) AliFatal(
"CaloPhotonFlag has not been set. Aborting");
2910 Int_t gamma1MotherLabel = -1;
2913 TParticle * gammaMC1 = 0x0;
2914 if(gamma1MCLabel != -1){
2916 gammaMC1 = (TParticle*)
fMCEvent->Particle(gamma1MCLabel);
2920 gamma1MotherLabel = gammaMC1->GetMother(0);
2923 if(gammaMC1->GetMother(0) > -1) gamma1MotherLabel =
fMCEvent->Particle(gammaMC1->GetMother(0))->GetMother(0);
2925 gamma1MotherLabel=gammaMC1->GetMother(0);
2931 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
2932 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
2982 if (((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->Pt()>0.005){
2999 }
else if(!isTrueMeson ){
3001 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3004 if( (((TParticle*)
fMCEvent->Particle(gamma0MotherLabel))->GetPdgCode() ==
fMesonPDG 3011 }
else if( (TrueGammaCandidate0->E()/mesonCand->E() > 0.7) || (TrueGammaCandidate1->E()/mesonCand->E() > 0.7) ){
3026 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3027 Double_t mcProdVtxX = primVtxMC->GetX();
3028 Double_t mcProdVtxY = primVtxMC->GetY();
3029 Double_t mcProdVtxZ = primVtxMC->GetZ();
3032 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3033 if (AODMCTrackArray == NULL)
return;
3035 Bool_t isTrueMeson = kFALSE;
3037 Int_t gamma0MotherLabel = -1;
3040 AliAODMCParticle * gammaMC0 = 0x0;
3041 if(gamma0MCLabel != -1){
3043 gammaMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma0MCLabel));
3047 gamma0MotherLabel=gammaMC0->GetMother();
3050 AliAODMCParticle * gammaGrandMotherMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaMC0->GetMother()));
3051 gamma0MotherLabel=gammaGrandMotherMC0->GetMother();
3052 }
else gamma0MotherLabel=gammaMC0->GetMother();
3058 Int_t gamma1MotherLabel = -1;
3061 AliAODMCParticle *gammaMC1 = 0x0;
3062 if(gamma1MCLabel != -1){
3064 gammaMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MCLabel));
3068 gamma1MotherLabel=gammaMC1->GetMother();
3071 AliAODMCParticle * gammaGrandMotherMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gammaMC1->GetMother()));
3072 gamma1MotherLabel=gammaGrandMotherMC1->GetMother();
3073 }
else gamma1MotherLabel=gammaMC1->GetMother();
3078 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3079 if(((AliAODMCParticle*)AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
3128 if (static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt()>0.005){
3139 (mesonCand->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted*
fWeightJetJetMC);
3142 }
else if(!isTrueMeson ) {
3144 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3147 if( (((AliAODMCParticle*)AODMCTrackArray->At(gamma0MotherLabel))->GetPdgCode() ==
fMesonPDG 3150 (((AliAODMCParticle*)AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG 3154 }
else if( (TrueGammaCandidate0->E()/mesonCand->E() > 0.7) || (TrueGammaCandidate1->E()/mesonCand->E() > 0.7) ){
3171 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3172 Double_t mcProdVtxX = primVtxMC->GetX();
3173 Double_t mcProdVtxY = primVtxMC->GetY();
3174 Double_t mcProdVtxZ = primVtxMC->GetZ();
3177 Bool_t isTrueMeson = kFALSE;
3178 Bool_t isTrueMesonDalitz = kFALSE;
3179 Bool_t gamma0DalitzCand = kFALSE;
3180 Bool_t gamma1DalitzCand = kFALSE;
3182 Int_t gamma0MotherLabel = -1;
3183 if(gamma0MCLabel != -1){
3187 TParticle * gammaMC0 = (TParticle*)
fMCEvent->Particle(gamma0MCLabel);
3188 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3189 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3190 if(gammaMC0->GetPdgCode() == 22){
3191 gamma0MotherLabel=gammaMC0->GetFirstMother();
3195 gamma0DalitzCand = kTRUE;
3202 Int_t gamma1MotherLabel = -1;
3203 if(gamma1MCLabel != -1){
3207 TParticle * gammaMC1 = (TParticle*)
fMCEvent->Particle(gamma1MCLabel);
3208 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3209 if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){
3210 if(gammaMC1->GetPdgCode() == 22){
3211 gamma1MotherLabel=gammaMC1->GetFirstMother();
3214 if(gammaMC1->GetPdgCode() ==
fMesonPDG ){
3215 gamma1DalitzCand = kTRUE;
3220 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3221 if(((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
3231 if (gamma1DalitzCand || gamma0DalitzCand){
3232 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3233 if (gamma0MotherLabel == -
fMesonPDG) isTrueMesonDalitz = kTRUE;
3235 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3236 if (gamma1MotherLabel == -
fMesonPDG) isTrueMesonDalitz = kTRUE;
3256 if (((TParticle*)
fMCEvent->Particle(gamma1MotherLabel))->Pt()>0.005){
3269 }
else if(!isTrueMeson ){
3271 if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){
3277 if (!isTrueMesonDalitz && (gamma0DalitzCand || gamma1DalitzCand)){
3290 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
3291 Double_t mcProdVtxX = primVtxMC->GetX();
3292 Double_t mcProdVtxY = primVtxMC->GetY();
3293 Double_t mcProdVtxZ = primVtxMC->GetZ();
3296 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3297 Bool_t isTrueMeson = kFALSE;
3298 Bool_t isTrueMesonDalitz = kFALSE;
3299 Bool_t gamma0DalitzCand = kFALSE;
3300 Bool_t gamma1DalitzCand = kFALSE;
3302 if (AODMCTrackArray!=NULL && TrueGammaCandidate0 != NULL){
3303 AliAODMCParticle *positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelPositive()));
3304 AliAODMCParticle *negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate0->
GetMCLabelNegative()));
3306 Int_t gamma0MCLabel = -1;
3307 Int_t gamma0MotherLabel = -1;
3308 if(!positiveMC||!negativeMC)
3311 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3312 gamma0MCLabel = positiveMC->GetMother();
3315 if(gamma0MCLabel != -1){
3317 AliAODMCParticle * gammaMC0 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma0MCLabel));
3318 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3319 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3320 if(gammaMC0->GetPdgCode() == 22){
3321 gamma0MotherLabel=gammaMC0->GetMother();
3325 gamma0DalitzCand = kTRUE;
3330 positiveMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelPositive()));
3331 negativeMC =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(TrueGammaCandidate1->
GetMCLabelNegative()));
3333 Int_t gamma1MCLabel = -1;
3334 Int_t gamma1MotherLabel = -1;
3335 if(!positiveMC||!negativeMC)
3338 if(positiveMC->GetMother()>-1&&(negativeMC->GetMother() == positiveMC->GetMother())){
3339 gamma1MCLabel = positiveMC->GetMother();
3341 if(gamma1MCLabel != -1){
3343 AliAODMCParticle * gammaMC1 =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MCLabel));
3344 if(TMath::Abs(negativeMC->GetPdgCode())==11 && TMath::Abs(positiveMC->GetPdgCode())==11){
3345 if(((positiveMC->GetMCProcessCode())) == 5 && ((negativeMC->GetMCProcessCode())) == 5){
3346 if(gammaMC1->GetPdgCode() == 22){
3347 gamma1MotherLabel=gammaMC1->GetMother();
3350 if(gammaMC1->GetPdgCode() ==
fMesonPDG ){
3351 gamma1DalitzCand = kTRUE;
3356 if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
3357 if(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->GetPdgCode() ==
fMesonPDG){
3367 if (gamma1DalitzCand || gamma0DalitzCand){
3368 if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
3369 if (gamma0MotherLabel == -
fMesonPDG) isTrueMesonDalitz = kTRUE;
3371 if (gamma1DalitzCand && gamma1MCLabel >=0 && gamma1MCLabel==gamma0MotherLabel){
3372 if (gamma1MotherLabel == -
fMesonPDG) isTrueMesonDalitz = kTRUE;
3393 if (static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt()>0.005){
3404 (mesonCand->Pt()-
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast<AliAODMCParticle*>(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted);
3407 }
else if(!isTrueMeson ) {
3409 if(!(gamma0MotherLabel>-1 && gamma1MotherLabel>-1)){
3415 if (!isTrueMesonDalitz && (gamma0DalitzCand || gamma1DalitzCand)){
3429 TList* currPhotonList = NULL;
3451 for(
Int_t nEventsInBG=0;nEventsInBG<currBGHandler->
GetNBGEvents();nEventsInBG++){
3458 for(
Int_t iCurrent=0;iCurrent<currPhotonList->GetEntries();iCurrent++){
3460 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3484 delete backgroundCandidate;
3485 backgroundCandidate = 0x0;
3490 for(
Int_t nEventsInBG=0;nEventsInBG <currBGHandler->
GetNBGEvents();nEventsInBG++){
3492 if(previousEventV0s){
3498 for(
Int_t iCurrent=0;iCurrent<currPhotonList->GetEntries();iCurrent++){
3500 for(
UInt_t iPrevious=0;iPrevious<previousEventV0s->size();iPrevious++){
3524 delete backgroundCandidate;
3525 backgroundCandidate = 0x0;
3538 TList* currPhotonList = NULL;
3563 for(
Int_t firstGammaIndex=0;firstGammaIndex<currPhotonList->GetEntries();firstGammaIndex++){
3565 if (gamma0==NULL)
continue;
3566 for(
Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<currPhotonList->GetEntries();secondGammaIndex++){
3568 if (gamma1 == NULL)
continue;
3589 if(previousEventGammas){
3596 weight*=0.5*(
Double_t(currPhotonList->GetEntries()-1))/
Double_t(previousEventGammas->size());
3598 for(
Int_t iCurrent=0;iCurrent<currPhotonList->GetEntries();iCurrent++){
3600 for(
UInt_t iPrevious=0;iPrevious<previousEventGammas->size();iPrevious++){
3622 Double_t nRadiansPM = fNDegreesPMBackground*TMath::Pi()/180;
3623 Double_t rotationValue =
fRandom.Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM;
3624 gamma->RotateZ(rotationValue);
3629 previousEventEP=previousEventEP+TMath::Pi();
3630 thisEventEP=thisEventEP+TMath::Pi();
3631 Double_t rotationValue= thisEventEP-previousEventEP;
3632 gamma->RotateZ(rotationValue);
3696 if(!PhotonCandidate)
continue;
3709 Bool_t AODLabelPos = kFALSE;
3710 Bool_t AODLabelNeg = kFALSE;
3713 AliAODTrack *tempDaughter =
static_cast<AliAODTrack*
>(
fInputEvent->GetTrack(i));
3718 AODLabelPos = kTRUE;
3725 AODLabelNeg = kTRUE;
3728 if(AODLabelNeg && AODLabelPos){
3732 if(!AODLabelPos || !AODLabelNeg){
3733 cout<<
"WARNING!!! AOD TRACKS NOT FOUND FOR"<<endl;
3755 TAxis *axisafter = histoRebin->GetXaxis();
3756 Int_t bins = axisafter->GetNbins();
3757 Double_t from = axisafter->GetXmin();
3758 Double_t to = axisafter->GetXmax();
3761 Double_t factor = TMath::Power(to/from, 1./bins);
3762 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
3763 axisafter->Set(bins, newbins);
3775 if(tobechecked > -1){
3776 vector<Int_t>::iterator it;
3777 it = find (vec.begin(), vec.end(), tobechecked);
3778 if (it != vec.end())
return true;
3786 if(tobechecked > -1){
3787 vector<Int_t>::iterator it;
3788 it = find (vec.begin(), vec.end(), tobechecked);
3789 if (it != vec.end())
return true;
3791 vec.push_back(tobechecked);
3800 if( ma.find(tobechecked) != ma.end() ) ma[tobechecked] += 1;
3801 else ma[tobechecked] = 2;
3807 map<Int_t, Int_t>::iterator it;
3808 for (it = ma.begin(); it != ma.end(); it++){
TParticle * GetMCParticle(AliMCEvent *mcEvent)
Bool_t fEnableSortForClusMC
TH1F ** fHistoClusOverlapHeadersGammaPt
array of histos with cluster, E
TH1F ** fHistoNGammaConvCandidates
array of histos with vertex y distribution for selected events
virtual Double_t GetPhotonPhi() const
Int_t GetMCLabelPositive() const
TH2F ** fHistoSPDClusterTrackletBackground
array of histos with number of calo gamma candidates per event
AliV0ReaderV1 * fV0Reader
TList * fClusterCandidates
TH1F ** fHistoVertexX
array of histos with vertex z distribution for selected events
AliAnalysisTaskHeavyNeutralMesonToGG()
TH2F ** fHistoTrueMesonCaloMergedClusterPartConvInvMassPt
array of histos with validated mothers, merged cluster invMass, pt
virtual ~AliAnalysisTaskHeavyNeutralMesonToGG()