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),
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++)
182 for(
Int_t iover = 0 ; iover < 3; iover++)
199 for(
Int_t i = 0; i < 5; i++)
206 for(
Int_t i = 0; i < 2; i++)
220 for(
Int_t i = 0; i < 6; i++)
228 for(
Int_t ieta = 0; ieta < 4; ieta++)
230 for(
Int_t iphi = 0; iphi < 3; iphi++)
240 for(
Int_t ism =0; ism < 20; ism++)
248 for(
Int_t il0 = 0; il0 < 2; il0++)
250 for(
Int_t i = 0; i < 7; i++)
263 for(
Int_t ism =0; ism < 20; ism++)
299 for(
Int_t ism = 0; ism < 20; ism++)
309 for(
Int_t ilarge = 0; ilarge < 5; ilarge++)
315 for(
Int_t i = 0; i < 14; i++)
323 for(
Int_t igen = 0; igen < 10; igen++)
347 for(
Int_t icase = 0; icase < 6; icase++)
400 if(phi < 3.15 - radius && phi > 1.4 + radius && TMath::Abs(eta) < 0.7-radius)
403 Int_t genIndex, genIndexBkg;
404 Int_t genBkgTag = -1;
406 TString genName2 , genNameBkg2 ;
407 Int_t genIndex2, genIndexBkg2;
408 Int_t genBkgTag2 = -1;
412 AliVCluster * calo = (AliVCluster*) (clusterList->At(icalo));
419 if(
IsDataMC() && !genName.Contains(
"ijing") &&
433 for(
Int_t icalo2 = 0; icalo2 < clusterList->GetEntriesFast(); icalo2++)
435 if ( icalo2 == icalo )
continue;
437 AliVCluster * calo2 = (AliVCluster*) (clusterList->At(icalo2));
445 if(TMath::Abs(dPhi) >= TMath::Pi())
446 dPhi = TMath::TwoPi()-TMath::Abs(dPhi);
448 Float_t distance = TMath::Sqrt( dEta*dEta + dPhi*dPhi );
464 if ( distance > radius)
continue;
471 if(genName2.Contains(
"ijing"))
474 sumEHi += calo2->E();
477 if(genName2.Contains(
"ijing") || genBkgTag2 == 1 || genBkgTag2 == 3)
480 sumEHi2 += calo2->E();
551 if(genBkgTag < 0)
return;
667 TString genName =
"", genNameBkg =
"";
668 Int_t genIndex = -1, genIndexBkg = -1;
670 if (genBkgTag == -1)
return;
671 else if(genBkgTag > 3) printf(
"Bkg generator tag larger than 3\n");
678 Int_t pdg = 0, status = 0, momLabel = -1;
692 if ( eprim < 0.1 || en < 0.5 )
return;
770 if ( genBkgTag == 3 )
832 if(phicluster < 0) phicluster+=TMath::TwoPi();
836 AliDebug(2,Form(
"Current Event %d; Before selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
838 ecluster,ptcluster, phicluster*TMath::RadToDeg(),etacluster));
846 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
856 AliDebug(2,Form(
"\t Cluster %d Pass E Cut",calo->GetID()));
866 if(tof < fTimeCutMin || tof >
fTimeCutMax)
return kFALSE;
868 AliDebug(2,Form(
"\t Cluster %d Pass Time Cut",calo->GetID()));
876 AliDebug(2,Form(
"\t Cluster %d Pass NCell Cut",calo->GetID()));
881 if(nMaxima < fNLMCutMin || nMaxima >
fNLMCutMax)
return kFALSE ;
882 AliDebug(2,Form(
"\t Cluster %d pass NLM %d of out of range",calo->GetID(), nMaxima));
892 if(! in )
return kFALSE ;
895 AliDebug(2,Form(
"\t Fiducial cut passed"));
910 AliDebug(2,
"\t Reject track-matched clusters");
914 AliDebug(2,
"\t Track-matching cut passed");
922 Double_t distBad=calo->GetDistanceToBadChannel() ;
923 if(distBad < 0.) distBad=9999. ;
928 else AliDebug(2,Form(
"\t Bad channel cut passed %4.2f > %2.2f",distBad,
fMinDist));
933 AliDebug(1,Form(
"Current Event %d; After selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
961 Bool_t inacceptance = kFALSE ;
963 TParticle * primStack = 0;
964 AliAODMCParticle * primAOD = 0;
967 AliStack * stack = 0;
973 AliFatal(
"Stack not available, is the MC handler called? STOP");
976 nprim = stack->GetNtrack();
980 TClonesArray * mcparticles = 0;
986 AliFatal(
"Standard MCParticles not available!");
989 nprim = mcparticles->GetEntriesFast();
992 for(
Int_t i=0 ; i < nprim; i++)
994 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
998 primStack = stack->Particle(i) ;
1001 AliWarning(
"ESD primaries pointer not available!!");
1005 pdg = primStack->GetPdgCode();
1006 status = primStack->GetStatusCode();
1009 if ( primStack->Energy() == TMath::Abs(primStack->Pz()) ||
1010 (primStack->Energy() - primStack->Pz()) < 1e-3 ||
1011 (primStack->Energy() + primStack->Pz()) < 0 ) continue ;
1019 photonY = 0.5*TMath::Log((primStack->Energy()+primStack->Pz())/(primStack->Energy()-primStack->Pz())) ;
1023 primAOD = (AliAODMCParticle *) mcparticles->At(i);
1026 AliWarning(
"AOD primaries pointer not available!!");
1030 pdg = primAOD->GetPdgCode();
1031 status = primAOD->GetStatus();
1034 if ( primAOD->E() == TMath::Abs(primAOD->Pz()) ||
1035 (primAOD->E() - primAOD->Pz()) < 1e-3 ||
1036 (primAOD->E() + primAOD->Pz()) < 0 ) continue ;
1039 fMomentum.SetPxPyPzE(primAOD->Px(),primAOD->Py(),primAOD->Pz(),primAOD->E());
1041 photonY = 0.5*TMath::Log((primAOD->E()+primAOD->Pz())/(primAOD->E()-primAOD->Pz())) ;
1045 if(pdg != 22 ) continue ;
1056 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
1059 inacceptance = kTRUE;
1092 if(status > 1) continue ;
1132 if(!takeIt) continue ;
1136 if(TMath::Abs(photonY) < 1.0)
1157 if(TMath::Abs(photonY) < 1.0)
1354 Float_t time = cluster->GetTOF()*1.e9;
1375 if(cells->GetCellAmplitude(absIdMax) > 0.1 && TMath::Abs(time) < 30)
1377 for (
Int_t ipos = 0; ipos < cluster->GetNCells(); ipos++)
1379 Int_t absId = cluster->GetCellsAbsId()[ipos];
1381 if( absId == absIdMax ) continue ;
1383 Double_t tcell = cells->GetCellTime(absId);
1384 Float_t amp = cells->GetCellAmplitude(absId);
1393 if( cells->GetCellAmplitude(absIdMax) < 0.1 )
continue ;
1418 nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
1419 nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
1424 nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
1425 nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
1437 if(TMath::Abs(time) < 25)
1443 if(time < 75 && time > -25)
1459 Int_t ncells = cluster->GetNCells();
1460 Float_t lambda0 = cluster->GetM02();
1461 Float_t lambda1 = cluster->GetM20();
1462 Float_t disp = cluster->GetDispersion()*cluster->GetDispersion();
1467 if(phi < 0) phi+=TMath::TwoPi();
1522 Int_t etaRegion = -1, phiRegion = -1;
1524 if(etaRegion >= 0 && etaRegion < 4 && phiRegion >=0 && phiRegion < 3)
1546 if ( lambda0 >=0.30 && lambda0 <= 0.40 ) l0bin = 1;
1547 else if( lambda0 >=0.23 && lambda0 <= 0.26 ) l0bin = 0;
1549 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
1551 for(
Int_t ipt = 0; ipt < 7; ipt++)
1553 if( pt >= ptLimit[ipt] && pt < ptLimit[ipt+1] )
1582 Int_t ncell = cluster->GetNCells();
1587 for(
Int_t icell = 0; icell < ncell; icell++)
1589 Int_t absId = cluster->GetCellAbsId(icell);
1590 Float_t cellE = cells->GetCellAmplitude(absId);
1591 Double_t cellTime = cells->GetCellTime(absId);
1597 enerList[icell] = cellE;
1598 timeList[icell] = cellTime;
1601 TMath::Sort(ncell,enerList,sortList);
1607 Int_t absIdMax = cluster->GetCellAbsId(sortList[0]);
1609 Double_t cellTimeMax = timeList[sortList[0]];
1617 for(
Int_t icell = 1; icell < ncell; icell++)
1619 Int_t absId = cluster->GetCellAbsId(sortList[icell]);
1620 Float_t cellE = enerList[sortList[icell]];
1621 Double_t cellTime = timeList[sortList[icell]];
1625 if ( absId == absIdMax )
continue;
1630 if(weight < 0.01)
continue;
1632 if ( TMath::Abs(cellTime) > 50 )
1635 largeTimeE += cellE;
1638 if ( l0bin == -1 )
continue;
1659 if ( TMath::Abs(cellTime) > 50 )
1670 Int_t icol = -1, icolAbs = -1;
1671 Int_t irow = -1, irowAbs = -1;
1678 if ( TMath::Abs(cellTime) > 50 )
1688 if ( largeTime > 0 )
1709 delete [] sortList ;
1710 delete [] enerList ;
1711 delete [] timeList ;
1716 Float_t dispp= 0., dEta = 0., dPhi = 0.;
1717 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
1721 l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
1738 if (energy < 2 ) ebin = 0;
1739 else if (energy < 4 ) ebin = 1;
1740 else if (energy < 6 ) ebin = 2;
1741 else if (energy < 10) ebin = 3;
1742 else if (energy < 15) ebin = 4;
1743 else if (energy < 20) ebin = 5;
1755 Float_t dZ = cluster->GetTrackDz();
1756 Float_t dR = cluster->GetTrackDx();
1763 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
1813 AliVCaloCells* cells = 0;
1823 const UInt_t nlabels = cluster->GetNLabels();
1824 Int_t overpdg[nlabels];
1825 Int_t overlab[nlabels];
1826 Int_t noverlaps = 0;
1827 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
1840 for(
Int_t icell = 0; icell < cluster->GetNCells(); icell++)
1842 cellE = cells->GetCellAmplitude(cluster->GetCellAbsId(icell));
1844 fraction+=cellE*cluster->GetCellAmplitudeFraction(icell);
1850 AliDebug(1,Form(
"Energy fraction of embedded signal %2.3f, Energy %2.3f",fraction, clusterE));
1889 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1895 else if(fraction > 0.5)
1899 else if(fraction > 0.1)
1926 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1932 else if(fraction > 0.5)
1936 else if(fraction > 0.1)
1969 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
1973 else if(noverlaps == 1)
1975 else if(noverlaps > 1)
1978 AliWarning(Form(
"n overlaps = %d!!", noverlaps));
1988 else if(energy < 6.)
2009 if (energy < 2 ) ebin = 0;
2010 else if (energy < 4 ) ebin = 1;
2011 else if (energy < 6 ) ebin = 2;
2012 else if (energy < 10) ebin = 3;
2013 else if (energy < 15) ebin = 4;
2014 else if (energy < 20) ebin = 5;
2035 Float_t dZ = cluster->GetTrackDz();
2036 Float_t dR = cluster->GetTrackDx();
2046 Bool_t positive = kFALSE;
2047 if(track) positive = (track->Charge()>0);
2082 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
2086 Float_t dEdx = track->GetTPCsignal();
2087 Float_t eOverp = cluster->E()/track->P();
2099 AliWarning(Form(
"Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT?", dR,dZ));
2122 if(cluster->GetNLabels()==1)
2172 const Int_t buffersize = 255;
2173 char onePar[buffersize] ;
2175 snprintf(onePar,buffersize,
"--- AliAnaPhoton ---:") ;
2179 snprintf(onePar,buffersize,
"fMinDist =%2.2f (Minimal distance to bad channel to accept cluster);",
fMinDist) ;
2181 snprintf(onePar,buffersize,
"fMinDist2=%2.2f (Cuts on Minimal distance to study acceptance evaluation);",
fMinDist2) ;
2183 snprintf(onePar,buffersize,
"fMinDist3=%2.2f (One more cut on distance used for acceptance-efficiency study);",
fMinDist3) ;
2197 return new TObjString(parList) ;
2207 outputContainer->SetName(
"PhotonHistos") ;
2238 Int_t bin[] = {0,2,4,6,10,15,20,100};
2240 TString cut[] = {
"Open",
"Reader",
"E",
"Time",
"NCells",
"NLM",
"Fidutial",
"Matching",
"Bad",
"PID"};
2241 for (
Int_t i = 0; i < 10 ; i++)
2244 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2245 nptbins,ptmin,ptmax);
2251 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2252 nptbins,ptmin,ptmax);
2258 fhEClusterSM =
new TH2F(
"hEClusterSM",
"Raw clusters E and super-module number",
2259 nptbins,ptmin,ptmax,
2265 fhPtClusterSM =
new TH2F(
"hPtClusterSM",
"Raw clusters #it{p}_{T} and super-module number",
2266 nptbins,ptmin,ptmax,
2272 fhEPhotonSM =
new TH2F(
"hEPhotonSM",
"Selected clusters E and super-module number",
2273 nptbins,ptmin,ptmax,
2279 fhPtPhotonSM =
new TH2F(
"hPtPhotonSM",
"Selected clusters #it{p}_{T} and super-module number",
2280 nptbins,ptmin,ptmax,
2286 fhNCellsE =
new TH2F (
"hNCellsE",
"# of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nbins,nmin,nmax);
2288 fhNCellsE->SetYTitle(
"# of cells in cluster");
2291 fhCellsE =
new TH2F (
"hCellsE",
"energy of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nptbins*2,ptmin,ptmax);
2292 fhCellsE->SetXTitle(
"#it{E}_{cluster} (GeV)");
2293 fhCellsE->SetYTitle(
"#it{E}_{cell} (GeV)");
2296 fhTimePt =
new TH2F (
"hTimePt",
"time of cluster vs pT of clusters", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2297 fhTimePt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2298 fhTimePt->SetYTitle(
"#it{time} (ns)");
2303 fhMaxCellDiffClusterE =
new TH2F (
"hMaxCellDiffClusterE",
"energy vs difference of cluster energy - max cell energy / cluster energy, good clusters",
2304 nptbins,ptmin,ptmax, 500,0,1.);
2310 fhEPhoton =
new TH1F(
"hEPhoton",
"Number of #gamma over calorimeter vs energy",nptbins,ptmin,ptmax);
2312 fhEPhoton->SetXTitle(
"#it{E}_{#gamma}(GeV)");
2315 fhPtPhoton =
new TH1F(
"hPtPhoton",
"Number of #gamma over calorimeter vs #it{p}_{T}",nptbins,ptmin,ptmax);
2317 fhPtPhoton->SetXTitle(
"p_{T #gamma}(GeV/#it{c})");
2327 fhPtEventPlanePhoton =
new TH2F(
"hPtEventPlanePhoton",
"centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
2334 (
"hEtaPhi",
"cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2340 (
"hPhiPhoton",
"#phi_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
2342 fhPhiPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2346 (
"hEtaPhoton",
"#eta_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,netabins,etamin,etamax);
2348 fhEtaPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2352 (
"hEtaPhiPhoton",
"#eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2359 (
"hEtaPhi05Photon",
"#eta vs #phi, E < 0.5",netabins,etamin,etamax,nphibins,phimin,phimax);
2365 fhNLocMax =
new TH2F(
"hNLocMax",
"Number of local maxima in cluster",
2366 nptbins,ptmin,ptmax,10,0,10);
2374 fhLam0E =
new TH2F (
"hLam0E",
"#lambda_{0}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2375 fhLam0E->SetYTitle(
"#lambda_{0}^{2}");
2376 fhLam0E->SetXTitle(
"#it{E} (GeV)");
2377 outputContainer->Add(
fhLam0E);
2379 fhLam0Pt =
new TH2F (
"hLam0Pt",
"#lambda_{0}^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2380 fhLam0Pt->SetYTitle(
"#lambda_{0}^{2}");
2381 fhLam0Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2384 fhLam1E =
new TH2F (
"hLam1E",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2385 fhLam1E->SetYTitle(
"#lambda_{1}^{2}");
2386 fhLam1E->SetXTitle(
"#it{E} (GeV)");
2387 outputContainer->Add(
fhLam1E);
2389 fhLam1Pt =
new TH2F (
"hLam1Pt",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2390 fhLam1Pt->SetYTitle(
"#lambda_{1}^{2}");
2391 fhLam1Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2396 fhDispE =
new TH2F (
"hDispE",
" dispersion^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2398 fhDispE->SetXTitle(
"#it{E} (GeV) ");
2399 outputContainer->Add(
fhDispE);
2401 fhDispPt =
new TH2F (
"hDispPt",
" dispersion^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2403 fhDispPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c}) ");
2409 fhLam0PtNLM1 =
new TH2F (
"hLam0PtNLM1",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2414 fhLam0PtNLM2 =
new TH2F (
"hLam0PtNLM2",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2419 fhLam1PtNLM1 =
new TH2F (
"hLam1PtNLM1",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2424 fhLam1PtNLM2 =
new TH2F (
"hLam1PtNLM2",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2432 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);
2433 fhLam0ETM->SetYTitle(
"#lambda_{0}^{2}");
2437 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);
2439 fhLam0PtTM->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2442 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);
2443 fhLam1ETM->SetYTitle(
"#lambda_{1}^{2}");
2449 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);
2458 fhLam0ETRD =
new TH2F (
"hLam0ETRD",
"#lambda_{0}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2463 fhLam0PtTRD =
new TH2F (
"hLam0PtTRD",
"#lambda_{0}^{2} vs #it{p}_{T}, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2465 fhLam0PtTRD->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2468 fhLam1ETRD =
new TH2F (
"hLam1ETRD",
"#lambda_{1}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2475 fhDispETRD =
new TH2F (
"hDispETRD",
" dispersion^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2483 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);
2488 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);
2493 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);
2500 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);
2510 fhNCellsLam0LowE =
new TH2F (
"hNCellsLam0LowE",
"N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2515 fhNCellsLam0HighE =
new TH2F (
"hNCellsLam0HighE",
"N_{cells} in cluster vs #lambda_{0}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2520 fhNCellsLam1LowE =
new TH2F (
"hNCellsLam1LowE",
"N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2525 fhNCellsLam1HighE =
new TH2F (
"hNCellsLam1HighE",
"N_{cells} in cluster vs #lambda_{1}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2530 fhNCellsDispLowE =
new TH2F (
"hNCellsDispLowE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2535 fhNCellsDispHighE =
new TH2F (
"hNCellsDispHighE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2540 fhEtaLam0LowE =
new TH2F (
"hEtaLam0LowE",
"#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2545 fhPhiLam0LowE =
new TH2F (
"hPhiLam0LowE",
"#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2550 fhEtaLam0HighE =
new TH2F (
"hEtaLam0HighE",
"#eta vs #lambda_{0}^{2}, #it{E} > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2555 fhPhiLam0HighE =
new TH2F (
"hPhiLam0HighE",
"#phi vs #lambda_{0}^{2}, #it{E} > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2560 fhLam1Lam0LowE =
new TH2F (
"hLam1Lam0LowE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2565 fhLam1Lam0HighE =
new TH2F (
"hLam1Lam0HighE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2570 fhLam0DispLowE =
new TH2F (
"hLam0DispLowE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2575 fhLam0DispHighE =
new TH2F (
"hLam0DispHighE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2580 fhDispLam1LowE =
new TH2F (
"hDispLam1LowE",
"Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2585 fhDispLam1HighE =
new TH2F (
"hDispLam1HighE",
"Dispersion^{2} vs #lambda_{1^{2}} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2592 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);
2594 fhDispEtaE->SetYTitle(
"#sigma^{2}_{#eta #eta}");
2597 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);
2599 fhDispPhiE->SetYTitle(
"#sigma^{2}_{#phi #phi}");
2602 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);
2604 fhSumEtaE->SetYTitle(
"#delta^{2}_{#eta #eta}");
2607 fhSumPhiE =
new TH2F (
"hSumPhiE",
"#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",
2608 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2610 fhSumPhiE->SetYTitle(
"#delta^{2}_{#phi #phi}");
2613 fhSumEtaPhiE =
new TH2F (
"hSumEtaPhiE",
"#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",
2614 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
2619 fhDispEtaPhiDiffE =
new TH2F (
"hDispEtaPhiDiffE",
"#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",
2620 nptbins,ptmin,ptmax,200, -10,10);
2625 fhSphericityE =
new TH2F (
"hSphericityE",
"(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",
2626 nptbins,ptmin,ptmax, 200, -1,1);
2628 fhSphericityE->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
2631 fhDispSumEtaDiffE =
new TH2F (
"hDispSumEtaDiffE",
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2633 fhDispSumEtaDiffE->SetYTitle(
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
2636 fhDispSumPhiDiffE =
new TH2F (
"hDispSumPhiDiffE",
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2638 fhDispSumPhiDiffE->SetYTitle(
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
2641 for(
Int_t i = 0; i < 7; i++)
2643 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]),
2644 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2649 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]),
2650 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2655 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]),
2656 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2669 TString cutTM [] = {
"NoCut",
""};
2671 for(
Int_t i = 0; i < 2; i++)
2674 (Form(
"hTrackMatchedDEta%s",cutTM[i].
Data()),
2675 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2676 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2681 (Form(
"hTrackMatchedDPhi%s",cutTM[i].
Data()),
2682 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2683 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2688 (Form(
"hTrackMatchedDEtaDPhi%s",cutTM[i].
Data()),
2689 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2690 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2695 (Form(
"hTrackMatchedDEtaPos%s",cutTM[i].
Data()),
2696 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2697 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2702 (Form(
"hTrackMatchedDPhiPos%s",cutTM[i].
Data()),
2703 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2704 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2709 (Form(
"hTrackMatchedDEtaDPhiPos%s",cutTM[i].
Data()),
2710 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2711 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2716 (Form(
"hTrackMatchedDEtaNeg%s",cutTM[i].
Data()),
2717 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2718 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2723 (Form(
"hTrackMatchedDPhiNeg%s",cutTM[i].
Data()),
2724 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2725 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2730 (Form(
"hTrackMatchedDEtaDPhiNeg%s",cutTM[i].
Data()),
2731 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2732 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2736 fhdEdx[i] =
new TH2F (Form(
"hdEdx%s",cutTM[i].
Data()),Form(
"matched track <dE/dx> vs cluster E, %s",cutTM[i].
Data()),
2737 nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
2738 fhdEdx[i]->SetXTitle(
"#it{E} (GeV)");
2739 fhdEdx[i]->SetYTitle(
"<dE/dx>");
2741 fhEOverP[i] =
new TH2F (Form(
"hEOverP%s",cutTM[i].
Data()),Form(
"matched track E/p vs cluster E, %s",cutTM[i].
Data()),
2742 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2743 fhEOverP[i]->SetXTitle(
"#it{E} (GeV)");
2755 outputContainer->Add(
fhdEdx[i]);
2761 (Form(
"hTrackMatchedDEtaTRD%s",cutTM[i].
Data()),
2762 Form(
"d#eta of cluster-track vs cluster energy, SM behind TRD, %s",cutTM[i].
Data()),
2763 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2768 (Form(
"hTrackMatchedDPhiTRD%s",cutTM[i].
Data()),
2769 Form(
"d#phi of cluster-track vs cluster energy, SM behing TRD, %s",cutTM[i].
Data()),
2770 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2775 (Form(
"hEOverPTRD%s",cutTM[i].
Data()),
2776 Form(
"matched track E/p vs cluster E, behind TRD, %s",cutTM[i].
Data()),
2777 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2789 (Form(
"hTrackMatchedDEtaMCNoOverlap%s",cutTM[i].
Data()),
2790 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2791 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2796 (Form(
"hTrackMatchedDPhiMCNoOverlap%s",cutTM[i].
Data()),
2797 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2798 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2805 (Form(
"hTrackMatchedDEtaMCOverlap%s",cutTM[i].
Data()),
2806 Form(
"d#eta of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2807 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2812 (Form(
"hTrackMatchedDPhiMCOverlap%s",cutTM[i].
Data()),
2813 Form(
"d#phi of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2814 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2822 (Form(
"hTrackMatchedDEtaMCConversion%s",cutTM[i].
Data()),
2823 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2824 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2829 (Form(
"hTrackMatchedDPhiMCConversion%s",cutTM[i].
Data()),
2830 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2831 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2839 (Form(
"hTrackMatchedMCParticle%s",cutTM[i].
Data()),
2840 Form(
"Origin of particle vs energy %s",cutTM[i].
Data()),
2841 nptbins,ptmin,ptmax,8,0,8);
2861 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
2863 for(
Int_t i = 0 ; i < 7 ; i++)
2866 Form(
"Selected photon #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2871 Form(
"Photon cluster E vs #it{t}_{max}-#it{t}_{cell} in cluster, %s Pile-Up event",pileUpName[i].
Data()),
2872 nptbins,ptmin,ptmax,400,-200,200);
2878 fhTimePtPhotonNoCut =
new TH2F (
"hTimePtPhoton_NoCut",
"time of photon cluster vs pT of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2883 fhTimePtPhotonSPD =
new TH2F (
"hTimePtPhoton_SPD",
"time of photon cluster vs pT of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2888 fhTimeNPileUpVertSPD =
new TH2F (
"hTime_NPileUpVertSPD",
"time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,20,0,20);
2893 fhTimeNPileUpVertTrack =
new TH2F (
"hTime_NPileUpVertTracks",
"time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 20,0,20 );
2899 nptbins,ptmin,ptmax,20,0,20);
2905 nptbins,ptmin,ptmax, 20,0,20 );
2911 nptbins,ptmin,ptmax,20,0,20);
2917 nptbins,ptmin,ptmax, 20,0,20 );
2923 nptbins,ptmin,ptmax,20,0,20);
2929 nptbins,ptmin,ptmax, 20,0,20 );
2938 for(
Int_t ieta = 0; ieta < 4; ieta++)
2940 for(
Int_t iphi = 0; iphi < 3; iphi++)
2964 new TH2F(Form(
"hLam0_eta%d_phi%d_sm%d",ieta,iphi,ism),
2965 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2966 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2972 new TH2F(Form(
"hLam1_eta%d_phi%d_sm%d",ieta,iphi,ism),
2973 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2974 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2982 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
2983 TString l0bin [] = {
"0.23<#lambda^{2}_{0}<0.26",
"0.3<#lambda^{2}_{0}<0.4"};
2985 for(
Int_t il0 = 0; il0 < 2; il0++)
2987 for(
Int_t ipt = 0; ipt < 7; ipt++)
2990 (Form(
"hEtaPhiLam0Bin%d_PtBin%d",il0,ipt),
2991 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
2992 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2993 netabins,etamin,etamax,nphibins,phimin,phimax);
2999 (Form(
"hColRowLam0Bin%d_PtBin%d",il0,ipt),
3000 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, w > 0",
3001 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3002 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3008 (Form(
"hColRowLam0Bin%d_PtBin%dWeighted",il0,ipt),
3009 Form(
"cluster cell row vs column weighted in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
3010 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3011 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3017 (Form(
"hColRowLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
3018 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, |t| > 50 ns, w > 0",
3019 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3020 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3044 (Form(
"hEtaPhiLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
3045 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, t > 50 ns, %s",
3046 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3047 netabins,etamin,etamax,nphibins,phimin,phimax);
3053 (Form(
"hCellClusterIndexEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3054 Form(
"#it{t}_{cell} vs cell index (E sorted) in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3055 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3056 ntimebins,timemin,timemax,30,0,30);
3062 (Form(
"hCellClusterEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3063 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3064 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3065 ntimebins,timemin,timemax,100,0,5);
3071 (Form(
"hCellClusterEFracAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3072 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3073 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3074 ntimebins,timemin,timemax,100,0,1);
3083 (Form(
"hLam1Lam0Bin%d_sm%d",il0,ism),
3084 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, %s",ism,l0bin[il0].
Data()),
3085 nptbins,ptmin,ptmax,40,0,0.4);
3091 (Form(
"hTimeLam0Bin%d_sm%d",il0,ism),
3092 Form(
"#it{p}_{T} vs cluster cell time in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3093 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3099 (Form(
"hTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3100 Form(
"#it{p}_{T} vs cluster cell time weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3101 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3107 (Form(
"hDTimeLam0Bin%d_sm%d",il0,ism),
3108 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3109 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3115 (Form(
"hDTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3116 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3117 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3123 (Form(
"hCellClusterEFracLam0Bin%d_sm%d",il0,ism),
3124 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3125 nptbins,ptmin,ptmax,100,0,1);
3139 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3140 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3141 nptbins,ptmin,ptmax,100,0,1);
3147 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell_Total",il0,ism),
3148 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, all |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3149 nptbins,ptmin,ptmax,100,0,1);
3155 (Form(
"hCellClusterELam0Bin%d_sm%d",il0,ism),
3156 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3157 nptbins,ptmin,ptmax,500,0,10);
3163 (Form(
"hCellClusterELam0Bin%d_sm%d_Weighted",il0,ism),
3164 Form(
"#it{p}_{T} vs cell E weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3165 nptbins,ptmin,ptmax,500,0,10);
3171 (Form(
"hCellClusterELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3172 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3173 nptbins,ptmin,ptmax,500,0,10);
3179 (Form(
"hCellClusterIndexELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3180 Form(
"#it{p}_{T} vs cell index (E sorted) in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3181 nptbins,ptmin,ptmax,30,0,30);
3187 (Form(
"hNCellsWithLargeTimeInClusterLam0Bin%d_sm%d",il0,ism),
3188 Form(
"#it{p}_{T} vs number of cells in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3189 nptbins,ptmin,ptmax,30,0,30);
3210 (Form(
"hLam0_sm%d",ism),
3211 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d",ism),
3212 nptbins,ptmin,ptmax,40,0,0.4);
3214 fhLam0PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3218 (Form(
"hLam1_sm%d",ism),
3219 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d",ism),
3220 nptbins,ptmin,ptmax,40,0,0.4);
3222 fhLam1PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3226 (Form(
"hLam0_sm%d_LargeTimeInClusterCell",ism),
3227 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ism),
3228 nptbins,ptmin,ptmax,40,0,0.4);
3234 (Form(
"hLam1_sm%d_LargeTimeInClusterCell",ism),
3235 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ism),
3236 nptbins,ptmin,ptmax,40,0,0.4);
3277 for(
Int_t ilarge = 0; ilarge < 5; ilarge++)
3280 (Form(
"hLam0_NLargeTimeInClusterCell%d",ilarge),
3281 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ilarge),
3282 nptbins,ptmin,ptmax,40,0,0.4);
3288 (Form(
"hLam1_NLargeTimeInClusterCell%d",ilarge),
3289 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ilarge),
3290 nptbins,ptmin,ptmax,40,0,0.4);
3301 TString ptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}",
3302 "#pi^{0}" ,
"#eta" ,
"e^{#pm}" ,
"#gamma->e^{#pm}" ,
3303 "hadron?" ,
"Anti-N" ,
"Anti-P" ,
3304 "Neutron" ,
"Proton" ,
"#pi^{#pm}" ,
3305 "#gamma_{prompt}",
"#gamma_{fragmentation}",
"#gamma_{ISR}" ,
"String" } ;
3307 TString pname[] = {
"Photon" ,
"PhotonPi0Decay" ,
"PhotonEtaDecay",
"PhotonOtherDecay",
3308 "Pi0" ,
"Eta" ,
"Electron" ,
"Conversion" ,
3309 "Hadron" ,
"AntiNeutron" ,
"AntiProton" ,
3310 "Neutron" ,
"Proton" ,
"ChPion" ,
3311 "PhotonPrompt",
"PhotonFragmentation",
"PhotonISR" ,
"String" } ;
3315 fhMCE[i] =
new TH1F(Form(
"hE_MC%s",pname[i].
Data()),
3316 Form(
"cluster from %s : E ",ptype[i].
Data()),
3317 nptbins,ptmin,ptmax);
3318 fhMCE[i]->SetXTitle(
"#it{E} (GeV)");
3319 outputContainer->Add(
fhMCE[i]) ;
3321 fhMCPt[i] =
new TH1F(Form(
"hPt_MC%s",pname[i].
Data()),
3322 Form(
"cluster from %s : #it{p}_{T} ",ptype[i].
Data()),
3323 nptbins,ptmin,ptmax);
3324 fhMCPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3325 outputContainer->Add(
fhMCPt[i]) ;
3328 Form(
"cluster from %s : #eta ",ptype[i].
Data()),
3329 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3330 fhMCEta[i]->SetYTitle(
"#eta");
3331 fhMCEta[i]->SetXTitle(
"#it{E} (GeV)");
3332 outputContainer->Add(
fhMCEta[i]) ;
3335 Form(
"cluster from %s : #phi ",ptype[i].
Data()),
3336 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3337 fhMCPhi[i]->SetYTitle(
"#phi (rad)");
3338 fhMCPhi[i]->SetXTitle(
"#it{E} (GeV)");
3339 outputContainer->Add(
fhMCPhi[i]) ;
3343 Form(
"MC - Reco E from %s",pname[i].
Data()),
3344 nptbins,ptmin,ptmax, 200,-50,50);
3345 fhMCDeltaE[i]->SetYTitle(
"#Delta #it{E} (GeV)");
3350 Form(
"MC - Reco #it{p}_{T} from %s",pname[i].
Data()),
3351 nptbins,ptmin,ptmax, 200,-50,50);
3352 fhMCDeltaPt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3353 fhMCDeltaPt[i]->SetYTitle(
"#Delta #it{p}_{T} (GeV/#it{c})");
3357 Form(
"E distribution, reconstructed vs generated from %s",pname[i].
Data()),
3358 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3359 fhMC2E[i]->SetXTitle(
"#it{E}_{rec} (GeV)");
3360 fhMC2E[i]->SetYTitle(
"#it{E}_{gen} (GeV)");
3361 outputContainer->Add(
fhMC2E[i]);
3364 Form(
"p_T distribution, reconstructed vs generated from %s",pname[i].
Data()),
3365 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3366 fhMC2Pt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3367 fhMC2Pt[i]->SetYTitle(
"p_{T,gen} (GeV/#it{c})");
3368 outputContainer->Add(
fhMC2Pt[i]);
3371 TString pptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
3372 "#gamma_{#eta decay}",
"#gamma_{other decay}" ,
3373 "#gamma_{prompt}" ,
"#gamma_{fragmentation}",
"#gamma_{ISR}" } ;
3375 TString ppname[] = {
"Photon" ,
"PhotonPi0Decay" ,
3376 "PhotonEtaDecay",
"PhotonOtherDecay" ,
3377 "PhotonPrompt" ,
"PhotonFragmentation",
"PhotonISR" } ;
3381 fhEPrimMC[i] =
new TH1F(Form(
"hEPrim_MC%s",ppname[i].
Data()),
3382 Form(
"primary photon %s : E ",pptype[i].
Data()),
3383 nptbins,ptmin,ptmax);
3384 fhEPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3388 Form(
"primary photon %s : #it{p}_{T} ",pptype[i].
Data()),
3389 nptbins,ptmin,ptmax);
3390 fhPtPrimMC[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3394 Form(
"primary photon %s : Rapidity ",pptype[i].
Data()),
3395 nptbins,ptmin,ptmax,200,-2,2);
3397 fhYPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3401 Form(
"primary photon %s : #eta",pptype[i].
Data()),
3402 nptbins,ptmin,ptmax,200,-2,2);
3408 Form(
"primary photon %s : #phi ",pptype[i].
Data()),
3409 nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3416 Form(
"primary photon %s in acceptance: E ",pptype[i].
Data()),
3417 nptbins,ptmin,ptmax);
3422 Form(
"primary photon %s in acceptance: #it{p}_{T} ",pptype[i].
Data()),
3423 nptbins,ptmin,ptmax);
3428 Form(
"primary photon %s in acceptance: Rapidity ",pptype[i].
Data()),
3429 nptbins,ptmin,ptmax,100,-1,1);
3435 Form(
"primary photon %s in acceptance: #eta ",pptype[i].
Data()),
3436 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3442 Form(
"primary photon %s in acceptance: #phi ",pptype[i].
Data()),
3443 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3451 TString ptypess[] = {
"#gamma",
"hadron?",
"#pi^{0}",
"#eta",
"#gamma->e^{#pm}",
"e^{#pm}"} ;
3453 TString pnamess[] = {
"Photon",
"Hadron",
"Pi0",
"Eta",
"Conversion",
"Electron"} ;
3455 for(
Int_t i = 0; i < 6; i++)
3458 Form(
"cluster from %s : E vs #lambda_{0}^{2}",ptypess[i].
Data()),
3459 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3465 Form(
"cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}",ptypess[i].
Data()),
3466 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3471 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
3473 for(
Int_t iover = 0; iover < 3; iover++)
3476 Form(
"cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}, N Overlaps = %d",ptypess[i].
Data(),iover),
3477 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3485 Form(
"cluster from %s : E vs #lambda_{1}^{2}",ptypess[i].
Data()),
3486 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3492 Form(
"# of cells in cluster from %s vs E of clusters",ptypess[i].
Data()),
3493 nptbins,ptmin,ptmax, nbins,nmin,nmax);
3495 fhMCNCellsE[i]->SetYTitle(
"# of cells in cluster");
3501 Form(
"cluster from %s : E vs dispersion^{2}",ptypess[i].
Data()),
3502 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3508 Form(
"energy vs difference of cluster energy from %s - max cell energy / cluster energy, good clusters",ptypess[i].
Data()),
3509 nptbins,ptmin,ptmax, 500,0,1.);
3515 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3516 ssbins,ssmin,ssmax,500,0,1.);
3522 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3523 ssbins,ssmin,ssmax,500,0,1.);
3529 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3530 ssbins,ssmin,ssmax,500,0,1.);
3536 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3537 nbins/5,nmin,nmax/5,500,0,1.);
3543 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3544 nbins/5,nmin,nmax/5,500,0,1.);
3550 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3551 nbins/5,nmin,nmax/5,500,0,1.);
3559 Form(
"cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].
Data()),
3560 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3566 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].
Data()),
3567 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3573 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()),
3574 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
3580 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].
Data()),
3581 nptbins,ptmin,ptmax,200,-10,10);
3587 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()),
3588 nptbins,ptmin,ptmax, 200,-1,1);
3590 fhMCESphericity[i]->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
3593 for(
Int_t ie = 0; ie < 7; ie++)
3596 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]),
3597 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3603 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]),
3604 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3610 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]),
3611 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3644 if(
GetReader()->IsEmbeddedClusterSelectionOn())
3647 "Energy Fraction of embedded signal versus cluster energy",
3648 nptbins,ptmin,ptmax,100,0.,1.);
3654 "cluster from Photon embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3655 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3661 "cluster from Photon embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3662 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3668 "cluster from Photon embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3669 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3675 "cluster from Photonm embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3676 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3682 "cluster from Pi0 embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3683 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3689 "cluster from Pi0 embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3690 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3696 "cluster from Pi0 embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3697 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3703 "cluster from Pi0 embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3704 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3714 fhMCConversionVertex =
new TH2F(
"hMCPhotonConversionVertex",
"cluster from converted photon, #it{p}_{T} vs vertex distance",
3715 nptbins,ptmin,ptmax,500,0,500);
3722 fhMCConversionVertexTRD =
new TH2F(
"hMCPhotonConversionVertexTRD",
"cluster from converted photon, #it{p}_{T} vs vertex distance, SM covered by TRD",
3723 nptbins,ptmin,ptmax,500,0,500);
3731 TString region[] = {
"ITS",
"TPC",
"TRD",
"TOF",
"Top EMCal",
"In EMCal"};
3732 for(
Int_t iR = 0; iR < 6; iR++)
3735 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s",region[iR].
Data()),
3736 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3742 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s",region[iR].
Data()),
3743 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3752 for(
Int_t iR = 0; iR < 6; iR++)
3755 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3756 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3762 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3763 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3810 (Form(
"hEBin%d_Cluster_EtaPhi",ie),
3811 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3812 netabins,etamin,etamax,nphibins,phimin,phimax);
3818 (Form(
"hEBin%d_Cluster_ColRow",ie),
3819 Form(
"column vs row, cluster max E cell, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3820 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3826 (Form(
"hEBin%d_Cluster_EtaPhi_PID",ie),
3827 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}, PID cut",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3828 netabins,etamin,etamax,nphibins,phimin,phimax);
3834 (Form(
"hEBin%d_Cluster_ColRow_PID",ie),
3835 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]),
3836 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3845 TString caseTitle[] = {
"",
"CleanCluster",
"MergedClusterHijingBkg",
"MergedClusterNotHijingBkg",
"MergedClusterHijingAndOtherBkg",
"MergedCluster"};
3849 for(
Int_t icase = 0; icase < ncases; icase++)
3852 (Form(
"hLocalRegionClusterEtaPhi%s",caseTitle[icase].
Data()),
3853 "cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
3859 (Form(
"hLocalRegionClusterEnergySum%s",caseTitle[icase].
Data()),
3860 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3861 nptbins,ptmin,ptmax, 200,0,100);
3867 (Form(
"hLocalRegionClusterMultiplicity%s",caseTitle[icase].
Data()),
3868 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3869 nptbins,ptmin,ptmax, 200,0,200);
3877 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s",caseTitle[icase].
Data()),
3878 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3879 100,0,100, 200,0,100);
3885 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s",caseTitle[icase].
Data()),
3886 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3887 100,0,100, 200,0,200);
3899 (Form(
"hLocalRegionClusterEnergySum%s_MCPi0Decay",caseTitle[icase].
Data()),
3900 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3901 nptbins,ptmin,ptmax, 200,0,100);
3907 (Form(
"hLocalRegionClusterMultiplicity%s_MCPi0Decay",caseTitle[icase].
Data()),
3908 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3909 nptbins,ptmin,ptmax, 200,0,200);
3917 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3918 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3919 100,0,100, 200,0,100);
3925 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3926 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3927 100,0,100, 200,0,200);
3937 (Form(
"hLocalRegionClusterEnergySumHijing%s",caseTitle[icase].
Data()),
3938 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
3939 nptbins,ptmin,ptmax, 200,0,100);
3945 (Form(
"hLocalRegionClusterMultiplicityHijing%s",caseTitle[icase].
Data()),
3946 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
3947 nptbins,ptmin,ptmax, 200,0,200);
3953 (Form(
"hLocalRegionClusterEnergySumAdded%s",caseTitle[icase].
Data()),
3954 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
3955 nptbins,ptmin,ptmax, 200,0,100);
3961 (Form(
"hLocalRegionClusterMultiplicityAdded%s",caseTitle[icase].
Data()),
3962 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
3963 nptbins,ptmin,ptmax, 200,0,200);
3972 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s",caseTitle[icase].
Data()),
3973 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
3974 100,0,100, 200,0,100);
3980 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s",caseTitle[icase].
Data()),
3981 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
3982 100,0,100, 200,0,200);
3989 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s",caseTitle[icase].
Data()),
3990 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
3991 100,0,100, 200,0,100);
3997 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s",caseTitle[icase].
Data()),
3998 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
3999 100,0,100, 200,0,200);
4010 (Form(
"hLocalRegionClusterEnergySumHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4011 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
4012 nptbins,ptmin,ptmax, 200,0,100);
4018 (Form(
"hLocalRegionClusterMultiplicityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4019 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
4020 nptbins,ptmin,ptmax, 200,0,200);
4026 (Form(
"hLocalRegionClusterEnergySumAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4027 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
4028 nptbins,ptmin,ptmax, 200,0,100);
4034 (Form(
"hLocalRegionClusterMultiplicityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4035 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
4036 nptbins,ptmin,ptmax, 200,0,200);
4045 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4046 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
4047 100,0,100, 200,0,100);
4053 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4054 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
4055 100,0,100, 200,0,200);
4062 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4063 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
4064 100,0,100, 200,0,100);
4070 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4071 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
4072 100,0,100, 200,0,200);
4084 (
"hLocalRegionClusterEnergySumHijing2",
4085 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
4086 nptbins,ptmin,ptmax, 200,0,100);
4092 (
"hLocalRegionClusterMultiplicityHijing2",
4093 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
4094 nptbins,ptmin,ptmax, 200,0,200);
4102 (
"hLocalRegionClusterEnergySumPerCentralityHijing2",
4103 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
4104 100,0,100, 200,0,100);
4110 (
"hLocalRegionClusterMultiplicityPerCentralityHijing2",
4111 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
4112 100,0,100, 200,0,200);
4155 (
"hDistance2AddedSignals",
"Distance added signals"
4156 ,nptbins,ptmin,ptmax,100,0,0.4);
4162 (
"hDistance2Hijing",
"Distance 2 hijing clusters"
4163 ,nptbins,ptmin,ptmax,100,0,0.4);
4169 (
"hDistanceAddedSignalsHijing",
"Distance added signals to hijing"
4170 ,nptbins,ptmin,ptmax,100,0,0.4);
4179 TString mcGenNames[] = {
"",
"_MC_Pi0Merged",
"_MC_Pi0Decay",
"_MC_EtaDecay",
"_MC_PhotonOther",
"_MC_Electron",
"_MC_Other"};
4180 TString mcGenTitle[] = {
"",
",MC Pi0-Merged",
",MC Pi0-Decay",
", MC Eta-Decay",
", MC Photon other sources",
", MC Electron",
", MC other sources"};
4184 if(igen==0) add =
"";
4188 Form(
"Number of selected clusters with contribution of %s generator%s, no overlap",
4190 nptbins,ptmin,ptmax);
4196 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4198 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4204 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4206 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4214 Form(
"Number of selected clusters with contribution of >=2 generators, main %s%s",
4216 nptbins,ptmin,ptmax);
4222 Form(
"#it{E}_{reco}/#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4224 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4230 Form(
"#it{E}_{reco}-#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4232 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4242 Form(
"Number of selected clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4244 nptbins,ptmin,ptmax);
4250 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4252 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4258 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4260 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4268 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4270 nptbins,ptmin,ptmax);
4277 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4279 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4286 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4288 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4296 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4298 nptbins,ptmin,ptmax);
4304 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4306 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4312 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4314 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4322 return outputContainer ;
4331 AliFatal(
"!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
4333 AliFatal(
"!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
4378 AliVCaloCells* cells = 0;
4421 TClonesArray * clusterList = 0;
4430 Int_t nclusters = clusterList->GetEntriesFast();
4431 for (
Int_t iclus = 0; iclus < nclusters; iclus++)
4433 AliVCluster * clus =
dynamic_cast<AliVCluster*
> (clusterList->At(iclus));
4447 Int_t nCaloClusters = pl->GetEntriesFast();
4455 for(
Int_t icalo = 0; icalo < nCaloClusters; icalo++)
4457 AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
4461 Int_t evtIndex = 0 ;
4464 evtIndex=
GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
4489 AliAODPWG4Particle aodph = AliAODPWG4Particle(
fMomentum);
4493 Int_t label = calo->GetLabel();
4494 aodph.SetLabel(label);
4495 aodph.SetCaloLabel(calo->GetID(),-1);
4501 Double_t distBad=calo->GetDistanceToBadChannel() ;
4502 if (distBad >
fMinDist3) aodph.SetDistToBad(2) ;
4503 else if(distBad >
fMinDist2) aodph.SetDistToBad(1) ;
4504 else aodph.SetDistToBad(0) ;
4519 AliDebug(1,Form(
"Origin of candidate, bit map %d",aodph.GetTag()));
4528 if( absIdMax < 0 ) AliFatal(
"Wrong absID");
4530 Int_t largeTimeInCellCluster = kFALSE;
4532 aodph.SetFiducialArea(largeTimeInCellCluster);
4535 aodph.SetM02(calo->GetM02());
4536 aodph.SetM20(calo->GetM20());
4537 aodph.SetNLM(nMaxima);
4539 Float_t time = calo->GetTOF()*1e9;
4541 aodph.SetTime(time);
4543 aodph.SetNCells(calo->GetNCells());
4545 aodph.SetSModNumber(nSM);
4557 Int_t icolAbs = -1, irowAbs = -1;
4563 Int_t icol = -1, irow = -1, iRCU = -1;
4566 if(ebin>=0 && ebin < fNEBinCuts)
4585 aodph.SetIdentifiedParticleType(
GetCaloPID()->GetIdentifiedParticleType(calo));
4587 AliDebug(1,Form(
"PDG of identified particle %d",aodph.GetIdentifiedParticleType()));
4602 AliDebug(1,
"PID Bits set");
4605 AliDebug(1,Form(
"Photon selection cuts passed: pT %3.2f, pdg %d",aodph.Pt(),aodph.GetIdentifiedParticleType()));
4625 if(ebin>=0 && ebin < fNEBinCuts)
4633 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
4650 for(
Int_t icell = 0; icell < calo->GetNCells(); icell++)
4665 AliDebug(1,Form(
"End fill AODs, with %d entries",
GetOutputAODBranch()->GetEntriesFast()));
4685 AliDebug(1,Form(
"AOD branch entries %d", naod));
4692 for(
Int_t iaod = 0; iaod < naod ; iaod++)
4695 Int_t pdg = ph->GetIdentifiedParticleType();
4697 AliDebug(2,Form(
"PDG %d, MC TAG %d, Calorimeter <%d>",ph->GetIdentifiedParticleType(),ph->GetTag(), ph->GetDetectorTag())) ;
4704 AliDebug(2,Form(
"ID Photon: pt %f, phi %f, eta %f", ph->Pt(),ph->Phi(),ph->Eta())) ;
4709 Float_t phicluster = ph->Phi();
4710 Float_t etacluster = ph->Eta();
4753 Int_t label = ph->GetLabel();
4757 AliDebug(1,Form(
"*** bad label ***: label %d", label));
4764 Int_t pdg = 0, status = 0, momLabel = -1;
4775 Int_t tag =ph->GetTag();
4776 Int_t mcParticleTag = -1;