18 #include <TClonesArray.h> 19 #include <TObjString.h> 28 #include "AliMCEvent.h" 30 #include "AliVCluster.h" 31 #include "AliESDEvent.h" 32 #include "AliAODEvent.h" 33 #include "AliVParticle.h" 46 fNLMCutMin(-1), fNLMCutMax(10),
47 fFillAllNLMHistograms(0), fFillTMHisto(0),
48 fFillSelectClHisto(0),
49 fM02MaxCutForIM(0), fM02MinCutForIM(0),
50 fSelectIsolatedDecay(kFALSE), fSelectPairInIsoCone(0),
51 fR(0), fIsoCandMinPt(0),
52 fMinDist(0.), fMinDist2(0.), fMinDist3(0.),
53 fTimeCutMin(-10000), fTimeCutMax(10000),
54 fRejectTrackMatch(kTRUE), fCheckSplitDistToBad(0),
55 fFillWeightHistograms(kFALSE), fFillOnlySimpleSSHisto(1),
56 fFillEMCALBCHistograms(0),
57 fInputAODGammaConvName(
""),
58 fMomentum(), fMomentum1(), fMomentum2(),
59 fMomentum12(),fPrimaryMom(), fGrandMotherMom(),
62 fhPtEta(0), fhPtPhi(0), fhEtaPhi(0),
63 fhEtaPhiEMCALBC0(0), fhEtaPhiEMCALBC1(0), fhEtaPhiEMCALBCN(0),
64 fhTimeTriggerEMCALBC0UMReMatchOpenTime(0),
65 fhTimeTriggerEMCALBC0UMReMatchCheckNeigh(0),
66 fhTimeTriggerEMCALBC0UMReMatchBoth(0),
67 fhPtCentrality(), fhPtEventPlane(0), fhMCPtCentrality(),
68 fhPtReject(0), fhEReject(0),
69 fhPtEtaReject(0), fhPtPhiReject(0), fhEtaPhiReject(0),
70 fhMass(0), fhMassPt(0),
71 fhMassPtMaxPair(0), fhMassPtMinPair(0), fhMassSplitPt(0),
72 fhSelectedMass(0), fhSelectedMassPt(0), fhSelectedMassSplitPt(0),
74 fhMassNoOverlap(0), fhMassPtNoOverlap(0), fhMassSplitPtNoOverlap(0),
75 fhSelectedMassNoOverlap(0), fhSelectedMassPtNoOverlap(0), fhSelectedMassSplitPtNoOverlap(0),
76 fhMCPi0PtRecoPtPrim(0), fhMCEtaPtRecoPtPrim(0),
77 fhMCPi0PtRecoPtPrimNoOverlap(0), fhMCEtaPtRecoPtPrimNoOverlap(0),
78 fhMCPi0SplitPtRecoPtPrim(0), fhMCEtaSplitPtRecoPtPrim(0),
79 fhMCPi0SplitPtRecoPtPrimNoOverlap(0), fhMCEtaSplitPtRecoPtPrimNoOverlap(0),
80 fhMCPi0SelectedPtRecoPtPrim(0), fhMCEtaSelectedPtRecoPtPrim(0),
81 fhMCPi0SelectedPtRecoPtPrimNoOverlap(0), fhMCEtaSelectedPtRecoPtPrimNoOverlap(0),
82 fhMCPi0SelectedSplitPtRecoPtPrim(0), fhMCEtaSelectedSplitPtRecoPtPrim(0),
83 fhMCPi0SelectedSplitPtRecoPtPrimNoOverlap(0), fhMCEtaSelectedSplitPtRecoPtPrimNoOverlap(0),
84 fhAsymmetry(0), fhSelectedAsymmetry(0),
85 fhSplitE(0), fhSplitPt(0),
86 fhSplitPtEta(0), fhSplitPtPhi(0),
91 fhPtDispersion(0), fhPtLambda0(0), fhPtLambda0NoSplitCut(0),
92 fhPtLambda1(0), fhPtLambda0NoTRD(0), fhPtLambda0FracMaxCellCut(0),
93 fhPtFracMaxCell(0), fhPtFracMaxCellNoTRD(0),
94 fhPtNCells(0), fhPtTime(0), fhEPairDiffTime(0),
95 fhPtDispEta(0), fhPtDispPhi(0),
96 fhPtSumEta(0), fhPtSumPhi(0), fhPtSumEtaPhi(0),
97 fhPtDispEtaPhiDiff(0), fhPtSphericity(0),
100 fhMCPtDecayLostPairPi0(0), fhMCPtDecayLostPairEta(0),
102 fhMCPtPhi(), fhMCPtEta(),
103 fhMCEReject(), fhMCPtReject(),
104 fhMCPi0PtGenRecoFraction(0), fhMCEtaPtGenRecoFraction(0),
105 fhMCPi0DecayPt(0), fhMCPi0DecayPtFraction(0),
106 fhMCEtaDecayPt(0), fhMCEtaDecayPtFraction(0),
108 fhMassPairMCPi0(0), fhMassPairMCEta(0),
109 fhAnglePairMCPi0(0), fhAnglePairMCEta(0),
110 fhMCPi0PtOrigin(0x0), fhMCEtaPtOrigin(0x0),
111 fhMCNotResonancePi0PtOrigin(0), fhMCPi0PtStatus(0x0),
112 fhMCPi0ProdVertex(0), fhMCEtaProdVertex(0),
115 fhECellClusterRatio(0), fhECellClusterLogRatio(0),
116 fhEMaxCellClusterRatio(0), fhEMaxCellClusterLogRatio(0),
117 fhTrackMatchedDEta(0), fhTrackMatchedDPhi(0), fhTrackMatchedDEtaDPhi(0),
118 fhTrackMatchedDEtaPos(0), fhTrackMatchedDPhiPos(0), fhTrackMatchedDEtaDPhiPos(0),
119 fhTrackMatchedDEtaNeg(0), fhTrackMatchedDPhiNeg(0), fhTrackMatchedDEtaDPhiNeg(0),
120 fhTrackMatchedMCParticlePt(0),
121 fhTrackMatchedMCParticleDEta(0), fhTrackMatchedMCParticleDPhi(0),
122 fhdEdx(0), fhEOverP(0), fhEOverPNoTRD(0),
124 fhNLocMaxPt(0), fhNLocMaxPtReject(0),
126 fhTimePtNoCut(0), fhTimePtSPD(0), fhTimePtSPDMulti(0),
127 fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
128 fhTimeNPileUpVertContributors(0),
129 fhTimePileUpMainVertexZDistance(0), fhTimePileUpMainVertexZDiamond(0),
130 fhPtNPileUpSPDVtx(0), fhPtNPileUpTrkVtx(0),
131 fhPtNPileUpSPDVtxTimeCut(0), fhPtNPileUpTrkVtxTimeCut(0),
132 fhPtNPileUpSPDVtxTimeCut2(0), fhPtNPileUpTrkVtxTimeCut2(0)
176 for(
Int_t j = 0; j < 7; j++)
187 for(
Int_t j = 0; j < 7; j++)
199 for(
Int_t i = 0; i < 3; i++)
231 for(
Int_t i =0; i < 14; i++){
237 for(
Int_t i = 0; i < 11; i++)
248 for(
Int_t iSM = 0; iSM < 22; iSM++)
251 for(
Int_t inlm = 0; inlm < 3; inlm++)
275 if(TMath::Abs(bc) >= 6) AliInfo(Form(
"Trigger BC not expected = %d",bc));
277 if(phi < 0) phi+=TMath::TwoPi();
288 if(TMath::Abs(bc) >= 6) return ;
311 if(
GetReader()->IsTriggerMatchedOpenCuts(0))
314 if(
GetReader()->IsTriggerMatchedOpenCuts(1))
317 if(
GetReader()->IsTriggerMatchedOpenCuts(2))
346 AliVCaloCells* cells = 0;
353 Double_t tmax = cells->GetCellTime(absIdMax);
358 if(cells->GetCellAmplitude(absIdMax) > 0.1 && TMath::Abs(tmax) < 30)
360 for (
Int_t ipos = 0; ipos < calo->GetNCells(); ipos++)
362 Int_t absId = calo->GetCellsAbsId()[ipos];
364 if( absId == absIdMax ) continue ;
366 Double_t timecell = cells->GetCellTime(absId);
367 Float_t amp = cells->GetCellAmplitude(absId);
372 Float_t diff = (tmax-timecell);
374 if( cells->GetCellAmplitude(absIdMax) < 0.1 )
continue ;
388 if(
GetReader()->IsPileUpFromSPDOrEMCal())
394 if(
GetReader()->IsPileUpFromSPDAndEMCal())
400 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
406 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
412 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
431 nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
432 nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
437 nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
438 nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
447 if(TMath::Abs(time) < 25)
453 if(time < 75 && time > -25)
465 for(
Int_t iVert=0; iVert<nVtxSPD;iVert++)
469 const AliESDVertex* pv=esdEv->GetPileupVertexSPD(iVert);
470 ncont=pv->GetNContributors();
471 z1 = esdEv->GetPrimaryVertexSPD()->GetZ();
473 diamZ = esdEv->GetDiamondZ();
477 AliAODVertex *pv=aodEv->GetVertex(iVert);
478 if(pv->GetType()!=AliAODVertex::kPileupSPD)
continue;
479 ncont=pv->GetNContributors();
480 z1=aodEv->GetPrimaryVertexSPD()->GetZ();
482 diamZ = aodEv->GetDiamondZ();
486 diamZ = TMath::Abs(z2-diamZ);
505 if(phi < 0) phi+=TMath::TwoPi();
535 Float_t disp = cluster->GetDispersion()*cluster->GetDispersion();
536 Float_t l0 = cluster->GetM02();
537 Float_t l1 = cluster->GetM20();
541 if (pt < 2 ) ptbin = 0;
542 else if (pt < 4 ) ptbin = 1;
543 else if (pt < 6 ) ptbin = 2;
544 else if (pt < 10) ptbin = 3;
545 else if (pt < 15) ptbin = 4;
546 else if (pt < 20) ptbin = 5;
550 if (nMaxima==1) indexMax = 0 ;
551 else if(nMaxima==2) indexMax = 1 ;
563 if(nSM < fNModules && nSM >=0)
571 Float_t dispp= 0., dEta = 0., dPhi = 0.;
572 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
573 AliVCaloCells * cell = 0x0;
583 if(maxCellFraction < 0.5)
588 ll0, ll1, dispp, dEta, dPhi,
589 sEta, sPhi, sEtaPhi);
640 Float_t dZ = cluster->GetTrackDz();
641 Float_t dR = cluster->GetTrackDx();
653 if(track) positive = (track->Charge()>0);
683 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
687 Float_t dEdx = track->GetTPCsignal();
690 Float_t eOverp = cluster->E()/track->P();
747 if(maxCellFraction < 0.5)
781 AliVCaloCells* cells = 0;
788 for (
Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
791 Int_t id = clus->GetCellsAbsId()[ipos];
794 Float_t amp = cells->GetCellAmplitude(
id);
806 AliInfo(Form(
"Wrong calculated energy %f",energy));
814 for (
Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
816 Int_t id = clus->GetCellsAbsId()[ipos];
819 Float_t amp = cells->GetCellAmplitude(
id);
829 Float_t l0org = clus->GetM02();
830 Float_t l1org = clus->GetM20();
831 Float_t dorg = clus->GetDispersion();
833 for(
Int_t iw = 0; iw < 14; iw++)
846 clus->SetDispersion(dorg);
857 const Int_t buffersize = 255;
858 char onePar[buffersize] ;
860 snprintf(onePar,buffersize,
"--- AliAnaPi0EbE ---\n") ;
862 snprintf(onePar,buffersize,
"fAnaType=%d (selection type) \n",
fAnaType) ;
873 snprintf(onePar,buffersize,
"N cell cut: N > %d;",
GetCaloPID()->GetClusterSplittingMinNCells()) ;
875 snprintf(onePar,buffersize,
"Min Dist to Bad channel: fMinDist =%2.2f; fMinDist2=%2.2f, fMinDist3=%2.2f;",
fMinDist,
fMinDist2,
fMinDist3) ;
881 snprintf(onePar,buffersize,
"Reject split cluster close to border or bad?: %d;",
fCheckSplitDistToBad) ;
903 snprintf(onePar,buffersize,
"Time Diff: %2.2f;",
GetPairTimeCut()) ;
910 return new TObjString(parList) ;
920 outputContainer->SetName(
"Pi0EbEHistos") ;
956 TString nlm[] = {
"1 Local Maxima",
"2 Local Maxima",
"NLM > 2"};
958 TString ptype [] = {
"#pi^{0}",
"#eta",
"#gamma (direct)",
"#gamma (#pi^{0})",
"#gamma (#eta)",
"#gamma (other)",
"e^{#pm}" ,
"hadron/other combinations"};
959 TString pname [] = {
"Pi0" ,
"Eta" ,
"Photon" ,
"Pi0Decay" ,
"EtaDecay" ,
"OtherDecay" ,
"Electron",
"Hadron"};
961 Int_t bin[] = {0,2,4,6,10,15,20,100};
963 fhPt =
new TH1F(
"hPt",
"Number of identified #pi^{0} (#eta) decay",nptbins,ptmin,ptmax);
964 fhPt->SetYTitle(
"#it{N}");
965 fhPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
966 outputContainer->Add(
fhPt) ;
968 fhE =
new TH1F(
"hE",
"Number of identified #pi^{0} (#eta) decay pairs",nptbins,ptmin,ptmax);
969 fhE->SetYTitle(
"#it{N}");
970 fhE->SetXTitle(
"#it{E} (GeV)");
971 outputContainer->Add(
fhE) ;
974 (
"hPtPhi",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #varphi",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
975 fhPtPhi->SetYTitle(
"#varphi (rad)");
976 fhPtPhi->SetXTitle(
"#it{E} (GeV)");
977 outputContainer->Add(
fhPtPhi) ;
980 (
"hPtEta",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #eta",nptbins,ptmin,ptmax,netabins,etamin,etamax);
982 fhPtEta->SetXTitle(
"#it{E} (GeV)");
983 outputContainer->Add(
fhPtEta) ;
986 (
"hEtaPhi",
"Selected #pi^{0} (#eta) pairs: #eta vs #varphi",netabins,etamin,etamax, nphibins,phimin,phimax);
987 fhEtaPhi->SetYTitle(
"#varphi (rad)");
994 (
"hEtaPhiEMCALBC0",
"cluster, #it{E} > 2 GeV, #eta vs #varphi, for clusters with |#it{t}| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
1000 (
"hEtaPhiEMCALBC1",
"cluster, #it{E} > 2 GeV, #eta vs #varphi, for clusters with 25 < |#it{t}| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
1006 (
"hEtaPhiEMCALBCN",
"cluster, #it{E} > 2 GeV, #eta vs #varphi, for clusters with |#it{t}| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
1011 for(
Int_t i = 0; i < 11; i++)
1014 (Form(
"hEtaPhiTriggerEMCALBC%d",i-5),
1015 Form(
"meson #it{E} > 2 GeV, #eta vs #varphi, Trigger EMCAL-BC=%d",i-5),
1016 netabins,etamin,etamax,nphibins,phimin,phimax);
1022 (Form(
"hTimeTriggerEMCALBC%d",i-5),
1023 Form(
"meson #it{t} vs #it{E}, Trigger EMCAL-BC=%d",i-5),
1024 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1030 (Form(
"hTimeTriggerEMCALBC%dPileUpSPD",i-5),
1031 Form(
"meson #it{t} vs #it{E}, Trigger EMCAL-BC=%d",i-5),
1032 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1038 (Form(
"hEtaPhiTriggerEMCALBC%d_UnMatch",i-5),
1039 Form(
"meson #it{E} > 2 GeV, #eta vs #varphi, unmatched trigger EMCAL-BC=%d",i-5),
1040 netabins,etamin,etamax,nphibins,phimin,phimax);
1046 (Form(
"hTimeTriggerEMCALBC%d_UnMatch",i-5),
1047 Form(
"meson #it{t} vs #it{E}, unmatched trigger EMCAL-BC=%d",i-5),
1048 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1056 "cluster #it{t} vs #it{E} of clusters, no match, rematch open time",
1057 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1064 "cluster #it{t} vs #it{E} of clusters, no match, rematch with neigbour parches",
1065 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1071 "cluster #it{t} vs #it{E} of clusters, no match, rematch open time and neigbour",
1072 nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
1081 fhPtCentrality =
new TH2F(
"hPtCentrality",
"centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,100);
1086 fhPtEventPlane =
new TH2F(
"hPtEventPlane",
"event plane angle vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
1094 fhPtReject =
new TH1F(
"hPtReject",
"Number of rejected as #pi^{0} (#eta) decay",nptbins,ptmin,ptmax);
1096 fhPtReject->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1099 fhEReject =
new TH1F(
"hEReject",
"Number of rejected as #pi^{0} (#eta) decay pairs",nptbins,ptmin,ptmax);
1105 (
"hPtPhiReject",
"Rejected #pi^{0} (#eta) cluster: #it{p}_{T} vs #varphi",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
1111 (
"hPtEtaReject",
"Rejected #pi^{0} (#eta) cluster: #it{p}_{T} vs #eta",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1117 (
"hEtaPhiReject",
"Rejected #pi^{0} (#eta) cluster: #eta vs #varphi",netabins,etamin,etamax, nphibins,phimin,phimax);
1122 fhNLocMaxPtReject =
new TH2F(
"hNLocMaxPtReject",
"Number of local maxima in cluster, rejected clusters",
1123 nptbins,ptmin,ptmax,20,0,20);
1130 (
"hMass",
"all pairs #it{M}: #it{E} vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1131 fhMass->SetYTitle(
"#it{M} (GeV/#it{c}^{2})");
1132 fhMass->SetXTitle(
"#it{E} (GeV)");
1133 outputContainer->Add(
fhMass) ;
1136 (
"hSelectedMass",
"Selected #pi^{0} (#eta) pairs #it{M}: E vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1142 (
"hMassPt",
"all pairs #it{M}: #it{p}_{T} vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1143 fhMassPt->SetYTitle(
"#it{M} (GeV/#it{c}^{2})");
1144 fhMassPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1148 (
"hMassPtMaxPair",
"all pairs #it{M}: #it{p}_{T}^{max} vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1154 (
"hMassPtMinPair",
"all pairs #it{M}: #it{p}_{T}^{min} vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1160 (
"hSelectedMassPt",
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M}",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1168 (
"hMassPtIsoRCut",Form(
"#it{M}: #it{p}_{T} vs #it{M}, for R = %1.1f, #it{p}_{T,1} < %2.2f",
fR,
fIsoCandMinPt),
1169 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1178 (
"hPtLambda0NoSplitCut",
"all clusters: #it{p}_{T} vs #lambda_{0}^{2}",nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
1183 for(
Int_t inlm = 0; inlm < 3; inlm++)
1186 (Form(
"hMassPtNLocMax%d",inlm+1),Form(
"all pairs #it{M}: #it{p}_{T} vs #it{M} and NLM=%s",nlm[inlm].
Data()),nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1192 (Form(
"hSelectedMassPtLocMax%d",inlm+1),Form(
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M}, NLM=%s",nlm[inlm].
Data()),nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1201 if(iSM < fFirstModule || iSM >
fLastModule)
continue;
1204 (Form(
"hSelectedMassPtLocMax%d_SM%d",inlm+1,iSM),Form(
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M}, NLM=%s for SM=%d",nlm[inlm].
Data(),iSM),nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1210 (Form(
"hSelectedLambda0PtLocMax%d_SM%d",inlm+1,iSM),Form(
"Selected #pi^{0} (#eta) pairs #lambda_{0}^{2}: #it{p}_{T} vs #it{M}, NLM=%s for SM=%d",nlm[inlm].
Data(),iSM),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1222 (Form(
"hSelectedMassPtLocMax%d_MC%s",inlm+1,pname[ipart].
Data()),
1223 Form(
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M}, NLM=%s, from MC %s",nlm[inlm].
Data(),ptype[ipart].
Data()),
1224 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1235 (
"hMassNoOverlap",
"all pairs #it{M}: #it{E} vs #it{M}, no overlap",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1241 (
"hSelectedMassNoOverlap",
"Selected #pi^{0} (#eta) pairs #it{M}: #it{E} vs #it{M}, no overlap",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1247 (
"hMassPtNoOverlap",
"all pairs #it{M}: #it{p}_{T} vs #it{M}, no overlap",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1253 (
"hSelectedMassPtNoOverlap",
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M}, no overlap",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1262 fhPtDecay =
new TH1F(
"hPtDecay",
"Selected #pi^{0} (#eta) decay photons",nptbins,ptmin,ptmax);
1264 fhPtDecay->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1269 fhMCPtDecayLostPairPi0 =
new TH1F(
"hPtDecay_MCPi0DecayLostPair",
"Selected #pi^{0} (#eta) decay photons, from MC #gamma #pi^{0} decay, companion lost",
1270 nptbins,ptmin,ptmax);
1275 fhMCPtDecayLostPairEta =
new TH1F(
"hPtDecay_MCEtaDecayLostPair",
"Selected #pi^{0} (#eta) decay photons, from MC #gamma #eta decay, companion lost",
1276 nptbins,ptmin,ptmax);
1283 fhMCPtDecay[ipart] =
new TH1F(Form(
"hPtDecay_MC%s",pname[ipart].
Data()),
1284 Form(
"Selected #pi^{0} (#eta) decay photons, from MC %s",ptype[ipart].
Data()),
1285 nptbins,ptmin,ptmax);
1287 fhMCPtDecay[ipart]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1298 (
"hPtLambda0",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1300 fhPtLambda0->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1304 (
"hPtLambda1",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{1}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1306 fhPtLambda1->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1312 (
"hPtLambda0NoTRD",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, not behind TRD",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1320 (
"hPtFracMaxCellNoTRD",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, Max cell fraction of energy, not behind TRD",nptbins,ptmin,ptmax,100,0,1);
1330 (
"hPtDispersion",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs dispersion",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1336 (
"hPtLambda0FracMaxCellCut",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, Max cell fraction of energy < 0.5",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1342 (
"hPtFracMaxCell",
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, Max cell fraction of energy",nptbins,ptmin,ptmax,100,0,1);
1347 fhPtDispEta =
new TH2F (
"hPtDispEta",
"#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs #it{p}_{T}", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
1348 fhPtDispEta->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1352 fhPtDispPhi =
new TH2F (
"hPtDispPhi",
"#sigma^{2}_{#varphi #varphi} = #Sigma w_{i}(#varphi_{i} - <#varphi>)^{2} / #Sigma w_{i} vs #it{p}_{T}", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
1353 fhPtDispPhi->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1354 fhPtDispPhi->SetYTitle(
"#sigma^{2}_{#varphi #varphi}");
1357 fhPtSumEta =
new TH2F (
"hPtSumEta",
"#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
1358 fhPtSumEta->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1359 fhPtSumEta->SetYTitle(
"#delta^{2}_{#eta #eta}");
1362 fhPtSumPhi =
new TH2F (
"hPtSumPhi",
"#sigma^{2}_{#varphi #varphi} = #Sigma w_{i}(#varphi_{i})^{2}/ #Sigma w_{i} - <#varphi>^{2} vs #it{p}_{T}",
1363 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
1364 fhPtSumPhi->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1365 fhPtSumPhi->SetYTitle(
"#delta^{2}_{#varphi #varphi}");
1368 fhPtSumEtaPhi =
new TH2F (
"hPtSumEtaPhi",
"#delta^{2}_{#eta #varphi} = #Sigma w_{i}(#varphi_{i} #eta_{i} ) / #Sigma w_{i} - <#varphi><#eta> vs #it{p}_{T}",
1369 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
1374 fhPtDispEtaPhiDiff =
new TH2F (
"hPtDispEtaPhiDiff",
"#sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta} vs #it{p}_{T}",
1375 nptbins,ptmin,ptmax,200, -10,10);
1377 fhPtDispEtaPhiDiff->SetYTitle(
"#sigma^{2}_{#varphi #varphi}-#sigma^{2}_{#eta #eta}");
1380 fhPtSphericity =
new TH2F (
"hPtSphericity",
"(#sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#varphi #varphi}) vs #it{p}_{T} (GeV/#it{c})",
1381 nptbins,ptmin,ptmax, 200, -1,1);
1383 fhPtSphericity->SetYTitle(
"s = (#sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#varphi #varphi})");
1386 for(
Int_t i = 0; i < 7; i++)
1388 fhDispEtaDispPhi[i] =
new TH2F (Form(
"hDispEtaDispPhi_EBin%d",i),Form(
"#sigma^{2}_{#varphi #varphi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]),
1389 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
1394 fhLambda0DispEta[i] =
new TH2F (Form(
"hLambda0DispEta_EBin%d",i),Form(
"#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]),
1395 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
1400 fhLambda0DispPhi[i] =
new TH2F (Form(
"hLambda0DispPhi_EBin%d",i),Form(
"#lambda^{2}_{0}} vs #sigma^{2}_{#varphi #varphi} for %d < E < %d GeV",bin[i],bin[i+1]),
1401 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
1408 fhNLocMaxPt =
new TH2F(
"hNLocMaxPt",
"Number of local maxima in cluster, selected clusters",
1409 nptbins,ptmin,ptmax,20,0,20);
1411 fhNLocMaxPt ->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1418 if(iSM < fFirstModule || iSM >
fLastModule)
continue;
1420 fhNLocMaxPtSM[iSM] =
new TH2F(Form(
"hNLocMaxPt_SM%d",iSM),Form(
"Number of local maxima in cluster, selected clusters in SM %d",iSM),
1421 nptbins,ptmin,ptmax,20,0,20);
1427 for (
Int_t i = 0; i < 3; i++)
1430 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, NLM=%s",nlm[i].
Data()),
1431 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1441 (Form(
"hPtLambda0LocMax%d_MC%s",i+1,pname[ipart].
Data()),
1442 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, NLM=%s, MC %s",nlm[i].
Data(),ptype[ipart].
Data()),
1443 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1451 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{1}, %s",nlm[i].
Data()),
1452 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1460 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs dispersion^{2}, %s",nlm[i].
Data()),
1461 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1467 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #sigma_{#eta #eta}, %s",nlm[i].
Data()),
1468 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1474 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #sigma_{#varphi #varphi}, %s",nlm[i].
Data()),
1475 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1481 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #sigma_{#eta #varphi}, %s",nlm[i].
Data()),
1482 nptbins,ptmin,ptmax,2*ssbins,-ssmax,ssmax);
1488 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #sigma_{#varphi #varphi} - #sigma_{#eta #eta}, %s",nlm[i].
Data()),
1489 nptbins,ptmin,ptmax,200, -10,10);
1495 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #sigma_{#varphi #varphi} - #sigma_{#eta #eta} / (#sigma_{#varphi #varphi} + #sigma_{#eta #eta}), %s",nlm[i].
Data()),
1496 nptbins,ptmin,ptmax,200, -1,1);
1497 fhPtSphericityLocMax[i]->SetYTitle(
"#sigma_{#varphi #varphi} - #sigma_{#eta #eta} / (#sigma_{#varphi #varphi} + #sigma_{#eta #eta})");
1504 fhPtNCells =
new TH2F (
"hPtNCells",
"N cells in cluster vs E ", nptbins,ptmin,ptmax, nbins,nmin,nmax);
1505 fhPtNCells->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1506 fhPtNCells->SetYTitle(
"# of cells in cluster");
1509 fhPtTime =
new TH2F(
"hPtTime",
"cluster time vs pair E",nptbins,ptmin,ptmax, tbins,tmin,tmax);
1510 fhPtTime->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1518 fhEPairDiffTime =
new TH2F(
"hEPairDiffTime",
"cluster pair time difference vs E",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
1526 TString combiName [] = {
"1LocMax",
"2LocMax",
"NLocMax",
"1LocMax2LocMax",
"1LocMaxNLocMax",
"2LocMaxNLocMax",
"1LocMaxSSBad",
"NLocMaxSSGood"};
1527 TString combiTitle[] = {
"1 Local Maxima in both clusters",
"2 Local Maxima in both clusters",
"more than 2 Local Maxima in both clusters",
1528 "1 Local Maxima paired with 2 Local Maxima",
"1 Local Maxima paired with more than 2 Local Maxima",
1529 "2 Local Maxima paired with more than 2 Local Maxima",
1530 "1 Local Maxima paired with #lambda_{0}^{2}>0.3",
"N Local Maxima paired with 0.1<#lambda_{0}^{2}<0.3"};
1534 for (
Int_t i = 0; i < 8 ; i++)
1539 (Form(
"MassPairLocMax%s",combiName[i].
Data()),
1540 Form(
"#it{M} for decay #gamma pair vs #it{E}_{pair}, origin #pi^{0}, %s", combiTitle[i].
Data()),
1541 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1552 (
"hTrackMatchedDEta",
1553 "d#eta of cluster-track vs cluster #it{p}_{T}",
1554 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
1559 (
"hTrackMatchedDPhi",
1560 "d#varphi of cluster-track vs cluster #it{p}_{T}",
1561 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
1566 (
"hTrackMatchedDEtaDPhi",
1567 "d#eta vs d#varphi of cluster-track",
1568 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
1577 (
"hTrackMatchedDEtaPos",
1578 "d#eta of cluster-track vs cluster #it{p}_{T}",
1579 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
1584 (
"hTrackMatchedDPhiPos",
1585 "d#varphi of cluster-track vs cluster #it{p}_{T}",
1586 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
1591 (
"hTrackMatchedDEtaDPhiPos",
1592 "d#eta vs d#varphi of cluster-track",
1593 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
1602 (
"hTrackMatchedDEtaNeg",
1603 "d#eta of cluster-track vs cluster #it{p}_{T}",
1604 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
1609 (
"hTrackMatchedDPhiNeg",
1610 "d#varphi of cluster-track vs cluster #it{p}_{T}",
1611 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
1616 (
"hTrackMatchedDEtaDPhiNeg",
1617 "d#eta vs d#varphi of cluster-track",
1618 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
1626 fhdEdx =
new TH2F (
"hdEdx",
"matched track <dE/dx> vs cluster #it{p}_{T}", nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
1627 fhdEdx->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1628 fhdEdx->SetYTitle(
"<#it{dE}/#it{dx}>");
1629 outputContainer->Add(
fhdEdx);
1631 fhEOverP =
new TH2F (
"hEOverP",
"matched track E/p vs cluster #it{p}_{T}", nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
1632 fhEOverP->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1633 fhEOverP->SetYTitle(
"#it{E}/#it{p}");
1638 fhEOverPNoTRD =
new TH2F (
"hEOverPNoTRD",
"matched track E/p vs cluster E, SM not behind TRD ", nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
1647 (
"hTrackMatchedMCParticlePt",
1648 "Origin of particle vs energy",
1649 nptbins,ptmin,ptmax,8,0,8);
1665 (
"hTrackMatchedMCParticleDEta",
1666 "Origin of particle vs #eta residual",
1667 nresetabins,resetamin,resetamax,8,0,8);
1683 (
"hTrackMatchedMCParticleDPhi",
1684 "Origin of particle vs #varphi residual",
1685 nresphibins,resphimin,resphimax,8,0,8);
1704 fhECellClusterRatio =
new TH2F (
"hECellClusterRatio",
" cell energy / cluster energy vs cluster energy, for selected decay photons from neutral meson",
1705 nptbins,ptmin,ptmax, 100,0,1.);
1710 fhECellClusterLogRatio =
new TH2F (
"hECellClusterLogRatio",
" Log(cell energy / cluster energy) vs cluster energy, for selected decay photons from neutral meson",
1711 nptbins,ptmin,ptmax, 100,-10,0);
1716 fhEMaxCellClusterRatio =
new TH2F (
"hEMaxCellClusterRatio",
" max cell energy / cluster energy vs cluster energy, for selected decay photons from neutral meson",
1717 nptbins,ptmin,ptmax, 100,0,1.);
1722 fhEMaxCellClusterLogRatio =
new TH2F (
"hEMaxCellClusterLogRatio",
" Log(max cell energy / cluster energy) vs cluster energy, for selected decay photons from neutral meson",
1723 nptbins,ptmin,ptmax, 100,-10,0);
1728 for(
Int_t iw = 0; iw < 14; iw++)
1730 fhLambda0ForW0[iw] =
new TH2F (Form(
"hLambda0ForW0%d",iw),Form(
"shower shape, #lambda^{2}_{0} vs E, w0 = %1.1f, for selected decay photons from neutral meson",1+0.5*iw),
1731 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1748 fhMCPi0PtOrigin =
new TH2F(
"hMCPi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,11,0,11) ;
1763 fhMCNotResonancePi0PtOrigin =
new TH2F(
"hMCNotResonancePi0PtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,11,0,11) ;
1778 fhMCPi0PtStatus =
new TH2F(
"hMCPi0PtStatus",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs status",nptbins,ptmin,ptmax,101,-50,50) ;
1783 fhMCEtaPtOrigin =
new TH2F(
"hMCEtaPtOrigin",
"Reconstructed pair from generated #pi^{0} #it{p}_{T} vs origin",nptbins,ptmin,ptmax,7,0,7) ;
1794 fhMCPi0ProdVertex =
new TH2F(
"hMCPi0ProdVertex",
"Selected reco pair from generated #pi^{0} #it{p}_{T} vs production vertex",200,ptmin,20+ptmin,5000,0,500) ;
1799 fhMCEtaProdVertex =
new TH2F(
"hMCEtaProdVertex",
"Selected reco pair from generated #eta #it{p}_{T} vs production vertex",200,ptmin,20+ptmin,5000,0,500) ;
1806 fhMCPi0PtGenRecoFraction =
new TH2F(
"hMCPi0PtGenRecoFraction",
"Number of clusters from #pi^{0} (2 #gamma) identified as #pi^{0} (#eta), #it{p}_{T} versus E primary #pi^{0} / E reco",
1807 nptbins,ptmin,ptmax,200,0,2);
1812 fhMCEtaPtGenRecoFraction =
new TH2F(
"hMCEtaPtGenRecoFraction",
"Number of clusters from #eta (2 #gamma) identified as #pi^{0} (#eta),#it{p}_{T} versus E primary #eta / E reco",
1813 nptbins,ptmin,ptmax,200,0,2);
1818 fhMCPi0DecayPt =
new TH1F(
"hMCPi0DecayPt",
"Number of #gamma from #pi^{0} decay identified as #pi^{0} (#eta)",nptbins,ptmin,ptmax);
1823 fhMCPi0DecayPtFraction =
new TH2F(
"hMCPi0DecayPtFraction",
"Number of #gamma from #pi^{0} decay identified as #pi^{0} (#eta), #it{p}_{T} versus E primary #gamma / #it{E} primary #pi^{0}",
1824 nptbins,ptmin,ptmax,100,0,1);
1829 fhMCEtaDecayPt =
new TH1F(
"hMCEtaDecayPt",
"Number of #gamma from #eta decay identified as #pi^{0} (#eta)",nptbins,ptmin,ptmax);
1834 fhMCEtaDecayPtFraction =
new TH2F(
"hMCEtaDecayPtFraction",
"Number of #gamma from #eta decay identified as #pi^{0} (#eta), #it{p}_{T} versus E primary #gamma / E primary #eta",
1835 nptbins,ptmin,ptmax,100,0,1);
1840 fhMCOtherDecayPt =
new TH1F(
"hMCOtherDecayPt",
"Number of #gamma decay (not #eta or #pi^{0}) identified as #pi^{0} (#eta)",nptbins,ptmin,ptmax);
1850 "Angle between decay #gamma pair vs #it{E}_{pair}, origin #pi^{0}",nptbins,ptmin,ptmax,250,0,0.5);
1857 "Angle between decay #gamma pair vs #it{E}_{pair}, origin #eta",nptbins,ptmin,ptmax,250,0,0.5);
1864 "#it{M} for decay #gamma pair vs #it{E}_{pair}, origin #pi^{0}",nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1871 "#it{M} for decay #gamma pair vs #it{E}_{pair}, origin #eta",nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1880 for(
Int_t i = 0; i < ntypes; i++)
1883 (Form(
"hE_MC%s",pname[i].
Data()),
1884 Form(
"Identified as #pi^{0} (#eta), cluster from %s",
1886 nptbins,ptmin,ptmax);
1887 fhMCE[i]->SetYTitle(
"#it{N}");
1888 fhMCE[i]->SetXTitle(
"#it{E} (GeV)");
1889 outputContainer->Add(
fhMCE[i]) ;
1892 (Form(
"hPt_MC%s",pname[i].
Data()),
1893 Form(
"Identified as #pi^{0} (#eta), cluster from %s",
1895 nptbins,ptmin,ptmax);
1896 fhMCPt[i]->SetYTitle(
"#it{N}");
1897 fhMCPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1898 outputContainer->Add(
fhMCPt[i]) ;
1903 (Form(
"hPtCentrality_MC%s",pname[i].
Data()),
1904 Form(
"Identified as #pi^{0} (#eta), cluster from %s",
1906 nptbins,ptmin,ptmax, 100,0,100);
1915 (Form(
"hNLocMaxPt_MC%s",pname[i].
Data()),
1916 Form(
"cluster from %s, #it{p}_{T} of cluster vs NLM, accepted",ptype[i].
Data()),
1917 nptbins,ptmin,ptmax,20,0,20);
1923 (Form(
"hNLocMaxPtReject_MC%s",pname[i].
Data()),
1924 Form(
"cluster from %s, #it{p}_{T} of cluster vs NLM, rejected",ptype[i].
Data()),
1925 nptbins,ptmin,ptmax,20,0,20);
1931 (Form(
"hEReject_MC%s",pname[i].
Data()),
1932 Form(
"Rejected as #pi^{0} (#eta), cluster from %s",
1934 nptbins,ptmin,ptmax);
1940 (Form(
"hPtReject_MC%s",pname[i].
Data()),
1941 Form(
"Rejected as #pi^{0} (#eta), cluster from %s",
1943 nptbins,ptmin,ptmax);
1950 (Form(
"hPtPhi_MC%s",pname[i].
Data()),
1951 Form(
"Identified as #pi^{0} (#eta), cluster from %s",ptype[i].
Data()),
1952 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1954 fhMCPtPhi[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1958 (Form(
"hPtEta_MC%s",pname[i].
Data()),
1959 Form(
"Identified as #pi^{0} (#eta), cluster from %s",
1960 ptype[i].
Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
1962 fhMCPtEta[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1966 (Form(
"hMassPt_MC%s",pname[i].
Data()),
1967 Form(
"all pairs #it{M}: #it{p}_{T} vs #it{M} from %s",ptype[i].
Data()),
1968 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1969 fhMCMassPt[i]->SetYTitle(
"#it{M} (GeV/#it{c}^{2})");
1970 fhMCMassPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1974 (Form(
"hSelectedMassPt_MC%s",pname[i].
Data()),
1975 Form(
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M} from %s",ptype[i].
Data()),
1976 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1984 (Form(
"hMassPtNoOverlap_MC%s",pname[i].
Data()),
1985 Form(
"all pairs #it{M}: #it{p}_{T} vs #it{M} from %s, no overlap",ptype[i].
Data()),
1986 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
1987 fhMCMassPt[i]->SetYTitle(
"#it{M} (GeV/#it{c}^{2})");
1988 fhMCMassPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
1992 (Form(
"hSelectedMassPtNoOverlap_MC%s",pname[i].
Data()),
1993 Form(
"Selected #pi^{0} (#eta) pairs #it{M}: #it{p}_{T} vs #it{M} from %s, no overlap",ptype[i].
Data()),
1994 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2003 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}",ptype[i].
Data()),
2004 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2010 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs #lambda_{1}^{2}",ptype[i].
Data()),
2011 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2019 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}, NoTRD",ptype[i].
Data()),
2020 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2029 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs dispersion^{2}",ptype[i].
Data()),
2030 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2036 Form(
"cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs #it{p}_{T}",ptype[i].
Data()),
2037 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2043 Form(
"cluster from %s : #sigma^{2}_{#varphi #varphi} = #Sigma w_{i}(#varphi_{i} - <#varphi>)^{2} / #Sigma w_{i} vs #it{p}_{T}",ptype[i].
Data()),
2044 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2046 fhMCPtDispPhi[i]->SetYTitle(
"#sigma^{2}_{#varphi #varphi}");
2050 Form(
"cluster from %s : #delta^{2}_{#eta #varphi} = #Sigma w_{i}(#varphi_{i} #eta_{i} ) / #Sigma w_{i} - <#varphi><#eta> vs #it{p}_{T}",ptype[i].
Data()),
2051 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
2057 Form(
"cluster from %s : #sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta} vs #it{p}_{T}",ptype[i].
Data()),
2058 nptbins,ptmin,ptmax,200,-10,10);
2064 Form(
"cluster from %s : (#sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#varphi #varphi}) vs E",ptype[i].
Data()),
2065 nptbins,ptmin,ptmax, 200,-1,1);
2067 fhMCPtSphericity[i]->SetYTitle(
"#it{s} = (#sigma^{2}_{#varphi #varphi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#varphi #varphi})");
2070 for(
Int_t ie = 0; ie < 7; ie++)
2073 Form(
"cluster from %s : #sigma^{2}_{#varphi #varphi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2074 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2080 Form(
"cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2081 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2087 Form(
"cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#varphi #varphi} for %d < E < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2088 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2095 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}, Max cell fraction of energy < 0.5 ",ptype[i].
Data()),
2096 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2102 Form(
"Selected pair, cluster from %s : #it{p}_{T} vs Max cell fraction of energy",ptype[i].
Data()),
2103 nptbins,ptmin,ptmax,100,0,1);
2114 fhAsymmetry =
new TH2F (
"hAsymmetry",
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} ) vs #it{E}",
2115 nptbins,ptmin,ptmax, 200, -1,1);
2117 fhAsymmetry->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2120 fhSelectedAsymmetry =
new TH2F (
"hSelectedAsymmetry",
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} ) vs #it{E}",
2121 nptbins,ptmin,ptmax, 200, -1,1);
2123 fhSelectedAsymmetry->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2127 (
"hSplitE",
"Selected #pi^{0} (#eta) pairs energy sum of split sub-clusters",nptbins,ptmin,ptmax);
2129 fhSplitE->SetXTitle(
"#it{E} (GeV)");
2133 (
"hSplitPt",
"Selected #pi^{0} (#eta) pairs #it{p}_{T} sum of split sub-clusters",nptbins,ptmin,ptmax);
2135 fhSplitPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2140 (
"hSplitPtPhi",
"Selected #pi^{0} (#eta) pairs: sum split sub-cluster #it{p}_{T} vs #varphi",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2146 (
"hSplitPtEta",
"Selected #pi^{0} (#eta) pairs: sum split sub-cluster #it{p}_{T} vs #eta",nptbins,ptmin,ptmax,netabins,etamin,etamax);
2153 nptbins,ptmin,ptmax,20,0,20);
2160 (
"hMassSplitPt",
"all pairs #it{M}: sum split sub-cluster #it{p}_{T} vs #it{M}",
2161 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2167 (
"hSelectedMassSplitPt",
"Selected #pi^{0} (#eta) pairs #it{M}: sum split sub-cluster #it{p}_{T} vs #it{M}",
2168 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2176 (
"hMassSplitPtNoOverlap",
"all pairs #it{M}: sum split sub-cluster #it{p}_{T} vs #it{M}, no overlap",
2177 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2183 (
"hSelectedMassSplitPtNoOverlap",
"Selected #pi^{0} (#eta) pairs #it{M}: sum split sub-cluster #it{p}_{T} vs #it{M}, no overlap",
2184 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2191 (
"hMCPi0PtRecoPtPrim",
"#it{p}_{T,reco} vs #it{p}_{T,gen}",
2192 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2198 (
"hMCPi0PtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} vs #it{p}_{T,gen}, no overlap",
2199 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2205 (
"hMCPi0SelectedPtRecoPtPrim",
"#it{p}_{T,reco} vs #it{p}_{T,gen}",
2206 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2212 (
"hMCPi0SelectedPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} vs #it{p}_{T,gen}, no overlap",
2213 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2220 (
"hMCPi0SplitPtRecoPtPrim",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}",
2221 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2227 (
"hMCPi0SplitPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, no overlap",
2228 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2234 (
"hMCPi0SelectedSplitPtRecoPtPrim",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}",
2235 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2241 (
"hMCPi0SelectedSplitPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, no overlap",
2242 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2248 (
"hMCEtaPtRecoPtPrim",
"#it{p}_{T,reco} vs #it{p}_{T,gen}",
2249 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2255 (
"hMCEtaPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} vs #it{p}_{T,gen}, no overlap",
2256 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2262 (
"hMCEtaSelectedPtRecoPtPrim",
"#it{p}_{T,reco} vs #it{p}_{T,gen}",
2263 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2269 (
"hMCEtaSelectedPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} vs #it{p}_{T,gen}, no overlap",
2270 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2277 (
"hMCEtaSplitPtRecoPtPrim",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}",
2278 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2284 (
"hMCEtaSplitPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, no overlap",
2285 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2291 (
"hMCEtaSelectedSplitPtRecoPtPrim",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}",
2292 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2298 (
"hMCEtaSelectedSplitPtRecoPtPrimNoOverlap",
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, no overlap",
2299 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2305 for(
Int_t inlm = 0; inlm < 3; inlm++)
2308 (Form(
"hMCPi0PtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2309 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2315 (Form(
"hMCPi0SelectedPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2316 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2322 (Form(
"hMCPi0SplitPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2323 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2329 (Form(
"hMCPi0SelectedSplitPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2330 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2336 (Form(
"hMCEtaPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2337 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2343 (Form(
"hMCEtaSelectedPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2344 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2350 (Form(
"hMCEtaSplitPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2351 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2357 (Form(
"hMCEtaSelectedSplitPtRecoPtPrimLocMax%d",inlm+1),Form(
"#it{p}_{T,reco} (split sum) vs #it{p}_{T,gen}, %s",nlm[inlm].
Data()),
2358 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2367 Form(
"cluster from %s : #it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} ) vs #it{E}",ptype[i].
Data()),
2368 nptbins,ptmin,ptmax, 200,-1,1);
2370 fhMCPtAsymmetry[i]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2374 (Form(
"hSplitE_MC%s",pname[i].
Data()),
2375 Form(
"cluster from %s, energy sum of split sub-clusters",ptype[i].
Data()),
2376 nptbins,ptmin,ptmax);
2382 (Form(
"hSplitPt_MC%s",pname[i].
Data()),
2383 Form(
"cluster from %s, #it{p}_{T} sum of split sub-clusters",ptype[i].
Data()),
2384 nptbins,ptmin,ptmax);
2386 fhMCSplitPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2391 (Form(
"hSplitPtPhi_MC%s",pname[i].
Data()),
2392 Form(
"Identified as #pi^{0} (#eta), cluster from %s",ptype[i].
Data()),
2393 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
2399 (Form(
"hSplitPtEta_MC%s",pname[i].
Data()),
2400 Form(
"Identified as #pi^{0} (#eta), cluster from %s",
2401 ptype[i].
Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
2408 (Form(
"hNLocMaxSplitPt_MC%s",pname[i].
Data()),
2409 Form(
"cluster from %s, #it{p}_{T} sum of split sub-clusters, for NLM",ptype[i].
Data()),
2410 nptbins,ptmin,ptmax,20,0,20);
2416 (Form(
"hMassSplitPt_MC%s",pname[i].
Data()),
2417 Form(
"all pairs #it{M}: split #it{p}_{T} vs #it{M} from %s",ptype[i].
Data()),
2418 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2424 (Form(
"hSelectedMassSplitPt_MC%s",pname[i].
Data()),
2425 Form(
"Selected #pi^{0} (#eta) pairs #it{M}: split #it{p}_{T} vs #it{M} from %s",ptype[i].
Data()),
2426 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2432 (Form(
"hMassSplitPtNoOverlap_MC%s",pname[i].
Data()),
2433 Form(
"all pairs #it{M}: split #it{p}_{T} vs #it{M} from %s, no overlap",ptype[i].
Data()),
2434 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2440 (Form(
"hSelectedMassSplitPtNoOverlap_MC%s",pname[i].
Data()),
2441 Form(
"Selected #pi^{0} (#eta) pairs #it{M}: split #it{p}_{T} vs #it{M} from %s, no overlap",ptype[i].
Data()),
2442 nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
2452 for(
Int_t i = 0; i< 3; i++)
2455 Form(
"Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} ), %s",nlm[i].
Data()),
2456 nptbins,ptmin,ptmax,200, -1,1);
2457 fhPtAsymmetryLocMax[i]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2462 for(
Int_t ie = 0; ie < 7; ie++)
2466 Form(
"#lambda_{0}^{2} vs A for %d < #it{E} < %d GeV",bin[ie],bin[ie+1]),
2467 ssbins,ssmin,ssmax , 200,-1,1);
2473 Form(
"#sigma^{2}_{#eta #eta} vs #it{A} for %d < #it{E} < %d GeV",bin[ie],bin[ie+1]),
2474 ssbins,ssmin,ssmax , 200,-1,1);
2476 fhAsymmetryDispEta[ie]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2480 Form(
"#sigma^{2}_{#varphi #varphi} vs #it{A} for %d < #it{E} < %d GeV",bin[ie],bin[ie+1]),
2481 ssbins,ssmin,ssmax , 200,-1,1);
2483 fhAsymmetryDispPhi[ie]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2492 for(
Int_t ie = 0; ie < 7; ie++)
2495 Form(
"cluster from %s : #lambda_{0}^{2} vs A for %d < #it{E} < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2496 ssbins,ssmin,ssmax , 200,-1,1);
2498 fhMCAsymmetryLambda0[ie][i]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2502 Form(
"cluster from %s : #sigma^{2}_{#eta #eta} vs #it{A} for %d < #it{E} < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2503 ssbins,ssmin,ssmax , 200,-1,1);
2505 fhMCAsymmetryDispEta[ie][i]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2509 Form(
"cluster from %s : #sigma^{2}_{#varphi #varphi} vs #it{A} for %d < #it{E} < %d GeV",ptype[i].
Data(),bin[ie],bin[ie+1]),
2510 ssbins,ssmin,ssmax , 200,-1,1);
2512 fhMCAsymmetryDispPhi[ie][i]->SetYTitle(
"#it{A} = ( #it{E}_{1} - #it{E}_{2} ) / ( #it{E}_{1} + #it{E}_{2} )");
2522 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
2524 for(
Int_t i = 0 ; i < 7 ; i++)
2526 fhPtPileUp[i] =
new TH1F(Form(
"hPtPileUp%s",pileUpName[i].
Data()),
2527 Form(
"Selected #pi^{0} (#eta) #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2528 fhPtPileUp[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2532 Form(
"Pt vs cell time in cluster, %s Pile-Up event",pileUpName[i].
Data()),
2533 nptbins,ptmin,ptmax,ntimptbins,timemin,timemax);
2539 Form(
"Pt vs t_{max}-t_{cell} in cluster, %s Pile-Up event",pileUpName[i].
Data()),
2540 nptbins,ptmin,ptmax,400,-200,200);
2546 fhTimePtNoCut =
new TH2F (
"hTimePt_NoCut",
"#it{t} of cluster vs #it{E} of clusters, no cut", nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
2551 fhTimePtSPD =
new TH2F (
"hTimePt_SPD",
"#it{t} of cluster vs #it{E} of clusters, SPD cut", nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
2552 fhTimePtSPD->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2556 fhTimePtSPDMulti =
new TH2F (
"hTimePt_SPDMulti",
"time of cluster vs #it{E} of clusters, SPD multi cut", nptbins,ptmin,ptmax, ntimptbins,timemin,timemax);
2561 fhTimeNPileUpVertSPD =
new TH2F (
"hTime_NPileUpVertSPD",
"#it{t} of cluster vs #it{N} pile-up SPD vertex", ntimptbins,timemin,timemax,50,0,50);
2566 fhTimeNPileUpVertTrack =
new TH2F (
"hTime_NPileUpVertTracks",
"#it{t} of cluster vs #it{N} pile-up Tracks vertex", ntimptbins,timemin,timemax, 50,0,50 );
2571 fhTimeNPileUpVertContributors =
new TH2F (
"hTime_NPileUpVertContributors",
"#it{t} of cluster vs #it{N} constributors to pile-up SPD vertex", ntimptbins,timemin,timemax,50,0,50);
2576 fhTimePileUpMainVertexZDistance =
new TH2F (
"hTime_PileUpMainVertexZDistance",
"#it{t} of cluster vs distance in #it{Z} pile-up SPD vertex - main SPD vertex",ntimptbins,timemin,timemax,100,0,50);
2581 fhTimePileUpMainVertexZDiamond =
new TH2F (
"hTime_PileUpMainVertexZDiamond",
"#it{t} of cluster vs distance in #it{Z} pile-up SPD vertex - z diamond",ntimptbins,timemin,timemax,100,0,50);
2586 fhPtNPileUpSPDVtx =
new TH2F (
"hPt_NPileUpVertSPD",
"#it{p}_{T} of cluster vs #it{N} pile-up SPD vertex",
2587 nptbins,ptmin,ptmax,20,0,20);
2592 fhPtNPileUpTrkVtx =
new TH2F (
"hPt_NPileUpVertTracks",
"#it{p}_{T} of cluster vs #it{N} pile-up Tracks vertex",
2593 nptbins,ptmin,ptmax, 20,0,20 );
2599 nptbins,ptmin,ptmax,20,0,20);
2604 fhPtNPileUpTrkVtxTimeCut =
new TH2F (
"hPt_NPileUpVertTracks_TimeCut",
"#it{p}_{T} of cluster vs N pile-up Tracks vertex, |tof| < 25 ns",
2605 nptbins,ptmin,ptmax, 20,0,20 );
2611 nptbins,ptmin,ptmax,20,0,20);
2616 fhPtNPileUpTrkVtxTimeCut2 =
new TH2F (
"hPt_NPileUpVertTracks_TimeCut2",
"#it{p}_{T} of cluster vs N pile-up Tracks vertex, -25 < tof < 75 ns",
2617 nptbins,ptmin,ptmax, 20,0,20 );
2632 for(
Int_t i = 0; i < nmsHistos->GetEntries(); i++) outputContainer->Add(nmsHistos->At(i)) ;
2637 return outputContainer ;
2692 if(label1 < 0 || label2 < 0 || label1 == label2) return ;
2694 AliDebug(0,Form(
"Origin of: photon1 %d; photon2 %d",tag1, tag2));
2703 Int_t ndaugh1 = -1, ndaugh2 = -1;
2707 AliVParticle * mother1 =
GetMC()->GetTrack(label1);
2708 label1 = mother1->GetMother();
2709 mother1 =
GetMC()->GetTrack(label1);
2710 pdg1 = mother1->PdgCode();
2711 ndaugh1 = mother1->GetNDaughters();
2716 AliVParticle * mother2 =
GetMC()->GetTrack(label2);
2717 label2 = mother2->GetMother();
2718 mother2 =
GetMC()->GetTrack(label2);
2720 ndaugh2 = mother2->GetNDaughters();
2724 if ( label1 == label2 && label1 >= 0 && ndaugh1 == ndaugh2 && ndaugh1 == 2 )
2747 else if ( pdg1 == 221 )
2768 AliFatal(
"STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
2770 AliFatal(
"STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
2803 AliDebug(1,Form(
"Start analysis type %d",
fAnaType));
2834 AliFatal(Form(
"No input calo photons in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
2847 AliVCluster *cluster1 = 0;
2848 AliVCluster *cluster2 = 0;
2851 for(
Int_t iphoton = 0; iphoton < nphoton-1; iphoton++ )
2857 Int_t evtIndex1 = 0 ;
2871 if(!cluster1) AliWarning(
"First cluster not found");
2884 for(
Int_t jphoton = iphoton+1; jphoton < nphoton; jphoton++ )
2893 if(!isolated1 && !isolated2)
continue;
2898 Int_t evtIndex2 = 0 ;
2903 if(evtIndex1 == evtIndex2)
2920 if(angleOp >
DegToRad(100.))
continue;
2957 if(nMaxima1==nMaxima2)
2963 else if(nMaxima1==1 || nMaxima2==1)
2972 if(nMaxima1 == 1 && photon2->
GetM02() > 0.3)
2975 if(nMaxima2 == 1 && photon1->
GetM02() > 0.3)
2978 if(nMaxima1 > 1 && photon2->
GetM02() < 0.3 && photon2->
GetM02() > 0.1 )
2981 if(nMaxima2 > 1 && photon1->
GetM02() < 0.3 && photon1->
GetM02() > 0.1 )
2988 if((nMaxima1 < fNLMCutMin || nMaxima1 >
fNLMCutMax) || (nMaxima2 < fNLMCutMin || nMaxima2 >
fNLMCutMax))
2990 AliDebug(1,Form(
"NLM out of range: cluster1 %d, cluster2 %d",nMaxima1, nMaxima2));
3012 if(photon1->
Pt() >= photon2->
Pt())
3039 AliDebug(1,Form(
"Selected gamma pair: pt %f, phi %f, eta%f",
3047 if( bit1 < 0 ) bit1 = 0 ;
3055 AliDebug(1,Form(
"\t Out %d", bit1));
3087 if( bit2 < 0 ) bit2 = 0 ;
3095 AliDebug(1,Form(
"\t Out %d", bit2));
3108 if(!cluster2) AliWarning(
"Second cluster not found");
3148 AliWarning(
"Particle type declared in AliNeutralMeson not correct, do not add");
3167 AliDebug(1,
"End fill AODs");
3182 AliFatal(Form(
"No input calo photons in AOD branch with name < %s > , STOP",
GetInputAODName().
Data()));
3187 if(!inputAODGammaConv)
3191 if(!inputAODGammaConv)
3193 AliFatal(Form(
"No input gamma conversions in AOD branch with name < %s >",
fInputAODGammaConvName.Data()));
3206 AliVCluster * cluster = 0;
3208 Int_t nCTS = inputAODGammaConv->GetEntriesFast();
3210 if(nCTS<=0 || nCalo <=0)
3212 AliDebug(1,Form(
"nCalo %d, nCTS %d, cannot loop",nCalo,nCTS));
3216 AliDebug(1,Form(
"Number of conversion photons %d and number of clusters %d",nCTS,nCalo));
3229 if(!isolated1)
continue;
3238 if(!cluster) AliWarning(
"Cluster not found");
3249 for(
Int_t jphoton = 0; jphoton < nCTS; jphoton++)
3276 if(nMaxima < fNLMCutMin || nMaxima >
fNLMCutMax)
3278 AliDebug(1,Form(
"NLM %d out of range",nMaxima));
3290 GetReader()->GetNameOfMCEventHederGeneratorToAccept()));
3302 if(photon1->
Pt() >= photon2->
Pt())
3327 if( bit1 < 0 ) bit1 = 0 ;
3353 if( bit2 < 0 ) bit2 = 0 ;
3380 AliWarning(
"Particle type declared in AliNeutralMeson not correct, do not add");
3387 pi0.SetLabel(label);
3401 AliDebug(1,
"End fill AODs");
3420 AliVCaloCells * cells = 0x0;
3430 AliFatal(
"kSSCalo case not implememted for PHOS");
3443 for(
Int_t icalo = 0; icalo < pl->GetEntriesFast(); icalo++)
3445 AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
3447 Int_t evtIndex = 0 ;
3450 evtIndex=
GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
3472 if(! in ) continue ;
3475 AliDebug(1,Form(
"Min pt cut and fiducial cut passed: pt %3.2f, phi %2.2f, eta %1.2f",
fMomentum.Pt(),
fMomentum.Phi(),
fMomentum.Eta()));
3484 AliDebug(1,Form(
"Origin of candidate %d",tag));
3490 Double_t distBad=calo->GetDistanceToBadChannel() ;
3491 if(distBad < 0.) distBad=9999. ;
3499 AliDebug(1,Form(
"Bad channel cut passed %4.2f",distBad));
3523 Int_t absId1 =-1, absId2 =-1;
3524 Float_t distbad1 =-1, distbad2 =-1;
3525 Bool_t fidcut1 = 0, fidcut2 = 0;
3536 AliDebug(1,Form(
"PDG of identified particle %d",idPartType));
3542 AliDebug(1,Form(
"Dist to bad channel cl %f, cl1 %f, cl2 %f; fid cl1 %d, cl2 %d",
3543 calo->GetDistanceToBadChannel(),distbad1,distbad2, fidcut1,fidcut2));
3550 if(nMaxima < fNLMCutMin || nMaxima >
fNLMCutMax)
3556 AliDebug(1,Form(
"NLM %d accepted",nMaxima));
3593 if(e1+e2 > 0) asy = (e1-e2) / (e1+e2);
3597 Int_t indexMax = -1;
3598 if (nMaxima==1) indexMax = 0 ;
3599 else if(nMaxima==2) indexMax = 1 ;
3605 Int_t noverlaps = 0;
3607 Int_t mesonLabel = -1;
3614 Int_t mcLabel = calo->GetLabel();
3633 const UInt_t nlabels = calo->GetNLabels();
3634 Int_t overpdg[nlabels];
3635 Int_t overlab[nlabels];
3684 AliDebug(1,
"Cluster is not Pi0");
3691 AliDebug(1,
"Cluster is not Eta");
3696 AliDebug(1,Form(
"Pi0/Eta selection cuts passed: pT %3.2f, pdg %d",
fMomentum.Pt(), idPartType));
3750 if(phi<0) phi+=TMath::TwoPi();
3759 Double_t tof1 = cells->GetCellTime(absId1);
3763 Double_t tof2 = cells->GetCellTime(absId2);
3803 Double_t tofcluster = calo->GetTOF()*1e9;
3841 AliDebug(1,
"End fill AODs");
3859 AliDebug(1,Form(
"AOD branch entries %d", naod));
3864 for(
Int_t iaod = 0; iaod < naod ; iaod++)
3875 if(phi < 0) phi+=TMath::TwoPi();
3911 Int_t momlabel = -1;
3965 AliVParticle* ancestor =
GetMC()->GetTrack(label);
3966 Int_t status = ancestor->MCStatusCode();
3967 Int_t momindex = ancestor->GetMother();
3969 if(momindex < 0)
return;
3971 AliVParticle* mother =
GetMC()->GetTrack(momindex);
3972 Int_t mompdg = TMath::Abs(mother->PdgCode());
3973 Int_t momstatus = mother->MCStatusCode();
3974 Float_t prodR = TMath::Sqrt(mother->Xv()*mother->Xv()+mother->Yv()*mother->Yv());
4008 else if (mcIndex==
kmcEta )
4039 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
4043 printf(
"Analysis Type = %d \n",
fAnaType) ;
4048 printf(
"Min Distance to Bad Channel = %2.1f\n",
fMinDist);
4049 printf(
"Min Distance to Bad Channel 2 = %2.1f\n",
fMinDist2);
4050 printf(
"Min Distance to Bad Channel 3 = %2.1f\n",
fMinDist3);
Bool_t IsPileUpFromSPD() const
virtual Bool_t IsFiducialCutOn() const
Float_t GetHistoPtMax() const
TString fInputAODGammaConvName
Name of AOD branch with conversion photons.
TH2F * fhPtDispersionLocMax[3]
! pT vs lambda1 of selected cluster, 1,2,>2 local maxima in cluster
TH2F * fhMCEtaSelectedPtRecoPtPrimNoOverlap
! pt reco vs pt prim for eta mother
TH2F * fhMCPi0ProdVertex
! Spectrum of selected pi0 vs production vertex
Bool_t fFillOnlySimpleSSHisto
Fill selected cluster histograms, selected SS histograms.
virtual Double_t Eta() const
TH2F * fhMCMassPtNoOverlap[fgkNmcTypes]
! Pair pT vs Mass coming from X, no random particles overlap
virtual void SetNLM(Int_t nlm)
TH2F * fhMCMassPt[fgkNmcTypes]
! Pair pT vs Mass coming from X
TH2F * fhSelectedMassPtLocMax[3]
! Pair mass vs pT, for selected pairs, for each NLM case
TH2F * fhMCPtDispersion[fgkNmcTypes]
! pT vs dispersion of pi0 pairs but really from MC particle
TH2F * fhPtNPileUpSPDVtxTimeCut2
! Cluster pt vs number of spd pile-up vertices, time cut +-75 ns
TH1F * fhMCPtDecay[fgkNmcTypes]
! pT from MC particle
TH2F * fhMCEtaPtRecoPtPrimLocMax[3]
! pt reco vs pt prim for eta mother, vs NLM
virtual Double_t Pt() const
TH2F * fhPtLambda0NoTRD
! pT vs lambda0 of selected cluster, not behind TRD
Int_t GetHistoNClusterCellMin() const
Bool_t fFillWeightHistograms
Fill weigth histograms.
TH2F * fhdEdx
! Matched track dEdx vs cluster E
Float_t GetHistoPtMin() const
TList * GetCreateOutputObjects()
TH2F * fhTimePtSPDMulti
! Time of cluster vs pT, IsSPDPileUpMulti
Int_t GetHistoShowerShapeBins() const
virtual Int_t GetCalorimeter() const
Float_t GetHistodEdxMax() const
virtual void AddAODParticle(AliCaloTrackParticle part)
virtual void AddToHistogramsName(TString add)
virtual AliVCaloCells * GetEMCALCells() const
TH2F * fhSelectedMassPtLocMaxSM[3][22]
! Pair mass vs pT, for selected pairs, for each NLM case, for each SM
TLorentzVector GetMother(Int_t label, const AliMCEvent *mcevent, Bool_t &ok)
TLorentzVector GetMotherWithPDG(Int_t label, Int_t pdg, const AliMCEvent *mcevent, Bool_t &ok, Int_t &momLabel)
TH2F * fhPtDispPhiLocMax[3]
! pT vs phi dispersion of selected cluster, 1,2,>2 local maxima in cluster
anaTypes fAnaType
Select analysis type.
TH2F * fhPtDispEtaLocMax[3]
! pT vs eta dispersion of selected cluster, 1,2,>2 local maxima in cluster
virtual Bool_t IsDataMC() const
TH1F * fhPtReject
! Number of rejected as pi0/eta vs pT
TH2F * fhMassPtIsoRCut
! Pair mass vs pT, for all pairs when opening angle not larger than iso cone radius ...
Float_t fR
Isolation cone.
Int_t fLastModule
Last EMCAL/PHOS module, set in CaloUtils or depending fidutial cuts.
TH2F * fhPtCentrality
! Centrality vs pi0/eta pT
AliEMCALRecoUtils * GetEMCALRecoUtils() const
TH1F * fhMCPtDecayLostPairEta
! pT for tagged clustres when MC Eta Decay, when companion is lost
TH2F * fhMCPtLambda0FracMaxCellCut[fgkNmcTypes]
! pT vs lambda0 of pi0 pairs but really from MC particle, fraction of cluster energy in max cell cut ...
virtual Float_t GetPairTimeCut() const
Time cut in ns.
TH2F * fhTimePtSPD
! Time of cluster vs pT, IsSPDPileUp
virtual void GetVertex(Double_t vertex[3]) const
TH2F * fhSelectedMassPt
! Pair mass vs pT, for selected pairs
TH2F * fhMCPtDispEta[fgkNmcTypes]
! Shower dispersion in eta direction
TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth
! Time distribution of pi0s in event, when trigger is not found, rematched open both ...
virtual TString GetInputAODName() const
virtual TString GetNameOfMCEventHederGeneratorToAccept() const
TH2F * fhMCPi0SelectedPtRecoPtPrimNoOverlap
! pt reco vs pt prim for pi0 mother
TH2F * fhNLocMaxSplitPt
! Split sub-cluster pair pT sum, as a function of n maxima
TH2F * fhEPairDiffTime
! E pair vs Pair of clusters time difference vs E
TH2F * fhMassSplitPtNoOverlap
! Pair mass vs pT (split), for all pairs, no overlap
virtual Int_t GetLabel() const
TH1F * fhMCEReject[fgkNmcTypes]
! Number of rejected as pi0 vs E coming from X
TH2F * fhMCEtaDecayPtFraction
! SS id, clusters id as pi0 (eta), coming from 1 photon, eta decay primary, pt vs pt decay / pt mothe...
virtual AliVEvent * GetInputEvent() const
TH2F * fhPtDispEtaPhiDiffLocMax[3]
! pT vs dispersion eta - phi
virtual void SetNCells(Int_t nce)
TH2F * fhMCPi0SelectedPtRecoPtPrim
! pt reco vs pt prim for pi0 mother
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
Bool_t fRejectTrackMatch
Remove clusters which have an associated TPC track.
TH2F * fhMCSelectedMassPt[fgkNmcTypes]
! selected pair pT vs Mass coming from X
TH2F * fhMCDispEtaDispPhi[7][fgkNmcTypes]
! Shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
Int_t fNLMCutMin
Remove clusters/cells with number of local maxima smaller than this value.
Float_t DegToRad(Float_t deg) const
virtual AliIsolationCut * GetIsolationCut()
TH2F * fhMCLambda0DispPhi[7][fgkNmcTypes]
! Shower shape correlation l0 vs disp phi
TH2F * fhPtSumEtaPhi
! Shower dispersion in eta and phi direction
TH2F * fhMCNLocMaxPtReject[fgkNmcTypes]
! Number of maxima in selected clusters
TH2F * fhMCPi0SelectedSplitPtRecoPtPrimLocMax[3]
! pt split reco vs pt prim for pi0 mother, vs NLM
virtual Float_t GetZvertexCut() const
Maximal number of events for mixin.
TH2F * fhPtDispEta
! Shower dispersion in eta direction
Int_t fNModules
Number of EMCAL/PHOS modules to use in analysis, set in CaloUtils.
virtual Double_t GetEventPlaneAngle() const
TH2F * fhPtPhiReject
! pT vs phi of rejected as pi0/eta
Double_t fTimeCutMax
Remove clusters/cells with time larger than this value, in ns.
TH1F * fhMCSplitPt[fgkNmcTypes]
! Number of identified as pi0 vs sum Pt split coming from X
TH2F * fhMCPi0PtRecoPtPrim
! pt reco vs pt prim for pi0 mother
virtual Bool_t IsTrackMatched(AliVCluster *cluster, AliVEvent *event)
TH2F * fhTrackMatchedMCParticleDPhi
! Trace origin of matched particle, phi residual
virtual Int_t GetTrackLabel(Int_t i) const
virtual Bool_t IsPileUpAnalysisOn() const
TH2F * fhMassPt
! Pair mass vs pT, for all pairs
TH2F * fhMCPi0PtStatus
! Mass of reoconstructed pi0 pairs in calorimeter vs mother
TH2F * fhSplitPtEta
! Split sub-cluster pair pT sum vs eta
void MakeAnalysisFillAOD()
virtual AliNeutralMesonSelection * GetNeutralMesonSelection()
Int_t GetHistoMassBins() const
Int_t GetHistoPhiBins() const
TH2F * fhEMaxCellClusterLogRatio
! Log (e max cell / e cluster) vs e cluster for selected photons
TH2F * fhEtaPhiEMCALBC0
! Pseudorapidity vs Phi of clusters
TH2F * fhMCAsymmetryDispPhi[7][fgkNmcTypes]
! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhPtSphericityLocMax[3]
! pT vs sphericity in eta vs phi
Float_t GetHistoMassMin() const
void InitParameters()
Initialize the parameters of the analysis with default values.
TH2F * fhTimePileUpMainVertexZDiamond
! Time of cluster vs difference of z diamond and pile-up vertex
TH2F * fhTimeNPileUpVertContributors
! Time of cluster vs n pile-up vertex from SPD contributors
Select cluster pairs or single merged clusters with pi0 or eta invariant mass.
void MakeAnalysisFillHistograms()
virtual void SetDetectorTag(UInt_t d)
virtual Int_t GetNLM() const
TH2F * fhAsymmetryLambda0[7]
! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
void FillSelectedClusterHistograms(AliVCluster *cluster, Float_t pt, Int_t nLocMax, Int_t tag, Float_t asy=0)
Fill shower shape, timing and other histograms for selected clusters.
virtual Bool_t IsIsolated() const
Float_t GetHistoTrackResidualPhiMin() const
TLorentzVector fMomentum
! Cluster/pi0 momentum, kinematic temporal containers.
virtual Int_t GetEventCentrality() const
Double_t fTimeCutMin
Remove clusters/cells with time smaller than this value, in ns.
Float_t fIsoCandMinPt
Isolation candidate minimum pT.
Float_t GetHistoTrackResidualEtaMin() const
2 calorimeter clusters invariant mass selection
Int_t GetHistoNClusterCellBins() const
Float_t fM02MinCutForIM
Study photon clusters with l0 larger than cut, in inv. mass analysis.
virtual TClonesArray * GetOutputAODBranch() const
virtual void SetTime(Float_t tim)
TH2F * fhMCEtaProdVertex
! Spectrum of selected eta vs production vertex
Float_t GetHistoDiffTimeMin() const
TH2F * fhMCSelectedMassSplitPt[fgkNmcTypes]
! selected pair pT (split) vs Mass coming from X
virtual UInt_t GetDetectorTag() const
TH2F * fhMCPtLambda0LocMax[fgkNmcTypes][3]
! pT vs lambda0 of selected cluster, 1,2,>2 local maxima in cluster, vs originating particle ...
Int_t GetHistoPOverEBins() const
TH1F * fhMCSplitE[fgkNmcTypes]
! Number of identified as pi0 vs sum E split coming from X
TH1F * fhPt
! Number of identified pi0/eta vs pT
TH2F * fhMCPi0PtRecoPtPrimNoOverlap
! pt reco vs pt prim for pi0 mother
TH2F * fhSelectedLambda0PtLocMaxSM[3][22]
! Pair mass vs pT, for selected pairs, for each NLM case, for each SM
TH1F * fhMCPt[fgkNmcTypes]
! Number of identified as pi0 vs Pt coming from X
virtual void SetIdentifiedParticleType(Int_t pdg)
Float_t fMinDist3
One more cut on distance used for acceptance-efficiency study.
Float_t GetHistoPhiMin() const
TH2F * fhTrackMatchedDEtaDPhiNeg
! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
void SetTagBit(Int_t &tag, UInt_t set) const
TH2F * fhPtLambda0
! pT vs lambda0 of selected cluster
Float_t GetHistoDiffTimeMax() const
virtual Double_t E() const
static const Int_t fgkNmcTypes
Total number of MC origin histograms.
TH2F * fhEOverP
! Matched track E cluster over P track vs cluster E
TH2F * fhAsymmetryDispPhi[7]
! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime
! Time distribution of pi0s in event, when trigger is not found, rematched open time trigger ...
TH2F * fhPtSphericity
! Shower sphericity in eta vs phi
TH2F * fhEMaxCellClusterRatio
! E max cell / e cluster vs e cluster for selected photons
TString GetPIDParametersList()
Put data member values in string to keep in output container.
TH2F * fhMCLambda0DispEta[7][fgkNmcTypes]
! Shower shape correlation l0 vs disp eta
TH2F * fhTrackMatchedDEta
! Eta distance between track and cluster vs cluster E
TH2F * fhEtaPhiTriggerEMCALBC[11]
! Pseudorapidity vs Phi of pi0 for E > 2
TH2F * fhMCPtDispPhi[fgkNmcTypes]
! Shower dispersion in phi direction
virtual TString GetOutputAODName() const
TH2F * fhAsymmetryDispEta[7]
! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
virtual Float_t GetMinEnergy() const
TH2F * fhMassPtMaxPair
! Pair mass vs pT max of the pair, for all pairs
TH2F * fhPtLambda0FracMaxCellCut
! pT vs lambda0 of selected cluster, fraction of cluster energy in max cell cut
TH1F * fhMCEtaDecayPt
! SS id, clusters id as pi0 (eta), coming from 1 photon, eta decay primary, pt
Daughter of AliCaloTrackParticle that includes correlation part.
TH2F * fhTimeTriggerEMCALBCPileUpSPD[11]
! Time distribution of pi0, when trigger is in a given BC, tagged as pile-up SPD
Float_t GetHistoMassMax() const
TList * GetCreateOutputObjects()
TH2F * fhMCEtaSplitPtRecoPtPrimNoOverlap
! pt split reco vs pt prim for eta mother
Base class for CaloTrackCorr analysis algorithms.
void MakeInvMassInCalorimeterAndCTS()
TH2F * fhPtEta
! Pt vs eta of identified pi0/eta
1 calorimeter cluster and 1 photon conversion pair invariant mass selection
virtual TString GetCalorimeterString() const
TH2F * fhPtNCells
! pT vs N cells in selected cluster
void FillEMCALBCHistograms(Float_t energy, Float_t eta, Float_t phi, Float_t time)
TH1F * fhMCOtherDecayPt
! SS id, clusters id as pi0 (eta), coming from 1 photon, other decay primary, pt
TH2F * fhTimePileUpMainVertexZDistance
! Time of cluster vs difference of z main vertex and pile-up vertex
Float_t GetHistodEdxMin() const
virtual AliFiducialCut * GetFiducialCut()
UInt_t GetDecayBit() const
TH2F * fhPtDispersion
! pT vs disp of selected cluster
TH2F * fhMCAsymmetryLambda0[7][fgkNmcTypes]
! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
virtual TClonesArray * GetInputAODBranch() const
TH2F * fhMCEtaPtRecoPtPrim
! pt reco vs pt prim for eta mother
TH2F * fhMCSplitPtPhi[fgkNmcTypes]
! pt vs phi of identified as pi0, coming from X
TH2F * fhNLocMaxPtReject
! Number of maxima in selected clusters
Container for input particle information on CaloTrackCorr package.
TH1F * fhPtPileUp[7]
! pT distribution of selected pi0/eta
TH2F * fhMCSelectedMassSplitPtNoOverlap[fgkNmcTypes]
! selected pair pT (split) vs Mass coming from X, no random particles overlap
virtual AliHistogramRanges * GetHistogramRanges()
Bool_t AcceptCalibrateCell(Int_t absId, Int_t bc, Float_t &, Double_t &time, AliVCaloCells *cells)
TH2F * fhMCEtaSelectedSplitPtRecoPtPrimLocMax[3]
! pt split reco vs pt prim for eta mother, vs NLM
Int_t GetHistoDiffTimeBins() const
void RecalculateClusterShowerShapeParameters(const AliEMCALGeometry *geom, AliVCaloCells *cells, AliVCluster *cluster)
TH2F * fhMCSelectedMassPtNoOverlap[fgkNmcTypes]
! selected pair pT vs Mass coming from X, no random particles overlap
Float_t GetHistoTrackResidualPhiMax() const
Bool_t fCheckSplitDistToBad
Check the distance to bad channel and to EMCal borders of split clusters.
TH2F * fhMCEtaPtGenRecoFraction
! SS id, clusters id as pi0 (eta), coming from 2 photon, eta primary, pt vs E prim eta / E reco ...
TH2F * fhMCPi0SelectedSplitPtRecoPtPrim
! pt split reco vs pt prim for pi0 mother
TH2F * fhPtLambda0LocMax[3]
! pT vs lambda0 of selected cluster, 1,2,>2 local maxima in cluster
TH2F * fhEtaPhi
! eta vs phi of identified pi0/eta
TH2F * fhMCPtLambda1[fgkNmcTypes]
! pT vs lambda1 of pi0 pairs but really from MC particle
TH2F * fhTrackMatchedDPhiPos
! Phi distance between track and cluster vs cluster E
TH2F * fhMCPtPhi[fgkNmcTypes]
! pt vs phi of identified as pi0, coming from X
virtual AliEMCALGeometry * GetEMCALGeometry() const
TH2F * fhMCEtaSplitPtRecoPtPrim
! pt split reco vs pt prim for eta mother
TH2F * fhPtEventPlane
! Event plane vs pi0/eta pT
TH2F * fhMCNLocMaxPt[fgkNmcTypes]
! Number of maxima in selected clusters, vs originating particle
TH2F * fhPtEtaReject
! pT vs eta of rejected as pi0/eta
TH2F * fhMCEtaSelectedSplitPtRecoPtPrim
! pt split reco vs pt prim for eta mother
TH2F * fhMCEtaSelectedPtRecoPtPrimLocMax[3]
! pt reco vs pt prim for eta mother, vs NLM
Bool_t IsInFiducialCut(Float_t eta, Float_t phi, Int_t det) const
virtual AliAODEvent * GetOutputEvent() const
TH2F * fhSelectedAsymmetry
! Cluster pT vs asymmetry of 2 splitted clusters, for selected pairs
TH2F * fhEtaPhiReject
! eta vs phi of rejected as pi0/eta
virtual Bool_t NewOutputAOD() const
Float_t GetHistoShowerShapeMin() const
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH1F * fhPtDecay
! Number of identified pi0/eta decay photons vs pT
TH2F * fhMCPi0SplitPtRecoPtPrimNoOverlap
! pt split reco vs pt prim for pi0 mother
TH2F * fhLambda0DispEta[7]
! Shower shape correlation l0 vs disp eta
TLorentzVector fMomentum1
! Cluster/photon momentum, kinematic temporal containers.
TH2F * fhPtSumPhi
! Shower dispersion in phi direction
TLorentzVector * GetMomentum() const
Int_t GetHistodEdxBins() const
virtual AliCalorimeterUtils * GetCaloUtils() const
TH2F * fhMCPtEta[fgkNmcTypes]
! pt vs eta of identified as pi0, coming from X
Int_t GetHistoNClusterCellMax() const
TH2F * fhMassPtNoOverlap
! Pair mass vs pT, for all pairs, no overlap
Int_t GetHistoTrackResidualEtaBins() const
TH2F * fhMCPtAsymmetry[fgkNmcTypes]
! E asymmetry of 2 splitted clusters vs cluster pT
TH2F * fhMCEtaSelectedPtRecoPtPrim
! pt reco vs pt prim for eta mother
Int_t GetTriggerClusterBC() const
TH2F * fhEtaPhiEMCALBCN
! Pseudorapidity vs Phi of clusters
TH2F * fhMCSplitPtEta[fgkNmcTypes]
! pt vs eta of identified as pi0, coming from X
Int_t GetClusterSplittingMinNCells() const
Int_t GetHistoTrackResidualPhiBins() const
virtual Bool_t IsHighMultiplicityAnalysisOn() const
TH2F * fhMCPi0SelectedPtRecoPtPrimLocMax[3]
! pt reco vs pt prim for pi0 mother, vs NLM
TLorentzVector fGrandMotherMom
! Primary momentum, kinematic temporal containers.
virtual Float_t GetTime() const
TH2F * fhMCEtaPtRecoPtPrimNoOverlap
! pt reco vs pt prim for eta mother
TH2F * fhMassPairMCEta
! Pair mass, origin is same eta
virtual Double_t GetEventWeight() const
TH2F * fhPtSumEtaPhiLocMax[3]
! pT vs dispersion in eta and phi direction
TH2F * fhPtNPileUpSPDVtx
! Cluster pt vs number of spd pile-up vertices
virtual void SetM02(Float_t m02)
TH2F * fhPtNPileUpTrkVtxTimeCut2
! Cluster pt vs number of track pile-up vertices, time cut +- 75 ns
TH2F * fhMassPtMinPair
! Pair mass vs pT min of the pair, for all pairs
virtual AliCaloPID * GetCaloPID()
Bool_t SelectPair(TLorentzVector particlei, TLorentzVector particlej, Int_t calo)
virtual void SetDecayTag(Int_t tag)
TH2F * fhMCEtaPtOrigin
! Mass of reoconstructed pi0 pairs in calorimeter vs mother
TH2F * fhMCPi0PtGenRecoFraction
! SS id, clusters id as pi0 (eta), coming from 2 photon, pi0 primary, pt vs E prim pi0 / E reco ...
TH1F * fhMCE[fgkNmcTypes]
! Number of identified as pi0 vs E coming from X
TH2F * fhPtTimeDiffPileUp[7]
! pT vs Time difference inside cluster, before any selection
virtual TObjArray * GetPHOSClusters() const
TH2F * fhMCPtCentrality[fgkNmcTypes]
! Centrality vs pi0/eta pT coming from X
Float_t GetHistoEtaMin() const
TH2F * fhMCPi0SplitPtRecoPtPrim
! pt split reco vs pt prim for pi0 mother
virtual void SetLabel(Int_t l)
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
virtual void SetTag(Int_t tag)
TH2F * fhEtaPhiTriggerEMCALBCUM[11]
! Pseudorapidity vs Phi of pi0 for E > 2, not matched to trigger
virtual AliMCEvent * GetMC() const
virtual void SetSModNumber(Int_t sm)
TH2F * fhTrackMatchedDEtaDPhi
! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
TH2F * fhMCEtaSelectedSplitPtRecoPtPrimNoOverlap
! pt split reco vs pt prim for eta mother
Float_t fNLMECutMin[3]
Minimum energy of the cluster, depending on NLM.
TH2F * fhMCPtSphericity[fgkNmcTypes]
! Shower sphericity, eta vs phi
TH2F * fhMCPtLambda0[fgkNmcTypes]
! pT vs lambda0 of pi0 pairs but really from MC particle
TH2F * fhECellClusterLogRatio
! Log (e cell / e cluster) vs e cluster for selected photons
TH2F * fhMassPtLocMax[3]
! Pair mass vs pT, for all pairs, for each NLM case
TH2F * fhPtAsymmetryLocMax[3]
! E asymmetry of 2 splitted clusters vs cluster E for different NLM
TH2F * fhPtTime
! pT vs Time of selected cluster
TH2F * fhPtFracMaxCellNoTRD
! pT vs frac max cell of selected cluster, not behind TRD