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++)
399 if(phi < 3.15 - radius && phi > 1.4 + radius && TMath::Abs(eta) < 0.7-radius)
402 Int_t genIndex, genIndexBkg;
403 Int_t genBkgTag = -1;
405 TString genName2 , genNameBkg2 ;
406 Int_t genIndex2, genIndexBkg2;
407 Int_t genBkgTag2 = -1;
411 AliVCluster * calo = (AliVCluster*) (clusterList->At(icalo));
418 if(
IsDataMC() && !genName.Contains(
"ijing") &&
432 for(
Int_t icalo2 = 0; icalo2 < clusterList->GetEntriesFast(); icalo2++)
434 if ( icalo2 == icalo )
continue;
436 AliVCluster * calo2 = (AliVCluster*) (clusterList->At(icalo2));
444 if(TMath::Abs(dPhi) >= TMath::Pi())
445 dPhi = TMath::TwoPi()-TMath::Abs(dPhi);
447 Float_t distance = TMath::Sqrt( dEta*dEta + dPhi*dPhi );
463 if ( distance > radius)
continue;
470 if(genName2.Contains(
"ijing"))
473 sumEHi += calo2->E();
476 if(genName2.Contains(
"ijing") || genBkgTag2 == 1 || genBkgTag2 == 3)
479 sumEHi2 += calo2->E();
550 if(genBkgTag < 0)
return;
666 TString genName =
"", genNameBkg =
"";
667 Int_t genIndex = -1, genIndexBkg = -1;
669 if (genBkgTag == -1)
return;
670 else if(genBkgTag > 3) printf(
"Bkg generator tag larger than 3\n");
677 Int_t pdg = 0, status = 0, momLabel = -1;
691 if ( eprim < 0.1 || en < 0.5 )
return;
769 if ( genBkgTag == 3 )
831 if(phicluster < 0) phicluster+=TMath::TwoPi();
835 AliDebug(2,Form(
"Current Event %d; Before selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
837 ecluster,ptcluster, phicluster*TMath::RadToDeg(),etacluster));
845 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
855 AliDebug(2,Form(
"\t Cluster %d Pass E Cut",calo->GetID()));
865 if(tof < fTimeCutMin || tof >
fTimeCutMax)
return kFALSE;
867 AliDebug(2,Form(
"\t Cluster %d Pass Time Cut",calo->GetID()));
875 AliDebug(2,Form(
"\t Cluster %d Pass NCell Cut",calo->GetID()));
880 if(nMaxima < fNLMCutMin || nMaxima >
fNLMCutMax)
return kFALSE ;
881 AliDebug(2,Form(
"\t Cluster %d pass NLM %d of out of range",calo->GetID(), nMaxima));
891 if(! in )
return kFALSE ;
894 AliDebug(2,Form(
"\t Fiducial cut passed"));
909 AliDebug(2,
"\t Reject track-matched clusters");
913 AliDebug(2,
"\t Track-matching cut passed");
921 Double_t distBad=calo->GetDistanceToBadChannel() ;
922 if(distBad < 0.) distBad=9999. ;
927 else AliDebug(2,Form(
"\t Bad channel cut passed %4.2f > %2.2f",distBad,
fMinDist));
932 AliDebug(1,Form(
"Current Event %d; After selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
960 Bool_t inacceptance = kFALSE ;
962 TParticle * primStack = 0;
963 AliAODMCParticle * primAOD = 0;
966 AliStack * stack = 0;
972 AliFatal(
"Stack not available, is the MC handler called? STOP");
975 nprim = stack->GetNtrack();
979 TClonesArray * mcparticles = 0;
985 AliFatal(
"Standard MCParticles not available!");
988 nprim = mcparticles->GetEntriesFast();
991 for(
Int_t i=0 ; i < nprim; i++)
993 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
997 primStack = stack->Particle(i) ;
1000 AliWarning(
"ESD primaries pointer not available!!");
1004 pdg = primStack->GetPdgCode();
1005 status = primStack->GetStatusCode();
1008 if ( primStack->Energy() == TMath::Abs(primStack->Pz()) ||
1009 (primStack->Energy() - primStack->Pz()) < 1e-3 ||
1010 (primStack->Energy() + primStack->Pz()) < 0 ) continue ;
1018 photonY = 0.5*TMath::Log((primStack->Energy()+primStack->Pz())/(primStack->Energy()-primStack->Pz())) ;
1022 primAOD = (AliAODMCParticle *) mcparticles->At(i);
1025 AliWarning(
"AOD primaries pointer not available!!");
1029 pdg = primAOD->GetPdgCode();
1030 status = primAOD->GetStatus();
1033 if ( primAOD->E() == TMath::Abs(primAOD->Pz()) ||
1034 (primAOD->E() - primAOD->Pz()) < 1e-3 ||
1035 (primAOD->E() + primAOD->Pz()) < 0 ) continue ;
1038 fMomentum.SetPxPyPzE(primAOD->Px(),primAOD->Py(),primAOD->Pz(),primAOD->E());
1040 photonY = 0.5*TMath::Log((primAOD->E()+primAOD->Pz())/(primAOD->E()-primAOD->Pz())) ;
1044 if(pdg != 22 ) continue ;
1055 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
1058 inacceptance = kTRUE;
1091 if(status > 1) continue ;
1131 if(!takeIt) continue ;
1135 if(TMath::Abs(photonY) < 1.0)
1156 if(TMath::Abs(photonY) < 1.0)
1353 Float_t time = cluster->GetTOF()*1.e9;
1374 if(cells->GetCellAmplitude(absIdMax) > 0.1 && TMath::Abs(time) < 30)
1376 for (
Int_t ipos = 0; ipos < cluster->GetNCells(); ipos++)
1378 Int_t absId = cluster->GetCellsAbsId()[ipos];
1380 if( absId == absIdMax ) continue ;
1382 Double_t tcell = cells->GetCellTime(absId);
1383 Float_t amp = cells->GetCellAmplitude(absId);
1392 if( cells->GetCellAmplitude(absIdMax) < 0.1 )
continue ;
1417 nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
1418 nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
1423 nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
1424 nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
1436 if(TMath::Abs(time) < 25)
1442 if(time < 75 && time > -25)
1458 Int_t ncells = cluster->GetNCells();
1459 Float_t lambda0 = cluster->GetM02();
1460 Float_t lambda1 = cluster->GetM20();
1461 Float_t disp = cluster->GetDispersion()*cluster->GetDispersion();
1466 if(phi < 0) phi+=TMath::TwoPi();
1516 Int_t etaRegion = -1, phiRegion = -1;
1518 if(etaRegion >= 0 && etaRegion < 4 && phiRegion >=0 && phiRegion < 3)
1540 if ( lambda0 >=0.30 && lambda0 <= 0.40 ) l0bin = 1;
1541 else if( lambda0 >=0.23 && lambda0 <= 0.26 ) l0bin = 0;
1543 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
1545 for(
Int_t ipt = 0; ipt < 7; ipt++)
1547 if( pt >= ptLimit[ipt] && pt < ptLimit[ipt+1] )
1576 Int_t ncell = cluster->GetNCells();
1581 for(
Int_t icell = 0; icell < ncell; icell++)
1583 Int_t absId = cluster->GetCellAbsId(icell);
1584 Float_t cellE = cells->GetCellAmplitude(absId);
1585 Double_t cellTime = cells->GetCellTime(absId);
1591 enerList[icell] = cellE;
1592 timeList[icell] = cellTime;
1595 TMath::Sort(ncell,enerList,sortList);
1601 Int_t absIdMax = cluster->GetCellAbsId(sortList[0]);
1603 Double_t cellTimeMax = timeList[sortList[0]];
1611 for(
Int_t icell = 1; icell < ncell; icell++)
1613 Int_t absId = cluster->GetCellAbsId(sortList[icell]);
1614 Float_t cellE = enerList[sortList[icell]];
1615 Double_t cellTime = timeList[sortList[icell]];
1619 if ( absId == absIdMax )
continue;
1624 if(weight < 0.01)
continue;
1626 if ( TMath::Abs(cellTime) > 50 )
1629 largeTimeE += cellE;
1632 if ( l0bin == -1 )
continue;
1653 if ( TMath::Abs(cellTime) > 50 )
1664 Int_t icol = -1, icolAbs = -1;
1665 Int_t irow = -1, irowAbs = -1;
1672 if ( TMath::Abs(cellTime) > 50 )
1682 if ( largeTime > 0 )
1703 delete [] sortList ;
1704 delete [] enerList ;
1705 delete [] timeList ;
1710 Float_t dispp= 0., dEta = 0., dPhi = 0.;
1711 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
1715 l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
1732 if (energy < 2 ) ebin = 0;
1733 else if (energy < 4 ) ebin = 1;
1734 else if (energy < 6 ) ebin = 2;
1735 else if (energy < 10) ebin = 3;
1736 else if (energy < 15) ebin = 4;
1737 else if (energy < 20) ebin = 5;
1749 Float_t dZ = cluster->GetTrackDz();
1750 Float_t dR = cluster->GetTrackDx();
1757 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
1805 AliVCaloCells* cells = 0;
1815 const UInt_t nlabels = cluster->GetNLabels();
1816 Int_t overpdg[nlabels];
1817 Int_t overlab[nlabels];
1818 Int_t noverlaps = 0;
1819 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
1832 for(
Int_t icell = 0; icell < cluster->GetNCells(); icell++)
1834 cellE = cells->GetCellAmplitude(cluster->GetCellAbsId(icell));
1836 fraction+=cellE*cluster->GetCellAmplitudeFraction(icell);
1842 AliDebug(1,Form(
"Energy fraction of embedded signal %2.3f, Energy %2.3f",fraction, clusterE));
1881 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1887 else if(fraction > 0.5)
1891 else if(fraction > 0.1)
1918 if(
GetReader()->IsEmbeddedClusterSelectionOn())
1924 else if(fraction > 0.5)
1928 else if(fraction > 0.1)
1957 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
1961 else if(noverlaps == 1)
1963 else if(noverlaps > 1)
1966 AliWarning(Form(
"n overlaps = %d!!", noverlaps));
1976 else if(energy < 6.)
1997 if (energy < 2 ) ebin = 0;
1998 else if (energy < 4 ) ebin = 1;
1999 else if (energy < 6 ) ebin = 2;
2000 else if (energy < 10) ebin = 3;
2001 else if (energy < 15) ebin = 4;
2002 else if (energy < 20) ebin = 5;
2023 Float_t dZ = cluster->GetTrackDz();
2024 Float_t dR = cluster->GetTrackDx();
2034 Bool_t positive = kFALSE;
2035 if(track) positive = (track->Charge()>0);
2070 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
2074 Float_t dEdx = track->GetTPCsignal();
2075 Float_t eOverp = cluster->E()/track->P();
2087 AliWarning(Form(
"Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT?", dR,dZ));
2110 if(cluster->GetNLabels()==1)
2160 const Int_t buffersize = 255;
2161 char onePar[buffersize] ;
2163 snprintf(onePar,buffersize,
"--- AliAnaPhoton ---:") ;
2167 snprintf(onePar,buffersize,
"fMinDist =%2.2f (Minimal distance to bad channel to accept cluster);",
fMinDist) ;
2169 snprintf(onePar,buffersize,
"fMinDist2=%2.2f (Cuts on Minimal distance to study acceptance evaluation);",
fMinDist2) ;
2171 snprintf(onePar,buffersize,
"fMinDist3=%2.2f (One more cut on distance used for acceptance-efficiency study);",
fMinDist3) ;
2185 return new TObjString(parList) ;
2195 outputContainer->SetName(
"PhotonHistos") ;
2226 Int_t bin[] = {0,2,4,6,10,15,20,100};
2228 TString cut[] = {
"Open",
"Reader",
"E",
"Time",
"NCells",
"NLM",
"Fidutial",
"Matching",
"Bad",
"PID"};
2229 for (
Int_t i = 0; i < 10 ; i++)
2232 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2233 nptbins,ptmin,ptmax);
2239 Form(
"Number of clusters that pass cuts <= %d, %s", i, cut[i].
Data()),
2240 nptbins,ptmin,ptmax);
2246 fhEClusterSM =
new TH2F(
"hEClusterSM",
"Raw clusters E and super-module number",
2247 nptbins,ptmin,ptmax,
2253 fhPtClusterSM =
new TH2F(
"hPtClusterSM",
"Raw clusters #it{p}_{T} and super-module number",
2254 nptbins,ptmin,ptmax,
2260 fhEPhotonSM =
new TH2F(
"hEPhotonSM",
"Selected clusters E and super-module number",
2261 nptbins,ptmin,ptmax,
2267 fhPtPhotonSM =
new TH2F(
"hPtPhotonSM",
"Selected clusters #it{p}_{T} and super-module number",
2268 nptbins,ptmin,ptmax,
2274 fhNCellsE =
new TH2F (
"hNCellsE",
"# of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nbins,nmin,nmax);
2276 fhNCellsE->SetYTitle(
"# of cells in cluster");
2279 fhCellsE =
new TH2F (
"hCellsE",
"energy of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nptbins*2,ptmin,ptmax);
2280 fhCellsE->SetXTitle(
"#it{E}_{cluster} (GeV)");
2281 fhCellsE->SetYTitle(
"#it{E}_{cell} (GeV)");
2284 fhTimePt =
new TH2F (
"hTimePt",
"time of cluster vs pT of clusters", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2285 fhTimePt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2286 fhTimePt->SetYTitle(
"#it{time} (ns)");
2289 fhMaxCellDiffClusterE =
new TH2F (
"hMaxCellDiffClusterE",
"energy vs difference of cluster energy - max cell energy / cluster energy, good clusters",
2290 nptbins,ptmin,ptmax, 500,0,1.);
2295 fhEPhoton =
new TH1F(
"hEPhoton",
"Number of #gamma over calorimeter vs energy",nptbins,ptmin,ptmax);
2297 fhEPhoton->SetXTitle(
"#it{E}_{#gamma}(GeV)");
2300 fhPtPhoton =
new TH1F(
"hPtPhoton",
"Number of #gamma over calorimeter vs #it{p}_{T}",nptbins,ptmin,ptmax);
2302 fhPtPhoton->SetXTitle(
"p_{T #gamma}(GeV/#it{c})");
2312 fhPtEventPlanePhoton =
new TH2F(
"hPtEventPlanePhoton",
"centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
2319 (
"hEtaPhi",
"cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2325 (
"hPhiPhoton",
"#phi_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
2327 fhPhiPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2331 (
"hEtaPhoton",
"#eta_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,netabins,etamin,etamax);
2333 fhEtaPhoton->SetXTitle(
"p_{T #gamma} (GeV/#it{c})");
2337 (
"hEtaPhiPhoton",
"#eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
2344 (
"hEtaPhi05Photon",
"#eta vs #phi, E < 0.5",netabins,etamin,etamax,nphibins,phimin,phimax);
2350 fhNLocMax =
new TH2F(
"hNLocMax",
"Number of local maxima in cluster",
2351 nptbins,ptmin,ptmax,10,0,10);
2359 fhLam0E =
new TH2F (
"hLam0E",
"#lambda_{0}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2360 fhLam0E->SetYTitle(
"#lambda_{0}^{2}");
2361 fhLam0E->SetXTitle(
"#it{E} (GeV)");
2362 outputContainer->Add(
fhLam0E);
2364 fhLam0Pt =
new TH2F (
"hLam0Pt",
"#lambda_{0}^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2365 fhLam0Pt->SetYTitle(
"#lambda_{0}^{2}");
2366 fhLam0Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2369 fhLam1E =
new TH2F (
"hLam1E",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2370 fhLam1E->SetYTitle(
"#lambda_{1}^{2}");
2371 fhLam1E->SetXTitle(
"#it{E} (GeV)");
2372 outputContainer->Add(
fhLam1E);
2374 fhLam1Pt =
new TH2F (
"hLam1Pt",
"#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2375 fhLam1Pt->SetYTitle(
"#lambda_{1}^{2}");
2376 fhLam1Pt->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2379 fhDispE =
new TH2F (
"hDispE",
" dispersion^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2381 fhDispE->SetXTitle(
"#it{E} (GeV) ");
2382 outputContainer->Add(
fhDispE);
2384 fhDispPt =
new TH2F (
"hDispPt",
" dispersion^{2} vs #it{p}_{T}", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2386 fhDispPt->SetXTitle(
"#it{p}_{T} (GeV/#it{c}) ");
2391 fhLam0PtNLM1 =
new TH2F (
"hLam0PtNLM1",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2396 fhLam0PtNLM2 =
new TH2F (
"hLam0PtNLM2",
"#lambda_{0}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2401 fhLam1PtNLM1 =
new TH2F (
"hLam1PtNLM1",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=1", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2406 fhLam1PtNLM2 =
new TH2F (
"hLam1PtNLM2",
"#lambda_{1}^{2} vs #it{p}_{T}, #it{n}_{LM}=2", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2414 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);
2415 fhLam0ETM->SetYTitle(
"#lambda_{0}^{2}");
2419 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);
2421 fhLam0PtTM->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2424 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);
2425 fhLam1ETM->SetYTitle(
"#lambda_{1}^{2}");
2429 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);
2437 fhLam0ETRD =
new TH2F (
"hLam0ETRD",
"#lambda_{0}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2442 fhLam0PtTRD =
new TH2F (
"hLam0PtTRD",
"#lambda_{0}^{2} vs #it{p}_{T}, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2444 fhLam0PtTRD->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
2447 fhLam1ETRD =
new TH2F (
"hLam1ETRD",
"#lambda_{1}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2452 fhDispETRD =
new TH2F (
"hDispETRD",
" dispersion^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2459 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);
2464 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);
2469 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);
2474 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);
2483 fhNCellsLam0LowE =
new TH2F (
"hNCellsLam0LowE",
"N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2488 fhNCellsLam0HighE =
new TH2F (
"hNCellsLam0HighE",
"N_{cells} in cluster vs #lambda_{0}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2493 fhNCellsLam1LowE =
new TH2F (
"hNCellsLam1LowE",
"N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2498 fhNCellsLam1HighE =
new TH2F (
"hNCellsLam1HighE",
"N_{cells} in cluster vs #lambda_{1}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2503 fhNCellsDispLowE =
new TH2F (
"hNCellsDispLowE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2508 fhNCellsDispHighE =
new TH2F (
"hNCellsDispHighE",
"N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
2513 fhEtaLam0LowE =
new TH2F (
"hEtaLam0LowE",
"#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2518 fhPhiLam0LowE =
new TH2F (
"hPhiLam0LowE",
"#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2523 fhEtaLam0HighE =
new TH2F (
"hEtaLam0HighE",
"#eta vs #lambda_{0}^{2}, #it{E} > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
2528 fhPhiLam0HighE =
new TH2F (
"hPhiLam0HighE",
"#phi vs #lambda_{0}^{2}, #it{E} > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
2533 fhLam1Lam0LowE =
new TH2F (
"hLam1Lam0LowE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2538 fhLam1Lam0HighE =
new TH2F (
"hLam1Lam0HighE",
"#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2543 fhLam0DispLowE =
new TH2F (
"hLam0DispLowE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2548 fhLam0DispHighE =
new TH2F (
"hLam0DispHighE",
"#lambda_{0}^{2} vs dispersion^{2} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2553 fhDispLam1LowE =
new TH2F (
"hDispLam1LowE",
"Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2558 fhDispLam1HighE =
new TH2F (
"hDispLam1HighE",
"Dispersion^{2} vs #lambda_{1^{2}} in cluster of #it{E} > 2 GeV", ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
2565 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);
2567 fhDispEtaE->SetYTitle(
"#sigma^{2}_{#eta #eta}");
2570 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);
2572 fhDispPhiE->SetYTitle(
"#sigma^{2}_{#phi #phi}");
2575 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);
2577 fhSumEtaE->SetYTitle(
"#delta^{2}_{#eta #eta}");
2580 fhSumPhiE =
new TH2F (
"hSumPhiE",
"#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",
2581 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
2583 fhSumPhiE->SetYTitle(
"#delta^{2}_{#phi #phi}");
2586 fhSumEtaPhiE =
new TH2F (
"hSumEtaPhiE",
"#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",
2587 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
2592 fhDispEtaPhiDiffE =
new TH2F (
"hDispEtaPhiDiffE",
"#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",
2593 nptbins,ptmin,ptmax,200, -10,10);
2598 fhSphericityE =
new TH2F (
"hSphericityE",
"(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",
2599 nptbins,ptmin,ptmax, 200, -1,1);
2601 fhSphericityE->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
2604 fhDispSumEtaDiffE =
new TH2F (
"hDispSumEtaDiffE",
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2606 fhDispSumEtaDiffE->SetYTitle(
"#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
2609 fhDispSumPhiDiffE =
new TH2F (
"hDispSumPhiDiffE",
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E", nptbins,ptmin,ptmax, 200,-0.01,0.01);
2611 fhDispSumPhiDiffE->SetYTitle(
"#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
2614 for(
Int_t i = 0; i < 7; i++)
2616 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]),
2617 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2622 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]),
2623 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2628 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]),
2629 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
2642 TString cutTM [] = {
"NoCut",
""};
2644 for(
Int_t i = 0; i < 2; i++)
2647 (Form(
"hTrackMatchedDEta%s",cutTM[i].
Data()),
2648 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2649 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2654 (Form(
"hTrackMatchedDPhi%s",cutTM[i].
Data()),
2655 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2656 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2661 (Form(
"hTrackMatchedDEtaDPhi%s",cutTM[i].
Data()),
2662 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2663 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2668 (Form(
"hTrackMatchedDEtaPos%s",cutTM[i].
Data()),
2669 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2670 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2675 (Form(
"hTrackMatchedDPhiPos%s",cutTM[i].
Data()),
2676 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2677 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2682 (Form(
"hTrackMatchedDEtaDPhiPos%s",cutTM[i].
Data()),
2683 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2684 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2689 (Form(
"hTrackMatchedDEtaNeg%s",cutTM[i].
Data()),
2690 Form(
"d#eta of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2691 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2696 (Form(
"hTrackMatchedDPhiNeg%s",cutTM[i].
Data()),
2697 Form(
"d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2698 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2703 (Form(
"hTrackMatchedDEtaDPhiNeg%s",cutTM[i].
Data()),
2704 Form(
"d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].
Data()),
2705 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
2709 fhdEdx[i] =
new TH2F (Form(
"hdEdx%s",cutTM[i].
Data()),Form(
"matched track <dE/dx> vs cluster E, %s",cutTM[i].
Data()),
2710 nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
2711 fhdEdx[i]->SetXTitle(
"#it{E} (GeV)");
2712 fhdEdx[i]->SetYTitle(
"<dE/dx>");
2714 fhEOverP[i] =
new TH2F (Form(
"hEOverP%s",cutTM[i].
Data()),Form(
"matched track E/p vs cluster E, %s",cutTM[i].
Data()),
2715 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2716 fhEOverP[i]->SetXTitle(
"#it{E} (GeV)");
2728 outputContainer->Add(
fhdEdx[i]);
2734 (Form(
"hTrackMatchedDEtaTRD%s",cutTM[i].
Data()),
2735 Form(
"d#eta of cluster-track vs cluster energy, SM behind TRD, %s",cutTM[i].
Data()),
2736 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2741 (Form(
"hTrackMatchedDPhiTRD%s",cutTM[i].
Data()),
2742 Form(
"d#phi of cluster-track vs cluster energy, SM behing TRD, %s",cutTM[i].
Data()),
2743 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2748 (Form(
"hEOverPTRD%s",cutTM[i].
Data()),
2749 Form(
"matched track E/p vs cluster E, behind TRD, %s",cutTM[i].
Data()),
2750 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
2762 (Form(
"hTrackMatchedDEtaMCNoOverlap%s",cutTM[i].
Data()),
2763 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2764 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2769 (Form(
"hTrackMatchedDPhiMCNoOverlap%s",cutTM[i].
Data()),
2770 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].
Data()),
2771 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2778 (Form(
"hTrackMatchedDEtaMCOverlap%s",cutTM[i].
Data()),
2779 Form(
"d#eta of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2780 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2785 (Form(
"hTrackMatchedDPhiMCOverlap%s",cutTM[i].
Data()),
2786 Form(
"d#phi of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].
Data()),
2787 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2795 (Form(
"hTrackMatchedDEtaMCConversion%s",cutTM[i].
Data()),
2796 Form(
"d#eta of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2797 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
2802 (Form(
"hTrackMatchedDPhiMCConversion%s",cutTM[i].
Data()),
2803 Form(
"d#phi of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].
Data()),
2804 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
2812 (Form(
"hTrackMatchedMCParticle%s",cutTM[i].
Data()),
2813 Form(
"Origin of particle vs energy %s",cutTM[i].
Data()),
2814 nptbins,ptmin,ptmax,8,0,8);
2834 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
2836 for(
Int_t i = 0 ; i < 7 ; i++)
2839 Form(
"Selected photon #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2844 Form(
"Photon cluster E vs #it{t}_{max}-#it{t}_{cell} in cluster, %s Pile-Up event",pileUpName[i].
Data()),
2845 nptbins,ptmin,ptmax,400,-200,200);
2851 fhTimePtPhotonNoCut =
new TH2F (
"hTimePtPhoton_NoCut",
"time of photon cluster vs pT of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2856 fhTimePtPhotonSPD =
new TH2F (
"hTimePtPhoton_SPD",
"time of photon cluster vs pT of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
2861 fhTimeNPileUpVertSPD =
new TH2F (
"hTime_NPileUpVertSPD",
"time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,20,0,20);
2866 fhTimeNPileUpVertTrack =
new TH2F (
"hTime_NPileUpVertTracks",
"time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 20,0,20 );
2872 nptbins,ptmin,ptmax,20,0,20);
2878 nptbins,ptmin,ptmax, 20,0,20 );
2884 nptbins,ptmin,ptmax,20,0,20);
2890 nptbins,ptmin,ptmax, 20,0,20 );
2896 nptbins,ptmin,ptmax,20,0,20);
2902 nptbins,ptmin,ptmax, 20,0,20 );
2911 for(
Int_t ieta = 0; ieta < 4; ieta++)
2913 for(
Int_t iphi = 0; iphi < 3; iphi++)
2937 new TH2F(Form(
"hLam0_eta%d_phi%d_sm%d",ieta,iphi,ism),
2938 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2939 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2945 new TH2F(Form(
"hLam1_eta%d_phi%d_sm%d",ieta,iphi,ism),
2946 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, sm %d, region eta %d, phi %d",ism,ieta,iphi),
2947 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2955 Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
2956 TString l0bin [] = {
"0.23<#lambda^{2}_{0}<0.26",
"0.3<#lambda^{2}_{0}<0.4"};
2958 for(
Int_t il0 = 0; il0 < 2; il0++)
2960 for(
Int_t ipt = 0; ipt < 7; ipt++)
2963 (Form(
"hEtaPhiLam0Bin%d_PtBin%d",il0,ipt),
2964 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
2965 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2966 netabins,etamin,etamax,nphibins,phimin,phimax);
2972 (Form(
"hColRowLam0Bin%d_PtBin%d",il0,ipt),
2973 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, w > 0",
2974 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2975 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
2981 (Form(
"hColRowLam0Bin%d_PtBin%dWeighted",il0,ipt),
2982 Form(
"cluster cell row vs column weighted in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s",
2983 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2984 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
2990 (Form(
"hColRowLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
2991 Form(
"row vs column in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, %s, |t| > 50 ns, w > 0",
2992 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
2993 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3017 (Form(
"hEtaPhiLam0Bin%d_PtBin%d_LargeTimeInClusterCell",il0,ipt),
3018 Form(
"#eta vs #phi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, t > 50 ns, %s",
3019 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3020 netabins,etamin,etamax,nphibins,phimin,phimax);
3026 (Form(
"hCellClusterIndexEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3027 Form(
"#it{t}_{cell} vs cell index (E sorted) in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3028 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3029 ntimebins,timemin,timemax,30,0,30);
3035 (Form(
"hCellClusterEAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3036 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3037 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3038 ntimebins,timemin,timemax,100,0,5);
3044 (Form(
"hCellClusterEFracAndTimeLam0Bin%d_PtBin%d",il0,ipt),
3045 Form(
"#it{E}_{cell} vs #it{t}_{cell} in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c}, w > 0, %s",
3046 ptLimit[ipt],ptLimit[ipt+1],l0bin[il0].
Data()),
3047 ntimebins,timemin,timemax,100,0,1);
3056 (Form(
"hLam1Lam0Bin%d_sm%d",il0,ism),
3057 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, %s",ism,l0bin[il0].
Data()),
3058 nptbins,ptmin,ptmax,40,0,0.4);
3064 (Form(
"hTimeLam0Bin%d_sm%d",il0,ism),
3065 Form(
"#it{p}_{T} vs cluster cell time in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3066 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3072 (Form(
"hTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3073 Form(
"#it{p}_{T} vs cluster cell time weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3074 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3080 (Form(
"hDTimeLam0Bin%d_sm%d",il0,ism),
3081 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3082 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3088 (Form(
"hDTimeLam0Bin%d_sm%d_Weighted",il0,ism),
3089 Form(
"#it{p}_{T} vs t_{cluster}-t_{cell} weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3090 nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
3096 (Form(
"hCellClusterEFracLam0Bin%d_sm%d",il0,ism),
3097 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3098 nptbins,ptmin,ptmax,100,0,1);
3112 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3113 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3114 nptbins,ptmin,ptmax,100,0,1);
3120 (Form(
"hCellClusterEFracLam0Bin%d_sm%d_LargeTimeInClusterCell_Total",il0,ism),
3121 Form(
"#it{p}_{T} vs cell E / cluster E in sm %d, %s, w > 0, all |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3122 nptbins,ptmin,ptmax,100,0,1);
3128 (Form(
"hCellClusterELam0Bin%d_sm%d",il0,ism),
3129 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0",ism,l0bin[il0].
Data()),
3130 nptbins,ptmin,ptmax,500,0,10);
3136 (Form(
"hCellClusterELam0Bin%d_sm%d_Weighted",il0,ism),
3137 Form(
"#it{p}_{T} vs cell E weighted in sm %d, %s",ism,l0bin[il0].
Data()),
3138 nptbins,ptmin,ptmax,500,0,10);
3144 (Form(
"hCellClusterELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3145 Form(
"#it{p}_{T} vs cell E in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3146 nptbins,ptmin,ptmax,500,0,10);
3152 (Form(
"hCellClusterIndexELam0Bin%d_sm%d_LargeTimeInClusterCell",il0,ism),
3153 Form(
"#it{p}_{T} vs cell index (E sorted) in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3154 nptbins,ptmin,ptmax,30,0,30);
3160 (Form(
"hNCellsWithLargeTimeInClusterLam0Bin%d_sm%d",il0,ism),
3161 Form(
"#it{p}_{T} vs number of cells in sm %d, %s, w > 0, |t_{cell}| > 50 ns",ism,l0bin[il0].
Data()),
3162 nptbins,ptmin,ptmax,30,0,30);
3183 (Form(
"hLam0_sm%d",ism),
3184 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d",ism),
3185 nptbins,ptmin,ptmax,40,0,0.4);
3187 fhLam0PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3191 (Form(
"hLam1_sm%d",ism),
3192 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d",ism),
3193 nptbins,ptmin,ptmax,40,0,0.4);
3195 fhLam1PerSM[ism]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3199 (Form(
"hLam0_sm%d_LargeTimeInClusterCell",ism),
3200 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ism),
3201 nptbins,ptmin,ptmax,40,0,0.4);
3207 (Form(
"hLam1_sm%d_LargeTimeInClusterCell",ism),
3208 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ism),
3209 nptbins,ptmin,ptmax,40,0,0.4);
3250 for(
Int_t ilarge = 0; ilarge < 5; ilarge++)
3253 (Form(
"hLam0_NLargeTimeInClusterCell%d",ilarge),
3254 Form(
"#it{p}_{T} vs #lambda^{2}_{0} in sm %d,|t_{secondary cell}| > 50 ns",ilarge),
3255 nptbins,ptmin,ptmax,40,0,0.4);
3261 (Form(
"hLam1_NLargeTimeInClusterCell%d",ilarge),
3262 Form(
"#it{p}_{T} vs #lambda^{2}_{1} in sm %d, |t_{secondary cell}| > 50 ns",ilarge),
3263 nptbins,ptmin,ptmax,40,0,0.4);
3274 TString ptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}",
3275 "#pi^{0}" ,
"#eta" ,
"e^{#pm}" ,
"#gamma->e^{#pm}" ,
3276 "hadron?" ,
"Anti-N" ,
"Anti-P" ,
3277 "Neutron" ,
"Proton" ,
"#pi^{#pm}" ,
3278 "#gamma_{prompt}",
"#gamma_{fragmentation}",
"#gamma_{ISR}" ,
"String" } ;
3280 TString pname[] = {
"Photon" ,
"PhotonPi0Decay" ,
"PhotonEtaDecay",
"PhotonOtherDecay",
3281 "Pi0" ,
"Eta" ,
"Electron" ,
"Conversion" ,
3282 "Hadron" ,
"AntiNeutron" ,
"AntiProton" ,
3283 "Neutron" ,
"Proton" ,
"ChPion" ,
3284 "PhotonPrompt",
"PhotonFragmentation",
"PhotonISR" ,
"String" } ;
3288 fhMCE[i] =
new TH1F(Form(
"hE_MC%s",pname[i].
Data()),
3289 Form(
"cluster from %s : E ",ptype[i].
Data()),
3290 nptbins,ptmin,ptmax);
3291 fhMCE[i]->SetXTitle(
"#it{E} (GeV)");
3292 outputContainer->Add(
fhMCE[i]) ;
3294 fhMCPt[i] =
new TH1F(Form(
"hPt_MC%s",pname[i].
Data()),
3295 Form(
"cluster from %s : #it{p}_{T} ",ptype[i].
Data()),
3296 nptbins,ptmin,ptmax);
3297 fhMCPt[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3298 outputContainer->Add(
fhMCPt[i]) ;
3301 Form(
"cluster from %s : #eta ",ptype[i].
Data()),
3302 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3303 fhMCEta[i]->SetYTitle(
"#eta");
3304 fhMCEta[i]->SetXTitle(
"#it{E} (GeV)");
3305 outputContainer->Add(
fhMCEta[i]) ;
3308 Form(
"cluster from %s : #phi ",ptype[i].
Data()),
3309 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3310 fhMCPhi[i]->SetYTitle(
"#phi (rad)");
3311 fhMCPhi[i]->SetXTitle(
"#it{E} (GeV)");
3312 outputContainer->Add(
fhMCPhi[i]) ;
3316 Form(
"MC - Reco E from %s",pname[i].
Data()),
3317 nptbins,ptmin,ptmax, 200,-50,50);
3318 fhMCDeltaE[i]->SetYTitle(
"#Delta #it{E} (GeV)");
3323 Form(
"MC - Reco #it{p}_{T} from %s",pname[i].
Data()),
3324 nptbins,ptmin,ptmax, 200,-50,50);
3325 fhMCDeltaPt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3326 fhMCDeltaPt[i]->SetYTitle(
"#Delta #it{p}_{T} (GeV/#it{c})");
3330 Form(
"E distribution, reconstructed vs generated from %s",pname[i].
Data()),
3331 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3332 fhMC2E[i]->SetXTitle(
"#it{E}_{rec} (GeV)");
3333 fhMC2E[i]->SetYTitle(
"#it{E}_{gen} (GeV)");
3334 outputContainer->Add(
fhMC2E[i]);
3337 Form(
"p_T distribution, reconstructed vs generated from %s",pname[i].
Data()),
3338 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3339 fhMC2Pt[i]->SetXTitle(
"p_{T,rec} (GeV/#it{c})");
3340 fhMC2Pt[i]->SetYTitle(
"p_{T,gen} (GeV/#it{c})");
3341 outputContainer->Add(
fhMC2Pt[i]);
3344 TString pptype[] = {
"#gamma" ,
"#gamma_{#pi decay}" ,
3345 "#gamma_{#eta decay}",
"#gamma_{other decay}" ,
3346 "#gamma_{prompt}" ,
"#gamma_{fragmentation}",
"#gamma_{ISR}" } ;
3348 TString ppname[] = {
"Photon" ,
"PhotonPi0Decay" ,
3349 "PhotonEtaDecay",
"PhotonOtherDecay" ,
3350 "PhotonPrompt" ,
"PhotonFragmentation",
"PhotonISR" } ;
3354 fhEPrimMC[i] =
new TH1F(Form(
"hEPrim_MC%s",ppname[i].
Data()),
3355 Form(
"primary photon %s : E ",pptype[i].
Data()),
3356 nptbins,ptmin,ptmax);
3357 fhEPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3361 Form(
"primary photon %s : #it{p}_{T} ",pptype[i].
Data()),
3362 nptbins,ptmin,ptmax);
3363 fhPtPrimMC[i]->SetXTitle(
"#it{p}_{T} (GeV/#it{c})");
3367 Form(
"primary photon %s : Rapidity ",pptype[i].
Data()),
3368 nptbins,ptmin,ptmax,200,-2,2);
3370 fhYPrimMC[i]->SetXTitle(
"#it{E} (GeV)");
3374 Form(
"primary photon %s : #eta",pptype[i].
Data()),
3375 nptbins,ptmin,ptmax,200,-2,2);
3381 Form(
"primary photon %s : #phi ",pptype[i].
Data()),
3382 nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3389 Form(
"primary photon %s in acceptance: E ",pptype[i].
Data()),
3390 nptbins,ptmin,ptmax);
3395 Form(
"primary photon %s in acceptance: #it{p}_{T} ",pptype[i].
Data()),
3396 nptbins,ptmin,ptmax);
3401 Form(
"primary photon %s in acceptance: Rapidity ",pptype[i].
Data()),
3402 nptbins,ptmin,ptmax,100,-1,1);
3408 Form(
"primary photon %s in acceptance: #eta ",pptype[i].
Data()),
3409 nptbins,ptmin,ptmax,netabins,etamin,etamax);
3415 Form(
"primary photon %s in acceptance: #phi ",pptype[i].
Data()),
3416 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
3424 TString ptypess[] = {
"#gamma",
"hadron?",
"#pi^{0}",
"#eta",
"#gamma->e^{#pm}",
"e^{#pm}"} ;
3426 TString pnamess[] = {
"Photon",
"Hadron",
"Pi0",
"Eta",
"Conversion",
"Electron"} ;
3428 for(
Int_t i = 0; i < 6; i++)
3431 Form(
"cluster from %s : E vs #lambda_{0}^{2}",ptypess[i].
Data()),
3432 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3438 Form(
"cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}",ptypess[i].
Data()),
3439 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3444 if(!
GetReader()->IsEmbeddedClusterSelectionOn())
3446 for(
Int_t iover = 0; iover < 3; iover++)
3449 Form(
"cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}, N Overlaps = %d",ptypess[i].
Data(),iover),
3450 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3458 Form(
"cluster from %s : E vs #lambda_{1}^{2}",ptypess[i].
Data()),
3459 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3465 Form(
"cluster from %s : E vs dispersion^{2}",ptypess[i].
Data()),
3466 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3472 Form(
"# of cells in cluster from %s vs E of clusters",ptypess[i].
Data()),
3473 nptbins,ptmin,ptmax, nbins,nmin,nmax);
3475 fhMCNCellsE[i]->SetYTitle(
"# of cells in cluster");
3479 Form(
"energy vs difference of cluster energy from %s - max cell energy / cluster energy, good clusters",ptypess[i].
Data()),
3480 nptbins,ptmin,ptmax, 500,0,1.);
3488 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3489 ssbins,ssmin,ssmax,500,0,1.);
3495 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3496 ssbins,ssmin,ssmax,500,0,1.);
3502 Form(
"cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3503 ssbins,ssmin,ssmax,500,0,1.);
3509 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].
Data()),
3510 nbins/5,nmin,nmax/5,500,0,1.);
3516 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].
Data()),
3517 nbins/5,nmin,nmax/5,500,0,1.);
3523 Form(
"cluster from %s : N cells in cluster vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].
Data()),
3524 nbins/5,nmin,nmax/5,500,0,1.);
3532 Form(
"cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].
Data()),
3533 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3539 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].
Data()),
3540 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3546 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()),
3547 nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
3553 Form(
"cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].
Data()),
3554 nptbins,ptmin,ptmax,200,-10,10);
3560 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()),
3561 nptbins,ptmin,ptmax, 200,-1,1);
3563 fhMCESphericity[i]->SetYTitle(
"s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
3566 for(
Int_t ie = 0; ie < 7; ie++)
3569 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]),
3570 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3576 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]),
3577 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3583 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]),
3584 ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
3617 if(
GetReader()->IsEmbeddedClusterSelectionOn())
3620 "Energy Fraction of embedded signal versus cluster energy",
3621 nptbins,ptmin,ptmax,100,0.,1.);
3627 "cluster from Photon embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3628 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3634 "cluster from Photon embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3635 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3641 "cluster from Photon embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3642 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3648 "cluster from Photonm embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3649 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3655 "cluster from Pi0 embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
3656 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3662 "cluster from Pi0 embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
3663 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3669 "cluster from Pi0 embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
3670 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3676 "cluster from Pi0 embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
3677 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3687 fhMCConversionVertex =
new TH2F(
"hMCPhotonConversionVertex",
"cluster from converted photon, #it{p}_{T} vs vertex distance",
3688 nptbins,ptmin,ptmax,500,0,500);
3695 fhMCConversionVertexTRD =
new TH2F(
"hMCPhotonConversionVertexTRD",
"cluster from converted photon, #it{p}_{T} vs vertex distance, SM covered by TRD",
3696 nptbins,ptmin,ptmax,500,0,500);
3704 TString region[] = {
"ITS",
"TPC",
"TRD",
"TOF",
"Top EMCal",
"In EMCal"};
3705 for(
Int_t iR = 0; iR < 6; iR++)
3708 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s",region[iR].
Data()),
3709 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3715 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s",region[iR].
Data()),
3716 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3725 for(
Int_t iR = 0; iR < 6; iR++)
3728 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3729 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3735 Form(
"cluster from converted photon, #it{p}_{T} vs #lambda_{1}^{2}, conversion in %s, SM covered by TRD",region[iR].
Data()),
3736 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3783 (Form(
"hEBin%d_Cluster_EtaPhi",ie),
3784 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3785 netabins,etamin,etamax,nphibins,phimin,phimax);
3791 (Form(
"hEBin%d_Cluster_ColRow",ie),
3792 Form(
"column vs row, cluster max E cell, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3793 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3799 (Form(
"hEBin%d_Cluster_EtaPhi_PID",ie),
3800 Form(
"#eta vs #phi, cluster, %2.2f<#it{p}_{T}<%2.2f GeV/#it{c}, PID cut",
fEBinCuts[ie],
fEBinCuts[ie+1]),
3801 netabins,etamin,etamax,nphibins,phimin,phimax);
3807 (Form(
"hEBin%d_Cluster_ColRow_PID",ie),
3808 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]),
3809 96+2,-1.5,96+0.5,(8*24+2*8)+2,-1.5,(8*24+2*8)+0.5);
3818 TString caseTitle[] = {
"",
"CleanCluster",
"MergedClusterHijingBkg",
"MergedClusterNotHijingBkg",
"MergedClusterHijingAndOtherBkg",
"MergedCluster"};
3822 for(
Int_t icase = 0; icase < ncases; icase++)
3825 (Form(
"hLocalRegionClusterEtaPhi%s",caseTitle[icase].
Data()),
3826 "cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
3832 (Form(
"hLocalRegionClusterEnergySum%s",caseTitle[icase].
Data()),
3833 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3834 nptbins,ptmin,ptmax, 200,0,100);
3840 (Form(
"hLocalRegionClusterMultiplicity%s",caseTitle[icase].
Data()),
3841 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3842 nptbins,ptmin,ptmax, 200,0,200);
3850 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s",caseTitle[icase].
Data()),
3851 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3852 100,0,100, 200,0,100);
3858 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s",caseTitle[icase].
Data()),
3859 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3860 100,0,100, 200,0,200);
3872 (Form(
"hLocalRegionClusterEnergySum%s_MCPi0Decay",caseTitle[icase].
Data()),
3873 "Sum of cluster energy around trigger cluster #it{E} with R=0.2",
3874 nptbins,ptmin,ptmax, 200,0,100);
3880 (Form(
"hLocalRegionClusterMultiplicity%s_MCPi0Decay",caseTitle[icase].
Data()),
3881 "Cluster multiplicity around trigger cluster #it{E} with R=0.2",
3882 nptbins,ptmin,ptmax, 200,0,200);
3890 (Form(
"hLocalRegionClusterEnergySumPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3891 "Sum of cluster energy around trigger cluster vs centrality with R=0.2",
3892 100,0,100, 200,0,100);
3898 (Form(
"hLocalRegionClusterMultiplicityPerCentrality%s_MCPi0Decay",caseTitle[icase].
Data()),
3899 "Cluster multiplicity around trigger cluster vs centrality with R=0.2",
3900 100,0,100, 200,0,200);
3910 (Form(
"hLocalRegionClusterEnergySumHijing%s",caseTitle[icase].
Data()),
3911 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
3912 nptbins,ptmin,ptmax, 200,0,100);
3918 (Form(
"hLocalRegionClusterMultiplicityHijing%s",caseTitle[icase].
Data()),
3919 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
3920 nptbins,ptmin,ptmax, 200,0,200);
3926 (Form(
"hLocalRegionClusterEnergySumAdded%s",caseTitle[icase].
Data()),
3927 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
3928 nptbins,ptmin,ptmax, 200,0,100);
3934 (Form(
"hLocalRegionClusterMultiplicityAdded%s",caseTitle[icase].
Data()),
3935 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
3936 nptbins,ptmin,ptmax, 200,0,200);
3945 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s",caseTitle[icase].
Data()),
3946 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
3947 100,0,100, 200,0,100);
3953 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s",caseTitle[icase].
Data()),
3954 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
3955 100,0,100, 200,0,200);
3962 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s",caseTitle[icase].
Data()),
3963 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
3964 100,0,100, 200,0,100);
3970 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s",caseTitle[icase].
Data()),
3971 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
3972 100,0,100, 200,0,200);
3983 (Form(
"hLocalRegionClusterEnergySumHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3984 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
3985 nptbins,ptmin,ptmax, 200,0,100);
3991 (Form(
"hLocalRegionClusterMultiplicityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
3992 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
3993 nptbins,ptmin,ptmax, 200,0,200);
3999 (Form(
"hLocalRegionClusterEnergySumAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4000 "Sum of cluster energy (not HIJING) around trigger cluster #it{E} with R=0.2",
4001 nptbins,ptmin,ptmax, 200,0,100);
4007 (Form(
"hLocalRegionClusterMultiplicityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4008 "Cluster multiplicity (not HIJING) around trigger cluster #it{E} with R=0.2",
4009 nptbins,ptmin,ptmax, 200,0,200);
4018 (Form(
"hLocalRegionClusterEnergySumPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4019 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
4020 100,0,100, 200,0,100);
4026 (Form(
"hLocalRegionClusterMultiplicityPerCentralityHijing%s_MCPi0Decay",caseTitle[icase].
Data()),
4027 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
4028 100,0,100, 200,0,200);
4035 (Form(
"hLocalRegionClusterEnergySumPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4036 "Sum of cluster energy (not HIJING) around trigger cluster vs centrality with R=0.2",
4037 100,0,100, 200,0,100);
4043 (Form(
"hLocalRegionClusterMultiplicityPerCentralityAdded%s_MCPi0Decay",caseTitle[icase].
Data()),
4044 "Cluster multiplicity (not HIJING) around trigger cluster vs centrality with R=0.2",
4045 100,0,100, 200,0,200);
4057 (
"hLocalRegionClusterEnergySumHijing2",
4058 "Sum of cluster energy (HIJING) around trigger cluster #it{E} with R=0.2",
4059 nptbins,ptmin,ptmax, 200,0,100);
4065 (
"hLocalRegionClusterMultiplicityHijing2",
4066 "Cluster multiplicity (HIJING) around trigger cluster #it{E} with R=0.2",
4067 nptbins,ptmin,ptmax, 200,0,200);
4075 (
"hLocalRegionClusterEnergySumPerCentralityHijing2",
4076 "Sum of cluster energy (HIJING) around trigger cluster vs centrality with R=0.2",
4077 100,0,100, 200,0,100);
4083 (
"hLocalRegionClusterMultiplicityPerCentralityHijing2",
4084 "Cluster multiplicity (HIJING) around trigger cluster vs centrality with R=0.2",
4085 100,0,100, 200,0,200);
4128 (
"hDistance2AddedSignals",
"Distance added signals"
4129 ,nptbins,ptmin,ptmax,100,0,0.4);
4135 (
"hDistance2Hijing",
"Distance 2 hijing clusters"
4136 ,nptbins,ptmin,ptmax,100,0,0.4);
4142 (
"hDistanceAddedSignalsHijing",
"Distance added signals to hijing"
4143 ,nptbins,ptmin,ptmax,100,0,0.4);
4152 TString mcGenNames[] = {
"",
"_MC_Pi0Merged",
"_MC_Pi0Decay",
"_MC_EtaDecay",
"_MC_PhotonOther",
"_MC_Electron",
"_MC_Other"};
4153 TString mcGenTitle[] = {
"",
",MC Pi0-Merged",
",MC Pi0-Decay",
", MC Eta-Decay",
", MC Photon other sources",
", MC Electron",
", MC other sources"};
4157 if(igen==0) add =
"";
4161 Form(
"Number of selected clusters with contribution of %s generator%s, no overlap",
4163 nptbins,ptmin,ptmax);
4169 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4171 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4177 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of %s generator%s, no overlap",
4179 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4187 Form(
"Number of selected clusters with contribution of >=2 generators, main %s%s",
4189 nptbins,ptmin,ptmax);
4195 Form(
"#it{E}_{reco}/#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4197 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4203 Form(
"#it{E}_{reco}-#it{E}_{gen}clusters with contribution of >=2 generators, main %s%s",
4205 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4215 Form(
"Number of selected clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4217 nptbins,ptmin,ptmax);
4223 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4225 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4231 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=2 generators, , none is HIJING, main %s%s",
4233 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4241 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4243 nptbins,ptmin,ptmax);
4250 Form(
"#it{E}_{reco}/#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4252 nptbins,ptmin,ptmax,nratbins,ratmin,ratmax);
4259 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4261 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4269 Form(
"Number of selected clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4271 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);
4285 Form(
"#it{E}_{reco}-#it{E}_{gen} clusters with contribution of >=3 generators, none is HIJING, main %s%s",
4287 nptbins,ptmin,ptmax,ndifbins,difmin,difmax);
4295 return outputContainer ;
4304 AliFatal(
"!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
4306 AliFatal(
"!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
4351 AliVCaloCells* cells = 0;
4394 TClonesArray * clusterList = 0;
4403 Int_t nclusters = clusterList->GetEntriesFast();
4404 for (
Int_t iclus = 0; iclus < nclusters; iclus++)
4406 AliVCluster * clus =
dynamic_cast<AliVCluster*
> (clusterList->At(iclus));
4420 Int_t nCaloClusters = pl->GetEntriesFast();
4428 for(
Int_t icalo = 0; icalo < nCaloClusters; icalo++)
4430 AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
4434 Int_t evtIndex = 0 ;
4437 evtIndex=
GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
4462 AliAODPWG4Particle aodph = AliAODPWG4Particle(
fMomentum);
4466 Int_t label = calo->GetLabel();
4467 aodph.SetLabel(label);
4468 aodph.SetCaloLabel(calo->GetID(),-1);
4474 Double_t distBad=calo->GetDistanceToBadChannel() ;
4475 if (distBad >
fMinDist3) aodph.SetDistToBad(2) ;
4476 else if(distBad >
fMinDist2) aodph.SetDistToBad(1) ;
4477 else aodph.SetDistToBad(0) ;
4492 AliDebug(1,Form(
"Origin of candidate, bit map %d",aodph.GetTag()));
4501 if( absIdMax < 0 ) AliFatal(
"Wrong absID");
4503 Int_t largeTimeInCellCluster = kFALSE;
4505 aodph.SetFiducialArea(largeTimeInCellCluster);
4508 aodph.SetM02(calo->GetM02());
4509 aodph.SetM20(calo->GetM20());
4510 aodph.SetNLM(nMaxima);
4512 Float_t time = calo->GetTOF()*1e9;
4514 aodph.SetTime(time);
4516 aodph.SetNCells(calo->GetNCells());
4518 aodph.SetSModNumber(nSM);
4530 Int_t icolAbs = -1, irowAbs = -1;
4536 Int_t icol = -1, irow = -1, iRCU = -1;
4539 if(ebin>=0 && ebin < fNEBinCuts)
4558 aodph.SetIdentifiedParticleType(
GetCaloPID()->GetIdentifiedParticleType(calo));
4560 AliDebug(1,Form(
"PDG of identified particle %d",aodph.GetIdentifiedParticleType()));
4575 AliDebug(1,
"PID Bits set");
4578 AliDebug(1,Form(
"Photon selection cuts passed: pT %3.2f, pdg %d",aodph.Pt(),aodph.GetIdentifiedParticleType()));
4598 if(ebin>=0 && ebin < fNEBinCuts)
4606 if(nSM <
GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
4621 for(
Int_t icell = 0; icell < calo->GetNCells(); icell++)
4636 AliDebug(1,Form(
"End fill AODs, with %d entries",
GetOutputAODBranch()->GetEntriesFast()));
4656 AliDebug(1,Form(
"AOD branch entries %d", naod));
4663 for(
Int_t iaod = 0; iaod < naod ; iaod++)
4666 Int_t pdg = ph->GetIdentifiedParticleType();
4668 AliDebug(2,Form(
"PDG %d, MC TAG %d, Calorimeter <%d>",ph->GetIdentifiedParticleType(),ph->GetTag(), ph->GetDetectorTag())) ;
4675 AliDebug(2,Form(
"ID Photon: pt %f, phi %f, eta %f", ph->Pt(),ph->Phi(),ph->Eta())) ;
4680 Float_t phicluster = ph->Phi();
4681 Float_t etacluster = ph->Eta();
4724 Int_t label = ph->GetLabel();
4728 AliDebug(1,Form(
"*** bad label ***: label %d", label));
4735 Int_t pdg = 0, status = 0, momLabel = -1;
4746 Int_t tag =ph->GetTag();
4747 Int_t mcParticleTag = -1;