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.), fUseOneCellSeparation(kFALSE),
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),
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++)
321 const Int_t buffersize = 255;
322 char onePar[buffersize] ;
323 snprintf(onePar,buffersize,
"--- AliAnaPi0 ---:") ;
325 snprintf(onePar,buffersize,
"Number of bins in Centrality: %d;",
GetNCentrBin()) ;
327 snprintf(onePar,buffersize,
"Number of bins in Z vert. pos: %d;",
GetNZvertBin()) ;
329 snprintf(onePar,buffersize,
"Number of bins in Reac. Plain: %d;",
GetNRPBin()) ;
331 snprintf(onePar,buffersize,
"Depth of event buffer: %d;",
GetNMaxEvMix()) ;
333 snprintf(onePar,buffersize,
"Select pairs with their angle: %d, edep %d, min angle %2.3f, max angle %2.3f, 1cell separation %d;",
fUseAngleCut,
fUseAngleEDepCut,
fAngleCut,
fAngleMaxCut,
fUseOneCellSeparation) ;
335 snprintf(onePar,buffersize,
" Asymmetry cuts: n = %d, asymmetry < ",
fNAsymCuts) ;
338 snprintf(onePar,buffersize,
" PID selection bits: n = %d, PID bit =",
fNPIDBits) ;
341 snprintf(onePar,buffersize,
"Cuts:") ;
349 snprintf(onePar, buffersize,
" pT cuts: n = %d, pt > ",
fNPtCuts) ;
352 snprintf(onePar,buffersize,
" N cell in cluster cuts: n = %d, nCell > ",
fNCellNCuts) ;
357 return new TObjString(parList) ;
367 outputContainer->SetName(GetName());
370 const Int_t buffersize = 255;
371 char key[buffersize] ;
372 char title[buffersize] ;
412 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
413 Int_t nphibinsopen = TMath::Nint(nphibins*TMath::TwoPi()/(phimax-phimin));
429 Float_t rowcellmin = fNMaxRowsFullMin-1.5;
438 fhPrimPi0E =
new TH1F(
"hPrimPi0E",
"Primary #pi^{0} E, |#it{Y}|<1",
439 nptbins,ptmin,ptmax) ;
443 fhPrimPi0Pt =
new TH1F(
"hPrimPi0Pt",
"Primary #pi^{0} #it{p}_{T} , |#it{Y}|<1",
444 nptbins,ptmin,ptmax) ;
445 fhPrimPi0Pt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
448 fhPrimPi0Y =
new TH2F(
"hPrimPi0Rapidity",
"Rapidity of primary #pi^{0}",
449 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
451 fhPrimPi0Y ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
454 fhPrimPi0Yeta =
new TH2F(
"hPrimPi0PseudoRapidity",
"PseudoRapidity of primary #pi^{0}",
455 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
460 fhPrimPi0YetaYcut =
new TH2F(
"hPrimPi0PseudoRapidityYcut",
"PseudoRapidity of primary #pi^{0}, |#it{Y}|<1",
461 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
466 fhPrimPi0Phi =
new TH2F(
"hPrimPi0Phi",
"#varphi of primary #pi^{0}, |#it{Y}|<1",
467 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
474 fhPrimPi0PtInCalo =
new TH1F(
"hPrimPi0PtInCalo",
"Primary #pi^{0} #it{p}_{T} , in calorimeter acceptance",
475 nptbins,ptmin,ptmax) ;
479 fhPrimPi0AccE =
new TH1F(
"hPrimPi0AccE",
"Primary #pi^{0} #it{E} with both photons in acceptance",
480 nptbins,ptmin,ptmax) ;
484 fhPrimPi0AccPt =
new TH1F(
"hPrimPi0AccPt",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
485 nptbins,ptmin,ptmax) ;
489 fhPrimPi0AccPtPhotonCuts =
new TH1F(
"hPrimPi0AccPtPhotonCuts",
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance",
490 nptbins,ptmin,ptmax) ;
494 fhPrimPi0AccY =
new TH2F(
"hPrimPi0AccRapidity",
"Rapidity of primary #pi^{0} with accepted daughters",
495 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
500 fhPrimPi0AccYeta =
new TH2F(
"hPrimPi0AccPseudoRapidity",
"PseudoRapidity of primary #pi^{0} with accepted daughters",
501 nptbins,ptmin,ptmax,netabins,etamin,etamax) ;
506 fhPrimPi0AccPhi =
new TH2F(
"hPrimPi0AccPhi",
"#varphi of primary #pi^{0} with accepted daughters",
508 nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
516 fhPrimEtaE =
new TH1F(
"hPrimEtaE",
"Primary eta E",
517 nptbins,ptmin,ptmax) ;
521 fhPrimEtaPt =
new TH1F(
"hPrimEtaPt",
"Primary #eta #it{p}_{T}",
522 nptbins,ptmin,ptmax) ;
523 fhPrimEtaPt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
526 fhPrimEtaY =
new TH2F(
"hPrimEtaRapidity",
"Rapidity of primary #eta",
527 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
529 fhPrimEtaY->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
532 fhPrimEtaYeta =
new TH2F(
"hPrimEtaPseudoRapidityEta",
"PseudoRapidity of primary #eta",
533 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
538 fhPrimEtaYetaYcut =
new TH2F(
"hPrimEtaPseudoRapidityEtaYcut",
"PseudoRapidity of primary #eta, |#it{Y}|<1",
539 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
545 nptbins,ptmin,ptmax, nphibinsopen,0,360) ;
552 fhPrimEtaPtInCalo =
new TH1F(
"hPrimEtaPtInCalo",
"Primary #eta #it{p}_{T}, in calorimeter acceptance",
553 nptbins,ptmin,ptmax) ;
557 fhPrimEtaAccE =
new TH1F(
"hPrimEtaAccE",
"Primary #eta #it{E} with both photons in acceptance",
558 nptbins,ptmin,ptmax) ;
562 fhPrimEtaAccPt =
new TH1F(
"hPrimEtaAccPt",
"Primary eta #it{p}_{T} with both photons in acceptance",
563 nptbins,ptmin,ptmax) ;
567 fhPrimEtaAccPtPhotonCuts =
new TH1F(
"hPrimEtaAccPtPhotonCuts",
"Primary eta #it{p}_{T} with both photons in acceptance",
568 nptbins,ptmin,ptmax) ;
572 fhPrimEtaAccPhi =
new TH2F(
"hPrimEtaAccPhi",
"Azimuthal of primary #eta with accepted daughters",
573 nptbins,ptmin,ptmax, nphibins,phimin*TMath::RadToDeg(),phimax*TMath::RadToDeg()) ;
579 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
585 nptbins,ptmin,ptmax, netabins,etamin,etamax) ;
595 nptbins,ptmin,ptmax, 100, 0, 100) ;
601 nptbins,ptmin,ptmax, 100, 0, 100) ;
607 fhPrimPi0PtEventPlane =
new TH2F(
"hPrimPi0PtEventPlane",
"Primary #pi^{0} #it{p}_{T} vs reco event plane angle, |#it{Y}|<1",
608 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
615 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
622 fhPrimPi0AccPtCentrality =
new TH2F(
"hPrimPi0AccPtCentrality",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco centrality",
623 nptbins,ptmin,ptmax, 100, 0, 100) ;
628 fhPrimEtaAccPtCentrality =
new TH2F(
"hPrimEtaAccPtCentrality",
"Primary #eta with both photons in acceptance #it{p}_{T} vs reco centrality",
629 nptbins,ptmin,ptmax, 100, 0, 100) ;
634 fhPrimPi0AccPtEventPlane =
new TH2F(
"hPrimPi0AccPtEventPlane",
"Primary #pi^{0} with both photons in acceptance #it{p}_{T} vs reco event plane angle",
635 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
640 fhPrimEtaAccPtEventPlane =
new TH2F(
"hPrimEtaAccPtEventPlane",
"Primary #eta with both #gamma_{decay} in acceptance #it{p}_{T} vs reco event plane angle",
641 nptbins,ptmin,ptmax, 100, 0, TMath::Pi()) ;
651 (
"hPrimPi0OpeningAngle",
"Angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
652 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
658 (
"hPrimPi0OpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#pi^{0}} in acceptance",
659 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
665 (
"hPrimPi0OpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, in acceptance, #it{p}_{T}>5 GeV/#it{c}",
666 100,0,1,nopanbins,opanmin,opanmax);
672 (
"hPrimPi0CosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#pi^{0}}, in acceptance",
673 nptbins,ptmin,ptmax,100,-1,1);
679 (
"hPrimEtaOpeningAngle",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
680 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
686 (
"hPrimEtaOpeningAnglePhotonCuts",
"Angle between all primary #gamma pair vs E_{#eta}, in acceptance",
687 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
693 (
"hPrimEtaOpeningAngleAsym",
"Angle between all primary #gamma pair vs #it{Asymmetry}, #it{p}_{T}>5 GeV/#it{c}, in acceptance",
694 100,0,1,nopanbins,opanmin,opanmax);
700 (
"hPrimEtaCosOpeningAngle",
"Cosinus of angle between all primary #gamma pair vs E_{#eta}, in acceptance",
701 nptbins,ptmin,ptmax,100,-1,1);
719 fhPrimPi0PtOrigin =
new TH2F(
"hPrimPi0PtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
759 fhPrimPi0PtStatus =
new TH2F(
"hPrimPi0PtStatus",
"Primary #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
765 fhPrimEtaPtOrigin =
new TH2F(
"hPrimEtaPtOrigin",
"Primary #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
778 200,0.,20.,5000,0,500) ;
784 200,0.,20.,5000,0,500) ;
792 TString ebin[] = {
"8 < E < 12 GeV",
"12 < E < 16 GeV",
"16 < E < 20 GeV",
"E > 20 GeV" };
793 Int_t narmbins = 400;
797 for(
Int_t i = 0; i < 4; i++)
800 Form(
"Armenteros of primary #pi^{0}, %s",ebin[i].
Data()),
801 200, -1, 1, narmbins,armmin,armmax);
807 Form(
"Armenteros of primary #eta, %s",ebin[i].
Data()),
808 200, -1, 1, narmbins,armmin,armmax);
816 (
"hCosThStarPrimPi0",
"cos(#theta *) for primary #pi^{0}",nptbins,ptmin,ptmax,200,-1,1);
822 (
"hCosThStarPrimEta",
"cos(#theta *) for primary #eta",nptbins,ptmin,ptmax,200,-1,1);
882 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
883 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
885 fhRe1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
886 fhRe1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
887 fhRe1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
889 outputContainer->Add(
fhRe1[index]) ;
894 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
895 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
897 fhRe2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
898 fhRe2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
899 fhRe2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
900 outputContainer->Add(
fhRe2[index]) ;
903 snprintf(key, buffersize,
"hRe_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
904 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
906 fhRe3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
907 fhRe3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
908 fhRe3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
909 outputContainer->Add(
fhRe3[index]) ;
916 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
917 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
919 fhReInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
920 fhReInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
921 fhReInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
926 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
927 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
929 fhReInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
930 fhReInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
931 fhReInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
935 snprintf(key, buffersize,
"hReInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
936 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
938 fhReInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
939 fhReInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
940 fhReInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
948 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
949 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
951 fhMi1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
952 fhMi1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
953 fhMi1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
954 outputContainer->Add(
fhMi1[index]) ;
957 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
958 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
960 fhMi2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
961 fhMi2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
962 fhMi2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
963 outputContainer->Add(
fhMi2[index]) ;
966 snprintf(key, buffersize,
"hMi_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
967 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 3",
969 fhMi3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
970 fhMi3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
971 fhMi3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
972 outputContainer->Add(
fhMi3[index]) ;
979 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist1",ic,ipid,iasym) ;
980 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 1",
982 fhMiInvPt1[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
983 fhMiInvPt1[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
984 fhMiInvPt1[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
988 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist2",ic,ipid,iasym) ;
989 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f, dist bad 2",
991 fhMiInvPt2[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
992 fhMiInvPt2[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
993 fhMiInvPt2[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
997 snprintf(key, buffersize,
"hMiInvPt_cen%d_pidbit%d_asy%d_dist3",ic,ipid,iasym) ;
998 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for centrality=%d, PID bit=%d and asymmetry %1.2f,dist bad 3",
1000 fhMiInvPt3[index] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1001 fhMiInvPt3[index]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1002 fhMiInvPt3[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1011 fhEPairDiffTime =
new TH2F(
"hEPairDiffTime",
"cluster pair time difference vs #it{p}_{T}",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
1019 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1025 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1033 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1039 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1049 fhReConv =
new TH2F(
"hReConv",
"Real Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1050 fhReConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1051 fhReConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1054 fhReConv2 =
new TH2F(
"hReConv2",
"Real Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1055 fhReConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1056 fhReConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1061 fhMiConv =
new TH2F(
"hMiConv",
"Mixed Pair with one recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1062 fhMiConv->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1063 fhMiConv->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1066 fhMiConv2 =
new TH2F(
"hMiConv2",
"Mixed Pair with 2 recombined conversion ",nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1067 fhMiConv2->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1068 fhMiConv2->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1075 fhRePtAsym =
new TH2F(
"hRePtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for pairs",
1076 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1077 fhRePtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1081 fhRePtAsymPi0 =
new TH2F(
"hRePtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1083 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1088 fhRePtAsymEta =
new TH2F(
"hRePtAsymEta",Form(
"#it{Asymmetry} vs #it{p}_{T}, for pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1090 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1097 fhMiPtAsym =
new TH2F(
"hMiPtAsym",
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs",nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1098 fhMiPtAsym->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1102 fhMiPtAsymPi0 =
new TH2F(
"hMiPtAsymPi0",Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1104 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1110 Form(
"#it{Asymmetry} vs #it{p}_{T}, for mixed pairs %2.2f<M<%2.2f MeV/#it{c}^{2}",
1112 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1124 (Form(
"hPtBin%d_Cluster_EtaPhi",ipt),
1125 Form(
"#eta vs #varphi, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1126 netabins,etamin,etamax,nphibins,phimin,phimax);
1132 (Form(
"hPtBin%d_Cluster_ColRow",ipt),
1133 Form(
"column vs row, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fPtCuts[ipt],
fPtCuts[ipt+1]),
1134 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1175 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1176 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1189 snprintf(key, buffersize,
"hMi_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1190 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1209 snprintf(key, buffersize,
"hRe_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1210 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 ",
1220 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1221 snprintf(title, buffersize,
"Real #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f ",
1234 snprintf(key, buffersize,
"hMiOpAngle_pt%d_cell%d_asym%d",ipt,icell,iasym) ;
1235 snprintf(title, buffersize,
"Mixed #theta_{#gamma#gamma} distr. for %1.1f< #it{p}_{T} < %1.1f, ncell>%d and asym<%1.2f",
1253 snprintf(key, buffersize,
"hReOpAngle_pt%d_cell%d_asym%d_SM%d",ipt,icell,iasym,iSM) ;
1254 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 ",
1272 fhReSS[0] =
new TH2F(
"hRe_SS_Tight",
" 0.01 < #lambda_{0}^{2} < 0.4",
1273 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1274 fhReSS[0]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1275 fhReSS[0]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1276 outputContainer->Add(
fhReSS[0]) ;
1279 fhReSS[1] =
new TH2F(
"hRe_SS_Loose",
" #lambda_{0}^{2} > 0.4",
1280 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1281 fhReSS[1]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1282 fhReSS[1]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1283 outputContainer->Add(
fhReSS[1]) ;
1286 fhReSS[2] =
new TH2F(
"hRe_SS_Both",
" cluster_{1} #lambda_{0}^{2} > 0.4; cluster_{2} 0.01 < #lambda_{0}^{2} < 0.4",
1287 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1288 fhReSS[2]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1289 fhReSS[2]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1290 outputContainer->Add(
fhReSS[2]) ;
1295 fhEventBin=
new TH1I(
"hEventBin",
"Number of real pairs per bin(cen,vz,rp)",
1302 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of mixed pairs per bin(cen,vz,rp)",
1328 (
"hRealOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1334 (
"hRealCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}",nptbins,ptmin,ptmax,100,0,1);
1342 (
"hMixedOpeningAngle",
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1348 (
"hMixedCosOpeningAngle",
"Cosinus of angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs",nptbins,ptmin,ptmax,100,0,1);
1356 for(
Int_t ism = 0; ism < 20; ism++)
1359 (Form(
"hRealOpeningAngleMod_%d",ism),
1360 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, SM %d",ism),
1361 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1369 (Form(
"hMixedOpeningAngleMod_%d",ism),
1370 Form(
"Angle between all #gamma pair vs E_{#pi^{0}}, Mixed pairs, SM %d",ism),
1371 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax);
1384 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1390 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1396 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1403 fhMCPi0PtOrigin =
new TH2F(
"hMCPi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,20,0,20) ;
1427 fhMCNotResonancePi0PtOrigin =
new TH2F(
"hMCNotResonancePi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,11,0,11) ;
1442 fhMCPi0PtStatus =
new TH2F(
"hMCPi0PtStatus",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
1449 fhMCEtaPtOrigin =
new TH2F(
"hMCEtaPtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
1460 fhMCPi0ProdVertex =
new TH2F(
"hMCPi0ProdVertex",
"Selected reco pair from generated #pi^{0} #it{p}_{T} vs production vertex",
1461 200,0.,20.,5000,0,500) ;
1466 fhMCEtaProdVertex =
new TH2F(
"hMCEtaProdVertex",
"Selected reco pair from generated #eta #it{p}_{T} vs production vertex",
1467 200,0.,20.,5000,0,500) ;
1473 "Production radius of reconstructed pair from generated #pi^{0} corrected by vertex",
1474 200,0,20,5000,0,500) ;
1480 "Production radius of reconstructed pair from generated #eta corrected by vertex",
1481 200,0,20,5000,0,500) ;
1488 TString ancestorTitle[] = {
"Photon, conversion",
"Electron, conversion",
1489 "Pi0",
"Eta",
"AntiProton",
"AntiNeutron",
"Muon & converted stable particles",
1490 "Resonances",
"Strings",
"Initial state interaction",
"Final state radiations",
"Colliding protons",
1491 "Pi0Not2SingleGamma",
"EtaNot2Gamma",
"Photon, not both conversion",
"Electron, not both conversion",
"not found"};
1493 for(
Int_t i = 0; i<17; i++)
1495 fhMCOrgMass[i] =
new TH2F(Form(
"hMCOrgMass_%d",i),Form(
"#it{M} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1496 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1497 fhMCOrgMass[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1498 fhMCOrgMass[i]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1501 fhMCOrgAsym[i]=
new TH2F(Form(
"hMCOrgAsym_%d",i),Form(
"#it{Asymmetry} vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1502 nptbins,ptmin,ptmax,nasymbins,asymmin,asymmax) ;
1503 fhMCOrgAsym[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1507 fhMCOrgDeltaEta[i] =
new TH2F(Form(
"hMCOrgDeltaEta_%d",i),Form(
"#Delta #eta of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1508 nptbins,ptmin,ptmax,netabins,-1.4,1.4) ;
1513 fhMCOrgDeltaPhi[i]=
new TH2F(Form(
"hMCOrgDeltaPhi_%d",i),Form(
"#Delta #varphi of pair vs #it{p}_{T}, ancestor %s",ancestorTitle[i].
Data()),
1514 nptbins,ptmin,ptmax,nphibins,-0.7,0.7) ;
1521 fhMCOrgPi0MassPtConversion[0] =
new TH2F(
"hMCOrgPi0MassPtConversion0",
"Invariant mass of 2 clusters (ancestor #pi^{0}) not originated in conversions",
1522 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1527 fhMCOrgPi0MassPtConversion[1] =
new TH2F(
"hMCOrgPi0MassPtConversion1",
"Invariant mass of 2 clusters (ancestor #pi^{0}) one from conversion and the other not",
1528 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1533 fhMCOrgPi0MassPtConversion[2] =
new TH2F(
"hMCOrgPi0MassPtConversion2",
"Invariant mass of 2 clusters (ancestor #pi^{0}) originated in conversions",
1534 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1540 fhMCOrgEtaMassPtConversion[0] =
new TH2F(
"hMCOrgEtaMassPtConversion0",
"Invariant mass of 2 clusters (ancestor #eta) not originated in conversions",
1541 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1546 fhMCOrgEtaMassPtConversion[1] =
new TH2F(
"hMCOrgEtaMassPtConversion1",
"Invariant mass of 2 clusters (ancestor #eta) one from conversion and the other not",
1547 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1553 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1579 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",
1581 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1582 fhMCPi0MassPtRec[index]->SetXTitle(
"#it{p}_{T, reconstructed} (GeV/#it{c})");
1583 fhMCPi0MassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1587 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",
1589 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1595 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",
1597 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1603 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",
1605 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1611 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",
1613 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1615 fhMCEtaMassPtRec[index]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1619 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",
1621 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1627 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",
1629 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1636 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",
1638 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1658 fhMCPi0MassPtTrue[0] =
new TH2F(
"hMCPi0MassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #pi^{0} cluster pairs",
1659 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1664 fhMCPi0MassPtRec[0] =
new TH2F(
"hMCPi0MassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1665 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1670 fhMCPi0PtTruePtRec[0]=
new TH2F(
"hMCPi0PtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1671 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1677 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]),
1678 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1683 fhMCEtaMassPtTrue[0] =
new TH2F(
"hMCEtaMassPtTrue",
"Reconstructed Mass vs generated #it{p}_{T} of true #eta cluster pairs",
1684 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1689 fhMCEtaMassPtRec[0] =
new TH2F(
"hMCEtaMassPtRec",
"Reconstructed Mass vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1690 nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1695 fhMCEtaPtTruePtRec[0]=
new TH2F(
"hMCEtaPtTruePtRec",
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs",
1696 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1702 Form(
"Generated vs reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1704 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax) ;
1710 fhMCPi0PtTruePtRecRat =
new TH2F(
"hMCPi0PtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs",
1711 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1717 Form(
"Reconstructed / generated #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1719 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1724 fhMCEtaPtTruePtRecRat =
new TH2F(
"hMCEtaPtTruePtRecRat",
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs",
1725 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1731 Form(
"Reconstructed / generated #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1733 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax) ;
1738 fhMCPi0PtTruePtRecDif =
new TH2F(
"hMCPi0PtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs",
1739 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1745 Form(
"Generated - reconstructed #it{p}_{T} of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1747 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1752 fhMCEtaPtTruePtRecDif =
new TH2F(
"hMCEtaPtTruePtRecDif",
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs",
1753 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1759 Form(
"Generated - reconstructed #it{p}_{T} of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1761 nptbins,ptmin,ptmax,ndifbins,difmin,difmax) ;
1767 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1773 Form(
"Opening angle of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1775 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1781 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1787 Form(
"Opening angle of true #eta cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1789 nptbins,ptmin,ptmax,nopanbins,opanmin,opanmax) ;
1797 (
"hMCPi0PerCentrality",
1798 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1799 nptbins,ptmin,ptmax,100,0,100) ;
1805 (
"hMCPi0PerCentralityMassCut",
1806 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1808 nptbins,ptmin,ptmax,100,0,100) ;
1814 (
"hMCEtaPerCentrality",
1815 "Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs",
1816 nptbins,ptmin,ptmax,100,0,100) ;
1822 (
"hMCEtaPerCentralityMassCut",
1823 Form(
"Reconstructed #it{p}_{T} vs centrality of true #pi^{0} cluster pairs, %2.2f < rec. mass < %2.2f MeV/#it{c}^{2}",
1825 nptbins,ptmin,ptmax,100,0,100) ;
1838 AliError(Form(
"Last module number <%d> is larger than total SM number <%d>, please check configuration \n",
fLastModule,
fNModules));
1881 snprintf(key, buffersize,
"hReMod_%d",imod) ;
1882 snprintf(title, buffersize,
"Real #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1883 fhReMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1884 fhReMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1885 fhReMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1886 outputContainer->Add(
fhReMod[imod]) ;
1889 snprintf(key, buffersize,
"hMiMod_%d",imod) ;
1890 snprintf(title, buffersize,
"Mixed #it{M}_{#gamma#gamma} distr. for Module %d",imod) ;
1891 fhMiMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1892 fhMiMod[imod]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1893 fhMiMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1894 outputContainer->Add(
fhMiMod[imod]) ;
1902 TString pairnamePHOS[] = {
"(0-1)",
"(0-2)",
"(1-2)",
"(0-3)",
"(1-3)",
"(2-3)",
"(0-4)",
"(1-4)",
"(2-4)",
"(3-4)"};
1904 for(
Int_t imod=0; imod<10; imod++)
1906 if ( (fNModules == 3 && imod > 2) || (fNModules == 4 && imod > 5) )
1914 snprintf(key, buffersize,
"hReDiffPHOSMod_%d",imod) ;
1915 snprintf(title, buffersize,
"Real pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1916 fhReDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1918 fhReDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1923 snprintf(key, buffersize,
"hMiDiffPHOSMod_%d",imod) ;
1924 snprintf(title, buffersize,
"Mixed pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).
Data()) ;
1925 fhMiDiffPHOSMod[imod] =
new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
1927 fhMiDiffPHOSMod[imod]->SetYTitle(
"#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
1940 for(
Int_t isector=minSector; isector<=maxSector; isector++)
1942 snprintf(key, buffersize,
"hReSameSectorEMCALMod_%d",isector) ;
1943 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1951 snprintf(key, buffersize,
"hMiSameSectorEMCALMod_%d",isector) ;
1952 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same sector, SM(%d,%d)",isector*2,isector*2+1) ;
1963 Int_t maxSide = fNModules-2;
1966 maxSide = fNModules-4;
1973 for(
Int_t iside=minSide; iside<maxSide; iside++)
1976 Int_t ism2 = iside+2;
1985 snprintf(key, buffersize,
"hReSameSideEMCALMod_%d",iside) ;
1986 snprintf(title, buffersize,
"Real pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
1994 snprintf(key, buffersize,
"hMiSameSideEMCALMod_%d",iside) ;
1995 snprintf(title, buffersize,
"Mixed pairs EMCAL, clusters in same side SM(%d,%d)",ism1, ism2) ;
2012 Int_t dcSameSM[6] = {12,13,14,15,16,17};
2013 Int_t phSameSM[6] = {3, 3, 2, 2, 1, 1};
2015 Int_t dcDiffSM[8] = {12,13,14,15,16,17,0,0};
2016 Int_t phDiffSM[8] = {2, 2, 1, 1, 3, 3,0,0};
2018 for(
Int_t icombi = 0; icombi < 8; icombi++)
2020 snprintf(key, buffersize,
"hReDiffSectorDCALPHOS_%d",icombi) ;
2021 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2028 snprintf(key, buffersize,
"hMiDiffSectorDCALPHOS_%d",icombi) ;
2029 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in different sector, SM(%d,%d)",dcDiffSM[icombi],phDiffSM[icombi]) ;
2036 if ( icombi > 5 ) continue ;
2038 snprintf(key, buffersize,
"hReSameSectorDCALPHOS_%d",icombi) ;
2039 snprintf(title, buffersize,
"Real pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2046 snprintf(key, buffersize,
"hMiSameSectorDCALPHOS_%d",icombi) ;
2047 snprintf(title, buffersize,
"Mixed pairs DCAL-PHOS, clusters in same sector, SM(%d,%d)",dcSameSM[icombi],phSameSM[icombi]) ;
2064 (Form(
"hReOpAngleBin%d_ClusterMin_EtaPhi",icut),
2066 netabins,etamin,etamax,nphibins,phimin,phimax);
2072 (Form(
"hReOpAngleBin%d_ClusterMax_EtaPhi",icut),
2074 netabins,etamin,etamax,nphibins,phimin,phimax);
2080 (Form(
"hReOpAngleBin%d_ClusterMin_ColRow",icut),
2082 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2088 (Form(
"hReOpAngleBin%d_ClusterMax_ColRow",icut),
2090 ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2096 (Form(
"hReOpAngleBin%d_ClusterMin_EPerSM",icut),
2098 nptbins,ptmin,ptmax,20,0,20);
2104 (Form(
"hReOpAngleBin%d_ClusterMax_EPerSM",icut),
2106 nptbins,ptmin,ptmax,20,0,20);
2112 (Form(
"hReOpAngleBin%d_ClusterMin_TimePerSM",icut),
2114 ntimebins,timemin,timemax,20,0,20);
2120 (Form(
"hReOpAngleBin%d_ClusterMax_TimePerSM",icut),
2122 ntimebins,timemin,timemax,20,0,20);
2128 (Form(
"hReOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2136 (Form(
"hReOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2144 (Form(
"hReOpAngleBin%d_PairCluster_RatioPerSM",icut),
2152 (Form(
"hReOpAngleBin%d_PairCluster_MassPerSM",icut),
2154 nmassbins,massmin,massmax,20,0,20);
2160 (Form(
"hReOpAngleBin%d_PairCluster_Mass",icut),
2162 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2172 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTruePi0",icut),
2174 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2180 (Form(
"hReOpAngleBin%d_PairCluster_MassMCTrueEta",icut),
2182 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2189 (Form(
"hPrimPi0AccPt_OpAngleBin%d",icut),
2191 nptbins,ptmin,ptmax) ;
2196 (Form(
"hPrimEtaAccPt_OpAngleBin%d",icut),
2198 nptbins,ptmin,ptmax) ;
2215 (Form(
"hMiOpAngleBin%d_ClusterMin_EtaPhi",icut),
2217 netabins,etamin,etamax,nphibins,phimin,phimax);
2223 (Form(
"hMiOpAngleBin%d_ClusterMax_EtaPhi",icut),
2225 netabins,etamin,etamax,nphibins,phimin,phimax);
2247 (Form(
"hMiOpAngleBin%d_ClusterMin_EPerSM",icut),
2249 nptbins,ptmin,ptmax,20,0,20);
2255 (Form(
"hMiOpAngleBin%d_ClusterMax_EPerSM",icut),
2257 nptbins,ptmin,ptmax,20,0,20);
2263 (Form(
"hMiOpAngleBin%d_ClusterMin_TimePerSM",icut),
2265 ntimebins,timemin,timemax,20,0,20);
2271 (Form(
"hMiOpAngleBin%d_ClusterMax_TimePerSM",icut),
2273 ntimebins,timemin,timemax,20,0,20);
2279 (Form(
"hMiOpAngleBin%d_ClusterMin_NCellPerSM",icut),
2287 (Form(
"hMiOpAngleBin%d_ClusterMax_NCellPerSM",icut),
2295 (Form(
"hMiOpAngleBin%d_PairCluster_RatioPerSM",icut),
2303 (Form(
"hMiOpAngleBin%d_PairCluster_MassPerSM",icut),
2305 nmassbins,massmin,massmax,20,0,20);
2311 (Form(
"hMiOpAngleBin%d_PairCluster_Mass",icut),
2313 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2332 "Clean",
"HijingBkg",
"NotHijingBkg",
"HijingAndOtherBkg",
2333 "Clean_HijingBkg",
"Clean_NotHijingBkg",
"Clean_HijingAndOtherBkg",
2334 "HijingBkg_NotHijingBkg",
"HijingBkg_HijingAndOtherBkg",
"NotHijingBkg_HijingAndOtherBkg" } ;
2336 "no overlap",
"pair Hijing Bkg",
"pair not Hijing bkg",
"pair Hijing and other bkg",
2337 "no overlap and hijing overlap",
"no overlap and generator overlap",
"no overlap and multiple overlap",
2338 "hijing overlap and gener overlap",
"hijing overlap and multiple overlap",
"gener overlap and multiple overlap" } ;
2350 nptbins,ptmin,ptmax) ;
2357 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2365 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2375 nptbins,ptmin,ptmax) ;
2381 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2382 nptbins,ptmin,ptmax) ;
2388 Form(
"Primary #pi^{0} #it{p}_{T} with both photons in acceptance, generator %s",
GetCocktailGenNameToCheck(igen).Data()),
2389 nptbins,ptmin,ptmax) ;
2399 nptbins,ptmin,ptmax) ;
2403 Int_t netabinsopen = TMath::Nint(netabins*4/(etamax-etamin));
2407 nptbins,ptmin,ptmax,netabinsopen,-2, 2) ;
2415 nptbins,ptmin,ptmax,nphibinsopen,0,360) ;
2425 nptbins,ptmin,ptmax) ;
2432 nptbins,ptmin,ptmax) ;
2439 nptbins,ptmin,ptmax) ;
2446 for(
Int_t itag = 0; itag < 10; itag++)
2449 (Form(
"h%sGeneratorPairMass%s%s",
2451 Form(
"Pair Mass with generator%s, %s ",
2453 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2459 (Form(
"h%sGeneratorPairMass%s%s_MCPi0",
2461 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2463 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2469 (Form(
"h%sGeneratorPairMass%s%s_MCEta",
2471 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2473 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2481 (Form(
"h%sGeneratorPairCent%s%s_MCPi0",
2483 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s ",
2485 nptbins,ptmin,ptmax,100,0,100);
2491 (Form(
"h%sGeneratorPairCent%s%s_MCPi0_MassCut",
2493 Form(
"Pair Mass with contribution of true #pi^{0} generator%s, %s, %2.2f<M<%2.2f",
2495 nptbins,ptmin,ptmax,100,0,100);
2501 (Form(
"h%sGeneratorPairCent%s%s_MCEta",
2503 Form(
"Pair Mass with contribution of true #eta generator%s, %s ",
2505 nptbins,ptmin,ptmax,100,0,100);
2511 (Form(
"h%sGeneratorPairCent%s%s_MCEta_MassCut",
2513 Form(
"Pair Mass with contribution of true #eta generator%s, %s, %2.2f<M<%2.2f",
2515 nptbins,ptmin,ptmax,100,0,100);
2522 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0",
2524 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2526 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2532 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEta",
2534 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2536 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2542 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0",
2544 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2546 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2552 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEta",
2554 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2556 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2562 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCPi0MassCut",
2564 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2566 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2572 (Form(
"h%sGeneratorPairEPrimRecoRatio%s%s_MCEtaMassCut",
2574 Form(
"#it{E}_{reco}/#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2576 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
2582 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCPi0MassCut",
2584 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #pi^{0} generator%s, %s ",
2586 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2592 (Form(
"h%sGeneratorPairEPrimRecoDiff%s%s_MCEtaMassCut",
2594 Form(
"#it{E}_{reco}-#it{E}_{gen} pair with contribution of true #eta generator%s, %s ",
2596 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
2609 return outputContainer;
2617 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
2620 printf(
"Number of bins in Centrality: %d \n",
GetNCentrBin()) ;
2621 printf(
"Number of bins in Z vert. pos: %d \n",
GetNZvertBin()) ;
2622 printf(
"Number of bins in Reac. Plain: %d \n",
GetNRPBin()) ;
2623 printf(
"Depth of event buffer: %d \n",
GetNMaxEvMix()) ;
2624 printf(
"Pair in same Module: %d \n",
fSameSM) ;
2625 printf(
"Cuts: \n") ;
2627 printf(
"Number of modules: %d \n",
fNModules) ;
2629 printf(
"Asymmetry cuts: n = %d, \n",
fNAsymCuts) ;
2630 printf(
"\tasymmetry < ");
2634 printf(
"PID selection bits: n = %d, \n",
fNPIDBits) ;
2635 printf(
"\tPID bit = ");
2641 printf(
"pT cuts: n = %d, \n",
fNPtCuts) ;
2649 printf(
"N cell in cluster cuts: n = %d, \n",
fNCellNCuts) ;
2650 printf(
"\tnCell > ");
2655 printf(
"------------------------------------------------------\n") ;
2663 if ( !
GetMC() )
return;
2680 AliVParticle * primary = 0;
2684 for(
Int_t i=0 ; i < nprim; i++)
2686 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
2688 primary =
GetMC()->GetTrack(i) ;
2691 AliWarning(
"Primaries pointer not available!!");
2696 if( primary->E() < 0.4 )
continue;
2698 pdg = primary->PdgCode();
2700 if( pdg != 111 && pdg != 221 && pdg != 321 && pdg != 211) continue ;
2702 nDaught = primary->GetNDaughters();
2703 iphot1 = primary->GetDaughterLabel(0) ;
2704 iphot2 = primary->GetDaughterLabel(1) ;
2707 if ( primary->E() == TMath::Abs(primary->Pz()) ||
2708 (primary->E() - primary->Pz()) < 1e-3 ||
2709 (primary->E() + primary->Pz()) < 0 ) continue ;
2717 mesonY = 0.5*TMath::Log((primary->E()+primary->Pz())/(primary->E()-primary->Pz())) ;
2719 Bool_t inacceptance = kTRUE;
2726 else inacceptance = kFALSE;
2732 if( mesonPhi < 0 ) mesonPhi+=TMath::TwoPi();
2733 mesonPhi *= TMath::RadToDeg();
2761 else if(pdg == 211){
2768 if(TMath::Abs(mesonY) < 1.0)
2802 if(TMath::Abs(mesonY) < 1.0)
2838 Int_t momindex = primary->GetMother();
2840 Int_t momstatus = -1;
2841 Int_t uniqueID = primary->GetUniqueID();
2848 if(momindex >= 0 && momindex < nprim)
2850 status = primary->MCStatusCode();
2851 AliVParticle* mother =
GetMC()->GetTrack(momindex);
2852 mompdg = TMath::Abs(mother->PdgCode());
2853 momstatus = mother->MCStatusCode();
2855 momR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
2856 momRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
2857 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
2864 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321 && mompdg!=211)
2865 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
2875 else if(mompdg==310) {
2878 else if(mompdg == 130) {
2881 else if(mompdg==321) {
2884 else if(mompdg==3122) {
2887 else if(momRcorr>0.1) {
2890 else if(mompdg==211) {
2893 else if(mompdg==11) {
2896 else if(mompdg==13) {
2899 else if(mompdg==2212 || mompdg==2112) {
2905 else if(mompdg > 2100 && mompdg < 2210)
2911 else if(mompdg > 310 && mompdg <= 323)
2913 else if(momstatus == 11 || momstatus == 12 )
2924 else if(mompdg > 2100 && mompdg < 2210)
2930 else if(mompdg >= 310 && mompdg <= 323)
2933 else if(momstatus == 11 || momstatus == 12 )
2943 else if(mompdg > 2100 && mompdg < 2210)
2946 else if(momstatus == 11 || momstatus == 12 )
2960 if ( nDaught != 2 )
continue;
2962 if ( iphot1 < 0 || iphot1 >= nprim || iphot2 < 0 || iphot2 >= nprim ) continue ;
2966 Bool_t inacceptance1 = kTRUE;
2967 Bool_t inacceptance2 = kTRUE;
2969 AliVParticle * phot1 =
GetMC()->GetTrack(iphot1) ;
2970 AliVParticle * phot2 =
GetMC()->GetTrack(iphot2) ;
2972 if(!phot1 || !phot2) continue ;
2974 pdg1 = phot1->PdgCode();
2975 pdg2 = phot2->PdgCode();
2977 fPhotonMom1.SetPxPyPzE(phot1->Px(),phot1->Py(),phot1->Pz(),phot1->E());
2978 fPhotonMom2.SetPxPyPzE(phot2->Px(),phot2->Py(),phot2->Pz(),phot2->E());
2987 if( pdg1 != 22 || pdg2 !=22) continue ;
3006 if(photonPhi1 < 0) photonPhi1+=TMath::TwoPi();
3007 if(photonPhi2 < 0) photonPhi2+=TMath::TwoPi();
3016 Bool_t sameSector = kFALSE;
3020 if((sm1==j && sm2==j+1) || (sm1==j+1 && sm2==j)) sameSector = kTRUE;
3023 if(sm1!=sm2 && !sameSector)
3025 inacceptance1 = kFALSE;
3026 inacceptance2 = kFALSE;
3033 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",
3035 mesonPt,mesonYeta,mesonPhi,
3038 inacceptance1, inacceptance2));
3040 if(inacceptance1 && inacceptance2)
3045 Bool_t cutAngle = kFALSE;
3048 Bool_t cutSeparation = kFALSE;
3054 AliDebug(2,Form(
"\t ACCEPTED pdg %d: pt %2.2f, phi %2.2f, eta %2.2f",pdg,mesonPt,mesonPhi,mesonYeta));
3092 Int_t angleBin = -1;
3099 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3140 Int_t angleBin = -1;
3147 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3163 Float_t momentumDaughter1AlongMother = 0.;
3164 Float_t momentumDaughter2AlongMother = 0.;
3166 if (momentumSquaredMother > 0.)
3173 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
3176 if (ptArmSquared > 0.)
3177 pTArm = sqrt(ptArmSquared);
3180 if(momentumDaughter1AlongMother + momentumDaughter2AlongMother > 0)
3181 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
3189 if(en > 8 && en <= 12) ebin = 0;
3190 if(en > 12 && en <= 16) ebin = 1;
3191 if(en > 16 && en <= 20) ebin = 2;
3192 if(en > 20) ebin = 3;
3193 if(ebin < 0 || ebin > 3) return ;
3231 Int_t momindex = -1;
3233 Int_t momstatus = -1;
3235 Int_t uniqueID = -1;
3246 AliDebug(1,Form(
"Common ancestor label %d, pdg %d, name %s, status %d",
3247 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3257 else if(TMath::Abs(ancPDG)==11)
3265 else if(ancPDG==111)
3267 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3270 if ( mom->GetNDaughters()!=2 )
3276 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3277 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3278 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3335 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3336 status = ancestor->MCStatusCode();
3337 momindex = ancestor->GetMother();
3338 uniqueID = ancestor->GetUniqueID();
3343 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3344 mompdg = TMath::Abs(mother->PdgCode());
3345 momstatus = mother->MCStatusCode();
3346 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3347 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3348 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3363 if((uniqueID==13 && mompdg!=130 && mompdg!=310 && mompdg!=3122 && mompdg!=321)
3364 || mompdg==3212 || mompdg==3222 || mompdg==3112 || mompdg==3322 || mompdg==3212) {
3374 else if(mompdg==310) {
3377 else if(mompdg == 130) {
3380 else if(mompdg==321) {
3383 else if(mompdg==3122) {
3386 else if(prodRcorr>0.1) {
3389 else if(mompdg==2212 || mompdg==2112 || mompdg==211) {
3392 else if(mompdg==11) {
3395 else if(mompdg==13) {
3398 else if (momstatus == 21) {
3401 else if(mompdg < 22 && mompdg!=11 && mompdg!=13) {
3404 else if(mompdg > 2100 && mompdg < 2210) {
3407 else if(mompdg == 221) {
3410 else if(mompdg == 331) {
3413 else if(mompdg == 213) {
3416 else if(mompdg == 223) {
3419 else if(mompdg > 310 && mompdg <= 323) {
3422 else if(momstatus == 11 || momstatus == 12 ) {
3433 else if(mompdg > 2100 && mompdg < 2210)
3439 else if(mompdg >= 310 && mompdg <= 323)
3442 else if(momstatus == 12 )
3453 Int_t angleBin = -1;
3460 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3511 else if(ancPDG==221)
3513 AliVParticle * mom =
GetMC()->GetTrack(ancLabel);
3516 if ( mom->GetNDaughters()!=2 )
3522 AliVParticle * d1 =
GetMC()->GetTrack(mom->GetDaughterLabel(0));
3523 AliVParticle * d2 =
GetMC()->GetTrack(mom->GetDaughterLabel(1));
3524 if(d1->PdgCode() != 22 || d2->PdgCode() != 22) ok = kFALSE;
3527 if ( mom->GetNDaughters()!=2 ) ok = kFALSE;
3586 AliVParticle* ancestor =
GetMC()->GetTrack(ancLabel);
3587 momindex = ancestor->GetMother();
3590 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3591 mompdg = TMath::Abs(mother->PdgCode());
3592 momstatus = mother->MCStatusCode();
3594 prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
3595 prodRcorr = TMath::Sqrt((mother->Xv()-vertex[0])*(mother->Xv()-vertex[0]) +
3596 (mother->Yv()-vertex[1])*(mother->Yv()-vertex[1]));
3606 if (momstatus == 21 ) {
3609 else if(mompdg < 22 ) {
3612 else if(mompdg > 2100 && mompdg < 2210) {
3615 else if(mompdg == 331) {
3618 else if(momstatus == 11 || momstatus == 12 ) {
3633 Int_t angleBin = -1;
3640 if( angleBin >= 0 && angleBin < fNAngleCutBins)
3649 else if(ancPDG==-2212)
3653 else if(ancPDG==-2112)
3657 else if(TMath::Abs(ancPDG)==13)
3661 else if (TMath::Abs(ancPDG) > 100 && ancLabel > 7)
3674 if(ancStatus == 11 || ancStatus == 12 || ancStatus == 0 )
3684 else if(ancLabel < 6)
3688 else if(ancLabel < 8)
3706 AliDebug(1,
"Common ancestor not found");
3711 if(mcIndex < 0 || mcIndex >= 17)
3713 AliInfo(Form(
"Wrong ancestor type %d, set it to unknown (12)",mcIndex));
3715 AliInfo(Form(
"\t Ancestor type not found: label %d, pdg %d, name %s, status %d\n",
3716 ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus));
3765 if(!cluster2 || !cluster1)
3767 AliWarning(Form(
"Cluster1 %p or Cluster 2 %p not found!",cluster1,cluster2));
3773 TString genName1 =
"", genName2 =
"", genNameBkg1 =
"", genNameBkg2 =
"";
3774 Int_t indexGen1 = -1, indexGen2 = -1, indexGenBkg1 = -1, indexGenBkg2 = -1;
3776 if (genBkgTag1 == -1)
return;
3777 else if(genBkgTag1 > 3) printf(
"Bkg1 generator tag larger than 3; Main %s Bkg %s\n",genName1.Data(),genNameBkg1.Data());
3780 if (genBkgTag2 == -1)
return;
3781 else if(genBkgTag2 > 3) printf(
"Bkg2 generator tag larger than 3; Main %s Bkg %s\n",genName2.Data(),genNameBkg2.Data());
3784 if(genName1!=genName2)
return;
3801 if ( genBkgTag1 == genBkgTag2 )
3807 Int_t genBkgMin = -1;
3808 Int_t genBkgMax = -1;
3810 if(genBkgTag1 > genBkgTag2)
3812 genBkgMax = genBkgTag1;
3813 genBkgMin = genBkgTag2;
3817 genBkgMax = genBkgTag2;
3818 genBkgMin = genBkgTag1;
3821 if ( genBkgMin == 0 )
3823 if (genBkgMax == 1 ) tag = 4;
3824 else if(genBkgMax == 2 ) tag = 5;
3825 else if(genBkgMax == 3 ) tag = 6;
3827 else if ( genBkgMin == 1 )
3829 if ( genBkgMax == 2 ) tag = 7;
3830 else if ( genBkgMax == 3 ) tag = 8;
3832 else if ( genBkgMin == 2 ) tag = 9;
3837 printf(
"Combination not found, bkg1 tag %d, bkg2 tag %d\n",genBkgTag1,genBkgTag2);
3845 if ( ptPrim < 0.1 || pt < 0.5 )
return;
3881 else if( mcIndex==3 )
3937 AliFatal(Form(
"No input aod photons in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3949 Int_t nPhot2 = nPhot;
3950 Int_t minEntries = 2;
3963 if(!secondLoopInputData)
3969 nPhot2 = secondLoopInputData->GetEntriesFast() ;
3974 AliDebug(1,Form(
"Photon entries %d", nPhot));
3977 if ( nPhot < minEntries )
4002 Double_t vert[] = {0.0, 0.0, 0.0} ;
4003 Int_t evtIndex1 = 0 ;
4004 Int_t currentEvtIndex = -1;
4012 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",
4025 for(
Int_t i1 = 0; i1 < nPhot-last; i1++)
4037 if ( evtIndex1 == -1 )
4039 if ( evtIndex1 == -2 )
4045 if (evtIndex1 != currentEvtIndex)
4058 currentEvtIndex = evtIndex1 ;
4074 Int_t iclus1 = -1, iclus2 = -1 ;
4075 Float_t maxCellFraction1 = 0, maxCellFraction2 = 0;
4076 Int_t absIdMax1 = -1, absIdMax2 = -1;
4077 Int_t icol1 = -1, icol2 = -1, icolAbs1 = -1, icolAbs2 = -1;
4078 Int_t irow1 = -1, irow2 = -1, irowAbs1 = -1, irowAbs2 = -1;
4079 Int_t iRCU1 = -1, iRCU2 = -1;
4084 if(!cluster1) AliWarning(
"Cluster1 not found!");
4110 for(
Int_t i2 = first; i2 < nPhot2; i2++)
4122 if ( evtIndex2 == -1 )
4124 if ( evtIndex2 == -2 )
4200 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4202 AliDebug(2,Form(
"E: fPhotonMom1 %f, fPhotonMom2 %f; Pair: pT %f, mass %f, a %f", p1->
E(), p2->
E(), (
fPhotonMom1 +
fPhotonMom2).E(),m,a));
4226 AliDebug(2,Form(
"Real pair one cell separation required and Yes/No %d", separation));
4236 Int_t ancStatus = 0;
4262 if ( module1==module2 )
4270 Int_t isector1 = module1/2;
4271 Int_t isector2 = module2/2;
4272 if ( isector1==isector2 )
4277 else if ( TMath::Abs(isector2-isector1) == 1 )
4279 Int_t iside1 = module1;
4280 Int_t iside2 = module2;
4282 if(module1 > 11) iside1-=2;
4283 if(module2 > 11) iside2-=2;
4285 if ( module1 < module2 && module2-module1==2 )
4287 else if( module2 < module1 && module1-module2==2 )
4333 if(module1!=module2) ok=kFALSE;
4362 if ( l01 > 0.01 && l01 < 0.4 &&
4365 else if( l01 > 0.01 && l01 < 0.4 && l02 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4366 else if( l02 > 0.01 && l02 < 0.4 && l01 > 0.4 )
fhReSS[2]->Fill(pt, m,
GetEventWeight()*weightPt);
4384 if(index < 0 || index >= ncentr*fNPIDBits*fNAsymCuts) continue ;
4421 Int_t angleBin = -1;
4428 if( angleBin >= 0 && angleBin < fNAngleCutBins)
4445 Int_t mod1 = module1;
4446 Int_t mod2 = module2;
4450 if(!cluster2) AliWarning(
"Cluster2 not found!");
4474 Int_t tmp = absIdMax2;
4475 absIdMax2 = absIdMax1;
4551 ncell1, ncell2, m, pt, a, deta, dphi, angle);
4598 if(eventbin < 0) return ;
4604 AliWarning(Form(
"Mix event list not available, bin %d",eventbin));
4608 Int_t nMixed = evMixList->GetSize() ;
4609 for(
Int_t ii=0; ii<nMixed; ii++)
4611 TClonesArray* ev2= (TClonesArray*) (evMixList->At(ii));
4612 Int_t nPhot2=ev2->GetEntriesFast() ;
4614 AliDebug(1,Form(
"Mixed event %d photon entries %d, centrality bin %d",ii, nPhot2,
GetEventCentralityBin()));
4621 for(
Int_t i1 = 0; i1 < nPhot; i1++)
4638 for(
Int_t i2 = 0; i2 < nPhot2; i2++)
4649 Double_t a = TMath::Abs(p1->
E()-p2->
E())/(p1->
E()+p2->
E()) ;
4670 AliDebug(2,Form(
"Mix pair one cell separation required and Yes/No %d", separation));
4675 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));
4689 if ( module1==module2 )