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 fhPrimPi0PtOrigin(0x0), fhPrimEtaPtOrigin(0x0),
105 fhPrimNotResonancePi0PtOrigin(0x0), fhPrimPi0PtStatus(0x0),
106 fhMCPi0MassPtRec(0x0), fhMCPi0MassPtTrue(0x0),
107 fhMCPi0PtTruePtRec(0x0), fhMCPi0PtTruePtRecMassCut(0x0),
108 fhMCEtaMassPtRec(0x0), fhMCEtaMassPtTrue(0x0),
109 fhMCEtaPtTruePtRec(0x0), fhMCEtaPtTruePtRecMassCut(0x0),
110 fhMCPi0PerCentrality(0), fhMCPi0PerCentralityMassCut(0),
111 fhMCEtaPerCentrality(0), fhMCEtaPerCentralityMassCut(0),
112 fhMCPi0PtTruePtRecRat(0), fhMCPi0PtTruePtRecDif(0), fhMCPi0PtRecOpenAngle(0),
113 fhMCEtaPtTruePtRecRat(0), fhMCEtaPtTruePtRecDif(0), fhMCEtaPtRecOpenAngle(0),
114 fhMCPi0PtTruePtRecRatMassCut(0), fhMCPi0PtTruePtRecDifMassCut(0), fhMCPi0PtRecOpenAngleMassCut(0),
115 fhMCEtaPtTruePtRecRatMassCut(0), fhMCEtaPtTruePtRecDifMassCut(0), fhMCEtaPtRecOpenAngleMassCut(0),
116 fhMCPi0PtOrigin(0), fhMCEtaPtOrigin(0),
117 fhMCNotResonancePi0PtOrigin(0),fhMCPi0PtStatus(0x0),
118 fhMCPi0ProdVertex(0), fhMCEtaProdVertex(0),
119 fhPrimPi0ProdVertex(0), fhPrimEtaProdVertex(0), fhMCPi0Radius(0), fhMCEtaRadius(0),
120 fhReMCFromConversion(0), fhReMCFromNotConversion(0), fhReMCFromMixConversion(0),
121 fhCosThStarPrimPi0(0), fhCosThStarPrimEta(0),
123 fhReSecondaryCellInTimeWindow(0), fhMiSecondaryCellInTimeWindow(0),
124 fhReSecondaryCellOutTimeWindow(0), fhMiSecondaryCellOutTimeWindow(0)
129 for(
Int_t i = 0; i < 4; i++)
135 for(
Int_t ism = 0; ism < 20; ism++)
141 for(
Int_t icut = 0; icut < 10; icut++)
184 for(
Int_t igen = 0; igen < 10; igen++)
186 for(
Int_t itag = 0; itag < 10; itag++)
221 for(
Int_t i = 0; i < 17; i++)
228 for(
Int_t i = 0; i < 3; i++)
319 const Int_t buffersize = 255;
320 char onePar[buffersize] ;
321 snprintf(onePar,buffersize,
"--- AliAnaPi0 ---:") ;
323 snprintf(onePar,buffersize,
"Number of bins in Centrality: %d;",
GetNCentrBin()) ;
325 snprintf(onePar,buffersize,
"Number of bins in Z vert. pos: %d;",
GetNZvertBin()) ;
327 snprintf(onePar,buffersize,
"Number of bins in Reac. Plain: %d;",
GetNRPBin()) ;
329 snprintf(onePar,buffersize,
"Depth of event buffer: %d;",
GetNMaxEvMix()) ;
333 snprintf(onePar,buffersize,
" Asymmetry cuts: n = %d, asymmetry < ",
fNAsymCuts) ;
336 snprintf(onePar,buffersize,
" PID selection bits: n = %d, PID bit =",
fNPIDBits) ;
339 snprintf(onePar,buffersize,
"Cuts:") ;
347 snprintf(onePar, buffersize,
" pT cuts: n = %d, pt > ",
fNPtCuts) ;
350 snprintf(onePar,buffersize,
" N cell in cluster cuts: n = %d, nCell > ",
fNCellNCuts) ;
355 return new TObjString(parList) ;
365 outputContainer->SetName(GetName());
368 const Int_t buffersize = 255;
369 char key[buffersize] ;
370 char title[buffersize] ;
410 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
411 Int_t nphibinsopen = TMath::Nint(nphibins*TMath::TwoPi()/(phimax-phimin));
427 Float_t rowcellmin = fNMaxRowsFullMin-1.5;
436 fhPrimPi0E =
new TH1F(
"hPrimPi0E",
"Primary #pi^{0} E, |#it{Y}|<1",
437 nptbins,ptmin,ptmax) ;
441 fhPrimPi0Pt =
new TH1F(
"hPrimPi0Pt",
"Primary #pi^{0} #it{p}_{T} , |#it{Y}|<1",
442 nptbins,ptmin,ptmax) ;
443 fhPrimPi0Pt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
446 fhPrimPi0Y =
new TH2F(
"hPrimPi0Rapidity",
"Rapidity of primary #pi^{0}",
447 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
449 fhPrimPi0Y ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
452 fhPrimPi0Yeta =
new TH2F(
"hPrimPi0PseudoRapidity",
"PseudoRapidity of primary #pi^{0}",
453 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
458 fhPrimPi0YetaYcut =
new TH2F(
"hPrimPi0PseudoRapidityYcut",
"PseudoRapidity of primary #pi^{0}, |#it{Y}|<1",
459 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
464 fhPrimPi0Phi =
new TH2F(
"hPrimPi0Phi",
"#varphi of primary #pi^{0}, |#it{Y}|<1",
465 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
472 fhPrimPi0PtInCalo =
new TH1F(
"hPrimPi0PtInCalo",
"Primary #pi^{0} #it{p}_{T} , in calorimeter acceptance",
473 nptbins,ptmin,ptmax) ;
477 fhPrimPi0AccE =
new TH1F(
"hPrimPi0AccE",
"Primary #pi^{0} #it{E} with both photons in acceptance",
478 nptbins,ptmin,ptmax) ;
482 fhPrimPi0AccPt =
new TH1F(
"hPrimPi0AccPt",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
483 nptbins,ptmin,ptmax) ;
487 fhPrimPi0AccPtPhotonCuts =
new TH1F(
"hPrimPi0AccPtPhotonCuts",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
488 nptbins,ptmin,ptmax) ;
492 fhPrimPi0AccY =
new TH2F(
"hPrimPi0AccRapidity",
"Rapidity of primary #pi^{0} with accepted daughters",
493 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
498 fhPrimPi0AccYeta =
new TH2F(
"hPrimPi0AccPseudoRapidity",
"PseudoRapidity of primary #pi^{0} with accepted daughters",
499 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
504 fhPrimPi0AccPhi =
new TH2F(
"hPrimPi0AccPhi",
"#varphi of primary #pi^{0} with accepted daughters",
506 nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
514 fhPrimEtaE =
new TH1F(
"hPrimEtaE",
"Primary eta E",
515 nptbins,ptmin,ptmax) ;
519 fhPrimEtaPt =
new TH1F(
"hPrimEtaPt",
"Primary #eta #it{p}_{T}",
520 nptbins,ptmin,ptmax) ;
521 fhPrimEtaPt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
524 fhPrimEtaY =
new TH2F(
"hPrimEtaRapidity",
"Rapidity of primary #eta",
525 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
527 fhPrimEtaY->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
530 fhPrimEtaYeta =
new TH2F(
"hPrimEtaPseudoRapidityEta",
"PseudoRapidity of primary #eta",
531 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
536 fhPrimEtaYetaYcut =
new TH2F(
"hPrimEtaPseudoRapidityEtaYcut",
"PseudoRapidity of primary #eta, |#it{Y}|<1",
537 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
543 nptbins,ptmin,ptmax, nphibinsopen,0,360) ;
550 fhPrimEtaPtInCalo =
new TH1F(
"hPrimEtaPtInCalo",
"Primary #eta #it{p}_{T}, in calorimeter acceptance",
551 nptbins,ptmin,ptmax) ;
555 fhPrimEtaAccE =
new TH1F(
"hPrimEtaAccE",
"Primary #eta #it{E} with both photons in acceptance",
556 nptbins,ptmin,ptmax) ;
560 fhPrimEtaAccPt =
new TH1F(
"hPrimEtaAccPt",
"Primary eta #it{p}_{T} with both photons in acceptance",
561 nptbins,ptmin,ptmax) ;
565 fhPrimEtaAccPtPhotonCuts =
new TH1F(
"hPrimEtaAccPtPhotonCuts",
"Primary eta #it{p}_{T} with both photons in acceptance",
566 nptbins,ptmin,ptmax) ;
570 fhPrimEtaAccPhi =
new TH2F(
"hPrimEtaAccPhi",
"Azimuthal of primary #eta with accepted daughters",
571 nptbins,ptmin,ptmax, nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
577 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
583 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
593 nptbins,ptmin,ptmax, 100, 0, 100) ;
599 nptbins,ptmin,ptmax, 100, 0, 100) ;
605 fhPrimPi0PtEventPlane =
new TH2F(
"hPrimPi0PtEventPlane",
"Primary #pi^{0} #it{p}_{T} vs reco event plane angle, |#it{Y}|<1",
606 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
613 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
620 fhPrimPi0AccPtCentrality =
new TH2F(
"hPrimPi0AccPtCentrality",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco centrality",
621 nptbins,ptmin,ptmax, 100, 0, 100) ;
626 fhPrimEtaAccPtCentrality =
new TH2F(
"hPrimEtaAccPtCentrality",
"Primary #eta with both photons in acceptance #it{p}_{T} vs reco centrality",
627 nptbins,ptmin,ptmax, 100, 0, 100) ;
632 fhPrimPi0AccPtEventPlane =
new TH2F(
"hPrimPi0AccPtEventPlane",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco event plane angle",
633 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
638 fhPrimEtaAccPtEventPlane =
new TH2F(
"hPrimEtaAccPtEventPlane",
"Primary #eta with both #gamma_{decay} in acceptance #it{p}_{T} vs reco event plane angle",
639 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
649 (
"hPrimPi0OpeningAngle",
"Angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
650 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
656 (
"hPrimPi0OpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#pi^{0}} in acceptance",
657 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
663 (
"hPrimPi0OpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, in acceptance, #it{p}_{T}>5 GeV/#it{c}",
664 100,0,1,nopanbins,opanmin,opanmax);
670 (
"hPrimPi0CosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
671 nptbins,ptmin,ptmax,100,-1,1);
677 (
"hPrimEtaOpeningAngle",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
678 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
684 (
"hPrimEtaOpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
685 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
691 (
"hPrimEtaOpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, #it{p}_{T}>5 GeV/#it{c}, in acceptance",
692 100,0,1,nopanbins,opanmin,opanmax);
698 (
"hPrimEtaCosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#eta}, in acceptance",
699 nptbins,ptmin,ptmax,100,-1,1);
709 fhPrimPi0PtOrigin =
new TH2F(
"hPrimPi0PtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
748 fhPrimPi0PtStatus =
new TH2F(
"hPrimPi0PtStatus",
"Primary #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
754 fhPrimEtaPtOrigin =
new TH2F(
"hPrimEtaPtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
767 200,0.,20.,5000,0,500) ;
773 200,0.,20.,5000,0,500) ;
781 TString ebin[] = {
"8 < E < 12 GeV",
"12 < E < 16 GeV",
"16 < E < 20 GeV",
"E > 20 GeV" };
782 Int_t narmbins = 400;
786 for(
Int_t i = 0; i < 4; i++)
789 Form(
"Armenteros of primary #pi^{0}, %s",ebin[i].
Data()),
790 200, -1, 1, narmbins,armmin,armmax);
796 Form(
"Armenteros of primary #eta, %s",ebin[i].
Data()),
797 200, -1, 1, narmbins,armmin,armmax);
805 (
"hCosThStarPrimPi0",
"cos(#theta *) for primary #pi^{0}",nptbins,ptmin,ptmax,200,-1,1);
811 (
"hCosThStarPrimEta",
"cos(#theta *) for primary #eta",nptbins,ptmin,ptmax,200,-1,1);
871 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
872 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
874 fhRe1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
875 fhRe1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
876 fhRe1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
878 outputContainer->Add(
fhRe1[index]) ;
883 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
884 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
886 fhRe2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
887 fhRe2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
888 fhRe2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
889 outputContainer->Add(
fhRe2[index]) ;
892 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
893 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
895 fhRe3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
896 fhRe3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
897 fhRe3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
898 outputContainer->Add(
fhRe3[index]) ;
905 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
906 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
908 fhReInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
909 fhReInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
910 fhReInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
915 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist2",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 2",
918 fhReInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
919 fhReInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
920 fhReInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
924 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
925 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
927 fhReInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
928 fhReInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
929 fhReInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
937 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
938 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
940 fhMi1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
941 fhMi1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
942 fhMi1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
943 outputContainer->Add(
fhMi1[index]) ;
946 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
947 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
949 fhMi2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
950 fhMi2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
951 fhMi2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
952 outputContainer->Add(
fhMi2[index]) ;
955 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
956 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
958 fhMi3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
959 fhMi3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
960 fhMi3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
961 outputContainer->Add(
fhMi3[index]) ;
968 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
969 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
971 fhMiInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
972 fhMiInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
973 fhMiInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
977 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
978 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
980 fhMiInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
981 fhMiInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
982 fhMiInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
986 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
987 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f,dist bad 3",
989 fhMiInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
990 fhMiInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
991 fhMiInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1000 fhEPairDiffTime =
new TH2F(
"hEPairDiffTime",
"cluster pair time difference vs #it{p}_{T}",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
1008 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1014 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1022 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1028 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1038 fhReConv =
new TH2F(
"hReConv",
"Real Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1039 fhReConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1040 fhReConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1043 fhReConv2 =
new TH2F(
"hReConv2",
"Real Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1044 fhReConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1045 fhReConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1050 fhMiConv =
new TH2F(
"hMiConv",
"Mixed Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1051 fhMiConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1052 fhMiConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1055 fhMiConv2 =
new TH2F(
"hMiConv2",
"Mixed Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1056 fhMiConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1057 fhMiConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1064 fhRePtAsym =
new TH2F(
"hRePtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for pairs",
1065 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1066 fhRePtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1070 fhRePtAsymPi0 =
new TH2F(
"hRePtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1072 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1077 fhRePtAsymEta =
new TH2F(
"hRePtAsymEta",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1079 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1086 fhMiPtAsym =
new TH2F(
"hMiPtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs",nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1087 fhMiPtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1091 fhMiPtAsymPi0 =
new TH2F(
"hMiPtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1093 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1099 Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1101 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1113 (Form(
"hPtBin%d_Cluster_EtaPhi",ipt),
1114 Form(
"#eta vs #varphi, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1115 netabins,etamin,etamax,nphibins,phimin,phimax);
1121 (Form(
"hPtBin%d_Cluster_ColRow",ipt),
1122 Form(
"column vs row, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1123 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1164 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1165 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1178 snprintf(key, buffersize,
"hMi_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1179 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1198 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1199 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 ",
1209 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1210 snprintf(title, buffersize,
"Real #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1223 snprintf(key, buffersize,
"hMiOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1224 snprintf(title, buffersize,
"Mixed #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1242 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1243 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 ",
1261 fhReSS[0] =
new TH2F(
"hRe_SS_Tight",
" 0.01 < #lambda_{0}^{2} < 0.4",
1262 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1263 fhReSS[0]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1264 fhReSS[0]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1265 outputContainer->Add(
fhReSS[0]) ;
1268 fhReSS[1] =
new TH2F(
"hRe_SS_Loose",
" #lambda_{0}^{2} > 0.4",
1269 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1270 fhReSS[1]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1271 fhReSS[1]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1272 outputContainer->Add(
fhReSS[1]) ;
1275 fhReSS[2] =
new TH2F(
"hRe_SS_Both",
" cluster_{1} #lambda_{0}^{2} > 0.4; cluster_{2} 0.01 < #lambda_{0}^{2} < 0.4",
1276 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1277 fhReSS[2]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1278 fhReSS[2]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1279 outputContainer->Add(
fhReSS[2]) ;
1284 fhEventBin=
new TH1I(
"hEventBin",
"Number of real pairs per bin(cen,vz,rp)",
1291 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of mixed pairs per bin(cen,vz,rp)",
1317 (
"hRealOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1323 (
"hRealCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,100,0,1);
1331 (
"hMixedOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1337 (
"hMixedCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,100,0,1);
1345 for(
Int_t ism = 0; ism < 20; ism++)
1348 (Form(
"hRealOpeningAngleMod_%d",ism),
1349 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, SM %d",ism),
1350 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1358 (Form(
"hMixedOpeningAngleMod_%d",ism),
1359 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs, SM %d",ism),
1360 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1373 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1379 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1385 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1392 fhMCPi0PtOrigin =
new TH2F(
"hMCPi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
1416 fhMCNotResonancePi0PtOrigin =
new TH2F(
"hMCNotResonancePi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,11,0,11) ;
1431 fhMCPi0PtStatus =
new TH2F(
"hMCPi0PtStatus",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
1438 fhMCEtaPtOrigin =
new TH2F(
"hMCEtaPtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
1449 fhMCPi0ProdVertex =
new TH2F(
"hMCPi0ProdVertex",
"Selected reco pair from generated #pi^{0} #it{p}_{T} vs production vertex",
1450 200,0.,20.,5000,0,500) ;
1455 fhMCEtaProdVertex =
new TH2F(
"hMCEtaProdVertex",
"Selected reco pair from generated #eta #it{p}_{T} vs production vertex",
1456 200,0.,20.,5000,0,500) ;
1462 "Production radius of reconstructed pair from generated #pi^{0} corrected by vertex",
1463 200,0,20,5000,0,500) ;
1469 "Production radius of reconstructed pair from generated #eta corrected by vertex",
1470 200,0,20,5000,0,500) ;
1477 TString ancestorTitle[] = {
"Photon, conversion",
"Electron, conversion",
1478 "Pi0",
"Eta",
"AntiProton",
"AntiNeutron",
"Muon & converted stable particles",
1479 "Resonances",
"Strings",
"Initial state interaction",
"Final state radiations",
"Colliding protons",
1480 "Pi0Not2SingleGamma",
"EtaNot2Gamma",
"Photon, not both conversion",
"Electron, not both conversion",
"not found"};
1482 for(
Int_t i = 0; i<17; i++)
1484 fhMCOrgMass[i] =
new TH2F(Form(
"hMCOrgMass_%d",i),Form(
"#it{M} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1485 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1486 fhMCOrgMass[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1487 fhMCOrgMass[i]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1490 fhMCOrgAsym[i]=
new TH2F(Form(
"hMCOrgAsym_%d",i),Form(
"#it{Asymmetry} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1491 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1492 fhMCOrgAsym[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1496 fhMCOrgDeltaEta[i] =
new TH2F(Form(
"hMCOrgDeltaEta_%d",i),Form(
"#Delta #eta of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1497 nptbins,ptmin,ptmax,netabins,-1.4,1.4) ;
1502 fhMCOrgDeltaPhi[i]=
new TH2F(Form(
"hMCOrgDeltaPhi_%d",i),Form(
"#Delta #varphi of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1503 nptbins,ptmin,ptmax,nphibins,-0.7,0.7) ;
1510 fhMCOrgPi0MassPtConversion[0] =
new TH2F(
"hMCOrgPi0MassPtConversion0",
"Invariant mass of 2 clusters (ancestor #pi^{0}) not originated in conversions",
1511 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1516 fhMCOrgPi0MassPtConversion[1] =
new TH2F(
"hMCOrgPi0MassPtConversion1",
"Invariant mass of 2 clusters (ancestor #pi^{0}) one from conversion and the other not",
1517 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1522 fhMCOrgPi0MassPtConversion[2] =
new TH2F(
"hMCOrgPi0MassPtConversion2",
"Invariant mass of 2 clusters (ancestor #pi^{0}) originated in conversions",
1523 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1529 fhMCOrgEtaMassPtConversion[0] =
new TH2F(
"hMCOrgEtaMassPtConversion0",
"Invariant mass of 2 clusters (ancestor #eta) not originated in conversions",
1530 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1535 fhMCOrgEtaMassPtConversion[1] =
new TH2F(
"hMCOrgEtaMassPtConversion1",
"Invariant mass of 2 clusters (ancestor #eta) one from conversion and the other not",
1536 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1542 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1568 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",
1570 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1571 fhMCPi0MassPtRec[index]->SetXTitle(
"#it{p}_{T, reconstructed} (GeV/#it{c})");
1572 fhMCPi0MassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1576 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",
1578 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1584 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",
1586 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1592 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",
1594 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1600 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",
1602 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1604 fhMCEtaMassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1608 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",
1610 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1616 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",
1618 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1625 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",
1627 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1647 fhMCPi0MassPtTrue[0] =
new TH2F(
"hMCPi0MassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #pi^{0} cluster pairs",
1648 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1653 fhMCPi0MassPtRec[0] =
new TH2F(
"hMCPi0MassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1654 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1659 fhMCPi0PtTruePtRec[0]=
new TH2F(
"hMCPi0PtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1660 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1666 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]),
1667 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1672 fhMCEtaMassPtTrue[0] =
new TH2F(
"hMCEtaMassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #eta cluster pairs",
1673 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1678 fhMCEtaMassPtRec[0] =
new TH2F(
"hMCEtaMassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1679 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1684 fhMCEtaPtTruePtRec[0]=
new TH2F(
"hMCEtaPtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1685 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1691 Form(
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1693 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1699 fhMCPi0PtTruePtRecRat =
new TH2F(
"hMCPi0PtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs",
1700 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1706 Form(
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1708 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1713 fhMCEtaPtTruePtRecRat =
new TH2F(
"hMCEtaPtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs",
1714 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1720 Form(
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1722 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1727 fhMCPi0PtTruePtRecDif =
new TH2F(
"hMCPi0PtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1728 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1734 Form(
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1736 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1741 fhMCEtaPtTruePtRecDif =
new TH2F(
"hMCEtaPtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs",
1742 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1748 Form(
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1750 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1756 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1762 Form(
"Opening angle of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1764 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1770 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1776 Form(
"Opening angle of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1778 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1786 (
"hMCPi0PerCentrality",
1787 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1788 nptbins,ptmin,ptmax,100,0,100) ;
1794 (
"hMCPi0PerCentralityMassCut",
1795 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1797 nptbins,ptmin,ptmax,100,0,100) ;
1803 (
"hMCEtaPerCentrality",
1804 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1805 nptbins,ptmin,ptmax,100,0,100) ;
1811 (
"hMCEtaPerCentralityMassCut",
1812 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1814 nptbins,ptmin,ptmax,100,0,100) ;
1827 AliError(Form(
"Last module number <%d> is larger than total SM number <%d>, please check configuration \n",
fLastModule,
fNModules));
1870 snprintf(key, buffersize,
"hReMod_%d",imod) ;
1871 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1872 fhReMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1873 fhReMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1874 fhReMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1875 outputContainer->Add(
fhReMod[imod]) ;
1878 snprintf(key, buffersize,
"hMiMod_%d",imod) ;
1879 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1880 fhMiMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1881 fhMiMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1882 fhMiMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1883 outputContainer->Add(
fhMiMod[imod]) ;
1891 TString pairnamePHOS[] = {
"(0-1)",
"(0-2)",
"(1-2)",
"(0-3)",
"(1-3)",
"(2-3)",
"(0-4)",
"(1-4)",
"(2-4)",
"(3-4)"};
1893 for(
Int_t imod=0; imod<10; imod++)
1895 if ( (fNModules == 3 && imod > 2) || (fNModules == 4 && imod > 5) )
1903 snprintf(key, buffersize,
"hReDiffPHOSMod_%d",imod) ;
1904 snprintf(title, buffersize,
"Real pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1905 fhReDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1907 fhReDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1912 snprintf(key, buffersize,
"hMiDiffPHOSMod_%d",imod) ;
1913 snprintf(title, buffersize,
"Mixed pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1914 fhMiDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1916 fhMiDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1929 for(
Int_t isector=minSector; isector<=maxSector; isector++)
1931 snprintf(key, buffersize,
"hReSameSectorEMCALMod_%d",isector) ;
1932 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1940 snprintf(key, buffersize,
"hMiSameSectorEMCALMod_%d",isector) ;
1941 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1952 Int_t maxSide = fNModules-2;
1955 maxSide = fNModules-4;
1962 for(
Int_t iside=minSide; iside<maxSide; iside++)
1965 Int_t ism2 = iside+2;
1974 snprintf(key, buffersize,
"hReSameSideEMCALMod_%d",iside) ;
1975 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
1983 snprintf(key, buffersize,
"hMiSameSideEMCALMod_%d",iside) ;
1984 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
2001 Int_t dcSameSM[6] = {12,13,14,15,16,17};
2002 Int_t phSameSM[6] = {3, 3, 2, 2, 1, 1};
2004 Int_t dcDiffSM[8] = {12,13,14,15,16,17,0,0};
2005 Int_t phDiffSM[8] = {2, 2, 1, 1, 3, 3,0,0};
2007 for(
Int_t icombi = 0; icombi < 8; icombi++)
2009 snprintf(key, buffersize,
"hReDiffSectorDCALPHOS_%d",icombi) ;
2010 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2017 snprintf(key, buffersize,
"hMiDiffSectorDCALPHOS_%d",icombi) ;
2018 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2025 if ( icombi > 5 ) continue ;
2027 snprintf(key, buffersize,
"hReSameSectorDCALPHOS_%d",icombi) ;
2028 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2035 snprintf(key, buffersize,
"hMiSameSectorDCALPHOS_%d",icombi) ;
2036 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2053 (Form(
"hReOpAngleBin%d_ClusterMin_EtaPhi",icut),
2055 netabins,etamin,etamax,nphibins,phimin,phimax);
2061 (Form(
"hReOpAngleBin%d_ClusterMax_EtaPhi",icut),
2063 netabins,etamin,etamax,nphibins,phimin,phimax);
2069 (Form(
"hReOpAngleBin%d_ClusterMin_ColRow",icut),
2071 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2077 (Form(
"hReOpAngleBin%d_ClusterMax_ColRow",icut),
2079 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2085 (Form(
"hReOpAngleBin%d_ClusterMin_EPerSM",icut),
2087 nptbins,ptmin,ptmax,20,0,20);
2093 (Form(
"hReOpAngleBin%d_ClusterMax_EPerSM",icut),
2095 nptbins,ptmin,ptmax,20,0,20);
2101 (Form(
"hReOpAngleBin%d_ClusterMin_TimePerSM",icut),
2103 ntimebins,timemin,timemax,20,0,20);
2109 (Form(
"hReOpAngleBin%d_ClusterMax_TimePerSM",icut),
2111 ntimebins,timemin,timemax,20,0,20);
2117 (Form(
"hReOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2125 (Form(
"hReOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2133 (Form(
"hReOpAngleBin%d_PairCluster_RatioPerSM",icut),
2141 (Form(
"hReOpAngleBin%d_PairCluster_MassPerSM",icut),
2143 nmassbins,massmin,massmax,20,0,20);
2149 (Form(
"hReOpAngleBin%d_PairCluster_Mass",icut),
2151 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2161 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTruePi0",icut),
2163 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2169 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTrueEta",icut),
2171 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2178 (Form(
"hPrimPi0AccPt_OpAngleBin%d",icut),
2180 nptbins,ptmin,ptmax) ;
2185 (Form(
"hPrimEtaAccPt_OpAngleBin%d",icut),
2187 nptbins,ptmin,ptmax) ;
2204 (Form(
"hMiOpAngleBin%d_ClusterMin_EtaPhi",icut),
2206 netabins,etamin,etamax,nphibins,phimin,phimax);
2212 (Form(
"hMiOpAngleBin%d_ClusterMax_EtaPhi",icut),
2214 netabins,etamin,etamax,nphibins,phimin,phimax);
2236 (Form(
"hMiOpAngleBin%d_ClusterMin_EPerSM",icut),
2238 nptbins,ptmin,ptmax,20,0,20);
2244 (Form(
"hMiOpAngleBin%d_ClusterMax_EPerSM",icut),
2246 nptbins,ptmin,ptmax,20,0,20);
2252 (Form(
"hMiOpAngleBin%d_ClusterMin_TimePerSM",icut),
2254 ntimebins,timemin,timemax,20,0,20);
2260 (Form(
"hMiOpAngleBin%d_ClusterMax_TimePerSM",icut),
2262 ntimebins,timemin,timemax,20,0,20);
2268 (Form(
"hMiOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2276 (Form(
"hMiOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2284 (Form(
"hMiOpAngleBin%d_PairCluster_RatioPerSM",icut),
2292 (Form(
"hMiOpAngleBin%d_PairCluster_MassPerSM",icut),
2294 nmassbins,massmin,massmax,20,0,20);
2300 (Form(
"hMiOpAngleBin%d_PairCluster_Mass",icut),
2302 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2321 "Clean",
"HijingBkg",
"NotHijingBkg",
"HijingAndOtherBkg",
2322 "Clean_HijingBkg",
"Clean_NotHijingBkg",
"Clean_HijingAndOtherBkg",
2323 "HijingBkg_NotHijingBkg",
"HijingBkg_HijingAndOtherBkg",
"NotHijingBkg_HijingAndOtherBkg" } ;
2325 "no overlap",
"pair Hijing Bkg",
"pair not Hijing bkg",
"pair Hijing and other bkg",
2326 "no overlap and hijing overlap",
"no overlap and generator overlap",
"no overlap and multiple overlap",
2327 "hijing overlap and gener overlap",
"hijing overlap and multiple overlap",
"gener overlap and multiple overlap" } ;
2339 nptbins,ptmin,ptmax) ;
2346 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2354 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2364 nptbins,ptmin,ptmax) ;
2370 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2371 nptbins,ptmin,ptmax) ;
2377 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2378 nptbins,ptmin,ptmax) ;
2388 nptbins,ptmin,ptmax) ;
2392 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
2396 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2404 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2414 nptbins,ptmin,ptmax) ;
2421 nptbins,ptmin,ptmax) ;
2428 nptbins,ptmin,ptmax) ;
2435 for(
Int_t itag = 0; itag < 10; itag++)
2438 (Form(
"h%sGeneratorPairMass%s%s",
2440 Form(
"Pair Mass with generator%s, %s ",
2442 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2448 (Form(
"h%sGeneratorPairMass%s%s_MCPi0",
2450 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2452 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2458 (Form(
"h%sGeneratorPairMass%s%s_MCEta",
2460 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2462 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2470 (Form(
"h%sGeneratorPairCent%s%s_MCPi0",
2472 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2474 nptbins,ptmin,ptmax,100,0,100);
2480 (Form(
"h%sGeneratorPairCent%s%s_MCPi0_MassCut",
2482 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s, %2.2f<M<%2.2f",
2484 nptbins,ptmin,ptmax,100,0,100);
2490 (Form(
"h%sGeneratorPairCent%s%s_MCEta",
2492 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2494 nptbins,ptmin,ptmax,100,0,100);
2500 (Form(
"h%sGeneratorPairCent%s%s_MCEta_MassCut",
2502 Form(
"Pair Mass with contribution of true #eta generator%s, %s, %2.2f<M<%2.2f",
2504 nptbins,ptmin,ptmax,100,0,100);
2511 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0",
2513 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2515 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2521 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEta",
2523 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2525 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2531 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0",
2533 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2535 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2541 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEta",
2543 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2545 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2551 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0MassCut",
2553 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2555 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2561 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEtaMassCut",
2563 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2565 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2571 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0MassCut",
2573 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2575 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2581 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEtaMassCut",
2583 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2585 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2598 return outputContainer;
2606 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
2609 printf(
"Number of bins in Centrality: %d \n",
GetNCentrBin()) ;
2610 printf(
"Number of bins in Z vert. pos: %d \n",
GetNZvertBin()) ;
2611 printf(
"Number of bins in Reac. Plain: %d \n",
GetNRPBin()) ;
2612 printf(
"Depth of event buffer: %d \n",
GetNMaxEvMix()) ;
2613 printf(
"Pair in same Module: %d \n",
fSameSM) ;
2614 printf(
"Cuts: \n") ;
2616 printf(
"Number of modules: %d \n",
fNModules) ;
2618 printf(
"Asymmetry cuts: n = %d, \n",
fNAsymCuts) ;
2619 printf(
"\tasymmetry < ");
2623 printf(
"PID selection bits: n = %d, \n",
fNPIDBits) ;
2624 printf(
"\tPID bit = ");
2630 printf(
"pT cuts: n = %d, \n",
fNPtCuts) ;
2638 printf(
"N cell in cluster cuts: n = %d, \n",
fNCellNCuts) ;
2639 printf(
"\tnCell > ");
2644 printf(
"------------------------------------------------------\n") ;
2652 if ( !
GetMC() )
return;
2669 AliVParticle * primary = 0;
2673 for(
Int_t i=0 ; i < nprim; i++)
2675 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
2677 primary =
GetMC()->GetTrack(i) ;
2680 AliWarning(
"Primaries pointer not available!!");
2685 if( primary->E() < 0.4 )
continue;
2687 pdg = primary->PdgCode();
2689 if( pdg != 111 && pdg != 221) continue ;
2691 nDaught = primary->GetNDaughters();
2692 iphot1 = primary->GetDaughterLabel(0) ;
2693 iphot2 = primary->GetDaughterLabel(1) ;
2696 if ( primary->E() == TMath::Abs(primary->Pz()) ||
2697 (primary->E() - primary->Pz()) < 1e-3 ||
2698 (primary->E() + primary->Pz()) < 0 ) continue ;
2706 mesonY = 0.5*TMath::Log((primary->E()+primary->Pz())/(primary->E()-primary->Pz())) ;
2708 Bool_t inacceptance = kTRUE;
2715 else inacceptance = kFALSE;
2721 if( mesonPhi < 0 ) mesonPhi+=TMath::TwoPi();
2722 mesonPhi *= TMath::RadToDeg();
2747 if(TMath::Abs(mesonY) < 1.0)
2781 if(TMath::Abs(mesonY) < 1.0)
2817 Int_t momindex = primary->GetMother();
2819 Int_t momstatus = -1;
2820 Int_t uniqueID = primary->GetUniqueID();
2827 if(momindex >= 0 && momindex < nprim)
2829 status = primary->MCStatusCode();
2830 AliVParticle* mother =
GetMC()->GetTrack(momindex);
2831 mompdg = TMath::Abs(mother->PdgCode());
2832 momstatus = mother->MCStatusCode();
2834 momR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
2835 momRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
2836 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
2843 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321)
2844 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
2854 else if(mompdg==310) {
2857 else if(mompdg == 130) {
2860 else if(mompdg==321) {
2863 else if(mompdg==3122) {
2866 else if(momRcorr>0.1) {
2869 else if(mompdg==2212 || mompdg==2112 || mompdg==211) {
2872 else if(mompdg==11) {
2875 else if(mompdg==13) {
2880 else if(mompdg > 2100 && mompdg < 2210)
2886 else if(mompdg > 310 && mompdg <= 323)
2888 else if(momstatus == 11 || momstatus == 12 )
2899 else if(mompdg > 2100 && mompdg < 2210)
2905 else if(mompdg >= 310 && mompdg <= 323)
2908 else if(momstatus == 11 || momstatus == 12 )
2918 else if(mompdg > 2100 && mompdg < 2210)
2921 else if(momstatus == 11 || momstatus == 12 )
2935 if ( nDaught != 2 )
continue;
2937 if ( iphot1 < 0 || iphot1 >= nprim || iphot2 < 0 || iphot2 >= nprim ) continue ;
2941 Bool_t inacceptance1 = kTRUE;
2942 Bool_t inacceptance2 = kTRUE;
2944 AliVParticle * phot1 =
GetMC()->GetTrack(iphot1) ;
2945 AliVParticle * phot2 =
GetMC()->GetTrack(iphot2) ;
2947 if(!phot1 || !phot2) continue ;
2949 pdg1 = phot1->PdgCode();
2950 pdg2 = phot2->PdgCode();
2952 fPhotonMom1.SetPxPyPzE(phot1->Px(),phot1->Py(),phot1->Pz(),phot1->E());
2953 fPhotonMom2.SetPxPyPzE(phot2->Px(),phot2->Py(),phot2->Pz(),phot2->E());
2962 if( pdg1 != 22 || pdg2 !=22) continue ;
2981 if(photonPhi1 < 0) photonPhi1+=TMath::TwoPi();
2982 if(photonPhi2 < 0) photonPhi2+=TMath::TwoPi();
2991 Bool_t sameSector = kFALSE;
2995 if((sm1==j && sm2==j+1) || (sm1==j+1 && sm2==j)) sameSector = kTRUE;
2998 if(sm1!=sm2 && !sameSector)
3000 inacceptance1 = kFALSE;
3001 inacceptance2 = kFALSE;
3008 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",
3010 mesonPt,mesonYeta,mesonPhi,
3013 inacceptance1, inacceptance2));
3015 if(inacceptance1 && inacceptance2)
3020 Bool_t cutAngle = kFALSE;
3023 AliDebug(2,Form(
"\t ACCEPTED pdg %d: pt %2.2f, phi %2.2f, eta %2.2f",pdg,mesonPt,mesonPhi,mesonYeta));
3061 Int_t angleBin = -1;
3068 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3109 Int_t angleBin = -1;
3116 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3132 Float_t momentumDaughter1AlongMother = 0.;
3133 Float_t momentumDaughter2AlongMother = 0.;
3135 if (momentumSquaredMother > 0.)
3142 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
3145 if (ptArmSquared > 0.)
3146 pTArm = sqrt(ptArmSquared);
3149 if(momentumDaughter1AlongMother + momentumDaughter2AlongMother > 0)
3150 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
3158 if(en > 8 && en <= 12) ebin = 0;
3159 if(en > 12 && en <= 16) ebin = 1;
3160 if(en > 16 && en <= 20) ebin = 2;
3161 if(en > 20) ebin = 3;
3162 if(ebin < 0 || ebin > 3) return ;
3200 Int_t momindex = -1;
3202 Int_t momstatus = -1;
3204 Int_t uniqueID = -1;
3215 AliDebug(1,Form(
"Common ancestor label %d, pdg %d, name %s, status %d",
3216 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3226 else if(TMath::Abs(ancPDG)==11)
3234 else if(ancPDG==111)
3236 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3239 if ( mom->GetNDaughters()!=2 )
3245 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3246 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3247 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3304 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3305 status = ancestor->MCStatusCode();
3306 momindex = ancestor->GetMother();
3307 uniqueID = ancestor->GetUniqueID();
3312 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3313 mompdg = TMath::Abs(mother->PdgCode());
3314 momstatus = mother->MCStatusCode();
3315 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3316 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3317 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3332 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321)
3333 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
3343 else if(mompdg==310) {
3346 else if(mompdg == 130) {
3349 else if(mompdg==321) {
3352 else if(mompdg==3122) {
3355 else if(prodRcorr>0.1) {
3358 else if(mompdg==2212 || mompdg==2112 || mompdg==211) {
3361 else if(mompdg==11) {
3364 else if(mompdg==13) {
3367 else if (momstatus == 21) {
3370 else if(mompdg < 22 && mompdg!=11 && mompdg!=13) {
3373 else if(mompdg > 2100 && mompdg < 2210) {
3376 else if(mompdg == 221) {
3379 else if(mompdg == 331) {
3382 else if(mompdg == 213) {
3385 else if(mompdg == 223) {
3388 else if(mompdg > 310 && mompdg <= 323) {
3391 else if(momstatus == 11 || momstatus == 12 ) {
3402 else if(mompdg > 2100 && mompdg < 2210)
3408 else if(mompdg >= 310 && mompdg <= 323)
3411 else if(momstatus == 12 )
3422 Int_t angleBin = -1;
3429 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3480 else if(ancPDG==221)
3482 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3485 if ( mom->GetNDaughters()!=2 )
3491 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3492 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3493 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3496 if ( mom->GetNDaughters()!=2 ) ok = kFALSE;
3555 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3556 momindex = ancestor->GetMother();
3559 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3560 mompdg = TMath::Abs(mother->PdgCode());
3561 momstatus = mother->MCStatusCode();
3563 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3564 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3565 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3575 if (momstatus == 21 ) {
3578 else if(mompdg < 22 ) {
3581 else if(mompdg > 2100 && mompdg < 2210) {
3584 else if(mompdg == 331) {
3587 else if(momstatus == 11 || momstatus == 12 ) {
3602 Int_t angleBin = -1;
3609 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3618 else if(ancPDG==-2212)
3622 else if(ancPDG==-2112)
3626 else if(TMath::Abs(ancPDG)==13)
3630 else if (TMath::Abs(ancPDG) > 100 && ancLabel > 7)
3643 if(ancStatus == 11 || ancStatus == 12 || ancStatus == 0 )
3653 else if(ancLabel < 6)
3657 else if(ancLabel < 8)
3675 AliDebug(1,
"Common ancestor not found");
3680 if(mcIndex < 0 || mcIndex >= 17)
3682 AliInfo(Form(
"Wrong ancestor type %d, set it to unknown (12)",mcIndex));
3684 AliInfo(Form(
"\t Ancestor type not found: label %d, pdg %d, name %s, status %d\n",
3685 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3734 if(!cluster2 || !cluster1)
3736 AliWarning(Form(
"Cluster1 %p or Cluster 2 %p not found!",cluster1,cluster2));
3742 TString genName1 =
"", genName2 =
"", genNameBkg1 =
"", genNameBkg2 =
"";
3743 Int_t indexGen1 = -1, indexGen2 = -1, indexGenBkg1 = -1, indexGenBkg2 = -1;
3745 if (genBkgTag1 == -1)
return;
3746 else if(genBkgTag1 > 3) printf(
"Bkg1 generator tag larger than 3; Main %s Bkg %s\n",genName1.Data(),genNameBkg1.Data());
3749 if (genBkgTag2 == -1)
return;
3750 else if(genBkgTag2 > 3) printf(
"Bkg2 generator tag larger than 3; Main %s Bkg %s\n",genName2.Data(),genNameBkg2.Data());
3753 if(genName1!=genName2)
return;
3770 if ( genBkgTag1 == genBkgTag2 )
3776 Int_t genBkgMin = -1;
3777 Int_t genBkgMax = -1;
3779 if(genBkgTag1 > genBkgTag2)
3781 genBkgMax = genBkgTag1;
3782 genBkgMin = genBkgTag2;
3786 genBkgMax = genBkgTag2;
3787 genBkgMin = genBkgTag1;
3790 if ( genBkgMin == 0 )
3792 if (genBkgMax == 1 ) tag = 4;
3793 else if(genBkgMax == 2 ) tag = 5;
3794 else if(genBkgMax == 3 ) tag = 6;
3796 else if ( genBkgMin == 1 )
3798 if ( genBkgMax == 2 ) tag = 7;
3799 else if ( genBkgMax == 3 ) tag = 8;
3801 else if ( genBkgMin == 2 ) tag = 9;
3806 printf(
"Combination not found, bkg1 tag %d, bkg2 tag %d\n",genBkgTag1,genBkgTag2);
3814 if ( ptPrim < 0.1 || pt < 0.5 )
return;
3850 else if( mcIndex==3 )
3906 AliFatal(Form(
"No input aod photons in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3918 Int_t nPhot2 = nPhot;
3919 Int_t minEntries = 2;
3932 if(!secondLoopInputData)
3938 nPhot2 = secondLoopInputData->GetEntriesFast() ;
3943 AliDebug(1,Form(
"Photon entries %d", nPhot));
3946 if ( nPhot < minEntries )
3971 Double_t vert[] = {0.0, 0.0, 0.0} ;
3972 Int_t evtIndex1 = 0 ;
3973 Int_t currentEvtIndex = -1;
3981 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",
3994 for(
Int_t i1 = 0; i1 < nPhot-last; i1++)
4006 if ( evtIndex1 == -1 )
4008 if ( evtIndex1 == -2 )
4014 if (evtIndex1 != currentEvtIndex)
4027 currentEvtIndex = evtIndex1 ;
4043 Int_t iclus1 = -1, iclus2 = -1 ;
4044 Float_t maxCellFraction1 = 0, maxCellFraction2 = 0;
4045 Int_t absIdMax1 = -1, absIdMax2 = -1;
4046 Int_t icol1 = -1, icol2 = -1, icolAbs1 = -1, icolAbs2 = -1;
4047 Int_t irow1 = -1, irow2 = -1, irowAbs1 = -1, irowAbs2 = -1;
4048 Int_t iRCU1 = -1, iRCU2 = -1;
4053 if(!cluster1) AliWarning(
"Cluster1 not found!");
4079 for(
Int_t i2 = first; i2 < nPhot2; i2++)
4091 if ( evtIndex2 == -1 )
4093 if ( evtIndex2 == -2 )
4169 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4171 AliDebug(2,Form(
"E: fPhotonMom1 %f, fPhotonMom2 %f; Pair: pT %f, mass %f, a %f", p1->
E(), p2->
E(), (
fPhotonMom1 +
fPhotonMom2).E(),m,a));
4195 Int_t ancStatus = 0;
4221 if ( module1==module2 )
4229 Int_t isector1 = module1/2;
4230 Int_t isector2 = module2/2;
4231 if ( isector1==isector2 )
4236 else if ( TMath::Abs(isector2-isector1) == 1 )
4238 Int_t iside1 = module1;
4239 Int_t iside2 = module2;
4241 if(module1 > 11) iside1-=2;
4242 if(module2 > 11) iside2-=2;
4244 if ( module1 < module2 && module2-module1==2 )
4246 else if( module2 < module1 && module1-module2==2 )
4292 if(module1!=module2) ok=kFALSE;
4321 if ( l01 > 0.01 && l01 < 0.4 &&
4324 else if( l01 > 0.01 && l01 < 0.4 && l02 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4325 else if( l02 > 0.01 && l02 < 0.4 && l01 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4343 if(index < 0 || index >= ncentr*fNPIDBits*fNAsymCuts) continue ;
4380 Int_t angleBin = -1;
4387 if( angleBin >= 0 && angleBin < fNAngleCutBins)
4404 Int_t mod1 = module1;
4405 Int_t mod2 = module2;
4409 if(!cluster2) AliWarning(
"Cluster2 not found!");
4433 Int_t tmp = absIdMax2;
4434 absIdMax2 = absIdMax1;
4510 ncell1, ncell2, m, pt, a, deta, dphi, angle);
4557 if(eventbin < 0) return ;
4563 AliWarning(Form(
"Mix event list not available, bin %d",eventbin));
4567 Int_t nMixed = evMixList->GetSize() ;
4568 for(
Int_t ii=0; ii<nMixed; ii++)
4570 TClonesArray* ev2= (TClonesArray*) (evMixList->At(ii));
4571 Int_t nPhot2=ev2->GetEntriesFast() ;
4573 AliDebug(1,Form(
"Mixed event %d photon entries %d, centrality bin %d",ii, nPhot2,
GetEventCentralityBin()));
4580 for(
Int_t i1 = 0; i1 < nPhot; i1++)
4597 for(
Int_t i2 = 0; i2 < nPhot2; i2++)
4608 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4624 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));
4638 if ( module1==module2 )
4646 Int_t isector1 = module1/2;
4647 Int_t isector2 = module2/2;
4648 if ( isector1==isector2 )
4653 else if ( TMath::Abs(isector2-isector1) == 1 )
4655 Int_t iside1 = module1;
4656 Int_t iside2 = module2;
4658 if(module1 > 11) iside1-=2;
4659 if(module2 > 11) iside2-=2;
4661 if ( module1 < module2 && module2-module1==2 )
4663 else if( module2 < module1 && module1-module2==2 )
4678 if((module1==3 && module2==4) || (module1==4 && module2==3))
fhMiDiffPHOSMod[9]->Fill(pt, m,