18 #include <TClonesArray.h>
19 #include <TObjString.h>
20 #include "TParticle.h"
21 #include "TDatabasePDG.h"
30 #include "AliVCluster.h"
31 #include "AliAODMCParticle.h"
32 #include "AliMixedEvent.h"
33 #include "AliAODEvent.h"
34 #include "AliESDEvent.h"
35 #include "AliMCEvent.h"
38 #include "AliPHOSGeoUtils.h"
39 #include "AliEMCALGeometry.h"
51 fMinDist(0.), fMinDist2(0.), fMinDist3(0.),
52 fRejectTrackMatch(0), fFillTMHisto(kFALSE),
53 fTimeCutMin(-10000), fTimeCutMax(10000),
55 fNLMCutMin(-1), fNLMCutMax(10),
56 fFillSSHistograms(0), fFillEMCALRegionSSHistograms(0),
57 fFillConversionVertexHisto(0),fFillOnlySimpleSSHisto(1),
58 fFillSSNLocMaxHisto(0),
59 fNOriginHistograms(9), fNPrimaryHistograms(5),
60 fMomentum(), fMomentum2(),
61 fPrimaryMom(), fProdVertex(),
62 fConstantTimeShift(0), fFillEBinAcceptanceHisto(0), fNEBinCuts(0),
63 fStudyActivityNearCluster(0),
67 fhNCellsE(0), fhCellsE(0),
68 fhMaxCellDiffClusterE(0), fhTimePt(0), fhEtaPhi(0),
70 fhEPhoton(0), fhPtPhoton(0),
71 fhPhiPhoton(0), fhEtaPhoton(0),
72 fhEtaPhiPhoton(0), fhEtaPhi05Photon(0),
73 fhPtCentralityPhoton(0), fhPtEventPlanePhoton(0),
77 fhDispE(0), fhDispPt(0),
78 fhLam0E(0), fhLam0Pt(0),
79 fhLam1E(0), fhLam1Pt(0),
80 fhLam0PtNLM1(0), fhLam0PtNLM2(0),
81 fhLam1PtNLM1(0), fhLam1PtNLM2(0),
82 fhDispETRD(0), fhLam0ETRD(0), fhLam0PtTRD(0), fhLam1ETRD(0),
83 fhDispETM(0), fhLam0ETM(0), fhLam0PtTM(0), fhLam1ETM(0),
84 fhDispETMTRD(0), fhLam0ETMTRD(0), fhLam0PtTMTRD(0), fhLam1ETMTRD(0),
86 fhNCellsLam0LowE(0), fhNCellsLam1LowE(0), fhNCellsDispLowE(0),
87 fhNCellsLam0HighE(0), fhNCellsLam1HighE(0), fhNCellsDispHighE(0),
89 fhEtaLam0LowE(0), fhPhiLam0LowE(0),
90 fhEtaLam0HighE(0), fhPhiLam0HighE(0),
91 fhLam0DispLowE(0), fhLam0DispHighE(0),
92 fhLam1Lam0LowE(0), fhLam1Lam0HighE(0),
93 fhDispLam1LowE(0), fhDispLam1HighE(0),
94 fhDispEtaE(0), fhDispPhiE(0),
95 fhSumEtaE(0), fhSumPhiE(0), fhSumEtaPhiE(0),
96 fhDispEtaPhiDiffE(0), fhSphericityE(0),
97 fhDispSumEtaDiffE(0), fhDispSumPhiDiffE(0),
100 fhMCPhotonELambda0NoOverlap(0), fhMCPhotonELambda0TwoOverlap(0), fhMCPhotonELambda0NOverlap(0),
102 fhEmbeddedSignalFractionEnergy(0),
103 fhEmbedPhotonELambda0FullSignal(0), fhEmbedPhotonELambda0MostlySignal(0),
104 fhEmbedPhotonELambda0MostlyBkg(0), fhEmbedPhotonELambda0FullBkg(0),
105 fhEmbedPi0ELambda0FullSignal(0), fhEmbedPi0ELambda0MostlySignal(0),
106 fhEmbedPi0ELambda0MostlyBkg(0), fhEmbedPi0ELambda0FullBkg(0),
108 fhTimePtPhotonNoCut(0), fhTimePtPhotonSPD(0),
109 fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
110 fhPtPhotonNPileUpSPDVtx(0), fhPtPhotonNPileUpTrkVtx(0),
111 fhPtPhotonNPileUpSPDVtxTimeCut(0), fhPtPhotonNPileUpTrkVtxTimeCut(0),
112 fhPtPhotonNPileUpSPDVtxTimeCut2(0), fhPtPhotonNPileUpTrkVtxTimeCut2(0),
114 fhEClusterSM(0), fhEPhotonSM(0),
115 fhPtClusterSM(0), fhPtPhotonSM(0),
116 fhMCConversionVertex(0), fhMCConversionVertexTRD(0),
120 fhLocalRegionClusterEnergySumHijing2(0),
121 fhLocalRegionClusterMultiplicityHijing2(0),
122 fhLocalRegionClusterEnergySumPerCentralityHijing2(0),
123 fhLocalRegionClusterMultiplicityPerCentralityHijing2(0),
124 fhDistance2AddedSignals(0), fhDistanceAddedSignalsHijing(0),
154 for(
Int_t i = 0; i < 7; i++)
196 for(
Int_t i = 0; i < 5; i++)
203 for(
Int_t i = 0; i < 2; i++)
217 for(
Int_t i = 0; i < 6; i++)
225 for(
Int_t ieta = 0; ieta < 4; ieta++)
227 for(
Int_t iphi = 0; iphi < 3; iphi++)
237 for(
Int_t ism =0; ism < 20; ism++)
245 for(
Int_t il0 = 0; il0 < 2; il0++)
247 for(
Int_t i = 0; i < 7; i++)
260 for(
Int_t ism =0; ism < 20; ism++)
296 for(
Int_t ism = 0; ism < 20; ism++)
306 for(
Int_t ilarge = 0; ilarge < 5; ilarge++)
312 for(
Int_t i = 0; i < 14; i++)
320 for(
Int_t igen = 0; igen < 10; igen++)
344 for(
Int_t icase = 0; icase < 6; icase++)
396 if(phi < 3.15 - radius && phi > 1.4 + radius && TMath::Abs(eta) < 0.7-radius)
399 Int_t genBkgTag = -1;
402 Int_t genBkgTag2 = -1;
406 AliVCluster * calo = (AliVCluster*) (clusterList->At(icalo));
413 if(
IsDataMC() && !genName.Contains(
"ijing") &&
427 for(
Int_t icalo2 = 0; icalo2 < clusterList->GetEntriesFast(); icalo2++)
429 if ( icalo2 == icalo )
continue;
431 AliVCluster * calo2 = (AliVCluster*) (clusterList->At(icalo2));
439 if(TMath::Abs(dPhi) >= TMath::Pi())
440 dPhi = TMath::TwoPi()-TMath::Abs(dPhi);
442 Float_t distance = TMath::Sqrt( dEta*dEta + dPhi*dPhi );
456 if ( distance > radius)
continue;
463 if(genName2.Contains(
"ijing"))
466 sumEHi += calo2->E();
469 if(genName2.Contains(
"ijing") || genBkgTag2 == 1 || genBkgTag2 == 3)
472 sumEHi2 += calo2->E();
543 if(genBkgTag < 0)
return;
659 TString genName =
"", genNameBkg =
"";
661 if (genBkgTag == -1)
return;
662 else if(genBkgTag > 3) printf(
"Bkg generator tag larger than 3\n");
669 Int_t pdg = 0, status = 0, momLabel = -1;
683 if ( eprim < 0.1 || en < 0.5 )
return;
760 if ( genBkgTag == 3 )
822 if(phicluster < 0) phicluster+=TMath::TwoPi();
826 AliDebug(2,Form(
"Current Event %d; Before selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
828 ecluster,ptcluster, phicluster*TMath::RadToDeg(),etacluster));
836 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
846 AliDebug(2,Form(
"\t Cluster %d Pass E Cut",calo->GetID()));
856 if(tof < fTimeCutMin || tof >
fTimeCutMax)
return kFALSE;
858 AliDebug(2,Form(
"\t Cluster %d Pass Time Cut",calo->GetID()));
866 AliDebug(2,Form(
"\t Cluster %d Pass NCell Cut",calo->GetID()));
871 if(nMaxima < fNLMCutMin || nMaxima >
fNLMCutMax)
return kFALSE ;
872 AliDebug(2,Form(
"\t Cluster %d pass NLM %d of out of range",calo->GetID(), nMaxima));
882 if(! in )
return kFALSE ;
885 AliDebug(2,Form(
"\t Fiducial cut passed"));
900 AliDebug(2,
"\t Reject track-matched clusters");
904 AliDebug(2,
"\t Track-matching cut passed");
912 Double_t distBad=calo->GetDistanceToBadChannel() ;
913 if(distBad < 0.) distBad=9999. ;
918 else AliDebug(2,Form(
"\t Bad channel cut passed %4.2f > %2.2f",distBad,
fMinDist));
923 AliDebug(1,Form(
"Current Event %d; After selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
951 Bool_t inacceptance = kFALSE ;
953 TParticle * primStack = 0;
954 AliAODMCParticle * primAOD = 0;
957 AliStack * stack = 0;
963 AliFatal(
"Stack not available, is the MC handler called? STOP");
966 nprim = stack->GetNtrack();
970 TClonesArray * mcparticles = 0;
976 AliFatal(
"Standard MCParticles not available!");
979 nprim = mcparticles->GetEntriesFast();
982 for(
Int_t i=0 ; i < nprim; i++)
984 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
988 primStack = stack->Particle(i) ;
991 AliWarning(
"ESD primaries pointer not available!!");
995 pdg = primStack->GetPdgCode();
996 status = primStack->GetStatusCode();
999 if ( primStack->Energy() == TMath::Abs(primStack->Pz()) ||
1000 (primStack->Energy() - primStack->Pz()) < 1e-3 ||
1001 (primStack->Energy() + primStack->Pz()) < 0 ) continue ;
1009 photonY = 0.5*TMath::Log((primStack->Energy()+primStack->Pz())/(primStack->Energy()-primStack->Pz())) ;
1013 primAOD = (AliAODMCParticle *) mcparticles->At(i);
1016 AliWarning(
"AOD primaries pointer not available!!");
1020 pdg = primAOD->GetPdgCode();
1021 status = primAOD->GetStatus();
1024 if ( primAOD->E() == TMath::Abs(primAOD->Pz()) ||
1025 (primAOD->E() - primAOD->Pz()) < 1e-3 ||
1026 (primAOD->E() + primAOD->Pz()) < 0 ) continue ;
1029 fMomentum.SetPxPyPzE(primAOD->Px(),primAOD->Py(),primAOD->Pz(),primAOD->E());
1031 photonY = 0.5*TMath::Log((primAOD->E()+primAOD->Pz())/(primAOD->E()-primAOD->Pz())) ;
1035 if(pdg != 22 ) continue ;
1046 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
1049 inacceptance = kTRUE;
1082 if(status > 1) continue ;
1122 if(!takeIt) continue ;
1126 if(TMath::Abs(photonY) < 1.0)
1147 if(TMath::Abs(photonY) < 1.0)
1344 Float_t time = cluster->GetTOF()*1.e9;
1365 if(cells->GetCellAmplitude(absIdMax) > 0.1 && TMath::Abs(time) < 30)
1367 for (
Int_t ipos = 0; ipos < cluster->GetNCells(); ipos++)
1369 Int_t absId = cluster->GetCellsAbsId()[ipos];
1371 if( absId == absIdMax ) continue ;
1373 Double_t tcell = cells->GetCellTime(absId);
1374 Float_t amp = cells->GetCellAmplitude(absId);
1383 if( cells->GetCellAmplitude(absIdMax) < 0.1 )
continue ;
1408 nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
1409 nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
1414 nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
1415 nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
1427 if(TMath::Abs(time) < 25)
1433 if(time < 75 && time > -25)
1449 Int_t ncells = cluster->GetNCells();
1450 Float_t lambda0 = cluster->GetM02();
1451 Float_t lambda1 = cluster->GetM20();
1452 Float_t disp = cluster->GetDispersion()*cluster->GetDispersion();
1457 if(phi < 0) phi+=TMath::TwoPi();
1507 Int_t etaRegion = -1, phiRegion = -1;
1509 if(etaRegion >= 0 && etaRegion < 4 && phiRegion >=0 && phiRegion < 3)
1531 if ( lambda0 >=0.30 && lambda0 <= 0.40 ) l0bin = 1;
1532 else if( lambda0 >=0.23 && lambda0 <= 0.26 ) l0bin = 0;
1534 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
1536 for(
Int_t ipt = 0; ipt < 7; ipt++)
1538 if( pt >= ptLimit[ipt] && pt < ptLimit[ipt+1] )
1567 Int_t ncell = cluster->GetNCells();
1572 for(
Int_t icell = 0; icell < ncell; icell++)
1574 Int_t absId = cluster->GetCellAbsId(icell);
1575 Float_t cellE = cells->GetCellAmplitude(absId);
1576 Double_t cellTime = cells->GetCellTime(absId);
1582 enerList[icell] = cellE;
1583 timeList[icell] = cellTime;
1586 TMath::Sort(ncell,enerList,sortList);
1592 Int_t absIdMax = cluster->GetCellAbsId(sortList[0]);
1594 Double_t cellTimeMax = timeList[sortList[0]];
1602 for(
Int_t icell = 1; icell < ncell; icell++)
1604 Int_t absId = cluster->GetCellAbsId(sortList[icell]);
1605 Float_t cellE = enerList[sortList[icell]];
1606 Double_t cellTime = timeList[sortList[icell]];
1610 if ( absId == absIdMax )
continue;
1615 if(weight < 0.01)
continue;
1617 if ( TMath::Abs(cellTime) > 50 )
1620 largeTimeE += cellE;
1623 if ( l0bin == -1 )
continue;
1644 if ( TMath::Abs(cellTime) > 50 )
1655 Int_t icol = -1, icolAbs = -1;
1656 Int_t irow = -1, irowAbs = -1;
1663 if ( TMath::Abs(cellTime) > 50 )
1673 if ( largeTime > 0 )
1694 delete [] sortList ;
1695 delete [] enerList ;
1696 delete [] timeList ;
1701 Float_t dispp= 0., dEta = 0., dPhi = 0.;
1702 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
1706 l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
1723 if (energy < 2 ) ebin = 0;
1724 else if (energy < 4 ) ebin = 1;
1725 else if (energy < 6 ) ebin = 2;
1726 else if (energy < 10) ebin = 3;
1727 else if (energy < 15) ebin = 4;
1728 else if (energy < 20) ebin = 5;
1740 Float_t dZ = cluster->GetTrackDz();
1741 Float_t dR = cluster->GetTrackDx();
1748 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
1796 AliVCaloCells* cells = 0;
1804 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1811 for(
Int_t icell = 0; icell < cluster->GetNCells(); icell++)
1813 cellE = cells->GetCellAmplitude(cluster->GetCellAbsId(icell));
1815 fraction+=cellE*cluster->GetCellAmplitudeFraction(icell);
1821 AliDebug(1,Form(
"Energy fraction of embedded signal %2.3f, Energy %2.3f",fraction, clusterE));
1837 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
1843 const UInt_t nlabels = cluster->GetNLabels();
1844 Int_t overpdg[nlabels];
1845 Int_t overlab[nlabels];
1854 else if(noverlaps == 1)
1858 else if(noverlaps > 1)
1864 AliWarning(Form(
"n overlaps = %d!!", noverlaps));
1869 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1875 else if(fraction > 0.5)
1879 else if(fraction > 0.1)
1906 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1912 else if(fraction > 0.5)
1916 else if(fraction > 0.1)
1950 else if(energy < 6.)
1971 if (energy < 2 ) ebin = 0;
1972 else if (energy < 4 ) ebin = 1;
1973 else if (energy < 6 ) ebin = 2;
1974 else if (energy < 10) ebin = 3;
1975 else if (energy < 15) ebin = 4;
1976 else if (energy < 20) ebin = 5;
1997 Float_t dZ = cluster->GetTrackDz();
1998 Float_t dR = cluster->GetTrackDx();
2008 Bool_t positive = kFALSE;
2009 if(track) positive = (track->Charge()>0);
2044 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
2048 Float_t dEdx = track->GetTPCsignal();
2049 Float_t eOverp = cluster->E()/track->P();
2061 AliWarning(Form(
"Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT?", dR,dZ));
2084 if(cluster->GetNLabels()==1)
2134 const Int_t buffersize = 255;
2135 char onePar[buffersize] ;
2137 snprintf(onePar,buffersize,
"--- AliAnaPhoton ---:") ;
2141 snprintf(onePar,buffersize,
"fMinDist =%2.2f (Minimal distance to bad channel to accept cluster);",
fMinDist) ;
2143 snprintf(onePar,buffersize,
"fMinDist2=%2.2f (Cuts on Minimal distance to study acceptance evaluation);",
fMinDist2) ;
2145 snprintf(onePar,buffersize,
"fMinDist3=%2.2f (One more cut on distance used for acceptance-efficiency study);",
fMinDist3) ;
2159 return new TObjString(parList) ;
2169 outputContainer->SetName(
"PhotonHistos") ;
2200 Int_t bin[] = {0,2,4,6,10,15,20,100};
2202 TString cut[] = {
"Open",
"Reader",
"E",
"Time",
"NCells",
"NLM",
"Fidutial",
"Matching",
"Bad",
"PID"};
2203 for (
Int_t i = 0; i < 10 ; i++)
2206 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2207 nptbins,ptmin,ptmax);
2213 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2214 nptbins,ptmin,ptmax);
2220 fhEClusterSM =
new TH2F(
"hEClusterSM",
"Raw clusters E and super-module number",
2221 nptbins,ptmin,ptmax,
2227 fhPtClusterSM =
new TH2F(
"hPtClusterSM",
"Raw clusters #it{p}_{T} and super-module number",
2228 nptbins,ptmin,ptmax,
2234 fhEPhotonSM =
new TH2F(
"hEPhotonSM",
"Selected clusters E and super-module number",
2235 nptbins,ptmin,ptmax,
2241 fhPtPhotonSM =
new TH2F(
"hPtPhotonSM",
"Selected clusters #it{p}_{T} and super-module number",
2242 nptbins,ptmin,ptmax,
2248 fhNCellsE =
new TH2F (
"hNCellsE",
"# of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nbins,nmin,nmax);
2250 fhNCellsE->SetYTitle(
"# of cells in cluster");
2253 fhCellsE =
new TH2F (
"hCellsE",
"energy of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nptbins*2,ptmin,ptmax);
2254 fhCellsE->SetXTitle(
"#it{E}_{cluster} (GeV)");
2255 fhCellsE->SetYTitle(
"#it{E}_{cell} (GeV)");
2258 fhTimePt =
new TH2F (
"hTimePt",
"time of cluster vs pT of clusters", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2259 fhTimePt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2260 fhTimePt->SetYTitle(
"#it{time} (ns)");
2263 fhMaxCellDiffClusterE =
new TH2F (
"hMaxCellDiffClusterE",
"energy vs difference of cluster energy - max cell energy / cluster energy, good clusters",
2264 nptbins,ptmin,ptmax, 500,0,1.);
2269 fhEPhoton =
new TH1F(
"hEPhoton",
"Number of #gamma over calorimeter vs energy",nptbins,ptmin,ptmax);
2271 fhEPhoton->SetXTitle(
"#it{E}_{#gamma}(GeV)");
2274 fhPtPhoton =
new TH1F(
"hPtPhoton",
"Number of #gamma over calorimeter vs #it{p}_{T}",nptbins,ptmin,ptmax);
2276 fhPtPhoton->SetXTitle(
"p_{T #gamma}(GeV/#it{c})");
2286 fhPtEventPlanePhoton =
new TH2F(
"hPtEventPlanePhoton",
"centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
2293 (
"hEtaPhi",
"cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2299 (
"hPhiPhoton",
"#phi_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
2301 fhPhiPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2305 (
"hEtaPhoton",
"#eta_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,netabins,etamin,etamax);
2307 fhEtaPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2311 (
"hEtaPhiPhoton",
"#eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2318 (
"hEtaPhi05Photon",
"#eta vs #phi, E < 0.5",netabins,etamin,etamax,nphibins,phimin,phimax);
2324 fhNLocMax =
new TH2F(
"hNLocMax",
"Number of local maxima in cluster",
2325 nptbins,ptmin,ptmax,10,0,10);
2333 fhLam0E =
new TH2F (
"hLam0E",
"#lambda_{0}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2334 fhLam0E->SetYTitle(
"#lambda_{0}^{2}");
2335 fhLam0E->SetXTitle(
"#it{E} (GeV)");
2336 outputContainer->Add(
fhLam0E);
2338 fhLam0Pt =
new TH2F (
"hLam0Pt",
"#lambda_{0}^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2339 fhLam0Pt->SetYTitle(
"#lambda_{0}^{2}");
2340 fhLam0Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2343 fhLam1E =
new TH2F (
"hLam1E",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2344 fhLam1E->SetYTitle(
"#lambda_{1}^{2}");
2345 fhLam1E->SetXTitle(
"#it{E} (GeV)");
2346 outputContainer->Add(
fhLam1E);
2348 fhLam1Pt =
new TH2F (
"hLam1Pt",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2349 fhLam1Pt->SetYTitle(
"#lambda_{1}^{2}");
2350 fhLam1Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2353 fhDispE =
new TH2F (
"hDispE",
" dispersion^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2355 fhDispE->SetXTitle(
"#it{E} (GeV) ");
2356 outputContainer->Add(
fhDispE);
2358 fhDispPt =
new TH2F (
"hDispPt",
" dispersion^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2360 fhDispPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c}) ");
2365 fhLam0PtNLM1 =
new TH2F (
"hLam0PtNLM1",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2370 fhLam0PtNLM2 =
new TH2F (
"hLam0PtNLM2",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2375 fhLam1PtNLM1 =
new TH2F (
"hLam1PtNLM1",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2380 fhLam1PtNLM2 =
new TH2F (
"hLam1PtNLM2",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2388 fhLam0ETM =
new TH2F (
"hLam0ETM",
"#lambda_{0}^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2389 fhLam0ETM->SetYTitle(
"#lambda_{0}^{2}");
2393 fhLam0PtTM =
new TH2F (
"hLam0PtTM",
"#lambda_{0}^{2} vs #it{p}_{T}, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2395 fhLam0PtTM->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2398 fhLam1ETM =
new TH2F (
"hLam1ETM",
"#lambda_{1}^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2399 fhLam1ETM->SetYTitle(
"#lambda_{1}^{2}");
2403 fhDispETM =
new TH2F (
"hDispETM",
" dispersion^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2411 fhLam0ETRD =
new TH2F (
"hLam0ETRD",
"#lambda_{0}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2416 fhLam0PtTRD =
new TH2F (
"hLam0PtTRD",
"#lambda_{0}^{2} vs #it{p}_{T}, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2418 fhLam0PtTRD->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2421 fhLam1ETRD =
new TH2F (
"hLam1ETRD",
"#lambda_{1}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2426 fhDispETRD =
new TH2F (
"hDispETRD",
" dispersion^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2433 fhLam0ETMTRD =
new TH2F (
"hLam0ETMTRD",
"#lambda_{0}^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2438 fhLam0PtTMTRD =
new TH2F (
"hLam0PtTMTRD",
"#lambda_{0}^{2} vs #it{p}_{T}, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2443 fhLam1ETMTRD =
new TH2F (
"hLam1ETMTRD",
"#lambda_{1}^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2448 fhDispETMTRD =
new TH2F (
"hDispETMTRD",
" dispersion^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05, |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2457 fhNCellsLam0LowE =
new TH2F (
"hNCellsLam0LowE",
"N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2462 fhNCellsLam0HighE =
new TH2F (
"hNCellsLam0HighE",
"N_{cells} in cluster vs #lambda_{0}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2467 fhNCellsLam1LowE =
new TH2F (
"hNCellsLam1LowE",
"N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2472 fhNCellsLam1HighE =
new TH2F (
"hNCellsLam1HighE",
"N_{cells} in cluster vs #lambda_{1}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2477 fhNCellsDispLowE =
new TH2F (
"hNCellsDispLowE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2482 fhNCellsDispHighE =
new TH2F (
"hNCellsDispHighE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2487 fhEtaLam0LowE =
new TH2F (
"hEtaLam0LowE",
"#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2492 fhPhiLam0LowE =
new TH2F (
"hPhiLam0LowE",
"#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2497 fhEtaLam0HighE =
new TH2F (
"hEtaLam0HighE",
"#eta vs #lambda_{0}^{2}, #it{E} > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2502 fhPhiLam0HighE =
new TH2F (
"hPhiLam0HighE",
"#phi vs #lambda_{0}^{2}, #it{E} > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2507 fhLam1Lam0LowE =
new TH2F (
"hLam1Lam0LowE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2512 fhLam1Lam0HighE =
new TH2F (
"hLam1Lam0HighE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2517 fhLam0DispLowE =
new TH2F (
"hLam0DispLowE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2522 fhLam0DispHighE =
new TH2F (
"hLam0DispHighE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2527 fhDispLam1LowE =
new TH2F (
"hDispLam1LowE",
"Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2532 fhDispLam1HighE =
new TH2F (
"hDispLam1HighE",
"Dispersion^{2} vs #lambda_{1^{2}} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2539 fhDispEtaE =
new TH2F (
"hDispEtaE",
"#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2541 fhDispEtaE->SetYTitle(
"#sigma^{2}_{#eta #eta}");
2544 fhDispPhiE =
new TH2F (
"hDispPhiE",
"#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2546 fhDispPhiE->SetYTitle(
"#sigma^{2}_{#phi #phi}");
2549 fhSumEtaE =
new TH2F (
"hSumEtaE",
"#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2551 fhSumEtaE->SetYTitle(
"#delta^{2}_{#eta #eta}");
2554 fhSumPhiE =
new TH2F (
"hSumPhiE",
"#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",
2555 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2557 fhSumPhiE->SetYTitle(
"#delta^{2}_{#phi #phi}");
2560 fhSumEtaPhiE =
new TH2F (
"hSumEtaPhiE",
"#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",
2561 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
2566 fhDispEtaPhiDiffE =
new TH2F (
"hDispEtaPhiDiffE",
"#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",
2567 nptbins,ptmin,ptmax,200, -10,10);
2572 fhSphericityE =
new TH2F (
"hSphericityE",
"(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",
2573 nptbins,ptmin,ptmax, 200, -1,1);
2575 fhSphericityE->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
2578 fhDispSumEtaDiffE =
new TH2F (
"hDispSumEtaDiffE",
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2580 fhDispSumEtaDiffE->SetYTitle(
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
2583 fhDispSumPhiDiffE =
new TH2F (
"hDispSumPhiDiffE",
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2585 fhDispSumPhiDiffE->SetYTitle(
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
2588 for(
Int_t i = 0; i < 7; i++)
2590 fhDispEtaDispPhi[i] =
new TH2F (Form(
"hDispEtaDispPhi_EBin%d",i),Form(
"#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]),
2591 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2596 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]),
2597 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2602 fhLambda0DispPhi[i] =
new TH2F (Form(
"hLambda0DispPhi_EBin%d",i),Form(
"#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]),
2603 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2616 TString cutTM [] = {
"NoCut",
""};
2618 for(
Int_t i = 0; i < 2; i++)
2621 (Form(
"hTrackMatchedDEta%s",cutTM[i].
Data()),
2622 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2623 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2628 (Form(
"hTrackMatchedDPhi%s",cutTM[i].
Data()),
2629 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2630 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2635 (Form(
"hTrackMatchedDEtaDPhi%s",cutTM[i].
Data()),
2636 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2637 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2642 (Form(
"hTrackMatchedDEtaPos%s",cutTM[i].
Data()),
2643 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2644 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2649 (Form(
"hTrackMatchedDPhiPos%s",cutTM[i].
Data()),
2650 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2651 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2656 (Form(
"hTrackMatchedDEtaDPhiPos%s",cutTM[i].
Data()),
2657 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2658 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2663 (Form(
"hTrackMatchedDEtaNeg%s",cutTM[i].
Data()),
2664 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2665 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2670 (Form(
"hTrackMatchedDPhiNeg%s",cutTM[i].
Data()),
2671 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2672 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2677 (Form(
"hTrackMatchedDEtaDPhiNeg%s",cutTM[i].
Data()),
2678 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2679 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2683 fhdEdx[i] =
new TH2F (Form(
"hdEdx%s",cutTM[i].
Data()),Form(
"matched track <dE/dx> vs cluster E, %s",cutTM[i].
Data()),
2684 nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
2685 fhdEdx[i]->SetXTitle(
"#it{E} (GeV)");
2686 fhdEdx[i]->SetYTitle(
"<dE/dx>");
2688 fhEOverP[i] =
new TH2F (Form(
"hEOverP%s",cutTM[i].
Data()),Form(
"matched track E/p vs cluster E, %s",cutTM[i].
Data()),
2689 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2690 fhEOverP[i]->SetXTitle(
"#it{E} (GeV)");
2702 outputContainer->Add(
fhdEdx[i]);
2708 (Form(
"hTrackMatchedDEtaTRD%s",cutTM[i].
Data()),
2709 Form(
"d#eta of cluster-track vs cluster energy, SM behind TRD, %s",cutTM[i].
Data()),
2710 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2715 (Form(
"hTrackMatchedDPhiTRD%s",cutTM[i].
Data()),
2716 Form(
"d#phi of cluster-track vs cluster energy, SM behing TRD, %s",cutTM[i].
Data()),
2717 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2722 (Form(
"hEOverPTRD%s",cutTM[i].
Data()),
2723 Form(
"matched track E/p vs cluster E, behind TRD, %s",cutTM[i].
Data()),
2724 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2736 (Form(
"hTrackMatchedDEtaMCNoOverlap%s",cutTM[i].
Data()),
2737 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2738 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2743 (Form(
"hTrackMatchedDPhiMCNoOverlap%s",cutTM[i].
Data()),
2744 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2745 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2752 (Form(
"hTrackMatchedDEtaMCOverlap%s",cutTM[i].
Data()),
2753 Form(
"d#eta of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2754 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2759 (Form(
"hTrackMatchedDPhiMCOverlap%s",cutTM[i].
Data()),
2760 Form(
"d#phi of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2761 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2769 (Form(
"hTrackMatchedDEtaMCConversion%s",cutTM[i].
Data()),
2770 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2771 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2776 (Form(
"hTrackMatchedDPhiMCConversion%s",cutTM[i].
Data()),
2777 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2778 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2786 (Form(
"hTrackMatchedMCParticle%s",cutTM[i].
Data()),
2787 Form(
"Origin of particle vs energy %s",cutTM[i].
Data()),
2788 nptbins,ptmin,ptmax,8,0,8);
2808 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
2810 for(
Int_t i = 0 ; i < 7 ; i++)
2813 Form(
"Selected photon #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2818 Form(
"Photon cluster E vs #it{t}_{max}-#it{t}_{cell} in cluster, %s Pile-Up event",pileUpName[i].
Data()),
2819 nptbins,ptmin,ptmax,400,-200,200);
2825 fhTimePtPhotonNoCut =
new TH2F (
"hTimePtPhoton_NoCut",
"time of photon cluster vs pT of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2830 fhTimePtPhotonSPD =
new TH2F (
"hTimePtPhoton_SPD",
"time of photon cluster vs pT of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2835 fhTimeNPileUpVertSPD =
new TH2F (
"hTime_NPileUpVertSPD",
"time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,20,0,20);
2840 fhTimeNPileUpVertTrack =
new TH2F (
"hTime_NPileUpVertTracks",
"time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 20,0,20 );
2846 nptbins,ptmin,ptmax,20,0,20);
2852 nptbins,ptmin,ptmax, 20,0,20 );
2858 nptbins,ptmin,ptmax,20,0,20);
2864 nptbins,ptmin,ptmax, 20,0,20 );
2870 nptbins,ptmin,ptmax,20,0,20);
2876 nptbins,ptmin,ptmax, 20,0,20 );
2885 for(
Int_t ieta = 0; ieta < 4; ieta++)
2887 for(
Int_t iphi = 0; iphi < 3; iphi++)
2911 new TH2F(Form(
"hLam0_eta%d_phi%d_sm%d",ieta,iphi,ism),
2912 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2913 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2919 new TH2F(Form(
"hLam1_eta%d_phi%d_sm%d",ieta,iphi,ism),
2920 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2921 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2929 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
2930 TString l0bin [] = {
"0.23<#lambda^{2}_{0}<0.26",
"0.3<#lambda^{2}_{0}<0.4"};
2932 for(
Int_t il0 = 0; il0 < 2; il0++)
2934 for(
Int_t ipt = 0; ipt < 7; ipt++)
2937 (Form(
"hEtaPhiLam0Bin%d_PtBin%d",il0,ipt),
2938 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
2939 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2940 netabins,etamin,etamax,nphibins,phimin,phimax);
2946 (Form(
"hColRowLam0Bin%d_PtBin%d",il0,ipt),
2947 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, w > 0",
2948 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2949 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
2955 (Form(
"hColRowLam0Bin%d_PtBin%dWeighted",il0,ipt),
2956 Form(
"cluster cell row vs column weighted in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
2957 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2958 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
2964 (Form(
"hColRowLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
2965 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, |t| > 50 ns, w > 0",
2966 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2967 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
2991 (Form(
"hEtaPhiLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
2992 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, t > 50 ns, %s",
2993 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2994 netabins,etamin,etamax,nphibins,phimin,phimax);
3000 (Form(
"hCellClusterIndexEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3001 Form(
"#it{t}_{cell} vs cell index (E sorted) in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3002 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3003 ntimebins,timemin,timemax,30,0,30);
3009 (Form(
"hCellClusterEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3010 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3011 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3012 ntimebins,timemin,timemax,100,0,5);
3018 (Form(
"hCellClusterEFracAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3019 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3020 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3021 ntimebins,timemin,timemax,100,0,1);
3030 (Form(
"hLam1Lam0Bin%d_sm%d",il0,ism),
3031 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, %s",ism,l0bin[il0].
Data()),
3032 nptbins,ptmin,ptmax,40,0,0.4);
3038 (Form(
"hTimeLam0Bin%d_sm%d",il0,ism),
3039 Form(
"#it{p}_{T} vs cluster cell time in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3040 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3046 (Form(
"hTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3047 Form(
"#it{p}_{T} vs cluster cell time weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3048 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3054 (Form(
"hDTimeLam0Bin%d_sm%d",il0,ism),
3055 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3056 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3062 (Form(
"hDTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3063 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3064 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3070 (Form(
"hCellClusterEFracLam0Bin%d_sm%d",il0,ism),
3071 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3072 nptbins,ptmin,ptmax,100,0,1);
3086 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3087 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3088 nptbins,ptmin,ptmax,100,0,1);
3094 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell_Total",il0,ism),
3095 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, all |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3096 nptbins,ptmin,ptmax,100,0,1);
3102 (Form(
"hCellClusterELam0Bin%d_sm%d",il0,ism),
3103 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3104 nptbins,ptmin,ptmax,500,0,10);
3110 (Form(
"hCellClusterELam0Bin%d_sm%d_Weighted",il0,ism),
3111 Form(
"#it{p}_{T} vs cell E weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3112 nptbins,ptmin,ptmax,500,0,10);
3118 (Form(
"hCellClusterELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3119 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3120 nptbins,ptmin,ptmax,500,0,10);
3126 (Form(
"hCellClusterIndexELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3127 Form(
"#it{p}_{T} vs cell index (E sorted) in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3128 nptbins,ptmin,ptmax,30,0,30);
3134 (Form(
"hNCellsWithLargeTimeInClusterLam0Bin%d_sm%d",il0,ism),
3135 Form(
"#it{p}_{T} vs number of cells in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3136 nptbins,ptmin,ptmax,30,0,30);
3157 (Form(
"hLam0_sm%d",ism),
3158 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d",ism),
3159 nptbins,ptmin,ptmax,40,0,0.4);
3161 fhLam0PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3165 (Form(
"hLam1_sm%d",ism),
3166 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d",ism),
3167 nptbins,ptmin,ptmax,40,0,0.4);
3169 fhLam1PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3173 (Form(
"hLam0_sm%d_LargeTimeInClusterCell",ism),
3174 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ism),
3175 nptbins,ptmin,ptmax,40,0,0.4);
3181 (Form(
"hLam1_sm%d_LargeTimeInClusterCell",ism),
3182 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ism),
3183 nptbins,ptmin,ptmax,40,0,0.4);
3224 for(
Int_t ilarge = 0; ilarge < 5; ilarge++)
3227 (Form(
"hLam0_NLargeTimeInClusterCell%d",ilarge),
3228 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ilarge),
3229 nptbins,ptmin,ptmax,40,0,0.4);
3235 (Form(
"hLam1_NLargeTimeInClusterCell%d",ilarge),
3236 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ilarge),
3237 nptbins,ptmin,ptmax,40,0,0.4);
3248 TString ptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}",
3249 "#pi^{0}" ,
"#eta" ,
"e^{#pm}" ,
"#gamma->e^{#pm}" ,
3250 "hadron?" ,
"Anti-N" ,
"Anti-P" ,
3251 "Neutron" ,
"Proton" ,
"#pi^{#pm}" ,
3252 "#gamma_{prompt}",
"#gamma_{fragmentation}",
"#gamma_{ISR}" ,
"String" } ;
3254 TString pname[] = {
"Photon" ,
"PhotonPi0Decay" ,
"PhotonEtaDecay",
"PhotonOtherDecay",
3255 "Pi0" ,
"Eta" ,
"Electron" ,
"Conversion" ,
3256 "Hadron" ,
"AntiNeutron" ,
"AntiProton" ,
3257 "Neutron" ,
"Proton" ,
"ChPion" ,
3258 "PhotonPrompt",
"PhotonFragmentation",
"PhotonISR" ,
"String" } ;
3262 fhMCE[i] =
new TH1F(Form(
"hE_MC%s",pname[i].
Data()),
3263 Form(
"cluster from %s : E ",ptype[i].
Data()),
3264 nptbins,ptmin,ptmax);
3265 fhMCE[i]->SetXTitle(
"#it{E} (GeV)");
3266 outputContainer->Add(
fhMCE[i]) ;
3268 fhMCPt[i] =
new TH1F(Form(
"hPt_MC%s",pname[i].
Data()),
3269 Form(
"cluster from %s : #it{p}_{T} ",ptype[i].
Data()),
3270 nptbins,ptmin,ptmax);
3271 fhMCPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3272 outputContainer->Add(
fhMCPt[i]) ;
3275 Form(
"cluster from %s : #eta ",ptype[i].
Data()),
3276 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3277 fhMCEta[i]->SetYTitle(
"#eta");
3278 fhMCEta[i]->SetXTitle(
"#it{E} (GeV)");
3279 outputContainer->Add(
fhMCEta[i]) ;
3282 Form(
"cluster from %s : #phi ",ptype[i].
Data()),
3283 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3284 fhMCPhi[i]->SetYTitle(
"#phi (rad)");
3285 fhMCPhi[i]->SetXTitle(
"#it{E} (GeV)");
3286 outputContainer->Add(
fhMCPhi[i]) ;
3290 Form(
"MC - Reco E from %s",pname[i].
Data()),
3291 nptbins,ptmin,ptmax, 200,-50,50);
3292 fhMCDeltaE[i]->SetYTitle(
"#Delta #it{E} (GeV)");
3297 Form(
"MC - Reco #it{p}_{T} from %s",pname[i].
Data()),
3298 nptbins,ptmin,ptmax, 200,-50,50);
3299 fhMCDeltaPt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3300 fhMCDeltaPt[i]->SetYTitle(
"#Delta #it{p}_{T} (GeV/#it{c})");
3304 Form(
"E distribution, reconstructed vs generated from %s",pname[i].
Data()),
3305 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3306 fhMC2E[i]->SetXTitle(
"#it{E}_{rec} (GeV)");
3307 fhMC2E[i]->SetYTitle(
"#it{E}_{gen} (GeV)");
3308 outputContainer->Add(
fhMC2E[i]);
3311 Form(
"p_T distribution, reconstructed vs generated from %s",pname[i].
Data()),
3312 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3313 fhMC2Pt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3314 fhMC2Pt[i]->SetYTitle(
"p_{T,gen} (GeV/#it{c})");
3315 outputContainer->Add(
fhMC2Pt[i]);
3318 TString pptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
3319 "#gamma_{#eta decay}",
"#gamma_{other decay}" ,
3320 "#gamma_{prompt}" ,
"#gamma_{fragmentation}",
"#gamma_{ISR}" } ;
3322 TString ppname[] = {
"Photon" ,
"PhotonPi0Decay" ,
3323 "PhotonEtaDecay",
"PhotonOtherDecay" ,
3324 "PhotonPrompt" ,
"PhotonFragmentation",
"PhotonISR" } ;
3328 fhEPrimMC[i] =
new TH1F(Form(
"hEPrim_MC%s",ppname[i].
Data()),
3329 Form(
"primary photon %s : E ",pptype[i].
Data()),
3330 nptbins,ptmin,ptmax);
3331 fhEPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3335 Form(
"primary photon %s : #it{p}_{T} ",pptype[i].
Data()),
3336 nptbins,ptmin,ptmax);
3337 fhPtPrimMC[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3341 Form(
"primary photon %s : Rapidity ",pptype[i].
Data()),
3342 nptbins,ptmin,ptmax,200,-2,2);
3344 fhYPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3348 Form(
"primary photon %s : #eta",pptype[i].
Data()),
3349 nptbins,ptmin,ptmax,200,-2,2);
3355 Form(
"primary photon %s : #phi ",pptype[i].
Data()),
3356 nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3363 Form(
"primary photon %s in acceptance: E ",pptype[i].
Data()),
3364 nptbins,ptmin,ptmax);
3369 Form(
"primary photon %s in acceptance: #it{p}_{T} ",pptype[i].
Data()),
3370 nptbins,ptmin,ptmax);
3375 Form(
"primary photon %s in acceptance: Rapidity ",pptype[i].
Data()),
3376 nptbins,ptmin,ptmax,100,-1,1);
3382 Form(
"primary photon %s in acceptance: #eta ",pptype[i].
Data()),
3383 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3389 Form(
"primary photon %s in acceptance: #phi ",pptype[i].
Data()),
3390 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3398 TString ptypess[] = {
"#gamma",
"hadron?",
"#pi^{0}",
"#eta",
"#gamma->e^{#pm}",
"e^{#pm}"} ;
3400 TString pnamess[] = {
"Photon",
"Hadron",
"Pi0",
"Eta",
"Conversion",
"Electron"} ;
3402 for(
Int_t i = 0; i < 6; i++)
3405 Form(
"cluster from %s : E vs #lambda_{0}^{2}",ptypess[i].
Data()),
3406 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3412 Form(
"cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}",ptypess[i].
Data()),
3413 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3419 Form(
"cluster from %s : E vs #lambda_{1}^{2}",ptypess[i].
Data()),
3420 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3426 Form(
"cluster from %s : E vs dispersion^{2}",ptypess[i].
Data()),
3427 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3433 Form(
"# of cells in cluster from %s vs E of clusters",ptypess[i].
Data()),
3434 nptbins,ptmin,ptmax, nbins,nmin,nmax);
3436 fhMCNCellsE[i]->SetYTitle(
"# of cells in cluster");
3440 Form(
"energy vs difference of cluster energy from %s - max cell energy / cluster energy, good clusters",ptypess[i].
Data()),
3441 nptbins,ptmin,ptmax, 500,0,1.);
3449 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3450 ssbins,ssmin,ssmax,500,0,1.);
3456 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3457 ssbins,ssmin,ssmax,500,0,1.);
3463 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3464 ssbins,ssmin,ssmax,500,0,1.);
3470 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3471 nbins/5,nmin,nmax/5,500,0,1.);
3477 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3478 nbins/5,nmin,nmax/5,500,0,1.);
3484 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3485 nbins/5,nmin,nmax/5,500,0,1.);
3493 Form(
"cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].
Data()),
3494 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3500 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].
Data()),
3501 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3507 Form(
"cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].
Data()),
3508 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
3514 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].
Data()),
3515 nptbins,ptmin,ptmax,200,-10,10);
3521 Form(
"cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].
Data()),
3522 nptbins,ptmin,ptmax, 200,-1,1);
3524 fhMCESphericity[i]->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
3527 for(
Int_t ie = 0; ie < 7; ie++)
3530 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].
Data(),bin[ie],bin[ie+1]),
3531 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3537 Form(
"cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].
Data(),bin[ie],bin[ie+1]),
3538 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3544 Form(
"cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].
Data(),bin[ie],bin[ie+1]),
3545 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3554 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
3557 "cluster from Photon : E vs #lambda_{0}^{2}",
3558 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3564 "cluster from Photon : E vs #lambda_{0}^{2}",
3565 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3571 "cluster from Photon : E vs #lambda_{0}^{2}",
3572 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3578 if(
GetReader()->IsEmbeddedClusterSelectionOn())
3581 "Energy Fraction of embedded signal versus cluster energy",
3582 nptbins,ptmin,ptmax,100,0.,1.);
3588 "cluster from Photon embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3589 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3595 "cluster from Photon embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3596 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3602 "cluster from Photon embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3603 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3609 "cluster from Photonm embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3610 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3616 "cluster from Pi0 embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3617 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3623 "cluster from Pi0 embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3624 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3630 "cluster from Pi0 embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3631 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3637 "cluster from Pi0 embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3638 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3648 fhMCConversionVertex =
new TH2F(
"hMCPhotonConversionVertex",
"cluster from converted photon, #it{p}_{T} vs vertex distance",
3649 nptbins,ptmin,ptmax,500,0,500);
3656 fhMCConversionVertexTRD =
new TH2F(
"hMCPhotonConversionVertexTRD",
"cluster from converted photon, #it{p}_{T} vs vertex distance, SM covered by TRD",
3657 nptbins,ptmin,ptmax,500,0,500);
3665 TString region[] = {
"ITS",
"TPC",
"TRD",
"TOF",
"Top EMCal",
"In EMCal"};
3666 for(
Int_t iR = 0; iR < 6; iR++)
3669 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s",region[iR].
Data()),
3670 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3676 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s",region[iR].
Data()),
3677 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3686 for(
Int_t iR = 0; iR < 6; iR++)
3689 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3690 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3696 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3697 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3744 (Form(
"hEBin%d_Cluster_EtaPhi",ie),
3745 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3746 netabins,etamin,etamax,nphibins,phimin,phimax);
3752 (Form(
"hEBin%d_Cluster_ColRow",ie),
3753 Form(
"column vs row, cluster max E cell, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3754 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3760 (Form(
"hEBin%d_Cluster_EtaPhi_PID",ie),
3761 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}, PID cut",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3762 netabins,etamin,etamax,nphibins,phimin,phimax);
3768 (Form(
"hEBin%d_Cluster_ColRow_PID",ie),
3769 Form(
"column vs row, cluster max E cell, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}, PID cut",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3770 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3779 TString caseTitle[] = {
"",
"CleanCluster",
"MergedClusterHijingBkg",
"MergedClusterNotHijingBkg",
"MergedClusterHijingAndOtherBkg",
"MergedCluster"};
3783 for(
Int_t icase = 0; icase < ncases; icase++)
3786 (Form(
"hLocalRegionClusterEtaPhi%s",caseTitle[icase].
Data()),
3787 "cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
3793 (Form(
"hLocalRegionClusterEnergySum%s",caseTitle[icase].
Data()),
3794 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3795 nptbins,ptmin,ptmax, 200,0,100);
3801 (Form(
"hLocalRegionClusterMultiplicity%s",caseTitle[icase].
Data()),
3802 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3803 nptbins,ptmin,ptmax, 200,0,200);
3811 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s",caseTitle[icase].
Data()),
3812 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3813 100,0,100, 200,0,100);
3819 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s",caseTitle[icase].
Data()),
3820 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3821 100,0,100, 200,0,200);
3833 (Form(
"hLocalRegionClusterEnergySum%s_MCPi0Decay",caseTitle[icase].
Data()),
3834 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3835 nptbins,ptmin,ptmax, 200,0,100);
3841 (Form(
"hLocalRegionClusterMultiplicity%s_MCPi0Decay",caseTitle[icase].
Data()),
3842 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3843 nptbins,ptmin,ptmax, 200,0,200);
3851 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3852 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3853 100,0,100, 200,0,100);
3859 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3860 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3861 100,0,100, 200,0,200);
3871 (Form(
"hLocalRegionClusterEnergySumHijing%s",caseTitle[icase].
Data()),
3872 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
3873 nptbins,ptmin,ptmax, 200,0,100);
3879 (Form(
"hLocalRegionClusterMultiplicityHijing%s",caseTitle[icase].
Data()),
3880 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
3881 nptbins,ptmin,ptmax, 200,0,200);
3887 (Form(
"hLocalRegionClusterEnergySumAdded%s",caseTitle[icase].
Data()),
3888 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
3889 nptbins,ptmin,ptmax, 200,0,100);
3895 (Form(
"hLocalRegionClusterMultiplicityAdded%s",caseTitle[icase].
Data()),
3896 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
3897 nptbins,ptmin,ptmax, 200,0,200);
3906 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s",caseTitle[icase].
Data()),
3907 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
3908 100,0,100, 200,0,100);
3914 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s",caseTitle[icase].
Data()),
3915 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
3916 100,0,100, 200,0,200);
3923 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s",caseTitle[icase].
Data()),
3924 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
3925 100,0,100, 200,0,100);
3931 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s",caseTitle[icase].
Data()),
3932 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
3933 100,0,100, 200,0,200);
3944 (Form(
"hLocalRegionClusterEnergySumHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3945 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
3946 nptbins,ptmin,ptmax, 200,0,100);
3952 (Form(
"hLocalRegionClusterMultiplicityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3953 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
3954 nptbins,ptmin,ptmax, 200,0,200);
3960 (Form(
"hLocalRegionClusterEnergySumAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
3961 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
3962 nptbins,ptmin,ptmax, 200,0,100);
3968 (Form(
"hLocalRegionClusterMultiplicityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
3969 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
3970 nptbins,ptmin,ptmax, 200,0,200);
3979 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3980 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
3981 100,0,100, 200,0,100);
3987 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3988 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
3989 100,0,100, 200,0,200);
3996 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
3997 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
3998 100,0,100, 200,0,100);
4004 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4005 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
4006 100,0,100, 200,0,200);
4018 (
"hLocalRegionClusterEnergySumHijing2",
4019 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
4020 nptbins,ptmin,ptmax, 200,0,100);
4026 (
"hLocalRegionClusterMultiplicityHijing2",
4027 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
4028 nptbins,ptmin,ptmax, 200,0,200);
4036 (
"hLocalRegionClusterEnergySumPerCentralityHijing2",
4037 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
4038 100,0,100, 200,0,100);
4044 (
"hLocalRegionClusterMultiplicityPerCentralityHijing2",
4045 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
4046 100,0,100, 200,0,200);
4089 (
"hDistance2AddedSignals",
"Distance added signals"
4090 ,nptbins,ptmin,ptmax,100,0,0.4);
4096 (
"hDistance2Hijing",
"Distance 2 hijing clusters"
4097 ,nptbins,ptmin,ptmax,100,0,0.4);
4103 (
"hDistanceAddedSignalsHijing",
"Distance added signals to hijing"
4104 ,nptbins,ptmin,ptmax,100,0,0.4);
4113 TString mcGenNames[] = {
"",
"_MC_Pi0Merged",
"_MC_Pi0Decay",
"_MC_EtaDecay",
"_MC_PhotonOther",
"_MC_Electron",
"_MC_Other"};
4114 TString mcGenTitle[] = {
"",
",MC Pi0-Merged",
",MC Pi0-Decay",
", MC Eta-Decay",
", MC Photon other sources",
", MC Electron",
", MC other sources"};
4118 if(igen==0) add =
"";
4122 Form(
"Number of selected clusters with contribution of %s generator%s, no overlap",
4124 nptbins,ptmin,ptmax);
4130 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4132 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4138 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4140 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4148 Form(
"Number of selected clusters with contribution of >=2 generators, main %s%s",
4150 nptbins,ptmin,ptmax);
4156 Form(
"#it{E}_{reco}/#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4158 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4164 Form(
"#it{E}_{reco}-#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4166 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4176 Form(
"Number of selected clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4178 nptbins,ptmin,ptmax);
4184 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4186 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4192 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4194 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4202 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4204 nptbins,ptmin,ptmax);
4211 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4213 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4220 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4222 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4230 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4232 nptbins,ptmin,ptmax);
4238 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4240 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4246 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4248 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4256 return outputContainer ;
4265 AliFatal(
"!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
4267 AliFatal(
"!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
4312 AliVCaloCells* cells = 0;
4355 TClonesArray * clusterList = 0;
4364 Int_t nclusters = clusterList->GetEntriesFast();
4365 for (
Int_t iclus = 0; iclus < nclusters; iclus++)
4367 AliVCluster * clus =
dynamic_cast<AliVCluster*
> (clusterList->At(iclus));
4381 Int_t nCaloClusters = pl->GetEntriesFast();
4389 for(
Int_t icalo = 0; icalo < nCaloClusters; icalo++)
4391 AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
4395 Int_t evtIndex = 0 ;
4398 evtIndex=
GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
4423 AliAODPWG4Particle aodph = AliAODPWG4Particle(
fMomentum);
4427 Int_t label = calo->GetLabel();
4428 aodph.SetLabel(label);
4429 aodph.SetCaloLabel(calo->GetID(),-1);
4435 Double_t distBad=calo->GetDistanceToBadChannel() ;
4436 if (distBad >
fMinDist3) aodph.SetDistToBad(2) ;
4437 else if(distBad >
fMinDist2) aodph.SetDistToBad(1) ;
4438 else aodph.SetDistToBad(0) ;
4453 AliDebug(1,Form(
"Origin of candidate, bit map %d",aodph.GetTag()));
4462 if( absIdMax < 0 ) AliFatal(
"Wrong absID");
4464 Int_t largeTimeInCellCluster = kFALSE;
4466 aodph.SetFiducialArea(largeTimeInCellCluster);
4469 aodph.SetM02(calo->GetM02());
4470 aodph.SetM20(calo->GetM20());
4471 aodph.SetNLM(nMaxima);
4473 Float_t time = calo->GetTOF()*1e9;
4475 aodph.SetTime(time);
4477 aodph.SetNCells(calo->GetNCells());
4479 aodph.SetSModNumber(nSM);
4491 Int_t icolAbs = -1, irowAbs = -1;
4497 Int_t icol = -1, irow = -1, iRCU = -1;
4500 if(ebin>=0 && ebin < fNEBinCuts)
4519 aodph.SetIdentifiedParticleType(
GetCaloPID()->GetIdentifiedParticleType(calo));
4521 AliDebug(1,Form(
"PDG of identified particle %d",aodph.GetIdentifiedParticleType()));
4536 AliDebug(1,
"PID Bits set");
4539 AliDebug(1,Form(
"Photon selection cuts passed: pT %3.2f, pdg %d",aodph.Pt(),aodph.GetIdentifiedParticleType()));
4559 if(ebin>=0 && ebin < fNEBinCuts)
4567 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
4582 for(
Int_t icell = 0; icell < calo->GetNCells(); icell++)
4597 AliDebug(1,Form(
"End fill AODs, with %d entries",
GetOutputAODBranch()->GetEntriesFast()));
4617 AliDebug(1,Form(
"AOD branch entries %d", naod));
4624 for(
Int_t iaod = 0; iaod < naod ; iaod++)
4627 Int_t pdg = ph->GetIdentifiedParticleType();
4629 AliDebug(2,Form(
"PDG %d, MC TAG %d, Calorimeter <%d>",ph->GetIdentifiedParticleType(),ph->GetTag(), ph->GetDetectorTag())) ;
4636 AliDebug(2,Form(
"ID Photon: pt %f, phi %f, eta %f", ph->Pt(),ph->Phi(),ph->Eta())) ;
4641 Float_t phicluster = ph->Phi();
4642 Float_t etacluster = ph->Eta();
4685 Int_t label = ph->GetLabel();
4689 AliDebug(1,Form(
"*** bad label ***: label %d", label));
4696 Int_t pdg = 0, status = 0, momLabel = -1;
4707 Int_t tag =ph->GetTag();
4708 Int_t mcParticleTag = -1;
4738 Int_t pdgD = 0, statusD = 0, daugLabel = -1;