23 #include "TClonesArray.h" 24 #include "TObjString.h" 25 #include "TDatabasePDG.h" 31 #include "AliMCEvent.h" 33 #include "AliVEvent.h" 34 #include "AliESDCaloCluster.h" 35 #include "AliESDEvent.h" 36 #include "AliAODEvent.h" 38 #include "AliMixedEvent.h" 39 #include "AliVParticle.h" 40 #include "AliMCEvent.h" 43 #include "AliPHOSGeoUtils.h" 44 #include "AliEMCALGeometry.h" 55 fUseAngleCut(kFALSE), fUseAngleEDepCut(kFALSE), fAngleCut(0), fAngleMaxCut(0.),
56 fMultiCutAna(kFALSE), fMultiCutAnaSim(kFALSE), fMultiCutAnaAcc(kFALSE),
57 fNPtCuts(0), fNAsymCuts(0), fNCellNCuts(0), fNPIDBits(0), fNAngleCutBins(0),
58 fMakeInvPtPlots(kFALSE), fSameSM(kFALSE),
59 fFillSMCombinations(kFALSE), fCheckConversion(kFALSE),
60 fFillBadDistHisto(kFALSE), fFillSSCombinations(kFALSE),
61 fFillAngleHisto(kFALSE), fFillAsymmetryHisto(kFALSE), fFillOriginHisto(0),
62 fFillArmenterosThetaStar(0), fFillOnlyMCAcceptanceHisto(0),
63 fFillSecondaryCellTiming(0), fFillOpAngleCutHisto(0), fCheckAccInSector(0),
64 fPairWithOtherDetector(0), fOtherDetectorInputName(
""),
65 fPhotonMom1(), fPhotonMom1Boost(), fPhotonMom2(), fMCPrimMesonMom(),
69 fhReMod(0x0), fhReSameSideEMCALMod(0x0), fhReSameSectorEMCALMod(0x0), fhReDiffPHOSMod(0x0),
70 fhReSameSectorDCALPHOSMod(0),fhReDiffSectorDCALPHOSMod(0),
71 fhMiMod(0x0), fhMiSameSideEMCALMod(0x0), fhMiSameSectorEMCALMod(0x0), fhMiDiffPHOSMod(0x0),
72 fhMiSameSectorDCALPHOSMod(0),fhMiDiffSectorDCALPHOSMod(0),
73 fhReConv(0x0), fhMiConv(0x0), fhReConv2(0x0), fhMiConv2(0x0),
74 fhRe1(0x0), fhMi1(0x0), fhRe2(0x0), fhMi2(0x0),
75 fhRe3(0x0), fhMi3(0x0), fhReInvPt1(0x0), fhMiInvPt1(0x0),
76 fhReInvPt2(0x0), fhMiInvPt2(0x0), fhReInvPt3(0x0), fhMiInvPt3(0x0),
77 fhRePtNCellAsymCuts(0x0), fhMiPtNCellAsymCuts(0x0), fhRePtNCellAsymCutsSM(),
78 fhRePtNCellAsymCutsOpAngle(0x0), fhMiPtNCellAsymCutsOpAngle(0x0),
79 fhRePtAsym(0x0), fhRePtAsymPi0(0x0), fhRePtAsymEta(0x0),
80 fhMiPtAsym(0x0), fhMiPtAsymPi0(0x0), fhMiPtAsymEta(0x0),
81 fhEventBin(0), fhEventMixBin(0),
82 fhCentrality(0x0), fhCentralityNoPair(0x0),
83 fhEventPlaneResolution(0x0),
84 fhRealOpeningAngle(0x0), fhRealCosOpeningAngle(0x0), fhMixedOpeningAngle(0x0), fhMixedCosOpeningAngle(0x0),
86 fhPrimPi0E(0x0), fhPrimPi0Pt(0x0), fhPrimPi0PtInCalo(0x0),
87 fhPrimPi0AccE(0x0), fhPrimPi0AccPt(0x0), fhPrimPi0AccPtPhotonCuts(0x0),
88 fhPrimPi0Y(0x0), fhPrimPi0AccY(0x0),
89 fhPrimPi0Yeta(0x0), fhPrimPi0YetaYcut(0x0), fhPrimPi0AccYeta(0x0),
90 fhPrimPi0Phi(0x0), fhPrimPi0AccPhi(0x0),
91 fhPrimPi0OpeningAngle(0x0), fhPrimPi0OpeningAnglePhotonCuts(0x0),
92 fhPrimPi0OpeningAngleAsym(0x0),fhPrimPi0CosOpeningAngle(0x0),
93 fhPrimPi0PtCentrality(0), fhPrimPi0PtEventPlane(0),
94 fhPrimPi0AccPtCentrality(0), fhPrimPi0AccPtEventPlane(0),
95 fhPrimEtaE(0x0), fhPrimEtaPt(0x0), fhPrimEtaPtInCalo(0x0),
96 fhPrimEtaAccE(0x0), fhPrimEtaAccPt(0x0), fhPrimEtaAccPtPhotonCuts(0x0),
97 fhPrimEtaY(0x0), fhPrimEtaAccY(0x0),
98 fhPrimEtaYeta(0x0), fhPrimEtaYetaYcut(0x0), fhPrimEtaAccYeta(0x0),
99 fhPrimEtaPhi(0x0), fhPrimEtaAccPhi(0x0),
100 fhPrimEtaOpeningAngle(0x0), fhPrimEtaOpeningAnglePhotonCuts(0x0),
101 fhPrimEtaOpeningAngleAsym(0x0),fhPrimEtaCosOpeningAngle(0x0),
102 fhPrimEtaPtCentrality(0), fhPrimEtaPtEventPlane(0),
103 fhPrimEtaAccPtCentrality(0), fhPrimEtaAccPtEventPlane(0),
104 fhPrimChHadronPt (0),
105 fhPrimPi0PtOrigin(0x0), fhPrimEtaPtOrigin(0x0),
106 fhPrimNotResonancePi0PtOrigin(0x0), fhPrimPi0PtStatus(0x0),
107 fhMCPi0MassPtRec(0x0), fhMCPi0MassPtTrue(0x0),
108 fhMCPi0PtTruePtRec(0x0), fhMCPi0PtTruePtRecMassCut(0x0),
109 fhMCEtaMassPtRec(0x0), fhMCEtaMassPtTrue(0x0),
110 fhMCEtaPtTruePtRec(0x0), fhMCEtaPtTruePtRecMassCut(0x0),
111 fhMCPi0PerCentrality(0), fhMCPi0PerCentralityMassCut(0),
112 fhMCEtaPerCentrality(0), fhMCEtaPerCentralityMassCut(0),
113 fhMCPi0PtTruePtRecRat(0), fhMCPi0PtTruePtRecDif(0), fhMCPi0PtRecOpenAngle(0),
114 fhMCEtaPtTruePtRecRat(0), fhMCEtaPtTruePtRecDif(0), fhMCEtaPtRecOpenAngle(0),
115 fhMCPi0PtTruePtRecRatMassCut(0), fhMCPi0PtTruePtRecDifMassCut(0), fhMCPi0PtRecOpenAngleMassCut(0),
116 fhMCEtaPtTruePtRecRatMassCut(0), fhMCEtaPtTruePtRecDifMassCut(0), fhMCEtaPtRecOpenAngleMassCut(0),
117 fhMCPi0PtOrigin(0), fhMCEtaPtOrigin(0),
118 fhMCNotResonancePi0PtOrigin(0),fhMCPi0PtStatus(0x0),
119 fhMCPi0ProdVertex(0), fhMCEtaProdVertex(0),
120 fhPrimPi0ProdVertex(0), fhPrimEtaProdVertex(0), fhMCPi0Radius(0), fhMCEtaRadius(0),
121 fhReMCFromConversion(0), fhReMCFromNotConversion(0), fhReMCFromMixConversion(0),
122 fhCosThStarPrimPi0(0), fhCosThStarPrimEta(0),
124 fhReSecondaryCellInTimeWindow(0), fhMiSecondaryCellInTimeWindow(0),
125 fhReSecondaryCellOutTimeWindow(0), fhMiSecondaryCellOutTimeWindow(0)
130 for(
Int_t i = 0; i < 4; i++)
136 for(
Int_t ism = 0; ism < 20; ism++)
142 for(
Int_t icut = 0; icut < 10; icut++)
185 for(
Int_t igen = 0; igen < 10; igen++)
187 for(
Int_t itag = 0; itag < 10; itag++)
222 for(
Int_t i = 0; i < 17; i++)
229 for(
Int_t i = 0; i < 3; i++)
320 const Int_t buffersize = 255;
321 char onePar[buffersize] ;
322 snprintf(onePar,buffersize,
"--- AliAnaPi0 ---:") ;
324 snprintf(onePar,buffersize,
"Number of bins in Centrality: %d;",
GetNCentrBin()) ;
326 snprintf(onePar,buffersize,
"Number of bins in Z vert. pos: %d;",
GetNZvertBin()) ;
328 snprintf(onePar,buffersize,
"Number of bins in Reac. Plain: %d;",
GetNRPBin()) ;
330 snprintf(onePar,buffersize,
"Depth of event buffer: %d;",
GetNMaxEvMix()) ;
334 snprintf(onePar,buffersize,
" Asymmetry cuts: n = %d, asymmetry < ",
fNAsymCuts) ;
337 snprintf(onePar,buffersize,
" PID selection bits: n = %d, PID bit =",
fNPIDBits) ;
340 snprintf(onePar,buffersize,
"Cuts:") ;
348 snprintf(onePar, buffersize,
" pT cuts: n = %d, pt > ",
fNPtCuts) ;
351 snprintf(onePar,buffersize,
" N cell in cluster cuts: n = %d, nCell > ",
fNCellNCuts) ;
356 return new TObjString(parList) ;
366 outputContainer->SetName(GetName());
369 const Int_t buffersize = 255;
370 char key[buffersize] ;
371 char title[buffersize] ;
411 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
412 Int_t nphibinsopen = TMath::Nint(nphibins*TMath::TwoPi()/(phimax-phimin));
428 Float_t rowcellmin = fNMaxRowsFullMin-1.5;
437 fhPrimPi0E =
new TH1F(
"hPrimPi0E",
"Primary #pi^{0} E, |#it{Y}|<1",
438 nptbins,ptmin,ptmax) ;
442 fhPrimPi0Pt =
new TH1F(
"hPrimPi0Pt",
"Primary #pi^{0} #it{p}_{T} , |#it{Y}|<1",
443 nptbins,ptmin,ptmax) ;
444 fhPrimPi0Pt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
447 fhPrimPi0Y =
new TH2F(
"hPrimPi0Rapidity",
"Rapidity of primary #pi^{0}",
448 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
450 fhPrimPi0Y ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
453 fhPrimPi0Yeta =
new TH2F(
"hPrimPi0PseudoRapidity",
"PseudoRapidity of primary #pi^{0}",
454 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
459 fhPrimPi0YetaYcut =
new TH2F(
"hPrimPi0PseudoRapidityYcut",
"PseudoRapidity of primary #pi^{0}, |#it{Y}|<1",
460 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
465 fhPrimPi0Phi =
new TH2F(
"hPrimPi0Phi",
"#varphi of primary #pi^{0}, |#it{Y}|<1",
466 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
473 fhPrimPi0PtInCalo =
new TH1F(
"hPrimPi0PtInCalo",
"Primary #pi^{0} #it{p}_{T} , in calorimeter acceptance",
474 nptbins,ptmin,ptmax) ;
478 fhPrimPi0AccE =
new TH1F(
"hPrimPi0AccE",
"Primary #pi^{0} #it{E} with both photons in acceptance",
479 nptbins,ptmin,ptmax) ;
483 fhPrimPi0AccPt =
new TH1F(
"hPrimPi0AccPt",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
484 nptbins,ptmin,ptmax) ;
488 fhPrimPi0AccPtPhotonCuts =
new TH1F(
"hPrimPi0AccPtPhotonCuts",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
489 nptbins,ptmin,ptmax) ;
493 fhPrimPi0AccY =
new TH2F(
"hPrimPi0AccRapidity",
"Rapidity of primary #pi^{0} with accepted daughters",
494 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
499 fhPrimPi0AccYeta =
new TH2F(
"hPrimPi0AccPseudoRapidity",
"PseudoRapidity of primary #pi^{0} with accepted daughters",
500 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
505 fhPrimPi0AccPhi =
new TH2F(
"hPrimPi0AccPhi",
"#varphi of primary #pi^{0} with accepted daughters",
507 nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
515 fhPrimEtaE =
new TH1F(
"hPrimEtaE",
"Primary eta E",
516 nptbins,ptmin,ptmax) ;
520 fhPrimEtaPt =
new TH1F(
"hPrimEtaPt",
"Primary #eta #it{p}_{T}",
521 nptbins,ptmin,ptmax) ;
522 fhPrimEtaPt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
525 fhPrimEtaY =
new TH2F(
"hPrimEtaRapidity",
"Rapidity of primary #eta",
526 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
528 fhPrimEtaY->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
531 fhPrimEtaYeta =
new TH2F(
"hPrimEtaPseudoRapidityEta",
"PseudoRapidity of primary #eta",
532 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
537 fhPrimEtaYetaYcut =
new TH2F(
"hPrimEtaPseudoRapidityEtaYcut",
"PseudoRapidity of primary #eta, |#it{Y}|<1",
538 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
544 nptbins,ptmin,ptmax, nphibinsopen,0,360) ;
551 fhPrimEtaPtInCalo =
new TH1F(
"hPrimEtaPtInCalo",
"Primary #eta #it{p}_{T}, in calorimeter acceptance",
552 nptbins,ptmin,ptmax) ;
556 fhPrimEtaAccE =
new TH1F(
"hPrimEtaAccE",
"Primary #eta #it{E} with both photons in acceptance",
557 nptbins,ptmin,ptmax) ;
561 fhPrimEtaAccPt =
new TH1F(
"hPrimEtaAccPt",
"Primary eta #it{p}_{T} with both photons in acceptance",
562 nptbins,ptmin,ptmax) ;
566 fhPrimEtaAccPtPhotonCuts =
new TH1F(
"hPrimEtaAccPtPhotonCuts",
"Primary eta #it{p}_{T} with both photons in acceptance",
567 nptbins,ptmin,ptmax) ;
571 fhPrimEtaAccPhi =
new TH2F(
"hPrimEtaAccPhi",
"Azimuthal of primary #eta with accepted daughters",
572 nptbins,ptmin,ptmax, nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
578 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
584 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
594 nptbins,ptmin,ptmax, 100, 0, 100) ;
600 nptbins,ptmin,ptmax, 100, 0, 100) ;
606 fhPrimPi0PtEventPlane =
new TH2F(
"hPrimPi0PtEventPlane",
"Primary #pi^{0} #it{p}_{T} vs reco event plane angle, |#it{Y}|<1",
607 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
614 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
621 fhPrimPi0AccPtCentrality =
new TH2F(
"hPrimPi0AccPtCentrality",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco centrality",
622 nptbins,ptmin,ptmax, 100, 0, 100) ;
627 fhPrimEtaAccPtCentrality =
new TH2F(
"hPrimEtaAccPtCentrality",
"Primary #eta with both photons in acceptance #it{p}_{T} vs reco centrality",
628 nptbins,ptmin,ptmax, 100, 0, 100) ;
633 fhPrimPi0AccPtEventPlane =
new TH2F(
"hPrimPi0AccPtEventPlane",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco event plane angle",
634 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
639 fhPrimEtaAccPtEventPlane =
new TH2F(
"hPrimEtaAccPtEventPlane",
"Primary #eta with both #gamma_{decay} in acceptance #it{p}_{T} vs reco event plane angle",
640 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
650 (
"hPrimPi0OpeningAngle",
"Angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
651 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
657 (
"hPrimPi0OpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#pi^{0}} in acceptance",
658 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
664 (
"hPrimPi0OpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, in acceptance, #it{p}_{T}>5 GeV/#it{c}",
665 100,0,1,nopanbins,opanmin,opanmax);
671 (
"hPrimPi0CosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
672 nptbins,ptmin,ptmax,100,-1,1);
678 (
"hPrimEtaOpeningAngle",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
679 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
685 (
"hPrimEtaOpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
686 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
692 (
"hPrimEtaOpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, #it{p}_{T}>5 GeV/#it{c}, in acceptance",
693 100,0,1,nopanbins,opanmin,opanmax);
699 (
"hPrimEtaCosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#eta}, in acceptance",
700 nptbins,ptmin,ptmax,100,-1,1);
718 fhPrimPi0PtOrigin =
new TH2F(
"hPrimPi0PtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
758 fhPrimPi0PtStatus =
new TH2F(
"hPrimPi0PtStatus",
"Primary #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
764 fhPrimEtaPtOrigin =
new TH2F(
"hPrimEtaPtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
777 200,0.,20.,5000,0,500) ;
783 200,0.,20.,5000,0,500) ;
791 TString ebin[] = {
"8 < E < 12 GeV",
"12 < E < 16 GeV",
"16 < E < 20 GeV",
"E > 20 GeV" };
792 Int_t narmbins = 400;
796 for(
Int_t i = 0; i < 4; i++)
799 Form(
"Armenteros of primary #pi^{0}, %s",ebin[i].
Data()),
800 200, -1, 1, narmbins,armmin,armmax);
806 Form(
"Armenteros of primary #eta, %s",ebin[i].
Data()),
807 200, -1, 1, narmbins,armmin,armmax);
815 (
"hCosThStarPrimPi0",
"cos(#theta *) for primary #pi^{0}",nptbins,ptmin,ptmax,200,-1,1);
821 (
"hCosThStarPrimEta",
"cos(#theta *) for primary #eta",nptbins,ptmin,ptmax,200,-1,1);
881 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
882 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
884 fhRe1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
885 fhRe1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
886 fhRe1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
888 outputContainer->Add(
fhRe1[index]) ;
893 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
894 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
896 fhRe2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
897 fhRe2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
898 fhRe2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
899 outputContainer->Add(
fhRe2[index]) ;
902 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
903 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
905 fhRe3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
906 fhRe3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
907 fhRe3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
908 outputContainer->Add(
fhRe3[index]) ;
915 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
916 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
918 fhReInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
919 fhReInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
920 fhReInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
925 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
926 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
928 fhReInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
929 fhReInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
930 fhReInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
934 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
935 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
937 fhReInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
938 fhReInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
939 fhReInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
947 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
948 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
950 fhMi1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
951 fhMi1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
952 fhMi1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
953 outputContainer->Add(
fhMi1[index]) ;
956 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
957 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
959 fhMi2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
960 fhMi2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
961 fhMi2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
962 outputContainer->Add(
fhMi2[index]) ;
965 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
966 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
968 fhMi3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
969 fhMi3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
970 fhMi3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
971 outputContainer->Add(
fhMi3[index]) ;
978 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
979 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
981 fhMiInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
982 fhMiInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
983 fhMiInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
987 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
988 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
990 fhMiInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
991 fhMiInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
992 fhMiInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
996 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
997 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f,dist bad 3",
999 fhMiInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1000 fhMiInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1001 fhMiInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1010 fhEPairDiffTime =
new TH2F(
"hEPairDiffTime",
"cluster pair time difference vs #it{p}_{T}",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
1018 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1024 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1032 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1038 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1048 fhReConv =
new TH2F(
"hReConv",
"Real Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1049 fhReConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1050 fhReConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1053 fhReConv2 =
new TH2F(
"hReConv2",
"Real Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1054 fhReConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1055 fhReConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1060 fhMiConv =
new TH2F(
"hMiConv",
"Mixed Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1061 fhMiConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1062 fhMiConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1065 fhMiConv2 =
new TH2F(
"hMiConv2",
"Mixed Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1066 fhMiConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1067 fhMiConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1074 fhRePtAsym =
new TH2F(
"hRePtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for pairs",
1075 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1076 fhRePtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1080 fhRePtAsymPi0 =
new TH2F(
"hRePtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1082 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1087 fhRePtAsymEta =
new TH2F(
"hRePtAsymEta",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1089 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1096 fhMiPtAsym =
new TH2F(
"hMiPtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs",nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1097 fhMiPtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1101 fhMiPtAsymPi0 =
new TH2F(
"hMiPtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1103 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1109 Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1111 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1123 (Form(
"hPtBin%d_Cluster_EtaPhi",ipt),
1124 Form(
"#eta vs #varphi, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1125 netabins,etamin,etamax,nphibins,phimin,phimax);
1131 (Form(
"hPtBin%d_Cluster_ColRow",ipt),
1132 Form(
"column vs row, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1133 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1174 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1175 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1188 snprintf(key, buffersize,
"hMi_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1189 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1208 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1209 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f, SM %d ",
1219 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1220 snprintf(title, buffersize,
"Real #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1233 snprintf(key, buffersize,
"hMiOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1234 snprintf(title, buffersize,
"Mixed #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1252 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1253 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f, SM %d ",
1271 fhReSS[0] =
new TH2F(
"hRe_SS_Tight",
" 0.01 < #lambda_{0}^{2} < 0.4",
1272 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1273 fhReSS[0]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1274 fhReSS[0]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1275 outputContainer->Add(
fhReSS[0]) ;
1278 fhReSS[1] =
new TH2F(
"hRe_SS_Loose",
" #lambda_{0}^{2} > 0.4",
1279 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1280 fhReSS[1]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1281 fhReSS[1]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1282 outputContainer->Add(
fhReSS[1]) ;
1285 fhReSS[2] =
new TH2F(
"hRe_SS_Both",
" cluster_{1} #lambda_{0}^{2} > 0.4; cluster_{2} 0.01 < #lambda_{0}^{2} < 0.4",
1286 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1287 fhReSS[2]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1288 fhReSS[2]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1289 outputContainer->Add(
fhReSS[2]) ;
1294 fhEventBin=
new TH1I(
"hEventBin",
"Number of real pairs per bin(cen,vz,rp)",
1301 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of mixed pairs per bin(cen,vz,rp)",
1327 (
"hRealOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1333 (
"hRealCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,100,0,1);
1341 (
"hMixedOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1347 (
"hMixedCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,100,0,1);
1355 for(
Int_t ism = 0; ism < 20; ism++)
1358 (Form(
"hRealOpeningAngleMod_%d",ism),
1359 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, SM %d",ism),
1360 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1368 (Form(
"hMixedOpeningAngleMod_%d",ism),
1369 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs, SM %d",ism),
1370 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1383 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1389 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1395 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1402 fhMCPi0PtOrigin =
new TH2F(
"hMCPi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
1426 fhMCNotResonancePi0PtOrigin =
new TH2F(
"hMCNotResonancePi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,11,0,11) ;
1441 fhMCPi0PtStatus =
new TH2F(
"hMCPi0PtStatus",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
1448 fhMCEtaPtOrigin =
new TH2F(
"hMCEtaPtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
1459 fhMCPi0ProdVertex =
new TH2F(
"hMCPi0ProdVertex",
"Selected reco pair from generated #pi^{0} #it{p}_{T} vs production vertex",
1460 200,0.,20.,5000,0,500) ;
1465 fhMCEtaProdVertex =
new TH2F(
"hMCEtaProdVertex",
"Selected reco pair from generated #eta #it{p}_{T} vs production vertex",
1466 200,0.,20.,5000,0,500) ;
1472 "Production radius of reconstructed pair from generated #pi^{0} corrected by vertex",
1473 200,0,20,5000,0,500) ;
1479 "Production radius of reconstructed pair from generated #eta corrected by vertex",
1480 200,0,20,5000,0,500) ;
1487 TString ancestorTitle[] = {
"Photon, conversion",
"Electron, conversion",
1488 "Pi0",
"Eta",
"AntiProton",
"AntiNeutron",
"Muon & converted stable particles",
1489 "Resonances",
"Strings",
"Initial state interaction",
"Final state radiations",
"Colliding protons",
1490 "Pi0Not2SingleGamma",
"EtaNot2Gamma",
"Photon, not both conversion",
"Electron, not both conversion",
"not found"};
1492 for(
Int_t i = 0; i<17; i++)
1494 fhMCOrgMass[i] =
new TH2F(Form(
"hMCOrgMass_%d",i),Form(
"#it{M} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1495 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1496 fhMCOrgMass[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1497 fhMCOrgMass[i]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1500 fhMCOrgAsym[i]=
new TH2F(Form(
"hMCOrgAsym_%d",i),Form(
"#it{Asymmetry} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1501 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1502 fhMCOrgAsym[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1506 fhMCOrgDeltaEta[i] =
new TH2F(Form(
"hMCOrgDeltaEta_%d",i),Form(
"#Delta #eta of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1507 nptbins,ptmin,ptmax,netabins,-1.4,1.4) ;
1512 fhMCOrgDeltaPhi[i]=
new TH2F(Form(
"hMCOrgDeltaPhi_%d",i),Form(
"#Delta #varphi of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1513 nptbins,ptmin,ptmax,nphibins,-0.7,0.7) ;
1520 fhMCOrgPi0MassPtConversion[0] =
new TH2F(
"hMCOrgPi0MassPtConversion0",
"Invariant mass of 2 clusters (ancestor #pi^{0}) not originated in conversions",
1521 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1526 fhMCOrgPi0MassPtConversion[1] =
new TH2F(
"hMCOrgPi0MassPtConversion1",
"Invariant mass of 2 clusters (ancestor #pi^{0}) one from conversion and the other not",
1527 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1532 fhMCOrgPi0MassPtConversion[2] =
new TH2F(
"hMCOrgPi0MassPtConversion2",
"Invariant mass of 2 clusters (ancestor #pi^{0}) originated in conversions",
1533 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1539 fhMCOrgEtaMassPtConversion[0] =
new TH2F(
"hMCOrgEtaMassPtConversion0",
"Invariant mass of 2 clusters (ancestor #eta) not originated in conversions",
1540 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1545 fhMCOrgEtaMassPtConversion[1] =
new TH2F(
"hMCOrgEtaMassPtConversion1",
"Invariant mass of 2 clusters (ancestor #eta) one from conversion and the other not",
1546 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1552 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1578 Form(
"Reconstructed #it{M} vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|<%1.2f",
1580 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1581 fhMCPi0MassPtRec[index]->SetXTitle(
"#it{p}_{T, reconstructed} (GeV/#it{c})");
1582 fhMCPi0MassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1586 Form(
"Reconstructed #it{M} vs generated #it{p}_{T} of true #pi^{0} cluster pairs for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|<%1.2f",
1588 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1594 Form(
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|>%1.2f",
1596 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1602 Form(
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2} for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|>%1.2f",
1604 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1610 Form(
"Reconstructed #it{M} vs reconstructed #it{p}_{T} of true #eta cluster pairs for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|<%1.2f",
1612 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1614 fhMCEtaMassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1618 Form(
"Reconstructed #it{M} vs generated #it{p}_{T} of true #eta cluster pairs for %1.1f<#it{p}_{T}<%1.1f, #it{N}^{cluster}_{cell}>%d and |#it{A}|<%1.2f",
1620 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1626 Form(
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs for %1.1f<#it{p}_{T}<%1.1f, ncell>%d and asym<%1.2f",
1628 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1635 Form(
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2} for %1.1f<#it{p}_{T}<%1.1f, ncell>%d and asym<%1.2f",
1637 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1657 fhMCPi0MassPtTrue[0] =
new TH2F(
"hMCPi0MassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #pi^{0} cluster pairs",
1658 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1663 fhMCPi0MassPtRec[0] =
new TH2F(
"hMCPi0MassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1664 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1669 fhMCPi0PtTruePtRec[0]=
new TH2F(
"hMCPi0PtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1670 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1676 Form(
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
fPi0MassWindow[0],
fPi0MassWindow[1]),
1677 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1682 fhMCEtaMassPtTrue[0] =
new TH2F(
"hMCEtaMassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #eta cluster pairs",
1683 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1688 fhMCEtaMassPtRec[0] =
new TH2F(
"hMCEtaMassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1689 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1694 fhMCEtaPtTruePtRec[0]=
new TH2F(
"hMCEtaPtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1695 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1701 Form(
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1703 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1709 fhMCPi0PtTruePtRecRat =
new TH2F(
"hMCPi0PtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs",
1710 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1716 Form(
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1718 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1723 fhMCEtaPtTruePtRecRat =
new TH2F(
"hMCEtaPtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs",
1724 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1730 Form(
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1732 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1737 fhMCPi0PtTruePtRecDif =
new TH2F(
"hMCPi0PtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1738 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1744 Form(
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1746 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1751 fhMCEtaPtTruePtRecDif =
new TH2F(
"hMCEtaPtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs",
1752 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1758 Form(
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1760 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1766 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1772 Form(
"Opening angle of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1774 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1780 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1786 Form(
"Opening angle of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1788 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1796 (
"hMCPi0PerCentrality",
1797 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1798 nptbins,ptmin,ptmax,100,0,100) ;
1804 (
"hMCPi0PerCentralityMassCut",
1805 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1807 nptbins,ptmin,ptmax,100,0,100) ;
1813 (
"hMCEtaPerCentrality",
1814 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1815 nptbins,ptmin,ptmax,100,0,100) ;
1821 (
"hMCEtaPerCentralityMassCut",
1822 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1824 nptbins,ptmin,ptmax,100,0,100) ;
1837 AliError(Form(
"Last module number <%d> is larger than total SM number <%d>, please check configuration \n",
fLastModule,
fNModules));
1880 snprintf(key, buffersize,
"hReMod_%d",imod) ;
1881 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1882 fhReMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1883 fhReMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1884 fhReMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1885 outputContainer->Add(
fhReMod[imod]) ;
1888 snprintf(key, buffersize,
"hMiMod_%d",imod) ;
1889 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1890 fhMiMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1891 fhMiMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1892 fhMiMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1893 outputContainer->Add(
fhMiMod[imod]) ;
1901 TString pairnamePHOS[] = {
"(0-1)",
"(0-2)",
"(1-2)",
"(0-3)",
"(1-3)",
"(2-3)",
"(0-4)",
"(1-4)",
"(2-4)",
"(3-4)"};
1903 for(
Int_t imod=0; imod<10; imod++)
1905 if ( (fNModules == 3 && imod > 2) || (fNModules == 4 && imod > 5) )
1913 snprintf(key, buffersize,
"hReDiffPHOSMod_%d",imod) ;
1914 snprintf(title, buffersize,
"Real pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1915 fhReDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1917 fhReDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1922 snprintf(key, buffersize,
"hMiDiffPHOSMod_%d",imod) ;
1923 snprintf(title, buffersize,
"Mixed pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1924 fhMiDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1926 fhMiDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1939 for(
Int_t isector=minSector; isector<=maxSector; isector++)
1941 snprintf(key, buffersize,
"hReSameSectorEMCALMod_%d",isector) ;
1942 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1950 snprintf(key, buffersize,
"hMiSameSectorEMCALMod_%d",isector) ;
1951 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1962 Int_t maxSide = fNModules-2;
1965 maxSide = fNModules-4;
1972 for(
Int_t iside=minSide; iside<maxSide; iside++)
1975 Int_t ism2 = iside+2;
1984 snprintf(key, buffersize,
"hReSameSideEMCALMod_%d",iside) ;
1985 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
1993 snprintf(key, buffersize,
"hMiSameSideEMCALMod_%d",iside) ;
1994 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
2011 Int_t dcSameSM[6] = {12,13,14,15,16,17};
2012 Int_t phSameSM[6] = {3, 3, 2, 2, 1, 1};
2014 Int_t dcDiffSM[8] = {12,13,14,15,16,17,0,0};
2015 Int_t phDiffSM[8] = {2, 2, 1, 1, 3, 3,0,0};
2017 for(
Int_t icombi = 0; icombi < 8; icombi++)
2019 snprintf(key, buffersize,
"hReDiffSectorDCALPHOS_%d",icombi) ;
2020 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2027 snprintf(key, buffersize,
"hMiDiffSectorDCALPHOS_%d",icombi) ;
2028 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2035 if ( icombi > 5 ) continue ;
2037 snprintf(key, buffersize,
"hReSameSectorDCALPHOS_%d",icombi) ;
2038 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2045 snprintf(key, buffersize,
"hMiSameSectorDCALPHOS_%d",icombi) ;
2046 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2063 (Form(
"hReOpAngleBin%d_ClusterMin_EtaPhi",icut),
2065 netabins,etamin,etamax,nphibins,phimin,phimax);
2071 (Form(
"hReOpAngleBin%d_ClusterMax_EtaPhi",icut),
2073 netabins,etamin,etamax,nphibins,phimin,phimax);
2079 (Form(
"hReOpAngleBin%d_ClusterMin_ColRow",icut),
2081 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2087 (Form(
"hReOpAngleBin%d_ClusterMax_ColRow",icut),
2089 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2095 (Form(
"hReOpAngleBin%d_ClusterMin_EPerSM",icut),
2097 nptbins,ptmin,ptmax,20,0,20);
2103 (Form(
"hReOpAngleBin%d_ClusterMax_EPerSM",icut),
2105 nptbins,ptmin,ptmax,20,0,20);
2111 (Form(
"hReOpAngleBin%d_ClusterMin_TimePerSM",icut),
2113 ntimebins,timemin,timemax,20,0,20);
2119 (Form(
"hReOpAngleBin%d_ClusterMax_TimePerSM",icut),
2121 ntimebins,timemin,timemax,20,0,20);
2127 (Form(
"hReOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2135 (Form(
"hReOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2143 (Form(
"hReOpAngleBin%d_PairCluster_RatioPerSM",icut),
2151 (Form(
"hReOpAngleBin%d_PairCluster_MassPerSM",icut),
2153 nmassbins,massmin,massmax,20,0,20);
2159 (Form(
"hReOpAngleBin%d_PairCluster_Mass",icut),
2161 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2171 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTruePi0",icut),
2173 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2179 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTrueEta",icut),
2181 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2188 (Form(
"hPrimPi0AccPt_OpAngleBin%d",icut),
2190 nptbins,ptmin,ptmax) ;
2195 (Form(
"hPrimEtaAccPt_OpAngleBin%d",icut),
2197 nptbins,ptmin,ptmax) ;
2214 (Form(
"hMiOpAngleBin%d_ClusterMin_EtaPhi",icut),
2216 netabins,etamin,etamax,nphibins,phimin,phimax);
2222 (Form(
"hMiOpAngleBin%d_ClusterMax_EtaPhi",icut),
2224 netabins,etamin,etamax,nphibins,phimin,phimax);
2246 (Form(
"hMiOpAngleBin%d_ClusterMin_EPerSM",icut),
2248 nptbins,ptmin,ptmax,20,0,20);
2254 (Form(
"hMiOpAngleBin%d_ClusterMax_EPerSM",icut),
2256 nptbins,ptmin,ptmax,20,0,20);
2262 (Form(
"hMiOpAngleBin%d_ClusterMin_TimePerSM",icut),
2264 ntimebins,timemin,timemax,20,0,20);
2270 (Form(
"hMiOpAngleBin%d_ClusterMax_TimePerSM",icut),
2272 ntimebins,timemin,timemax,20,0,20);
2278 (Form(
"hMiOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2286 (Form(
"hMiOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2294 (Form(
"hMiOpAngleBin%d_PairCluster_RatioPerSM",icut),
2302 (Form(
"hMiOpAngleBin%d_PairCluster_MassPerSM",icut),
2304 nmassbins,massmin,massmax,20,0,20);
2310 (Form(
"hMiOpAngleBin%d_PairCluster_Mass",icut),
2312 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2331 "Clean",
"HijingBkg",
"NotHijingBkg",
"HijingAndOtherBkg",
2332 "Clean_HijingBkg",
"Clean_NotHijingBkg",
"Clean_HijingAndOtherBkg",
2333 "HijingBkg_NotHijingBkg",
"HijingBkg_HijingAndOtherBkg",
"NotHijingBkg_HijingAndOtherBkg" } ;
2335 "no overlap",
"pair Hijing Bkg",
"pair not Hijing bkg",
"pair Hijing and other bkg",
2336 "no overlap and hijing overlap",
"no overlap and generator overlap",
"no overlap and multiple overlap",
2337 "hijing overlap and gener overlap",
"hijing overlap and multiple overlap",
"gener overlap and multiple overlap" } ;
2349 nptbins,ptmin,ptmax) ;
2356 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2364 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2374 nptbins,ptmin,ptmax) ;
2380 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2381 nptbins,ptmin,ptmax) ;
2387 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2388 nptbins,ptmin,ptmax) ;
2398 nptbins,ptmin,ptmax) ;
2402 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
2406 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2414 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2424 nptbins,ptmin,ptmax) ;
2431 nptbins,ptmin,ptmax) ;
2438 nptbins,ptmin,ptmax) ;
2445 for(
Int_t itag = 0; itag < 10; itag++)
2448 (Form(
"h%sGeneratorPairMass%s%s",
2450 Form(
"Pair Mass with generator%s, %s ",
2452 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2458 (Form(
"h%sGeneratorPairMass%s%s_MCPi0",
2460 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2462 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2468 (Form(
"h%sGeneratorPairMass%s%s_MCEta",
2470 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2472 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2480 (Form(
"h%sGeneratorPairCent%s%s_MCPi0",
2482 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2484 nptbins,ptmin,ptmax,100,0,100);
2490 (Form(
"h%sGeneratorPairCent%s%s_MCPi0_MassCut",
2492 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s, %2.2f<M<%2.2f",
2494 nptbins,ptmin,ptmax,100,0,100);
2500 (Form(
"h%sGeneratorPairCent%s%s_MCEta",
2502 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2504 nptbins,ptmin,ptmax,100,0,100);
2510 (Form(
"h%sGeneratorPairCent%s%s_MCEta_MassCut",
2512 Form(
"Pair Mass with contribution of true #eta generator%s, %s, %2.2f<M<%2.2f",
2514 nptbins,ptmin,ptmax,100,0,100);
2521 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0",
2523 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2525 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2531 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEta",
2533 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2535 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2541 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0",
2543 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2545 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2551 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEta",
2553 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2555 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2561 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0MassCut",
2563 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2565 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2571 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEtaMassCut",
2573 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2575 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2581 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0MassCut",
2583 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2585 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2591 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEtaMassCut",
2593 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2595 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2608 return outputContainer;
2616 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
2619 printf(
"Number of bins in Centrality: %d \n",
GetNCentrBin()) ;
2620 printf(
"Number of bins in Z vert. pos: %d \n",
GetNZvertBin()) ;
2621 printf(
"Number of bins in Reac. Plain: %d \n",
GetNRPBin()) ;
2622 printf(
"Depth of event buffer: %d \n",
GetNMaxEvMix()) ;
2623 printf(
"Pair in same Module: %d \n",
fSameSM) ;
2624 printf(
"Cuts: \n") ;
2626 printf(
"Number of modules: %d \n",
fNModules) ;
2628 printf(
"Asymmetry cuts: n = %d, \n",
fNAsymCuts) ;
2629 printf(
"\tasymmetry < ");
2633 printf(
"PID selection bits: n = %d, \n",
fNPIDBits) ;
2634 printf(
"\tPID bit = ");
2640 printf(
"pT cuts: n = %d, \n",
fNPtCuts) ;
2648 printf(
"N cell in cluster cuts: n = %d, \n",
fNCellNCuts) ;
2649 printf(
"\tnCell > ");
2654 printf(
"------------------------------------------------------\n") ;
2662 if ( !
GetMC() )
return;
2679 AliVParticle * primary = 0;
2683 for(
Int_t i=0 ; i < nprim; i++)
2685 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
2687 primary =
GetMC()->GetTrack(i) ;
2690 AliWarning(
"Primaries pointer not available!!");
2695 if( primary->E() < 0.4 )
continue;
2697 pdg = primary->PdgCode();
2699 if( pdg != 111 && pdg != 221 && pdg != 321 && pdg != 211) continue ;
2701 nDaught = primary->GetNDaughters();
2702 iphot1 = primary->GetDaughterLabel(0) ;
2703 iphot2 = primary->GetDaughterLabel(1) ;
2706 if ( primary->E() == TMath::Abs(primary->Pz()) ||
2707 (primary->E() - primary->Pz()) < 1e-3 ||
2708 (primary->E() + primary->Pz()) < 0 ) continue ;
2716 mesonY = 0.5*TMath::Log((primary->E()+primary->Pz())/(primary->E()-primary->Pz())) ;
2718 Bool_t inacceptance = kTRUE;
2725 else inacceptance = kFALSE;
2731 if( mesonPhi < 0 ) mesonPhi+=TMath::TwoPi();
2732 mesonPhi *= TMath::RadToDeg();
2760 else if(pdg == 211){
2767 if(TMath::Abs(mesonY) < 1.0)
2801 if(TMath::Abs(mesonY) < 1.0)
2837 Int_t momindex = primary->GetMother();
2839 Int_t momstatus = -1;
2840 Int_t uniqueID = primary->GetUniqueID();
2847 if(momindex >= 0 && momindex < nprim)
2849 status = primary->MCStatusCode();
2850 AliVParticle* mother =
GetMC()->GetTrack(momindex);
2851 mompdg = TMath::Abs(mother->PdgCode());
2852 momstatus = mother->MCStatusCode();
2854 momR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
2855 momRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
2856 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
2863 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321 && mompdg!=211)
2864 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
2874 else if(mompdg==310) {
2877 else if(mompdg == 130) {
2880 else if(mompdg==321) {
2883 else if(mompdg==3122) {
2886 else if(momRcorr>0.1) {
2889 else if(mompdg==211) {
2892 else if(mompdg==11) {
2895 else if(mompdg==13) {
2898 else if(mompdg==2212 || mompdg==2112) {
2904 else if(mompdg > 2100 && mompdg < 2210)
2910 else if(mompdg > 310 && mompdg <= 323)
2912 else if(momstatus == 11 || momstatus == 12 )
2923 else if(mompdg > 2100 && mompdg < 2210)
2929 else if(mompdg >= 310 && mompdg <= 323)
2932 else if(momstatus == 11 || momstatus == 12 )
2942 else if(mompdg > 2100 && mompdg < 2210)
2945 else if(momstatus == 11 || momstatus == 12 )
2959 if ( nDaught != 2 )
continue;
2961 if ( iphot1 < 0 || iphot1 >= nprim || iphot2 < 0 || iphot2 >= nprim ) continue ;
2965 Bool_t inacceptance1 = kTRUE;
2966 Bool_t inacceptance2 = kTRUE;
2968 AliVParticle * phot1 =
GetMC()->GetTrack(iphot1) ;
2969 AliVParticle * phot2 =
GetMC()->GetTrack(iphot2) ;
2971 if(!phot1 || !phot2) continue ;
2973 pdg1 = phot1->PdgCode();
2974 pdg2 = phot2->PdgCode();
2976 fPhotonMom1.SetPxPyPzE(phot1->Px(),phot1->Py(),phot1->Pz(),phot1->E());
2977 fPhotonMom2.SetPxPyPzE(phot2->Px(),phot2->Py(),phot2->Pz(),phot2->E());
2986 if( pdg1 != 22 || pdg2 !=22) continue ;
3005 if(photonPhi1 < 0) photonPhi1+=TMath::TwoPi();
3006 if(photonPhi2 < 0) photonPhi2+=TMath::TwoPi();
3015 Bool_t sameSector = kFALSE;
3019 if((sm1==j && sm2==j+1) || (sm1==j+1 && sm2==j)) sameSector = kTRUE;
3022 if(sm1!=sm2 && !sameSector)
3024 inacceptance1 = kFALSE;
3025 inacceptance2 = kFALSE;
3032 AliDebug(2,Form(
"Accepted in %s?: m (%2.2f,%2.2f,%2.2f), p1 (%2.2f,%2.2f,%2.2f), p2 (%2.2f,%2.2f,%2.2f) : in1 %d, in2 %d",
3034 mesonPt,mesonYeta,mesonPhi,
3037 inacceptance1, inacceptance2));
3039 if(inacceptance1 && inacceptance2)
3044 Bool_t cutAngle = kFALSE;
3047 AliDebug(2,Form(
"\t ACCEPTED pdg %d: pt %2.2f, phi %2.2f, eta %2.2f",pdg,mesonPt,mesonPhi,mesonYeta));
3085 Int_t angleBin = -1;
3092 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3133 Int_t angleBin = -1;
3140 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3156 Float_t momentumDaughter1AlongMother = 0.;
3157 Float_t momentumDaughter2AlongMother = 0.;
3159 if (momentumSquaredMother > 0.)
3166 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
3169 if (ptArmSquared > 0.)
3170 pTArm = sqrt(ptArmSquared);
3173 if(momentumDaughter1AlongMother + momentumDaughter2AlongMother > 0)
3174 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
3182 if(en > 8 && en <= 12) ebin = 0;
3183 if(en > 12 && en <= 16) ebin = 1;
3184 if(en > 16 && en <= 20) ebin = 2;
3185 if(en > 20) ebin = 3;
3186 if(ebin < 0 || ebin > 3) return ;
3224 Int_t momindex = -1;
3226 Int_t momstatus = -1;
3228 Int_t uniqueID = -1;
3239 AliDebug(1,Form(
"Common ancestor label %d, pdg %d, name %s, status %d",
3240 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3250 else if(TMath::Abs(ancPDG)==11)
3258 else if(ancPDG==111)
3260 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3263 if ( mom->GetNDaughters()!=2 )
3269 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3270 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3271 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3328 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3329 status = ancestor->MCStatusCode();
3330 momindex = ancestor->GetMother();
3331 uniqueID = ancestor->GetUniqueID();
3336 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3337 mompdg = TMath::Abs(mother->PdgCode());
3338 momstatus = mother->MCStatusCode();
3339 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3340 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3341 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3356 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321)
3357 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
3367 else if(mompdg==310) {
3370 else if(mompdg == 130) {
3373 else if(mompdg==321) {
3376 else if(mompdg==3122) {
3379 else if(prodRcorr>0.1) {
3382 else if(mompdg==2212 || mompdg==2112 || mompdg==211) {
3385 else if(mompdg==11) {
3388 else if(mompdg==13) {
3391 else if (momstatus == 21) {
3394 else if(mompdg < 22 && mompdg!=11 && mompdg!=13) {
3397 else if(mompdg > 2100 && mompdg < 2210) {
3400 else if(mompdg == 221) {
3403 else if(mompdg == 331) {
3406 else if(mompdg == 213) {
3409 else if(mompdg == 223) {
3412 else if(mompdg > 310 && mompdg <= 323) {
3415 else if(momstatus == 11 || momstatus == 12 ) {
3426 else if(mompdg > 2100 && mompdg < 2210)
3432 else if(mompdg >= 310 && mompdg <= 323)
3435 else if(momstatus == 12 )
3446 Int_t angleBin = -1;
3453 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3504 else if(ancPDG==221)
3506 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3509 if ( mom->GetNDaughters()!=2 )
3515 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3516 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3517 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3520 if ( mom->GetNDaughters()!=2 ) ok = kFALSE;
3579 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3580 momindex = ancestor->GetMother();
3583 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3584 mompdg = TMath::Abs(mother->PdgCode());
3585 momstatus = mother->MCStatusCode();
3587 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3588 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3589 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3599 if (momstatus == 21 ) {
3602 else if(mompdg < 22 ) {
3605 else if(mompdg > 2100 && mompdg < 2210) {
3608 else if(mompdg == 331) {
3611 else if(momstatus == 11 || momstatus == 12 ) {
3626 Int_t angleBin = -1;
3633 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3642 else if(ancPDG==-2212)
3646 else if(ancPDG==-2112)
3650 else if(TMath::Abs(ancPDG)==13)
3654 else if (TMath::Abs(ancPDG) > 100 && ancLabel > 7)
3667 if(ancStatus == 11 || ancStatus == 12 || ancStatus == 0 )
3677 else if(ancLabel < 6)
3681 else if(ancLabel < 8)
3699 AliDebug(1,
"Common ancestor not found");
3704 if(mcIndex < 0 || mcIndex >= 17)
3706 AliInfo(Form(
"Wrong ancestor type %d, set it to unknown (12)",mcIndex));
3708 AliInfo(Form(
"\t Ancestor type not found: label %d, pdg %d, name %s, status %d\n",
3709 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3758 if(!cluster2 || !cluster1)
3760 AliWarning(Form(
"Cluster1 %p or Cluster 2 %p not found!",cluster1,cluster2));
3766 TString genName1 =
"", genName2 =
"", genNameBkg1 =
"", genNameBkg2 =
"";
3767 Int_t indexGen1 = -1, indexGen2 = -1, indexGenBkg1 = -1, indexGenBkg2 = -1;
3769 if (genBkgTag1 == -1)
return;
3770 else if(genBkgTag1 > 3) printf(
"Bkg1 generator tag larger than 3; Main %s Bkg %s\n",genName1.Data(),genNameBkg1.Data());
3773 if (genBkgTag2 == -1)
return;
3774 else if(genBkgTag2 > 3) printf(
"Bkg2 generator tag larger than 3; Main %s Bkg %s\n",genName2.Data(),genNameBkg2.Data());
3777 if(genName1!=genName2)
return;
3794 if ( genBkgTag1 == genBkgTag2 )
3800 Int_t genBkgMin = -1;
3801 Int_t genBkgMax = -1;
3803 if(genBkgTag1 > genBkgTag2)
3805 genBkgMax = genBkgTag1;
3806 genBkgMin = genBkgTag2;
3810 genBkgMax = genBkgTag2;
3811 genBkgMin = genBkgTag1;
3814 if ( genBkgMin == 0 )
3816 if (genBkgMax == 1 ) tag = 4;
3817 else if(genBkgMax == 2 ) tag = 5;
3818 else if(genBkgMax == 3 ) tag = 6;
3820 else if ( genBkgMin == 1 )
3822 if ( genBkgMax == 2 ) tag = 7;
3823 else if ( genBkgMax == 3 ) tag = 8;
3825 else if ( genBkgMin == 2 ) tag = 9;
3830 printf(
"Combination not found, bkg1 tag %d, bkg2 tag %d\n",genBkgTag1,genBkgTag2);
3838 if ( ptPrim < 0.1 || pt < 0.5 )
return;
3874 else if( mcIndex==3 )
3930 AliFatal(Form(
"No input aod photons in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3942 Int_t nPhot2 = nPhot;
3943 Int_t minEntries = 2;
3956 if(!secondLoopInputData)
3962 nPhot2 = secondLoopInputData->GetEntriesFast() ;
3967 AliDebug(1,Form(
"Photon entries %d", nPhot));
3970 if ( nPhot < minEntries )
3995 Double_t vert[] = {0.0, 0.0, 0.0} ;
3996 Int_t evtIndex1 = 0 ;
3997 Int_t currentEvtIndex = -1;
4005 AliWarning(Form(
"Mix Bin not expected: cen bin %d, z bin %d, rp bin %d, total bin %d, Event Centrality %d, z vertex %2.3f, Reaction Plane %2.3f",
4018 for(
Int_t i1 = 0; i1 < nPhot-last; i1++)
4030 if ( evtIndex1 == -1 )
4032 if ( evtIndex1 == -2 )
4038 if (evtIndex1 != currentEvtIndex)
4051 currentEvtIndex = evtIndex1 ;
4067 Int_t iclus1 = -1, iclus2 = -1 ;
4068 Float_t maxCellFraction1 = 0, maxCellFraction2 = 0;
4069 Int_t absIdMax1 = -1, absIdMax2 = -1;
4070 Int_t icol1 = -1, icol2 = -1, icolAbs1 = -1, icolAbs2 = -1;
4071 Int_t irow1 = -1, irow2 = -1, irowAbs1 = -1, irowAbs2 = -1;
4072 Int_t iRCU1 = -1, iRCU2 = -1;
4077 if(!cluster1) AliWarning(
"Cluster1 not found!");
4103 for(
Int_t i2 = first; i2 < nPhot2; i2++)
4115 if ( evtIndex2 == -1 )
4117 if ( evtIndex2 == -2 )
4193 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4195 AliDebug(2,Form(
"E: fPhotonMom1 %f, fPhotonMom2 %f; Pair: pT %f, mass %f, a %f", p1->
E(), p2->
E(), (
fPhotonMom1 +
fPhotonMom2).E(),m,a));
4219 Int_t ancStatus = 0;
4245 if ( module1==module2 )
4253 Int_t isector1 = module1/2;
4254 Int_t isector2 = module2/2;
4255 if ( isector1==isector2 )
4260 else if ( TMath::Abs(isector2-isector1) == 1 )
4262 Int_t iside1 = module1;
4263 Int_t iside2 = module2;
4265 if(module1 > 11) iside1-=2;
4266 if(module2 > 11) iside2-=2;
4268 if ( module1 < module2 && module2-module1==2 )
4270 else if( module2 < module1 && module1-module2==2 )
4316 if(module1!=module2) ok=kFALSE;
4345 if ( l01 > 0.01 && l01 < 0.4 &&
4348 else if( l01 > 0.01 && l01 < 0.4 && l02 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4349 else if( l02 > 0.01 && l02 < 0.4 && l01 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4367 if(index < 0 || index >= ncentr*fNPIDBits*fNAsymCuts) continue ;
4404 Int_t angleBin = -1;
4411 if( angleBin >= 0 && angleBin < fNAngleCutBins)
4428 Int_t mod1 = module1;
4429 Int_t mod2 = module2;
4433 if(!cluster2) AliWarning(
"Cluster2 not found!");
4457 Int_t tmp = absIdMax2;
4458 absIdMax2 = absIdMax1;
4534 ncell1, ncell2, m, pt, a, deta, dphi, angle);
4581 if(eventbin < 0) return ;
4587 AliWarning(Form(
"Mix event list not available, bin %d",eventbin));
4591 Int_t nMixed = evMixList->GetSize() ;
4592 for(
Int_t ii=0; ii<nMixed; ii++)
4594 TClonesArray* ev2= (TClonesArray*) (evMixList->At(ii));
4595 Int_t nPhot2=ev2->GetEntriesFast() ;
4597 AliDebug(1,Form(
"Mixed event %d photon entries %d, centrality bin %d",ii, nPhot2,
GetEventCentralityBin()));
4604 for(
Int_t i1 = 0; i1 < nPhot; i1++)
4621 for(
Int_t i2 = 0; i2 < nPhot2; i2++)
4632 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4648 AliDebug(2,Form(
"Mixed Event: pT: fPhotonMom1 %2.2f, fPhotonMom2 %2.2f; Pair: pT %2.2f, mass %2.3f, a %2.3f",p1->
Pt(), p2->
Pt(), pt,m,a));
4662 if ( module1==module2 )
4670 Int_t isector1 = module1/2;
4671 Int_t isector2 = module2/2;
4672 if ( isector1==isector2 )
4677 else if ( TMath::Abs(isector2-isector1) == 1 )
4679 Int_t iside1 = module1;
4680 Int_t iside2 = module2;
4682 if(module1 > 11) iside1-=2;
4683 if(module2 > 11) iside2-=2;
4685 if ( module1 < module2 && module2-module1==2 )
4687 else if( module2 < module1 && module1-module2==2 )