18 #include <TClonesArray.h>
19 #include <TObjString.h>
21 #include <TDatabasePDG.h>
29 #include "TParticle.h"
30 #include "AliVCluster.h"
31 #include "AliAODEvent.h"
32 #include "AliAODMCParticle.h"
33 #include "AliEMCALGeoParams.h"
36 #include "AliEMCALGeometry.h"
48 fMinNCells(0), fMinBadDist(0),
49 fHistoECut(0), fCheckSplitDistToBad(0), fFillAngleHisto(kFALSE),
50 fFillTMHisto(kFALSE), fFillTMResidualHisto(kFALSE), fFillSSExtraHisto(kFALSE),
51 fFillMCHisto(kFALSE), fFillSSWeightHisto(kFALSE),
52 fFillNLMDiffCutHisto(kFALSE), fFillEbinHisto(0),
53 fFillMCOverlapHisto(0), fFillNCellHisto(0), fFillIdConvHisto(0),
54 fFillIdEtaHisto(0), fFillHighMultHisto(0),
55 fFillArmenterosHisto(0), fFillThetaStarHisto(0),
56 fSSWeightN(0), fSSECellCutN(0),
57 fNLMSettingN(0), fWSimu(),
58 fClusterMomentum(), fSubClusterMom1(), fSubClusterMom2(),
59 fSubClusterMomSum(), fSubClusterMomBoost(),
60 fPrimaryMom(), fGrandMotherMom(),
61 fMCDaughMom1(), fMCDaughMom2(),
64 fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0),
65 fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0),
66 fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0),
67 fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0),
68 fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0),
69 fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0),
70 fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0),
71 fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0),
72 fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
73 fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0),
74 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0),
75 fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0),
76 fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0),
77 fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0),
78 fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0),
79 fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0),
80 fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0),
81 fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0),
82 fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0),
83 fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0),
84 fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0),
85 fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0),
86 fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0),
87 fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0),
88 fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0),
89 fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0),
90 fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0),
91 fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0),
92 fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0),
93 fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0),
94 fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0),
95 fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0),
96 fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0),
97 fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0),
98 fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0),
99 fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0),
100 fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0),
101 fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0),
102 fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0),
103 fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0),
104 fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0),
105 fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0),
106 fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0),
107 fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0),
108 fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0),
109 fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0)
111 for(Int_t i = 0; i < 7; i++)
113 for(Int_t j = 0; j < 2; j++)
272 for(Int_t jj = 0; jj < 4; jj++)
311 for(Int_t nlm = 0; nlm < 3; nlm++)
373 for(Int_t i = 0; i < 2; i++)
380 for(Int_t i = 0; i < 4; i++)
411 for(Int_t nlm = 0; nlm < 3; nlm++)
479 for(Int_t i = 0; i < 20; i++)
495 for(Int_t i = 0; i < 7; i++)
497 for(Int_t j = 0; j < 4; j++)
513 for(Int_t i = 0; i < 5; i++)
515 for(Int_t j = 0; j < 5; j++)
521 for(Int_t k = 0; k < 3; k++)
543 Float_t e1, Float_t e2, Float_t mass)
549 const UInt_t nc = cluster->GetNCells();
612 for (UInt_t icell = 0; icell < nc; icell++ )
614 list [icell] = cluster->GetCellAbsId(icell);
615 elist[icell] =
GetEMCALCells()->GetCellAmplitude(list[icell]);
619 Int_t nmaxima = nMax;
620 if(nMax==1) nmaxima = nc ;
627 for(Int_t i = 0; i < nmaxima; i++)
638 for(Int_t i = 0; i < nmaxima; i++)
640 if(i==imax)
continue;
661 Int_t mcLabelMax = -1 ;
662 if(imax >=0 && imax < 999)
668 Int_t mcLabelMax2 = -1 ;
669 if(imax2 >=0 && imax2 < 999)
675 Int_t mcLabelclusterMax = cluster->GetLabels()[0];
676 Bool_t matchHighLMAndHighMC = kFALSE;
680 if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0)
682 matchHighLMAndHighMC = kTRUE;
688 if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0)
691 matchHighLMAndHighMC = kTRUE;
696 matchHighLMAndHighMC = kFALSE;
701 Int_t ancPDG = 0, ancStatus = -1;
703 Bool_t high = kFALSE;
724 for(Int_t i = 0; i < nmaxima-1; i++)
729 for(Int_t j = i+1; j < nmaxima; j++)
734 if(mcLabel1 < 0 || mcLabel2 < 0 )
744 if((i==imax && j==imax2) || (j==imax && i==imax2))
749 else if(ancPDG==22 || TMath::Abs(ancPDG)==11)
761 Int_t pdg = -22222, status = -1;
767 Float_t en = cluster->E();
774 if(matchHighLMAndHighMC)
791 if(matchHighLMAndHighMC)
816 Int_t pdg = -22222, status = -1;
819 Int_t label = cluster->GetLabel();
821 while( pdg!=111 && label >=0 )
826 if(pdg!=111 || label < 0)
828 AliWarning(
"Mother Pi0 not found!");
836 AliWarning(Form(
"N daughters %d !=2!",nDaugthers));
841 Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1;
843 Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1;
846 if(pdg1!=22 || pdg0 != 22)
848 AliWarning(Form(
"Wrong daughters PDG: photon0 %d - photon1 %d",pdg0,pdg1));
871 if(phi0 < 0 ) phi0+=TMath::TwoPi();
872 if(phi1 < 0 ) phi1+=TMath::TwoPi();
874 Int_t absId0=-1, absId1=-1;
878 if(absId0 < 0 || absId1 < 0)
912 if(inlm > 2) inlm = 2;
914 Bool_t match0 = kFALSE;
915 Bool_t match1 = kFALSE;
918 if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 )
920 if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
921 else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
923 if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
924 else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
932 Int_t absId0second = -1;
933 Int_t absId1second = -1;
934 Int_t secLabel0 = -1;
935 Int_t secLabel1 = -1;
939 Int_t secpdg = -999999;
940 Int_t secstatus = -1;
941 Int_t secgrandLabel = -1;
943 if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
944 if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; }
946 if((!match0 || !match1) && mcindex ==
kmcPi0Conv)
948 for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
950 Int_t mclabel = cluster->GetLabels()[ilab];
954 if(mclabel == label0 || mclabel == label1)
957 if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
958 if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; }
965 Int_t tmplabel = mclabel;
966 while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 )
972 if((secgrandLabel == label0) || (secgrandLabel == label1 ))
975 if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; }
976 if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; }
981 tmplabel = secgrandLabel;
986 if(!match0 && secLabel0 > 0)
997 if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
998 if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
1001 if(!match1 && secLabel1 > 0)
1012 if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
1013 if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
1020 if( match0 && match1 )
1029 if(match0 && imatch0 == imax)
1056 if(match0 && imatch0 == imax )
1109 if(match0 && match1)
1119 if(match0 && imatch0 == imax)
1146 if(match0 && imatch0 == imax)
1197 Bool_t matchMCHitOtherLM = kFALSE;
1200 for(Int_t i = 0; i < nmaxima; i++)
1202 if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; }
1208 for(Int_t i = 0; i < nmaxima; i++)
1210 if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; }
1214 if(matchMCHitOtherLM)
1223 if(match0 && imatch0 == imax)
1242 if(match0 && imatch0 == imax)
1263 Bool_t adjacentOther1 = kFALSE;
1266 for(Int_t i = 0; i < nmaxima; i++)
1268 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1279 Bool_t adjacentOther0 = kFALSE;
1282 for(Int_t i = 0; i < nmaxima; i++)
1284 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1295 if((match0 && adjacentOther1) || (match1 && adjacentOther0))
1304 if(match0 && imatch0 == imax)
1323 if(match0 && imatch0 == imax)
1360 Float_t en, Float_t e1, Float_t e2,
1361 Float_t angle, Float_t mass,
1362 Float_t anglePrim, Float_t m02,
1363 Float_t asym, Int_t pid, Int_t noverlaps)
1370 Bool_t eCutOK= kFALSE;
1371 Int_t inlm = nMax-1;
1372 if(inlm > 2 ) inlm = 2;
1374 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1375 else if(ensubcut < 0.1) eCutOK = kTRUE;
1381 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1402 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1423 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1441 if(
IsDataMC() && mcIndex > 0 && mcIndex < 7)
1451 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1462 if((mcIndex ==
kmcPi0 || mcIndex ==
kmcPi0Conv) && !matched && anglePrim > 0)
1478 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1489 if((mcIndex ==
kmcPi0 || mcIndex ==
kmcPi0Conv) && !matched && anglePrim > 0)
1504 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1515 if((mcIndex ==
kmcPi0 || mcIndex ==
kmcPi0Conv) && !matched && anglePrim > 0)
1529 Float_t en, Float_t m02, Int_t pid)
1534 Float_t momentumDaughter1AlongMother = 0.;
1535 Float_t momentumDaughter2AlongMother = 0.;
1537 if (momentumSquaredMother > 0.)
1544 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
1547 if (ptArmSquared > 0.)
1548 pTArm = sqrt(ptArmSquared);
1550 Float_t alphaArm = 0.;
1551 if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0)
1552 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
1556 AliDebug(2,Form(
"E %f, alphaArm %f, pTArm %f",en,alphaArm,pTArm));
1563 Bool_t eCutOK= kFALSE;
1564 Int_t inlm = nMax-1;
1565 if(inlm > 2 ) inlm = 2;
1568 if (ensubcut > 0.1 && ensubcut <
fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() )
1570 else if(ensubcut < 0.1)
1576 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1584 if((m02OK && asyOK) && (asyOn || m02On))
1592 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1598 if(
IsDataMC() && mcIndex > 0 && mcIndex < 7)
1603 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1611 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1619 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1631 Float_t en, Float_t m02, Int_t pid)
1646 Bool_t eCutOK= kFALSE;
1647 Int_t inlm = nMax-1;
1648 if(inlm > 2 ) inlm = 2;
1650 if (ensubcut > 0.1 && ensubcut <
fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() ) eCutOK = kTRUE;
1651 else if(ensubcut < 0.1) eCutOK = kTRUE;
1659 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1668 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1677 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1683 if(
IsDataMC() && mcIndex > 0 && mcIndex < 7)
1689 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1698 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1707 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1719 Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0)
1751 Int_t nMax, Float_t mass, Float_t l0,
1752 Float_t eta, Float_t phi,
1753 Bool_t matched, Int_t mcindex)
1755 Float_t splitFrac = (e1+e2)/en;
1758 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1767 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
1782 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
1797 else if( nMax == 2 )
1802 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
1817 else if( nMax >= 3 )
1822 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
1844 Float_t e1, Float_t e2,
1845 Int_t nMax, Float_t mass, Float_t l0,
1846 Bool_t matched, Int_t mcindex)
1848 Float_t efrac = eprim/en;
1849 Float_t efracSplit = 0;
1850 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
1852 Float_t splitFrac = (e1+e2)/en;
1855 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1857 Int_t inlm = nMax-1;
1858 if(inlm > 2) inlm = 2;
1866 Bool_t eCutOK = kFALSE;
1868 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1869 else if(ensubcut < 0.1) eCutOK = kTRUE;
1879 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
1895 if( !matched && asyOK && asyOn )
1901 if( !matched && m02OK && m02On )
1908 if(!matched && eCutOK && ensubcut > 0.1)
1916 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1919 if(splitFrac > splitFracMin)
1931 else if( nMax == 2 )
1939 if( !matched && asyOK && asyOn )
1945 if( !matched && m02OK && m02On )
1952 if( !matched && eCutOK && ensubcut > 0.1 )
1960 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1963 if(splitFrac > splitFracMin)
1984 if( !matched && asyOK && asyOn )
1990 if(!matched && m02OK && m02On )
1997 if( !matched && eCutOK && ensubcut > 0.1 )
2005 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
2008 if(splitFrac > splitFracMin)
2022 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2030 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
2033 if(splitFrac > splitFracMin)
2046 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
2049 if(splitFrac > splitFracMin)
2062 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
2065 if(splitFrac > splitFracMin)
2079 Int_t nc, Int_t nMax, Float_t t12diff,
2080 Float_t mass, Float_t l0,
2081 Float_t eta, Float_t phi,
2082 Bool_t matched, Int_t mcindex)
2085 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2094 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2160 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2197 Int_t nc, Int_t nMax, Float_t t12diff,
2198 Float_t mass, Float_t l0,
2199 Float_t eta, Float_t phi,
2200 Bool_t matched, Int_t mcindex)
2203 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2260 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2291 Float_t mass, Float_t l0,
2292 Bool_t matched, Int_t mcindex)
2300 else if ( nMax == 2 )
2306 else if ( nMax > 2 )
2313 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2321 else if ( nMax == 2 )
2327 else if ( nMax > 2 )
2340 Int_t ebin, Int_t mcindex,Int_t noverlaps,
2341 Float_t l0, Float_t mass,
2342 Int_t nMax, Bool_t matched,
2343 Float_t splitFrac, Float_t asym,
2344 Float_t eprim, Float_t asymGen)
2346 Float_t efrac = eprim/en;
2347 Float_t efracSplit = 0;
2348 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
2349 Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen);
2365 if(asym > 0 && !matched)
2394 else if( nMax == 2 )
2400 if(asym > 0 && !matched)
2434 if(asym > 0 && !matched)
2469 Int_t nc, Float_t mass, Float_t l0,
2470 Float_t asym, Float_t splitFrac,
2471 Int_t inlm, Int_t ebin, Bool_t matched,
2472 Int_t mcindex, Int_t noverlaps)
2492 else if(noverlaps == 1)
2502 else if(noverlaps > 1)
2513 AliWarning(Form(
"n overlaps = %d!!", noverlaps));
2529 else if(noverlaps == 1)
2539 else if(noverlaps > 1)
2550 AliWarning(Form(
"n overlaps in matched = %d!!", noverlaps));
2559 Bool_t matched, Int_t mcindex,
2560 Float_t mass , Float_t l0)
2568 if (mcindex==
kmcPi0 && !matched)
2582 else if( nMax == 2 )
2588 if (mcindex==
kmcPi0 && !matched)
2602 else if( nMax >= 3 )
2607 if (mcindex==
kmcPi0 && !matched)
2628 Float_t energy = clus->E();
2629 Float_t m02 = clus->GetM02();
2635 Double_t mass = 0., angle = 0.;
2636 Int_t absId1 =-1; Int_t absId2 =-1;
2637 Float_t distbad1 =-1; Float_t distbad2 =-1;
2638 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
2656 distbad1,distbad2,fidcut1,fidcut2);
2659 AliWarning(
"No local maximum found! It did not pass CaloPID selection criteria");
2664 if(inlm>2) inlm = 2;
2688 Bool_t matched, Int_t mcindex,
2689 Float_t mass , Int_t ebin)
2691 Float_t en = cluster->E();
2694 Float_t ll0 = 0., ll1 = 0.;
2695 Float_t disp= 0., dispEta = 0., dispPhi = 0.;
2696 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2699 ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi);
2701 Float_t dispAsy = -1;
2702 if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta);
2712 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2727 else if( nMax == 2 )
2735 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2750 else if( nMax >= 3 )
2758 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2779 Int_t absId1, Int_t absId2)
2781 AliVCaloCells* cells = 0;
2788 Float_t simuTotWeight = 0;
2792 simuTotWeight/= energy;
2797 AliWarning(Form(
"Wrong calculated energy %f",energy));
2802 Float_t amp1 = cells->GetCellAmplitude(absId1);
2804 Float_t amp2 = cells->GetCellAmplitude(absId2);
2807 if(amp1 < amp2) AliWarning(Form(
"Bad local maxima E ordering : id1 E %f, id2 E %f",amp1,amp2));
2808 if(amp1==0 || amp2==0) AliWarning(Form(
"Null E local maxima : id1 E %f, id2 E %f " ,amp1,amp2));
2821 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2823 Int_t
id = clus->GetCellsAbsId()[ipos];
2826 Float_t amp = cells->GetCellAmplitude(
id);
2839 if (
id!=absId1 &&
id!=absId2)
2849 Float_t l0org = clus->GetM02();
2850 Float_t l1org = clus->GetM20();
2851 Float_t dorg = clus->GetDispersion();
2862 Float_t l0 = 0., l1 = 0.;
2863 Float_t disp = 0., dEta = 0., dPhi = 0.;
2864 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2877 clus->SetM02(l0org);
2878 clus->SetM20(l1org);
2879 clus->SetDispersion(dorg);
2884 Float_t l0 = 0., l1 = 0.;
2885 Float_t disp = 0., dEta = 0., dPhi = 0.;
2886 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2889 dEta, dPhi, sEta, sPhi, sEtaPhi,
fSSECellCut[iec]);
2902 Int_t nMax, Int_t mcindex)
2904 Float_t dZ = cluster->GetTrackDz();
2905 Float_t dR = cluster->GetTrackDx();
2906 Float_t en = cluster->E();
2910 dR = 2000., dZ = 2000.;
2916 if(TMath::Abs(dR) < 999)
2923 else if( nMax == 2 )
2928 else if( nMax >= 3 )
2934 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2941 else if( nMax == 2 )
2946 else if( nMax >= 3 )
2955 Bool_t positive = kFALSE;
2956 if(track) positive = (track->Charge()>0);
2967 else if( nMax == 2 )
2972 else if( nMax >= 3 )
2978 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
2985 else if( nMax == 2 )
2990 else if( nMax >= 3 )
3004 else if( nMax == 2 )
3009 else if( nMax >= 3 )
3015 if(
IsDataMC() && mcindex > 0 && mcindex < 7)
3022 else if( nMax == 2 )
3027 else if( nMax >= 3 )
3044 Int_t buffersize = 255;
3045 char onePar[buffersize] ;
3047 snprintf(onePar,buffersize,
"--- AliAnaInsideClusterInvariantMass ---:") ;
3052 snprintf(onePar,buffersize,
"fNLocMaxCutE =%2.2f;",
GetCaloUtils()->GetLocalMaximaCutE()) ;
3054 snprintf(onePar,buffersize,
"fNLocMaxCutEDiff =%2.2f;",
GetCaloUtils()->GetLocalMaximaCutEDiff()) ;
3056 snprintf(onePar,buffersize,
"fMinNCells =%d;",
fMinNCells) ;
3058 snprintf(onePar,buffersize,
"fMinBadDist =%1.1f;",
fMinBadDist) ;
3066 return new TObjString(parList) ;
3075 TList * outputContainer =
new TList() ;
3076 outputContainer->SetName(
"InsideClusterHistos") ;
3094 Bool_t splitOn = kFALSE;
3095 if(
GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 ||
3096 GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 ||
3097 GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE;
3099 TString ptype[] ={
"",
"#gamma",
"#gamma->e^{#pm}",
"#pi^{0}",
"#pi^{0} (#gamma->e^{#pm})",
"#eta",
"hadron"};
3100 TString pname[] ={
"",
"Photon",
"Conversion",
"Pi0",
"Pi0Conv",
"Eta",
"Hadron"};
3101 TString snlm [] = {
"1",
"2",
"N"};
3103 TString sEBin[] = {
"8 < #it{E} < 12 GeV",
"12 < #it{E} < 16 GeV",
"16 < #it{E} < 20 GeV",
"#it{E} > 20 GeV" };
3109 Int_t nMaxBins = 10;
3111 TString sMatched[] = {
"",
"Matched"};
3119 for(Int_t imatch = 0; imatch < nMatched; imatch++)
3125 fhNLocMaxDiffCut[iE][iDiff][imatch] =
new TH2F(Form(
"hNLocMax_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
3126 Form(
"NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s",
fNLMMinE[iE],
fNLMMinDiff[iDiff],sMatched[imatch].Data()),
3127 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
3132 fhNLocMaxDiffCutPi0[iE][iDiff][imatch] =
new TH2F(Form(
"hNLocMaxPi0_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
3133 Form(
"#pi^{0} NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s",
3135 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
3140 for(Int_t inlm = 0; inlm < 3; inlm++)
3143 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch] =
new TH2F(Form(
"hNLocMaxM02_MinE%d_MinDiffE%d_NLM%s%s",
3144 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
3145 Form(
"#lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
3147 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3152 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch] =
new TH2F(Form(
"hNLocMaxMass_MinE%d_MinDiffE%d_NLM%s%s",
3153 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
3154 Form(
"#it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
3156 nptbins,ptmin,ptmax, mbins,mmin,mmax);
3161 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] =
new TH2F(Form(
"hNLocMaxPi0M02_MinE%d_MinDiffE%d_NLM%s%s",
3162 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
3163 Form(
"#pi^{0} #lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
3165 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3171 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
3172 Form(
"#pi^{0} #it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
3174 nptbins,ptmin,ptmax, mbins,mmin,mmax);
3184 return outputContainer;
3189 for(Int_t inlm = 0; inlm < 3; inlm++)
3191 fhMassBadDistClose[inlm] =
new TH2F(Form(
"hMassBadDistCloseNLocMax%s",snlm[inlm].Data()),
3192 Form(
"Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
3193 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3198 fhM02BadDistClose[inlm] =
new TH2F(Form(
"hM02BadDistCloseNLocMax%s",snlm[inlm].Data()),
3199 Form(
"#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
3200 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3205 fhMassOnBorder[inlm] =
new TH2F(Form(
"hMassOnBorderNLocMax%s",snlm[inlm].Data()),
3206 Form(
"Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
3207 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3212 fhM02OnBorder[inlm] =
new TH2F(Form(
"hM02OnBorderNLocMax%s",snlm[inlm].Data()),
3213 Form(
"#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
3214 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3221 for(Int_t i = 0; i < n; i++)
3223 for(Int_t j = 0; j < nMatched; j++)
3226 fhNLocMax[i][j] =
new TH2F(Form(
"hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3227 Form(
"Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3228 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3229 fhNLocMax[i][j] ->SetYTitle(
"#it{N} maxima");
3230 fhNLocMax[i][j] ->SetXTitle(
"#it{E} (GeV)");
3233 fhLM1NLocMax[i][j] =
new TH2F(Form(
"hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3234 Form(
"Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3235 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3240 fhLM2NLocMax[i][j] =
new TH2F(Form(
"hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3241 Form(
"Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3242 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3249 fhNLocMaxM02Cut[i][j] =
new TH2F(Form(
"hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3250 Form(
"Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3251 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3256 fhLM1NLocMaxM02Cut[i][j] =
new TH2F(Form(
"hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3257 Form(
"Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3258 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3263 fhLM2NLocMaxM02Cut[i][j] =
new TH2F(Form(
"hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3264 Form(
"Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3265 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3271 fhNLocMaxIdPi0[i][j] =
new TH2F(Form(
"hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3272 Form(
"Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3273 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3279 fhLM1NLocMaxIdPi0[i][j] =
new TH2F(Form(
"hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3280 Form(
"Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3281 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3286 fhLM2NLocMaxIdPi0[i][j] =
new TH2F(Form(
"hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3287 Form(
"Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3288 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3294 fhSplitClusterENLocMax[i][j] =
new TH2F(Form(
"hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3295 Form(
"Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()),
3296 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3303 Form(
"Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()),
3304 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3311 fhNCellNLocMax1[i][j] =
new TH2F(Form(
"hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3312 Form(
"n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3313 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3318 fhNCellNLocMax2[i][j] =
new TH2F(Form(
"hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3319 Form(
"n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3320 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3326 fhNCellNLocMaxN[i][j] =
new TH2F(Form(
"hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3327 Form(
"n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3328 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3334 fhMassNLocMax1[i][j] =
new TH2F(Form(
"hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3335 Form(
"Invariant mass of splitted cluster with #it{NLM}=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
3336 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3341 fhMassNLocMax2[i][j] =
new TH2F(Form(
"hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3342 Form(
"Invariant mass of splitted cluster with #it{NLM}=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
3343 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3348 fhMassNLocMaxN[i][j] =
new TH2F(Form(
"hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3349 Form(
"Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
3350 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3355 fhMassSplitENLocMax1[i][j] =
new TH2F(Form(
"hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3356 Form(
"Invariant mass of splitted cluster with #it{NLM}=1 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3357 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3362 fhMassSplitENLocMax2[i][j] =
new TH2F(Form(
"hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3363 Form(
"Invariant mass of splitted cluster with #it{NLM}=2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3364 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3369 fhMassSplitENLocMaxN[i][j] =
new TH2F(Form(
"hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3370 Form(
"Invariant mass of splitted cluster with NLM>2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3371 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3376 fhM02NLocMax1[i][j] =
new TH2F(Form(
"hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3377 Form(
"#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3378 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3383 fhM02NLocMax2[i][j] =
new TH2F(Form(
"hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3384 Form(
"#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3385 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3390 fhM02NLocMaxN[i][j] =
new TH2F(Form(
"hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3391 Form(
"#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3392 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3397 fhAsymNLocMax1[i][j] =
new TH2F(Form(
"hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3398 Form(
"Asymmetry of #it{NLM}=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3399 nptbins,ptmin,ptmax,200,-1,1);
3400 fhAsymNLocMax1[i][j]->SetYTitle(
"(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3404 fhAsymNLocMax2[i][j] =
new TH2F(Form(
"hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3405 Form(
"Asymmetry of #it{NLM}=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3406 nptbins,ptmin,ptmax,200,-1,1);
3407 fhAsymNLocMax2[i][j]->SetYTitle(
"(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3411 fhAsymNLocMaxN[i][j] =
new TH2F(Form(
"hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3412 Form(
"Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3413 nptbins,ptmin,ptmax,200,-1,1);
3414 fhAsymNLocMaxN[i][j]->SetYTitle(
"(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3419 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3420 nptbins,ptmin,ptmax,120,0,1.2);
3426 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3427 nptbins,ptmin,ptmax,120,0,1.2);
3433 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3434 nptbins,ptmin,ptmax,120,0,1.2);
3443 fhMassM02CutNLocMax1 =
new TH2F(
"hMassM02CutNLocMax1",
"Invariant mass of splitted cluster with #it{NLM}=1 vs E, M02 cut, no TM",
3444 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3449 fhMassM02CutNLocMax2 =
new TH2F(
"hMassM02CutNLocMax2",
"Invariant mass of splitted cluster with #it{NLM}=2 vs E, M02 cut, no TM",
3450 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3455 fhMassM02CutNLocMaxN =
new TH2F(
"hMassM02CutNLocMaxN",
"Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM",
3456 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3461 fhAsymM02CutNLocMax1 =
new TH2F(
"hAsymM02CutNLocMax1",
"Asymmetry of #it{NLM}=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3466 fhAsymM02CutNLocMax2 =
new TH2F(
"hAsymM02CutNLocMax2",
"Asymmetry of #it{NLM}=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3471 fhAsymM02CutNLocMaxN =
new TH2F(
"hAsymM02CutNLocMaxN",
"Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3478 fhMassSplitECutNLocMax1 =
new TH2F(
"hMassSplitECutNLocMax1",
"Invariant mass of splitted cluster with #it{NLM}=1 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
3479 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3484 fhMassSplitECutNLocMax2 =
new TH2F(
"hMassSplitECutNLocMax2",
"Invariant mass of splitted cluster with #it{NLM}=2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
3485 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3490 fhMassSplitECutNLocMaxN =
new TH2F(
"hMassSplitECutNLocMaxN",
"Invariant mass of splitted cluster with NLM>2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
3491 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3500 fhMassAsyCutNLocMax1 =
new TH2F(
"hMassAsyCutNLocMax1",
"Invariant mass of splitted cluster with #it{NLM}=1 vs E, Asy cut, no TM",
3501 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3506 fhMassAsyCutNLocMax2 =
new TH2F(
"hMassAsyCutNLocMax2",
"Invariant mass of splitted cluster with #it{NLM}=2 vs E, Asy cut, no TM",
3507 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3512 fhMassAsyCutNLocMaxN =
new TH2F(
"hMassAsyCutNLocMaxN",
"Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM",
3513 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3518 fhM02AsyCutNLocMax1 =
new TH2F(
"hM02AsyCutNLocMax1",
"#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, AsyCut, no TM",
3519 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3524 fhM02AsyCutNLocMax2 =
new TH2F(
"hM02AsyCutNLocMax2",
"#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, AsyCut, no TM",
3525 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3530 fhM02AsyCutNLocMaxN =
new TH2F(
"hM02AsyCutNLocMaxN",
"#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM",
3531 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3537 if(
GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1)
3539 fhMassEnCutNLocMax1 =
new TH2F(
"hMassEnCutNLocMax1",Form(
"Invariant mass of splitted cluster with #it{NLM}=1 vs E, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(0)),
3540 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3545 fhMassEnCutNLocMax2 =
new TH2F(
"hMassEnCutNLocMax2",Form(
"Invariant mass of splitted cluster with #it{NLM}=2 vs E, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(1)),
3546 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3551 fhMassEnCutNLocMaxN =
new TH2F(
"hMassEnCutNLocMaxN",Form(
"Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3552 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3557 fhM02EnCutNLocMax1 =
new TH2F(
"hM02EnCutNLocMax1",Form(
"#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(0)),
3558 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3563 fhM02EnCutNLocMax2 =
new TH2F(
"hM02EnCutNLocMax2",Form(
"#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(1)),
3564 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3569 fhM02EnCutNLocMaxN =
new TH2F(
"hM02EnCutNLocMaxN",Form(
"#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3570 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3575 fhAsymEnCutNLocMax1 =
new TH2F(
"hAsymEnCutNLocMax1",Form(
"Asymmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(0))
3576 , nptbins,ptmin,ptmax,200,-1,1);
3581 fhAsymEnCutNLocMax2 =
new TH2F(
"hAsymEnCutNLocMax2",Form(
"Asymmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(1))
3582 , nptbins,ptmin,ptmax,200,-1,1);
3587 fhAsymEnCutNLocMaxN =
new TH2F(
"hAsymEnCutNLocMaxN",Form(
"Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(2))
3588 , nptbins,ptmin,ptmax,200,-1,1);
3593 fhSplitEFracEnCutNLocMax1 =
new TH2F(
"hSplitEFracEnCutNLocMax1",Form(
"SplitEFracmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(0))
3594 , nptbins,ptmin,ptmax,120,0,1.2);
3599 fhSplitEFracEnCutNLocMax2 =
new TH2F(
"hSplitEFracEnCutNLocMax2",Form(
"SplitEFracmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(1))
3600 , nptbins,ptmin,ptmax,120,0,1.2);
3605 fhSplitEFracEnCutNLocMaxN =
new TH2F(
"hSplitEFracEnCutNLocMaxN",Form(
"SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",
GetCaloPID()->GetSubClusterEnergyMinimum(2))
3606 , nptbins,ptmin,ptmax,120,0,1.2);
3615 fhMassAfterCutsNLocMax1[i][j] =
new TH2F(Form(
"hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3616 Form(
"Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3617 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3622 fhMassAfterCutsNLocMax2[i][j] =
new TH2F(Form(
"hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3623 Form(
"Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3624 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3629 fhMassAfterCutsNLocMaxN[i][j] =
new TH2F(Form(
"hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3630 Form(
"Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3631 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3637 Form(
"Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3638 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3644 Form(
"Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3645 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3651 Form(
"Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3652 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3659 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3660 nptbins,ptmin,ptmax,120,0,1.2);
3666 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3667 nptbins,ptmin,ptmax,120,0,1.2);
3673 Form(
"(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3674 nptbins,ptmin,ptmax,120,0,1.2);
3680 fhMassM02NLocMax1[i][j] =
new TH2F(Form(
"hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3681 Form(
"Invariant mass of splitted cluster with #it{NLM}=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
3682 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3687 fhMassM02NLocMax2[i][j] =
new TH2F(Form(
"hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3688 Form(
"Invariant mass of splitted cluster with #it{NLM}=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
3689 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3694 fhMassM02NLocMaxN[i][j] =
new TH2F(Form(
"hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3695 Form(
"Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3696 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3703 fhMassDispEtaNLocMax1[i][j] =
new TH2F(Form(
"hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3704 Form(
"Invariant mass of splitted cluster with #it{NLM}=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
3705 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3710 fhMassDispEtaNLocMax2[i][j] =
new TH2F(Form(
"hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3711 Form(
"Invariant mass of splitted cluster with #it{NLM}=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
3712 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3717 fhMassDispEtaNLocMaxN[i][j] =
new TH2F(Form(
"hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3718 Form(
"Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3719 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3724 fhMassDispPhiNLocMax1[i][j] =
new TH2F(Form(
"hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3725 Form(
"Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
3726 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3731 fhMassDispPhiNLocMax2[i][j] =
new TH2F(Form(
"hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3732 Form(
"Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
3733 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3738 fhMassDispPhiNLocMaxN[i][j] =
new TH2F(Form(
"hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3739 Form(
"Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3740 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3745 fhMassDispAsyNLocMax1[i][j] =
new TH2F(Form(
"hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3746 Form(
"Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
3747 200,-1,1,mbins,mmin,mmax);
3749 fhMassDispAsyNLocMax1[i][j]->SetXTitle(
"A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3752 fhMassDispAsyNLocMax2[i][j] =
new TH2F(Form(
"hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3753 Form(
"Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
3754 200,-1,1,mbins,mmin,mmax);
3756 fhMassDispAsyNLocMax2[i][j]->SetXTitle(
"A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3759 fhMassDispAsyNLocMaxN[i][j] =
new TH2F(Form(
"hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3760 Form(
"Invariant mass of N>2 local maxima cells vsA = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s %s",ptype[i].Data(),sMatched[j].Data()),
3761 200,-1,1,mbins,mmin,mmax);
3763 fhMassDispAsyNLocMaxN[i][j]->SetXTitle(
"#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3769 fhMCGenFracNLocMax1[i][j] =
new TH2F(Form(
"hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3770 Form(
"#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3771 nptbins,ptmin,ptmax,200,0,2);
3776 fhMCGenFracNLocMax2[i][j] =
new TH2F(Form(
"hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3777 Form(
"#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3778 nptbins,ptmin,ptmax,200,0,2);
3783 fhMCGenFracNLocMaxN[i][j] =
new TH2F(Form(
"hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3784 Form(
"#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3785 nptbins,ptmin,ptmax,200,0,2);
3791 Form(
"#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3792 nptbins,ptmin,ptmax,200,0,2);
3798 Form(
"#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3799 nptbins,ptmin,ptmax,200,0,2);
3805 Form(
"#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3806 nptbins,ptmin,ptmax,200,0,2);
3813 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3814 nptbins,ptmin,ptmax,200,0,2);
3820 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3821 nptbins,ptmin,ptmax,200,0,2);
3827 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3828 nptbins,ptmin,ptmax,200,0,2);
3834 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3835 nptbins,ptmin,ptmax,200,0,2);
3841 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3842 nptbins,ptmin,ptmax,200,0,2);
3848 Form(
"#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3849 nptbins,ptmin,ptmax,200,0,2);
3855 Form(
"(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3862 Form(
"(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3870 Form(
"(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3878 Form(
"#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3879 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3885 Form(
"#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3886 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3893 Form(
"#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3894 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
3905 fhM02Pi0NLocMax1[i][j] =
new TH2F(Form(
"hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3906 Form(
"#lambda_{0}^{2} vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
3907 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3912 fhM02Pi0NLocMax2[i][j] =
new TH2F(Form(
"hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3913 Form(
"#lambda_{0}^{2} vs #it{E}, %s, for NLM = 2",ptype[i].Data()),
3914 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3919 fhM02Pi0NLocMaxN[i][j] =
new TH2F(Form(
"hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3920 Form(
"#lambda_{0}^{2} vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
3921 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3926 fhMassPi0NLocMax1[i][j] =
new TH2F(Form(
"hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3927 Form(
"Mass vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
3928 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3933 fhMassPi0NLocMax2[i][j] =
new TH2F(Form(
"hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3934 Form(
"Mass vs #it{E} , %s, for NLM = 2",ptype[i].Data()),
3935 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3940 fhMassPi0NLocMaxN[i][j] =
new TH2F(Form(
"hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3941 Form(
"Mass vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
3942 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3947 fhMassSplitEPi0NLocMax1[i][j] =
new TH2F(Form(
"hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3948 Form(
"Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM = 1",ptype[i].Data()),
3949 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3954 fhMassSplitEPi0NLocMax2[i][j] =
new TH2F(Form(
"hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3955 Form(
"Mass vs #it{E}_{1}+#it{E}_{2} , %s, for NLM = 2",ptype[i].Data()),
3956 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3961 fhMassSplitEPi0NLocMaxN[i][j] =
new TH2F(Form(
"hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3962 Form(
"Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM > 2",ptype[i].Data()),
3963 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3968 fhAsyPi0NLocMax1[i][j] =
new TH2F(Form(
"hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3969 Form(
"Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3970 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3975 fhAsyPi0NLocMax2[i][j] =
new TH2F(Form(
"hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3976 Form(
"Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3977 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3982 fhAsyPi0NLocMaxN[i][j] =
new TH2F(Form(
"hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3983 Form(
"Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
3984 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3991 fhNCellPi0NLocMax1[i][j] =
new TH2F(Form(
"hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3992 Form(
"n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3993 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3998 fhNCellPi0NLocMax2[i][j] =
new TH2F(Form(
"hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3999 Form(
"n cells vs E, %s, for NLM = 2",ptype[i].Data()),
4000 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
4005 fhNCellPi0NLocMaxN[i][j] =
new TH2F(Form(
"hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4006 Form(
"n cells vs E, %s, for NLM > 2",ptype[i].Data()),
4007 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
4017 fhM02EtaNLocMax1[i][j] =
new TH2F(Form(
"hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4018 Form(
"#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
4019 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4025 fhM02EtaNLocMax2[i][j] =
new TH2F(Form(
"hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4026 Form(
"#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
4027 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4032 fhM02EtaNLocMaxN[i][j] =
new TH2F(Form(
"hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4033 Form(
"#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
4034 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4039 fhMassEtaNLocMax1[i][j] =
new TH2F(Form(
"hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4040 Form(
"Mass vs E, %s, for NLM = 1",ptype[i].Data()),
4041 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4046 fhMassEtaNLocMax2[i][j] =
new TH2F(Form(
"hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4047 Form(
"Mass vs E, %s, for NLM = 2",ptype[i].Data()),
4048 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4053 fhMassEtaNLocMaxN[i][j] =
new TH2F(Form(
"hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4054 Form(
"Mass vs E, %s, for NLM > 2",ptype[i].Data()),
4055 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4060 fhAsyEtaNLocMax1[i][j] =
new TH2F(Form(
"hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4061 Form(
"Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
4062 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4067 fhAsyEtaNLocMax2[i][j] =
new TH2F(Form(
"hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4068 Form(
"Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
4069 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4074 fhAsyEtaNLocMaxN[i][j] =
new TH2F(Form(
"hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4075 Form(
"Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4076 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4083 fhNCellEtaNLocMax1[i][j] =
new TH2F(Form(
"hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4084 Form(
"n cells vs E, %s, for NLM = 1",ptype[i].Data()),
4085 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
4090 fhNCellEtaNLocMax2[i][j] =
new TH2F(Form(
"hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4091 Form(
"n cells vs E, %s, for NLM = 2",ptype[i].Data()),
4092 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
4097 fhNCellEtaNLocMaxN[i][j] =
new TH2F(Form(
"hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4098 Form(
"n cells vs E, %s, for NLM > 2",ptype[i].Data()),
4099 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
4108 fhM02ConNLocMax1[i][j] =
new TH2F(Form(
"hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4109 Form(
"#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
4110 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4115 fhM02ConNLocMax2[i][j] =
new TH2F(Form(
"hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4116 Form(
"#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
4117 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4122 fhM02ConNLocMaxN[i][j] =
new TH2F(Form(
"hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4123 Form(
"#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
4124 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4130 fhMassConNLocMax1[i][j] =
new TH2F(Form(
"hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4131 Form(
"Mass vs E, %s, for NLM = 1",ptype[i].Data()),
4132 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4137 fhMassConNLocMax2[i][j] =
new TH2F(Form(
"hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4138 Form(
"Mass vs E, %s, for NLM = 2",ptype[i].Data()),
4139 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4144 fhMassConNLocMaxN[i][j] =
new TH2F(Form(
"hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4145 Form(
"Mass vs E, %s, for NLM > 2",ptype[i].Data()),
4146 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4151 fhAsyConNLocMax1[i][j] =
new TH2F(Form(
"hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4152 Form(
"Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
4153 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4158 fhAsyConNLocMax2[i][j] =
new TH2F(Form(
"hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4159 Form(
"Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
4160 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4165 fhAsyConNLocMaxN[i][j] =
new TH2F(Form(
"hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4166 Form(
"Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4167 nptbins,ptmin,ptmax,mbins,mmin,mmax);
4176 for(Int_t j = 0; j < 4; j++)
4179 Form(
"Invariant mass of 2 highest energy cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4180 120,0,1.2,mbins,mmin,mmax);
4186 Form(
"Invariant mass of 2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4187 120,0,1.2,mbins,mmin,mmax);
4193 Form(
"Invariant mass of N>2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4194 120,0,1.2,mbins,mmin,mmax);
4202 Form(
"NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4203 200,0,2,nMaxBins,0,nMaxBins);
4209 Form(
"NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()),
4210 200,0,2,nMaxBins,0,nMaxBins);
4216 Form(
"Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4217 200,0,2,mbins,mmin,mmax);
4223 Form(
"Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4224 200,0,2,mbins,mmin,mmax);
4230 Form(
"Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
4231 200,0,2,mbins,mmin,mmax);
4237 Form(
"#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()),
4238 200,0,2,ssbins,ssmin,ssmax);
4244 Form(
"#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
4245 200,0,2,ssbins,ssmin,ssmax);
4251 Form(
"#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
4252 200,0,2,ssbins,ssmin,ssmax);
4266 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
4267 nptbins,ptmin,ptmax,100,0,100);
4273 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
4274 nptbins,ptmin,ptmax,100,0,100);
4280 "E vs Centrality, selected pi0 cluster with NLM>1",
4281 nptbins,ptmin,ptmax,100,0,100);
4289 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
4290 nptbins,ptmin,ptmax,100,0,100);
4296 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
4297 nptbins,ptmin,ptmax,100,0,100);
4303 "E vs Centrality, selected pi0 cluster with NLM>1",
4304 nptbins,ptmin,ptmax,100,0,100);
4312 fhEventPlanePi0NLocMax1 =
new TH2F(
"hEventPlanePi0NLocMax1",
"E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
4313 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4318 fhEventPlanePi0NLocMax2 =
new TH2F(
"hEventPlanePi0NLocMax2",
"E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
4319 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4324 fhEventPlanePi0NLocMaxN =
new TH2F(
"hEventPlanePi0NLocMaxN",
"E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4325 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4332 fhEventPlaneEtaNLocMax1 =
new TH2F(
"hEventPlaneEtaNLocMax1",
"E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
4333 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4338 fhEventPlaneEtaNLocMax2 =
new TH2F(
"hEventPlaneEtaNLocMax2",
"E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
4339 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4344 fhEventPlaneEtaNLocMaxN =
new TH2F(
"hEventPlaneEtaNLocMaxN",
"E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4345 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4354 for(Int_t i = 0; i < 4; i++)
4357 Form(
"Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
4358 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4364 Form(
"Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
4365 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4371 Form(
"Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
4372 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4379 Form(
"Invariant mass of split clusters vs split asymmetry, #it{NLM}=1, %s",sEBin[i].Data()),
4380 200,-1,1,mbins,mmin,mmax);
4386 Form(
"Invariant mass of split clusters vs split asymmetry, #it{NLM}=2, %s",sEBin[i].Data()),
4387 200,-1,1,mbins,mmin,mmax);
4393 Form(
"Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()),
4394 200,-1,1,mbins,mmin,mmax);
4402 Form(
"Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
4403 ssbins,ssmin,ssmax,100,0,1);
4409 Form(
"Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
4410 ssbins,ssmin,ssmax,100,0,1);
4416 Form(
"Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
4417 ssbins,ssmin,ssmax,100,0,1);
4424 Form(
"Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=1, %s",sEBin[i].Data()),
4431 Form(
"Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=2, %s",sEBin[i].Data()),
4438 Form(
"Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()),
4448 Form(
"Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
4449 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4455 Form(
"Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
4456 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4462 Form(
"Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
4463 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4469 Form(
"Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
4470 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4476 Form(
"Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
4477 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4483 Form(
"Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
4484 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4490 Form(
"Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
4491 200,-1,1,mbins,mmin,mmax);
4493 fhMassDispAsyNLocMax1Ebin[i]->SetXTitle(
"#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4497 Form(
"Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
4498 200,-1,1,mbins,mmin,mmax);
4500 fhMassDispAsyNLocMax2Ebin[i]->SetXTitle(
"#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4504 Form(
"Invariant mass of N>2 local maxima cells vs A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
4505 200,-1,1,mbins,mmin,mmax);
4507 fhMassDispAsyNLocMaxNEbin[i]->SetXTitle(
"#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4516 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut",
4517 nptbins,ptmin,ptmax,200,0,2);
4523 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut",
4524 nptbins,ptmin,ptmax,200,0,2);
4531 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut",
4532 nptbins,ptmin,ptmax,200,0,2);
4538 "#it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 1 MC Pi0, after M02 and Asym cut",
4539 nptbins,ptmin,ptmax,200,0,2);
4545 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 2 MC Pi0, after M02 and Asym cut",
4546 nptbins,ptmin,ptmax,200,0,2);
4553 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max > 2 MC Pi0, after M02 and Asym cut",
4554 nptbins,ptmin,ptmax,200,0,2);
4562 for(Int_t i = 0; i < n; i++)
4565 (Form(
"hTrackMatchedDEtaNLocMax1%s",pname[i].Data()),
4566 Form(
"d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4567 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4572 (Form(
"hTrackMatchedDPhiNLocMax1%s",pname[i].Data()),
4573 Form(
"d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4574 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4582 (Form(
"hTrackMatchedDEtaNLocMax2%s",pname[i].Data()),
4583 Form(
"d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4584 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4589 (Form(
"hTrackMatchedDPhiNLocMax2%s",pname[i].Data()),
4590 Form(
"d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4591 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4599 (Form(
"hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()),
4600 Form(
"d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4601 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4606 (Form(
"hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()),
4607 Form(
"d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4608 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4616 (Form(
"hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()),
4617 Form(
"d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4618 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4623 (Form(
"hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()),
4624 Form(
"d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4625 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4633 (Form(
"hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()),
4634 Form(
"d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4635 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4640 (Form(
"hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()),
4641 Form(
"d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4642 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4650 (Form(
"hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()),
4651 Form(
"d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4652 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4657 (Form(
"hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()),
4658 Form(
"d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4659 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);