24 #include "AliAnalysisManager.h" 25 #include "AliInputEventHandler.h" 26 #include "AliMCEventHandler.h" 27 #include "AliAODHandler.h" 31 #include "AliMCEvent.h" 34 #include "TObjString.h" 35 #include "AliAODEvent.h" 36 #include "AliESDEvent.h" 37 #include "AliCentrality.h" 42 #include "AliAODMCParticle.h" 43 #include "AliAODMCHeader.h" 45 #include "AliPHOSGeoUtils.h" 46 #include "AliTrackerBase.h" 47 #include "AliVCaloCells.h" 48 #include "AliVCluster.h" 51 #include "AliTender.h" 52 #include "AliTenderSupply.h" 53 #include "AliEMCALTenderSupply.h" 55 #include "AliPHOSTenderSupply.h" 56 #include "AliPHOSTenderTask.h" 57 #include "AliOADBContainer.h" 58 #include "AliESDtrackCuts.h" 79 "DistanceToBadChannel",
96 AliAnalysisCuts(name,title),
99 fCaloTrackMatcher(NULL),
100 fCaloIsolation(NULL),
102 fEMCALRecUtils(NULL),
103 fEMCALInitialized(kFALSE),
105 fPHOSInitialized(kFALSE),
107 fEMCALBadChannelsMap(NULL),
108 fPHOSBadChannelsMap(NULL),
110 fNMaxEMCalModules(12),
112 fHistoModifyAcc(NULL),
113 fDoLightOutput(kFALSE),
115 fIsCurrentClusterAcceptedBeforeTM(kFALSE),
116 fV0ReaderName(
"V0ReaderV1"),
117 fCorrTaskSetting(
""),
118 fCaloTrackMatcherName(
"CaloTrackMatcher_1_0"),
119 fCaloIsolationName(
"PhotonIsolation"),
123 fIsolationRadius(0.4),
125 fUsePhotonIsolation(kFALSE),
133 fMinPhiCutDMC(-10000),
134 fMaxPhiCutDMC(-10000),
136 fMinDistanceToBadChannel(0),
137 fUseDistanceToBadChannel(0),
139 fMinTimeDiff(-10e10),
141 fMaxDistTrackToClusterEta(0),
142 fMinDistTrackToClusterPhi(0),
143 fMaxDistTrackToClusterPhi(0),
144 fUseDistTrackToCluster(0),
145 fUsePtDepTrackToCluster(0),
151 fUseTMMIPsubtraction(0),
152 fExtendedMatchAndQA(0),
153 fExoticEnergyFracCluster(0),
154 fExoticMinEnergyCell(1),
155 fUseExoticCluster(0),
156 fDoExoticsQA(kFALSE),
158 fDoFlatEnergySubtraction(0),
160 fLocMaxCutEDiff(0.03),
172 fMaxMGGRecConv(0.01),
174 fMaxDispersion(1000),
181 fSwitchNonLinearity(0),
182 fUseNonLinearity(kFALSE),
184 fNactiveEmcalCells(0),
185 fDoSecondaryTrackMatching(kFALSE),
186 fVectorMatchedClusterIDs(0),
190 fHistAcceptanceCuts(NULL),
191 fHistClusterIdentificationCuts(NULL),
192 fHistClusterEtavsPhiBeforeAcc(NULL),
193 fHistClusterEtavsPhiAfterAcc(NULL),
194 fHistClusterEtavsPhiAfterQA(NULL),
195 fHistClusterTimevsEBeforeQA(NULL),
196 fHistClusterTimevsEAfterQA(NULL),
197 fHistEnergyOfClusterBeforeNL(NULL),
198 fHistEnergyOfClusterAfterNL(NULL),
199 fHistEnergyOfClusterBeforeQA(NULL),
200 fHistEnergyOfClusterAfterQA(NULL),
201 fHistNCellsBeforeQA(NULL),
202 fHistNCellsAfterQA(NULL),
203 fHistM02BeforeQA(NULL),
204 fHistM02AfterQA(NULL),
205 fHistM20BeforeQA(NULL),
206 fHistM20AfterQA(NULL),
207 fHistDispersionBeforeQA(NULL),
208 fHistDispersionAfterQA(NULL),
209 fHistNLMBeforeQA(NULL),
210 fHistNLMAfterQA(NULL),
211 fHistNLMVsNCellsAfterQA(NULL),
212 fHistNLMVsEAfterQA(NULL),
214 fHistClusterEnergyvsMod(NULL),
215 fHistNCellsBigger100MeVvsMod(NULL),
216 fHistNCellsBigger1500MeVvsMod(NULL),
217 fHistEnergyOfModvsMod(NULL),
218 fHistClusterEnergyvsNCellsBeforeQA(NULL),
219 fHistClusterEnergyvsNCellsAfterQA(NULL),
220 fHistCellEnergyvsCellID(NULL),
221 fHistCellTimevsCellID(NULL),
222 fHistClusterEM02BeforeQA(NULL),
223 fHistClusterEM02AfterQA(NULL),
224 fHistClusterIncludedCellsBeforeQA(NULL),
225 fHistClusterIncludedCellsAfterQA(NULL),
226 fHistClusterEnergyFracCellsBeforeQA(NULL),
227 fHistClusterEnergyFracCellsAfterQA(NULL),
228 fHistClusterIncludedCellsTimingAfterQA(NULL),
229 fHistClusterIncludedCellsTimingEnergyAfterQA(NULL),
230 fHistClusterDistanceInTimeCut(NULL),
231 fHistClusterDistanceOutTimeCut(NULL),
232 fHistClusterDistance1DInTimeCut(NULL),
233 fHistClusterRBeforeQA(NULL),
234 fHistClusterRAfterQA(NULL),
235 fHistClusterdEtadPhiBeforeQA(NULL),
236 fHistClusterdEtadPhiAfterQA(NULL),
237 fHistDistanceTrackToClusterBeforeQA(NULL),
238 fHistDistanceTrackToClusterAfterQA(NULL),
239 fHistClusterdEtadPhiPosTracksBeforeQA(NULL),
240 fHistClusterdEtadPhiNegTracksBeforeQA(NULL),
241 fHistClusterdEtadPhiPosTracksAfterQA(NULL),
242 fHistClusterdEtadPhiNegTracksAfterQA(NULL),
243 fHistClusterdEtadPhiPosTracksP_000_075BeforeQA(NULL),
244 fHistClusterdEtadPhiPosTracksP_075_125BeforeQA(NULL),
245 fHistClusterdEtadPhiPosTracksP_125_999BeforeQA(NULL),
246 fHistClusterdEtadPhiNegTracksP_000_075BeforeQA(NULL),
247 fHistClusterdEtadPhiNegTracksP_075_125BeforeQA(NULL),
248 fHistClusterdEtadPhiNegTracksP_125_999BeforeQA(NULL),
249 fHistClusterdEtadPtBeforeQA(NULL),
250 fHistClusterdEtadPtAfterQA(NULL),
251 fHistClusterdEtadPtTrueMatched(NULL),
252 fHistClusterdPhidPtPosTracksBeforeQA(NULL),
253 fHistClusterdPhidPtNegTracksBeforeQA(NULL),
254 fHistClusterdPhidPtAfterQA(NULL),
255 fHistClusterdPhidPtPosTracksTrueMatched(NULL),
256 fHistClusterdPhidPtNegTracksTrueMatched(NULL),
257 fHistClusterM20M02BeforeQA(NULL),
258 fHistClusterM20M02AfterQA(NULL),
259 fHistClusterEtavsPhiExotics(NULL),
260 fHistClusterEM02Exotics(NULL),
261 fHistClusterEnergyvsNCellsExotics(NULL),
262 fHistClusterEEstarExotics(NULL),
263 fHistClusterTMEffiInput(NULL),
264 fHistClusterTrueElecEtaPhiBeforeTM_30_00(NULL),
265 fHistClusterTrueElecEtaPhiAfterTM_30_00(NULL),
266 fHistClusterEvsTrackECharged(NULL),
267 fHistClusterEvsTrackEChargedLead(NULL),
268 fHistClusterEvsTrackENeutral(NULL),
269 fHistClusterEvsTrackENeutralSubCharged(NULL),
270 fHistClusterEvsTrackEGamma(NULL),
271 fHistClusterEvsTrackEGammaSubCharged(NULL),
272 fHistClusterEvsTrackEConv(NULL),
273 fHistClusterENMatchesNeutral(NULL),
274 fHistClusterENMatchesCharged(NULL),
275 fHistClusterEvsTrackEPrimaryButNoElec(NULL),
276 fHistClusterEvsTrackSumEPrimaryButNoElec(NULL),
277 fHistClusETruePi0_BeforeTM(NULL),
278 fHistClusETruePi0_Matched(NULL),
279 fHistMatchedTrackPClusE(NULL),
280 fHistMatchedTrackPClusEAfterEOverPVeto(NULL),
281 fHistMatchedTrackPClusETruePi0Clus(NULL),
284 fIsAcceptedForBasic(kFALSE)
294 AliAnalysisCuts(ref),
512 TH1::AddDirectory(kFALSE);
544 Int_t nBinsClusterE = 235;
545 Int_t nBinsClusterEMod = 249;
546 Int_t nBinsClusterECell = 119;
547 Int_t nBinsClusterECellCoarse = 109;
548 Int_t nBinsClusterEOnlyHighPt = 134;
550 for(
Int_t i=0; i<nBinsClusterEMod+1;i++){
551 if (i < 1) arrClusEBinning[i] = 0.3*i;
552 else if(i<55) arrClusEBinning[i] = 0.3+0.05*(i-1);
553 else if(i<105) arrClusEBinning[i] = 3.+0.1*(i-55);
554 else if(i<140) arrClusEBinning[i] = 8.+0.2*(i-105);
555 else if(i<170) arrClusEBinning[i] = 15.+0.5*(i-140);
556 else if(i<190) arrClusEBinning[i] = 30.+1.0*(i-170);
557 else if(i<215) arrClusEBinning[i] = 50.+2.0*(i-190);
558 else if(i<235) arrClusEBinning[i] = 100.+5.0*(i-215);
559 else if(i<245) arrClusEBinning[i] = 200.+10.0*(i-235);
560 else if(i<249) arrClusEBinning[i] = 300.+25.0*(i-245);
561 else arrClusEBinning[i] = maxClusterE;
563 for(
Int_t i=0; i<nBinsClusterECell+1;i++){
564 if(i<20) arrClusEBinningCoarse[i] = 0.05*(i);
565 else if(i<50) arrClusEBinningCoarse[i] = 1.+0.1*(i-20);
566 else if(i<70) arrClusEBinningCoarse[i] = 4.+0.2*(i-50);
567 else if(i<74) arrClusEBinningCoarse[i] = 8.+0.5*(i-70);
568 else if(i<90) arrClusEBinningCoarse[i] = 10.+1.0*(i-74);
569 else if(i<97) arrClusEBinningCoarse[i] = 26.+2.0*(i-90);
570 else if(i<109) arrClusEBinningCoarse[i] = 40.+5.0*(i-97);
571 else if(i<119) arrClusEBinningCoarse[i] = 100.+10.0*(i-109);
572 else arrClusEBinningCoarse[i] = 200;
574 for(
Int_t i=0; i<nBinsClusterEOnlyHighPt+1;i++){
575 if(i<25) arrClusEBinningOnlyHighPt[i] = 10.+0.2*i;
576 else if(i<55) arrClusEBinningOnlyHighPt[i] = 15.+0.5*(i-25);
577 else if(i<75) arrClusEBinningOnlyHighPt[i] = 30.+1.0*(i-55);
578 else if(i<100) arrClusEBinningOnlyHighPt[i] = 50.+2.0*(i-75);
579 else if(i<120) arrClusEBinningOnlyHighPt[i] = 100.+5.0*(i-100);
580 else if(i<130) arrClusEBinningOnlyHighPt[i] = 200.+10.0*(i-120);
581 else if(i<134) arrClusEBinningOnlyHighPt[i] = 300.+25.0*(i-130);
582 else arrClusEBinningOnlyHighPt[i] = maxClusterE;
620 const Int_t nEmcalEtaBins = 96;
621 const Int_t nEmcalPhiBins = 124;
622 Float_t EmcalEtaBins[nEmcalEtaBins+1] = {-0.66687,-0.653,-0.63913,-0.62526,-0.61139,-0.59752,-0.58365,-0.56978,-0.55591,-0.54204,-0.52817,-0.5143,-0.50043,-0.48656,-0.47269,-0.45882,-0.44495,-0.43108,-0.41721,-0.40334,-0.38947,-0.3756,-0.36173,-0.34786,-0.33399,-0.32012,-0.30625,-0.29238,-0.27851,-0.26464,-0.25077,-0.2369,-0.22303,-0.20916,-0.19529,-0.18142,-0.16755,-0.15368,-0.13981,-0.12594,-0.11207,-0.0982,-0.08433,-0.07046,-0.05659,-0.04272,-0.02885,-0.01498,-0.00111,0.01276,0.02663,0.0405,0.05437,0.06824,0.08211,0.09598,0.10985,0.12372,0.13759,0.15146,0.16533,0.1792,0.19307,0.20694,0.22081,0.23468,0.24855,0.26242,0.27629,0.29016,0.30403,0.3179,0.33177,0.34564,0.35951,0.37338,0.38725,0.40112,0.41499,0.42886,0.44273,0.4566,0.47047,0.48434,0.49821,0.51208,0.52595,0.53982,0.55369,0.56756,0.58143,0.5953,0.60917,0.62304,0.63691,0.65078,0.66465};
623 Float_t EmcalPhiBins[nEmcalPhiBins+1] = {1.408,1.4215,1.435,1.4485,1.462,1.4755,1.489,1.5025,1.516,1.5295,1.543,1.5565,1.57,1.5835,1.597,1.6105,1.624,1.6375,1.651,1.6645,1.678,1.6915,1.705,1.7185,1.732,1.758,1.7715,1.785,1.7985,1.812,1.8255,1.839,1.8525,1.866,1.8795,1.893,1.9065,1.92,1.9335,1.947,1.9605,1.974,1.9875,2.001,2.0145,2.028,2.0415,2.055,2.0685,2.082,2.108,2.1215,2.135,2.1485,2.162,2.1755,2.189,2.2025,2.216,2.2295,2.243,2.2565,2.27,2.2835,2.297,2.3105,2.324,2.3375,2.351,2.3645,2.378,2.3915,2.405,2.4185,2.432,2.456,2.4695,2.483,2.4965,2.51,2.5235,2.537,2.5505,2.564,2.5775,2.591,2.6045,2.618,2.6315,2.645,2.6585,2.672,2.6855,2.699,2.7125,2.726,2.7395,2.753,2.7665,2.78,2.804,2.8175,2.831,2.8445,2.858,2.8715,2.885,2.8985,2.912,2.9255,2.939,2.9525,2.966,2.9795,2.993,3.0065,3.02,3.0335,3.047,3.0605,3.074,3.0875,3.101,3.1145,3.128};
640 const Int_t nPhosEtaBins = 56;
641 const Int_t nPhosPhiBins = 256;
642 const Float_t PhosEtaRange[2] = {-0.16, 0.16};
643 const Float_t PhosPhiRange[2] = {4.355, 5.6};
660 const Int_t nDcalEtaBins = 96;
661 const Int_t nDcalPhiBins = 124;
706 }
else{AliError(Form(
"Cluster Type is not EMCAL nor PHOS nor all: %i",
fClusterType));}
726 nBinsClusterE, arrClusEBinning);
732 nBinsClusterE, arrClusEBinning);
738 nBinsClusterE, arrClusEBinning);
742 nBinsClusterE, arrClusEBinning);
839 fBadChannels =
new TProfile(
"EMCal - Bad Channels",
"EMCal - Bad Channels",nMaxCellsEMCAL,-0.5,nMaxCellsEMCAL-0.5);
845 fBadChannels =
new TProfile(
"PHOS - Bad Channels",
"PHOS - Bad Channels",nMaxCellsPHOS,-0.5,nMaxCellsPHOS-0.5);
849 Int_t nStartCellDCAL = 12288;
851 fBadChannels =
new TProfile(
"DCAL - Bad Channels",
"DCAL - Bad Channels",nMaxCellsDCAL,nStartCellDCAL-0.5,nStartCellDCAL+nMaxCellsDCAL-0.5);
857 fBadChannels =
new TProfile(
"EMCAL+DCAL - Bad Channels",
"EMCAL+DCAL - Bad Channels",nMaxCellsDCAL,-0.5,nMaxCellsEMCAL+nMaxCellsDCAL-0.5);
913 nMaxCellsEMCAL, 0, nMaxCellsEMCAL);
922 nMaxCellsEMCAL,0,nMaxCellsEMCAL);
927 nMaxCellsEMCAL,0,nMaxCellsEMCAL);
932 nMaxCellsEMCAL,0,nMaxCellsEMCAL);
938 nMaxCellsEMCAL,0,nMaxCellsEMCAL);
944 nBinsClusterE, arrClusEBinning, 200, -500, 500);
949 nBinsClusterECell, arrClusEBinningCoarse, 200, -500, 500);
999 nMaxCellsPHOS,0,nMaxCellsPHOS);
1008 nMaxCellsPHOS, 0, nMaxCellsPHOS);
1013 nMaxCellsPHOS, 0, nMaxCellsPHOS);
1018 nMaxCellsPHOS,0,nMaxCellsPHOS);
1024 nMaxCellsPHOS, 0, nMaxCellsPHOS);
1030 nBinsClusterE, arrClusEBinning, 200, -500, 500);
1035 nBinsClusterECell, arrClusEBinningCoarse, 200, -500, 500);
1041 Int_t nModulesStart = 12;
1042 Int_t nCellsStart = 12288;
1090 nMaxCellsDCAL, nCellsStart, nMaxCellsDCAL+nCellsStart);
1095 nMaxCellsDCAL+nCellsStart);
1100 nMaxCellsDCAL, nCellsStart, nMaxCellsDCAL+nCellsStart);
1105 nMaxCellsDCAL, nCellsStart, nMaxCellsDCAL+nCellsStart);
1110 nMaxCellsDCAL, nCellsStart, nMaxCellsDCAL+nCellsStart);
1116 nMaxCellsDCAL, nCellsStart, nMaxCellsDCAL+nCellsStart);
1122 nBinsClusterE, arrClusEBinning, 200, -500, 500);
1127 nBinsClusterECell, arrClusEBinningCoarse, 200, -500, 500);
1181 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1186 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1191 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1196 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1201 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1207 nMaxCellsEMCAL+nMaxCellsDCAL, 0, nMaxCellsEMCAL+nMaxCellsDCAL);
1213 nBinsClusterE, arrClusEBinning, 200, -500, 500);
1218 nBinsClusterECell, arrClusEBinningCoarse, 200, -500, 500);
1228 const Int_t nEtaBins = 300;
1229 const Int_t nPhiBins = 300;
1230 const Float_t EtaRange[2] = {-0.3, 0.3};
1231 const Float_t PhiRange[2] = {-0.3, 0.3};
1259 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1264 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1269 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1274 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1279 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1284 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1289 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1294 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1299 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1304 nEtaBins, EtaRange[0], EtaRange[1], nPhiBins, PhiRange[0], PhiRange[1]);
1309 nBinsClusterEMod, arrClusEBinning);
1314 nBinsClusterEMod, arrClusEBinning);
1319 2*nPhiBins, 2*PhiRange[0], 2*PhiRange[1], nBinsClusterEMod, arrClusEBinning);
1324 2*nPhiBins, 2*PhiRange[0], 2*PhiRange[1], nBinsClusterEMod, arrClusEBinning);
1329 nBinsClusterEMod, arrClusEBinning);
1336 nBinsClusterEMod, arrClusEBinning);
1341 2*nPhiBins,2*PhiRange[0],2*PhiRange[1], nBinsClusterEMod, arrClusEBinning);
1346 2*nPhiBins,2*PhiRange[0],2*PhiRange[1], nBinsClusterEMod, arrClusEBinning);
1365 nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt, nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt);
1372 nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt, nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt);
1415 const Int_t nEmcalEtaBins = 96;
1416 const Int_t nEmcalPhiBins = 124;
1417 Float_t EmcalEtaBins[nEmcalEtaBins+1] = {-0.66687,-0.653,-0.63913,-0.62526,-0.61139,-0.59752,-0.58365,-0.56978,-0.55591,-0.54204,-0.52817,-0.5143,-0.50043,-0.48656,-0.47269,-0.45882,-0.44495,-0.43108,-0.41721,-0.40334,-0.38947,-0.3756,-0.36173,-0.34786,-0.33399,-0.32012,-0.30625,-0.29238,-0.27851,-0.26464,-0.25077,-0.2369,-0.22303,-0.20916,-0.19529,-0.18142,-0.16755,-0.15368,-0.13981,-0.12594,-0.11207,-0.0982,-0.08433,-0.07046,-0.05659,-0.04272,-0.02885,-0.01498,-0.00111,0.01276,0.02663,0.0405,0.05437,0.06824,0.08211,0.09598,0.10985,0.12372,0.13759,0.15146,0.16533,0.1792,0.19307,0.20694,0.22081,0.23468,0.24855,0.26242,0.27629,0.29016,0.30403,0.3179,0.33177,0.34564,0.35951,0.37338,0.38725,0.40112,0.41499,0.42886,0.44273,0.4566,0.47047,0.48434,0.49821,0.51208,0.52595,0.53982,0.55369,0.56756,0.58143,0.5953,0.60917,0.62304,0.63691,0.65078,0.66465};
1418 Float_t EmcalPhiBins[nEmcalPhiBins+1] = {1.408,1.4215,1.435,1.4485,1.462,1.4755,1.489,1.5025,1.516,1.5295,1.543,1.5565,1.57,1.5835,1.597,1.6105,1.624,1.6375,1.651,1.6645,1.678,1.6915,1.705,1.7185,1.732,1.758,1.7715,1.785,1.7985,1.812,1.8255,1.839,1.8525,1.866,1.8795,1.893,1.9065,1.92,1.9335,1.947,1.9605,1.974,1.9875,2.001,2.0145,2.028,2.0415,2.055,2.0685,2.082,2.108,2.1215,2.135,2.1485,2.162,2.1755,2.189,2.2025,2.216,2.2295,2.243,2.2565,2.27,2.2835,2.297,2.3105,2.324,2.3375,2.351,2.3645,2.378,2.3915,2.405,2.4185,2.432,2.456,2.4695,2.483,2.4965,2.51,2.5235,2.537,2.5505,2.564,2.5775,2.591,2.6045,2.618,2.6315,2.645,2.6585,2.672,2.6855,2.699,2.7125,2.726,2.7395,2.753,2.7665,2.78,2.804,2.8175,2.831,2.8445,2.858,2.8715,2.885,2.8985,2.912,2.9255,2.939,2.9525,2.966,2.9795,2.993,3.0065,3.02,3.0335,3.047,3.0605,3.074,3.0875,3.101,3.1145,3.128};
1458 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1463 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1468 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1473 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1478 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1483 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1488 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1494 nBinsClusterE, arrClusEBinning, 20, -0.5, 19.5);
1499 nBinsClusterE, arrClusEBinning, 20, -0.5, 19.5);
1505 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1510 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1517 nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt);
1523 nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt);
1530 nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt, nBinsClusterEOnlyHighPt, arrClusEBinningOnlyHighPt);
1562 const Int_t nEmcalEtaBins = 96;
1563 const Int_t nEmcalPhiBins = 124;
1564 Float_t EmcalEtaBins[nEmcalEtaBins+1] = {-0.66687,-0.653,-0.63913,-0.62526,-0.61139,-0.59752,-0.58365,-0.56978,-0.55591,-0.54204,-0.52817,-0.5143,-0.50043,-0.48656,-0.47269,-0.45882,-0.44495,-0.43108,-0.41721,-0.40334,-0.38947,-0.3756,-0.36173,-0.34786,-0.33399,-0.32012,-0.30625,-0.29238,-0.27851,-0.26464,-0.25077,-0.2369,-0.22303,-0.20916,-0.19529,-0.18142,-0.16755,-0.15368,-0.13981,-0.12594,-0.11207,-0.0982,-0.08433,-0.07046,-0.05659,-0.04272,-0.02885,-0.01498,-0.00111,0.01276,0.02663,0.0405,0.05437,0.06824,0.08211,0.09598,0.10985,0.12372,0.13759,0.15146,0.16533,0.1792,0.19307,0.20694,0.22081,0.23468,0.24855,0.26242,0.27629,0.29016,0.30403,0.3179,0.33177,0.34564,0.35951,0.37338,0.38725,0.40112,0.41499,0.42886,0.44273,0.4566,0.47047,0.48434,0.49821,0.51208,0.52595,0.53982,0.55369,0.56756,0.58143,0.5953,0.60917,0.62304,0.63691,0.65078,0.66465};
1565 Float_t EmcalPhiBins[nEmcalPhiBins+1] = {1.408,1.4215,1.435,1.4485,1.462,1.4755,1.489,1.5025,1.516,1.5295,1.543,1.5565,1.57,1.5835,1.597,1.6105,1.624,1.6375,1.651,1.6645,1.678,1.6915,1.705,1.7185,1.732,1.758,1.7715,1.785,1.7985,1.812,1.8255,1.839,1.8525,1.866,1.8795,1.893,1.9065,1.92,1.9335,1.947,1.9605,1.974,1.9875,2.001,2.0145,2.028,2.0415,2.055,2.0685,2.082,2.108,2.1215,2.135,2.1485,2.162,2.1755,2.189,2.2025,2.216,2.2295,2.243,2.2565,2.27,2.2835,2.297,2.3105,2.324,2.3375,2.351,2.3645,2.378,2.3915,2.405,2.4185,2.432,2.456,2.4695,2.483,2.4965,2.51,2.5235,2.537,2.5505,2.564,2.5775,2.591,2.6045,2.618,2.6315,2.645,2.6585,2.672,2.6855,2.699,2.7125,2.726,2.7395,2.753,2.7665,2.78,2.804,2.8175,2.831,2.8445,2.858,2.8715,2.885,2.8985,2.912,2.9255,2.939,2.9525,2.966,2.9795,2.993,3.0065,3.02,3.0335,3.047,3.0605,3.074,3.0875,3.101,3.1145,3.128};
1572 const Int_t nPhosEtaBins = 56;
1573 const Int_t nPhosPhiBins = 192;
1574 const Float_t PhosEtaRange[2] = {-0.16, 0.16};
1575 const Float_t PhosPhiRange[2] = {4.5, 5.6};
1578 nPhosEtaBins, PhosEtaRange[0], PhosEtaRange[1]);
1583 const Int_t nDcalEtaBins = 96;
1584 const Int_t nDcalPhiBins = 124;
1601 nBinsClusterE, arrClusEBinning, 50, 0, 50);
1606 nBinsClusterE, arrClusEBinning, nBinsClusterE, arrClusEBinning);
1621 TH1::AddDirectory(kTRUE);
1629 AliTender* alitender=0x0;
1632 if(event->IsA()==AliESDEvent::Class()){
1633 alitender = (AliTender*) AliAnalysisManager::GetAnalysisManager()->GetTopTasks()->FindObject(
"AliTender");
1635 emcalCorrTask = (
AliEmcalCorrectionTask*) AliAnalysisManager::GetAnalysisManager()->GetTopTasks()->FindObject(
"AliEmcalCorrectionTask_defaultSetting");
1637 }
else if( event->IsA()==AliAODEvent::Class()){
1638 emcaltender = (
AliEmcalTenderTask*) AliAnalysisManager::GetAnalysisManager()->GetTopTasks()->FindObject(
"AliEmcalTenderTask");
1640 emcalCorrTask = (
AliEmcalCorrectionTask*) AliAnalysisManager::GetAnalysisManager()->GetTopTasks()->FindObject(
"AliEmcalCorrectionTask_defaultSetting");
1643 TIter next(alitender->GetSupplies());
1644 AliTenderSupply *supply;
1645 while ((supply=(AliTenderSupply*)next()))
if(supply->IsA()==AliEMCALTenderSupply::Class())
break;
1646 fEMCALRecUtils = ((AliEMCALTenderSupply*)supply)->GetRecoUtils();
1648 }
else if(emcaltender){
1651 }
else if(emcalCorrTask){
1653 if(emcalCorrComponent){
1660 fGeomEMCAL = AliEMCALGeometry::GetInstance();
1661 if(!
fGeomEMCAL){ AliFatal(
"EMCal geometry not initialized!");}
1674 Int_t nMinCellsDCAL = 12288;
1676 Int_t nMaxCells = 0;
1677 Int_t nMinCells = 0;
1679 nMaxCells = nMaxCellsEMCAL;
1682 nMaxCells = nMaxCellsDCAL;
1683 nMinCells = nMinCellsDCAL;
1685 nMaxCells = nMaxCellsEMCAL+nMaxCellsDCAL;
1690 Int_t imod = -1;
Int_t iTower = -1, iIphi = -1, iIeta = -1;
1694 for(
Int_t iCell=nMinCells;iCell<nMaxCells;iCell++){
1695 fGeomEMCAL->GetCellIndex(iCell,imod,iTower,iIphi,iIeta);
1697 fGeomEMCAL->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,irow,icol);
1712 fGeomPHOS = AliPHOSGeometry::GetInstance();
1713 if(!
fGeomPHOS) AliFatal(
"PHOS geometry not initialized!");
1718 AliPHOSTenderTask* aliphostender = (AliPHOSTenderTask*) AliAnalysisManager::GetAnalysisManager()->GetTopTasks()->FindObject(
"PHOSTenderTask");
1719 AliPHOSTenderSupply *PHOSSupply =((AliPHOSTenderSupply*) aliphostender->GetPHOSTenderSupply()) ;
1722 AliError(Form(
"Can not find PHOSTenderSupply in run %d. No bad channel map could be found for QA!\n",event->GetRunNumber())) ;
1725 AliInfo(
"Setting PHOS bad map from PHOSSupply \n") ;
1726 for(
Int_t mod=0;mod<nModules;mod++){
1727 TH2I * h = (TH2I*)PHOSSupply->GetPHOSBadChannelStatusMap(mod);
1730 AliInfo(Form(
"using bad map for module %d with nch=%f\n",mod,h->Integral()));
1738 for(
Int_t iCell=0;iCell<nMaxCellsPHOS;iCell++){
1739 fGeomPHOS->AbsToRelNumbering(iCell,relid);
1741 if(relid[1]!=0) AliFatal(
"PHOS CPV in PHOS cell array?");
1764 if(!mcEvent)
return kFALSE;
1765 if(!particle)
return kFALSE;
1767 if (particle->GetPdgCode() == 22){
1780 if(particle->GetMother(0) >-1 && mcEvent->Particle(particle->GetMother(0))->GetPdgCode() == 22){
1792 if(!mcEvent)
return kFALSE;
1793 if(!particle)
return kFALSE;
1795 if (TMath::Abs(particle->GetPdgCode()) == 11){
1809 if(particle->GetMother(0) >-1 && mcEvent->Particle(particle->GetMother(0))->GetPdgCode() == 11){
1821 if(!aodmcArray)
return kFALSE;
1822 if(!particle)
return kFALSE;
1824 if (TMath::Abs(particle->GetPdgCode()) == 11){
1838 if(particle->GetMother() >-1 && (
static_cast<AliAODMCParticle*
>(aodmcArray->At(particle->GetMother())))->GetPdgCode() == 11){
1850 if(!aodmcArray)
return kFALSE;
1851 if(!particle)
return kFALSE;
1853 if (particle->GetPdgCode() == 22){
1866 if(particle->GetMother() > -1 && (
static_cast<AliAODMCParticle*
>(aodmcArray->At(particle->GetMother())))->GetPdgCode() == 22){
1891 cluster->GetPosition(clusPos);
1892 TVector3 clusterVector(clusPos[0],clusPos[1],clusPos[2]);
1893 Double_t etaCluster = clusterVector.Eta();
1894 Double_t phiCluster = clusterVector.Phi();
1895 if (phiCluster < 0) phiCluster += 2*TMath::Pi();
1913 AliVCaloCells* cells = NULL;
1917 if(cluster->IsEMCAL()){
1918 cells =
event->GetEMCALCells();
1919 }
else if(cluster->IsPHOS()){
1920 cells =
event->GetPHOSCells();
1923 Int_t nCellCluster = cluster->GetNCells();
1924 for(
Int_t iCell=0;iCell<nCellCluster;iCell++){
1947 Bool_t failedM02 = kFALSE;
1955 if( nLM < fMinNLM || nLM >
fMaxNLM )
1978 if ( !( failed || failedM02 ) ){
2002 if( nLM < fMinNLM || nLM >
fMaxNLM ) {
2011 if( cluster->GetM02()<
fMinM02 || cluster->GetM02() >
fMaxM02 ) {
2026 if( cluster->GetM20()<
fMinM20 || cluster->GetM20() >
fMaxM20 ) {
2051 AliError(
"Task needs AOD or ESD event, returning");
2066 Int_t classification = -1;
2067 Long_t leadMCLabel = -1;
2069 leadMCLabel = ((AliESDCaloCluster*)cluster)->GetLabel();
2071 leadMCLabel = ((AliAODCaloCluster*)cluster)->GetLabel();
2080 if (classification == 5 )
2082 if (classification == 7 )
2084 if (classification == 4)
2086 if (classification == 6){
2088 if (cluster->E() > 30.)
2092 if (classification == 0 || classification == 1)
2094 if (classification == 1)
2096 if (classification == 2 || classification == 3)
2098 if ( classification == 3)
2101 Int_t nlabelsMatchedTracks = 0;
2108 if (classification < 4 && classification > -1)
2115 if (cluster->E() > 30.)
2128 if (classification == 5 )
2130 if (classification == 4)
2132 if (classification == 0 || classification == 1)
2134 if ( classification == 1)
2136 if (classification == 2 || classification == 3)
2138 if ( classification == 3)
2140 if ( classification == 7)
2142 if ( classification == 6)
2145 vector<Int_t> labelsMatchedTracks;
2156 Bool_t foundLead = kFALSE;
2159 for (
Int_t i = 0; i < (
Int_t)labelsMatchedTracks.size(); i++){
2160 AliVTrack* currTrack =
dynamic_cast<AliVTrack*
>(
event->GetTrack(labelsMatchedTracks.at(i)));
2161 eSum += currTrack->E();
2162 if (ptMax < currTrack->Pt()){
2163 ptMax = currTrack->Pt();
2164 eMax = currTrack->E();
2167 if (classification == 4 || classification == 5 || classification == 6 || classification == 7){
2168 Long_t mcLabelTrack = -1;
2170 mcLabelTrack = TMath::Abs(((AliESDtrack*)currTrack)->GetLabel());
2172 mcLabelTrack = TMath::Abs(((AliAODTrack*)currTrack)->GetLabel());
2173 if (mcLabelTrack!= -1 && mcLabelTrack == leadMCLabel){
2175 eLead = currTrack->E();
2180 if (classification == 5 || classification == 7 || classification == 6){
2182 if (classification == 5 || classification == 7){
2188 if (classification == 5)
2190 if (classification == 7)
2192 if (classification == 6)
2197 if (classification == 4){
2202 if (classification == 0 )
2204 if (classification == 1)
2206 if (classification == 2)
2208 if (classification == 3)
2211 labelsMatchedTracks.clear();
2262 Int_t nCellCluster = cluster->GetNCells();
2263 for(
Int_t iCell=0;iCell<nCellCluster;iCell++){
2264 Int_t cellID = cluster->GetCellAbsId(iCell);
2265 Double_t cellAmp = cells->GetCellAmplitude(cellID);
2266 Double_t cellTime = cells->GetCellTime(cellID);
2280 if(cluster->IsEMCAL()){
2281 Int_t iSuperModule = -1;
2282 fGeomEMCAL = AliEMCALGeometry::GetInstance();
2283 if(!
fGeomEMCAL){ AliFatal(
"EMCal geometry not initialized!");}
2287 }
else if(cluster->IsPHOS()){
2288 Int_t relId[4] = {0,0,0,0};
2289 fGeomPHOS = AliPHOSGeometry::GetInstance();
2290 if(!
fGeomPHOS){ AliFatal(
"PHOS geometry not initialized!");}
2307 AliVCaloCells* cells = 0x0;
2313 Int_t nModulesStart = 0;
2315 cells =
event->GetEMCALCells();
2316 fGeomEMCAL = AliEMCALGeometry::GetInstance();
2317 if(!
fGeomEMCAL) AliFatal(
"EMCal geometry not initialized!");
2319 nModules =
fGeomEMCAL->GetNumberOfSuperModules();
2320 if(
fClusterType == 3) {nModules = 8; nModulesStart = 12;}
2323 cells =
event->GetPHOSCells();
2324 fGeomPHOS = AliPHOSGeometry::GetInstance();
2325 if(!
fGeomPHOS) AliFatal(
"PHOS geometry not initialized!");
2328 AliError(Form(
"fExtendedMatchAndQA(%i):FillHistogramsExtendedMatchAndQA() not (yet) defined for cluster type (%i)",
fExtendedMatchAndQA,
fClusterType));
2331 std::vector<Int_t> nCellsBigger100MeV(nModules);
2332 std::vector<Int_t> nCellsBigger1500MeV(nModules);
2333 std::vector<Double_t> EnergyOfMod(nModules);
2335 for(
Int_t iModule=0;iModule<nModules;iModule++){nCellsBigger100MeV[iModule]=0;nCellsBigger1500MeV[iModule]=0;EnergyOfMod[iModule]=0;}
2338 for(
Int_t iCell=0;iCell<cells->GetNumberOfCells();iCell++){
2343 Int_t cellMCLabel=0;
2346 cells->GetCell(iCell,cellNumber,cellAmplitude,cellTime,cellMCLabel,cellEFrac);
2347 if(
fClusterType == 3 && cellNumber < 12288){
continue;}
2349 Int_t imod = -1;
Int_t iTower = -1, iIphi = -1, iIeta = -1;
2353 Bool_t doBadCell = kTRUE;
2355 nMod =
fGeomEMCAL->GetSuperModuleNumber(cellNumber);
2356 fGeomEMCAL->GetCellIndex(cellNumber,imod,iTower,iIphi,iIeta);
2358 fGeomEMCAL->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,irow,icol);
2360 fGeomPHOS->AbsToRelNumbering(cellNumber,relid);
2361 if(relid[1]!=0) AliFatal(
"PHOS CPV in PHOS cell array?");
2373 if(iBadCell > 0)
continue;
2375 if(cellAmplitude > 0.1) nCellsBigger100MeV[nMod-nModulesStart]++;
2376 if(cellAmplitude > 1.5) nCellsBigger1500MeV[nMod-nModulesStart]++;
2377 if(cellAmplitude > 0.05) EnergyOfMod[nMod-nModulesStart]+=cellAmplitude;
2388 for(
Int_t iModule=0;iModule<nModules;iModule++){
2396 TClonesArray * arrClustersExtQA = NULL;
2398 nclus =
event->GetNumberOfCaloClusters();
2400 arrClustersExtQA =
dynamic_cast<TClonesArray*
>(
event->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
2401 if(!arrClustersExtQA)
2402 AliFatal(Form(
"%sClustersBranch was not found in AliCaloPhotonCuts::FillHistogramsExtendedQA! Check the correction framework settings!",
fCorrTaskSetting.Data()));
2403 nclus = arrClustersExtQA->GetEntries();
2405 std::unique_ptr<AliVCluster> cluster, clusterMatched;
2406 for(
Int_t iClus=0; iClus<nclus ; iClus++){
2407 if(event->IsA()==AliESDEvent::Class()){
2408 if(arrClustersExtQA)
2409 cluster = std::unique_ptr<AliVCluster>(
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersExtQA->At(iClus)));
2411 cluster = std::unique_ptr<AliVCluster>(
new AliESDCaloCluster(*(AliESDCaloCluster*)event->GetCaloCluster(iClus)));
2412 }
else if(event->IsA()==AliAODEvent::Class()){
2413 if(arrClustersExtQA)
2414 cluster = std::unique_ptr<AliVCluster>(
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersExtQA->At(iClus)));
2416 cluster = std::unique_ptr<AliVCluster>(
new AliAODCaloCluster(*(AliAODCaloCluster*)event->GetCaloCluster(iClus)));
2420 if(
fClusterType == 2 && cluster->GetType() !=AliVCluster::kPHOSNeutral){
continue;}
2423 cluster->GetPosition(clusPos);
2424 TVector3 clusterVector(clusPos[0],clusPos[1],clusPos[2]);
2425 Double_t etaCluster = clusterVector.Eta();
2426 Double_t phiCluster = clusterVector.Phi();
2427 if (phiCluster < 0) phiCluster += 2*TMath::Pi();
2451 Int_t largestCellicol = -1, largestCellirow = -1;
2453 if(largestCellID==-1) AliFatal(
"FillHistogramsExtendedQA: FindLargestCellInCluster found cluster with NCells<1?");
2455 if(largestCelliMod < 0) AliFatal(
"FillHistogramsExtendedQA: GetModuleNumberAndCellPosition found SM with ID<0?");
2457 for(
Int_t iClus2=iClus+1; iClus2<nclus; iClus2++){
2458 if(event->IsA()==AliESDEvent::Class()){
2459 if(arrClustersExtQA)
2460 clusterMatched = std::unique_ptr<AliVCluster>(
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersExtQA->At(iClus2)));
2462 clusterMatched = std::unique_ptr<AliVCluster>(
new AliESDCaloCluster(*(AliESDCaloCluster*)event->GetCaloCluster(iClus2)));
2463 }
else if(event->IsA()==AliAODEvent::Class()){
2464 if(arrClustersExtQA)
2465 clusterMatched = std::unique_ptr<AliVCluster>(
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersExtQA->At(iClus2)));
2467 clusterMatched = std::unique_ptr<AliVCluster>(
new AliAODCaloCluster(*(AliAODCaloCluster*)event->GetCaloCluster(iClus2)));
2471 if(
fClusterType == 2 && clusterMatched->GetType() !=AliVCluster::kPHOSNeutral){
continue;}
2474 clusterMatched->GetPosition(clusPos2);
2475 TVector3 clusterMatchedVector(clusPos2[0],clusPos2[1],clusPos2[2]);
2476 Double_t etaclusterMatched = clusterMatchedVector.Eta();
2477 Double_t phiclusterMatched = clusterMatchedVector.Phi();
2478 if (phiclusterMatched < 0) phiclusterMatched += 2*TMath::Pi();
2482 if (
fUseEtaCut && (etaclusterMatched < fMinEtaCut || etaclusterMatched > fMaxEtaCut)){
continue;}
2483 if (
fUseEtaCut &&
fClusterType == 3 && etaclusterMatched < fMaxEtaInnerEdge && etaclusterMatched > fMinEtaInnerEdge ) {
continue;}
2485 if (
fUsePhiCut && (phiclusterMatched < fMinPhiCut || phiclusterMatched >
fMaxPhiCut) && (phiclusterMatched < fMinPhiCutDMC || phiclusterMatched >
fMaxPhiCutDMC)){
continue;}
2487 if (
fUsePhiCut && (phiclusterMatched < fMinPhiCut || phiclusterMatched >
fMaxPhiCut)){
continue;}
2494 if (
fUseNLM && (nLMMatched < fMinNLM || nLMMatched > fMaxNLM)){
continue;}
2495 if (
fUseM02 == 1 && (clusterMatched->GetM02() <
fMinM02 || clusterMatched->GetM02() >
fMaxM02)){
continue;}
2497 if (
fUseM20 && (clusterMatched->GetM20() <
fMinM20 || clusterMatched->GetM20() >
fMaxM20)){
continue;}
2502 Int_t matched_largestCellicol = -1, matched_largestCellirow = -1;
2504 if(matched_largestCellID==-1) AliFatal(
"FillHistogramsExtendedQA: FindLargestCellInCluster found cluster with NCells<1?");
2506 if(matched_largestCelliMod < 0) AliFatal(
"FillHistogramsExtendedQA: GetModuleNumberAndCellPosition found SM with ID<0?");
2512 Int_t rowdiff = -100;
2513 Int_t coldiff = -100;
2514 Bool_t calculatedDiff = kFALSE;
2516 Int_t ClusID = largestCelliMod/2;
2517 Int_t matchClusID = matched_largestCelliMod/2;
2519 if( matched_largestCelliMod == largestCelliMod){
2520 rowdiff = largestCellirow - matched_largestCellirow;
2521 coldiff = largestCellicol - matched_largestCellicol;
2522 calculatedDiff = kTRUE;
2523 }
else if( TMath::Abs(matched_largestCelliMod - largestCelliMod) == 1 && (ClusID == matchClusID) ){
2524 if(matched_largestCelliMod%2){
2525 matched_largestCelliMod -= 1;
2526 matched_largestCellicol += AliEMCALGeoParams::fgkEMCALCols;
2528 matched_largestCelliMod += 1;
2529 matched_largestCellicol -= AliEMCALGeoParams::fgkEMCALCols;
2532 if( matched_largestCelliMod == largestCelliMod ){
2533 rowdiff = largestCellirow - matched_largestCellirow;
2534 coldiff = largestCellicol - matched_largestCellicol;
2535 calculatedDiff = kTRUE;
2542 if( calculatedDiff ){
2543 Float_t dist1D = TMath::Sqrt(TMath::Power(etaCluster-etaclusterMatched,2)+TMath::Power(phiCluster-phiclusterMatched,2));
2563 AliVCaloCells* cells = 0x0;
2571 cells =
event->GetEMCALCells();
2572 fGeomEMCAL = AliEMCALGeometry::GetInstance();
2573 if(!
fGeomEMCAL) AliFatal(
"EMCal geometry not initialized!");
2575 nModules =
fGeomEMCAL->GetNumberOfSuperModules();
2577 cells =
event->GetPHOSCells();
2578 fGeomPHOS = AliPHOSGeometry::GetInstance();
2579 if(!
fGeomPHOS) AliFatal(
"PHOS geometry not initialized!");
2582 AliError(Form(
"GetTotalEnergyDeposit not (yet) defined for cluster type (%i)",
fClusterType));
2585 for(
Int_t iCell=0;iCell<cells->GetNumberOfCells();iCell++){
2590 Int_t cellMCLabel=0;
2593 cells->GetCell(iCell,cellNumber,cellAmplitude,cellTime,cellMCLabel,cellEFrac);
2594 if(
fClusterType == 3 && cellNumber < 12288){
continue;}
2596 Int_t imod = -1;
Int_t iTower = -1, iIphi = -1, iIeta = -1;
2600 Bool_t doBadCell = kTRUE;
2602 nMod =
fGeomEMCAL->GetSuperModuleNumber(cellNumber);
2603 fGeomEMCAL->GetCellIndex(cellNumber,imod,iTower,iIphi,iIeta);
2605 fGeomEMCAL->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,irow,icol);
2607 fGeomPHOS->AbsToRelNumbering(cellNumber,relid);
2608 if(relid[1]!=0) AliFatal(
"PHOS CPV in PHOS cell array?");
2620 if(iBadCell > 0)
continue;
2621 totalCellAmplitude += cellAmplitude;
2624 return totalCellAmplitude;
2633 const Int_t nc = cluster->GetNCells();
2635 Int_t absCellIdList[nc];
2646 const Int_t nCells = cluster->GetNCells();
2647 AliVCaloCells* cells = NULL;
2650 cells =
event->GetEMCALCells();
2652 cells =
event->GetPHOSCells();
2658 Int_t iCellMax = -1;
2660 if (nCells < 2)
return idMax;
2661 for (
Int_t iCell = 1;iCell < nCells;iCell++){
2662 if (cells->GetCellAmplitude(cluster->GetCellsAbsId()[iCell])> eMax){
2663 eMax = cells->GetCellAmplitude(cluster->GetCellsAbsId()[iCell]);
2664 idMax = cluster->GetCellsAbsId()[iCell];
2670 for (
Int_t iCell = 1;iCell < nCells;iCell++){
2671 if (iCell == iCellMax)
continue;
2672 if (cells->GetCellAmplitude(cluster->GetCellsAbsId()[iCell])> eMax){
2673 eMax = cells->GetCellAmplitude(cluster->GetCellsAbsId()[iCell]);
2674 idMax2 = cluster->GetCellsAbsId()[iCell];
2684 const Int_t nCells = cluster->GetNCells();
2685 AliVCaloCells* cells = NULL;
2688 cells =
event->GetEMCALCells();
2690 cells =
event->GetPHOSCells();
2696 if (nCells < 1)
return idMax;
2697 for (
Int_t iCell = 0;iCell < nCells;iCell++){
2698 Int_t cellAbsID = cluster->GetCellsAbsId()[iCell];
2699 if (cells->GetCellAmplitude(cellAbsID)> eMax){
2700 eMax = cells->GetCellAmplitude(cellAbsID);
2715 Int_t absCellId1 = -1;
2716 Int_t absCellId2 = -1;
2717 const Int_t nCells = cluster->GetNCells();
2718 AliVCaloCells* cells = NULL;
2721 cells =
event->GetEMCALCells();
2723 cells =
event->GetPHOSCells();
2729 for (
Int_t iCell = 0;iCell < nCells;iCell++){
2730 absCellIdList[iCell] = cluster->GetCellsAbsId()[iCell];
2734 if (cells->GetCellAmplitude(absCellIdList[iCell])> eMax){
2735 eMax = cells->GetCellAmplitude(absCellIdList[iCell]);
2736 idMax = absCellIdList[iCell];
2741 for (
Int_t iCell = 0;iCell < nCells;iCell++){
2743 if (absCellIdList[iCell] >= 0){
2745 absCellId1 = cluster->GetCellsAbsId()[iCell];
2746 Float_t en1 = cells->GetCellAmplitude(absCellId1);
2749 for (
Int_t iCellN = 0;iCellN < nCells;iCellN++){
2751 if (absCellIdList[iCell] == -1)
continue;
2753 absCellId2 = cluster->GetCellsAbsId()[iCellN];
2756 if (absCellId2 == -1)
continue;
2757 if (absCellId1 == absCellId2)
continue;
2760 Float_t en2 = cells->GetCellAmplitude(absCellId2);
2768 absCellIdList[iCellN] = -1;
2770 absCellIdList[iCell] = -1;
2772 absCellIdList[iCell] = -1;
2774 absCellIdList[iCellN] = -1;
2782 Int_t nMaximaNew = 0;
2783 for (
Int_t iCell = 0;iCell < nCells;iCell++){
2785 if (absCellIdList[iCell] > -1){
2786 Float_t en = cells->GetCellAmplitude(absCellIdList[iCell]);
2789 absCellIdList[nMaximaNew] = absCellIdList[iCell];
2790 maxEList[nMaximaNew] = en;
2797 if (nMaximaNew == 0){
2800 absCellIdList[0] = idMax;
2811 Bool_t areNeighbours = kFALSE ;
2813 Int_t irow1 = -1, icol1 = -1;
2814 Int_t irow2 = -1, icol2 = -1;
2816 Int_t rowdiff = 0, coldiff = 0;
2822 if (nSupMod1== -1 || nSupMod2 == -1)
return areNeighbours;
2827 if(nSupMod1%2) icol1+=AliEMCALGeoParams::fgkEMCALCols;
2828 else icol2+=AliEMCALGeoParams::fgkEMCALCols;
2831 rowdiff = TMath::Abs( irow1 - irow2 ) ;
2832 coldiff = TMath::Abs( icol1 - icol2 ) ;
2835 if ((coldiff + rowdiff == 1 ))
2836 areNeighbours = kTRUE ;
2838 return areNeighbours;
2848 fGeomEMCAL = AliEMCALGeometry::GetInstance();
2849 if(!
fGeomEMCAL) AliFatal(
"EMCal geometry not initialized!");
2851 fGeomPHOS = AliPHOSGeometry::GetInstance();
2852 if(!
fGeomPHOS) AliFatal(
"PHOS geometry not initialized!");
2855 Int_t imod = -1;
Int_t iTower = -1, iIphi = -1, iIeta = -1;
2857 fGeomEMCAL->GetCellIndex(absCellId,imod,iTower,iIphi,iIeta);
2858 fGeomEMCAL->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,irow,icol);
2861 fGeomPHOS->AbsToRelNumbering(absCellId,relId);
2875 AliVCluster* cluster,
2878 AliAODCaloCluster* cluster1,
2879 AliAODCaloCluster* cluster2){
2881 const Int_t ncells = cluster->GetNCells();
2882 Int_t absCellIdList[ncells];
2884 AliVCaloCells* cells = NULL;
2886 cells =
event->GetEMCALCells();
2888 cells =
event->GetPHOSCells();
2894 for(
Int_t iCell = 0;iCell < ncells;iCell++ ) {
2895 absCellIdList[iCell] = cluster->GetCellsAbsId()[iCell];
2896 Float_t ec = cells->GetCellAmplitude(absCellIdList[iCell]);
2907 absCellIdList1[0] = absCellId1 ;
2908 fracList1 [0] = 1. ;
2910 Float_t ecell1 = cells->GetCellAmplitude(absCellId1);
2914 absCellIdList2[0] = absCellId2 ;
2915 fracList2 [0] = 1. ;
2917 Float_t ecell2 = cells->GetCellAmplitude(absCellId2);
2922 Float_t eRemain = (eCluster-ecell1-ecell2)/2;
2923 Float_t shareFraction1 = (ecell1+eRemain)/eCluster;
2924 Float_t shareFraction2 = (ecell2+eRemain)/eCluster;
2928 for(
Int_t iCell = 0;iCell < ncells;iCell++){
2930 Int_t absId = absCellIdList[iCell];
2931 if ( absId==absCellId1 || absId==absCellId2 || absId < 0 )
continue;
2933 Float_t ecell = cells->GetCellAmplitude(absId);
2935 absCellIdList1[ncells1] = absId;
2937 fracList1[ncells1] = shareFraction1;
2938 e1 += ecell*shareFraction1;
2940 fracList1[ncells1] = 1.;
2947 absCellIdList2[ncells2]= absId;
2950 fracList2[ncells2] = shareFraction2;
2951 e2 += ecell*shareFraction2;
2953 fracList2[ncells2] = 1.;
2964 cluster1->SetNCells(ncells1);
2965 cluster2->SetNCells(ncells2);
2967 cluster1->SetCellsAbsId(absCellIdList1);
2968 cluster2->SetCellsAbsId(absCellIdList2);
2970 cluster1->SetCellsAmplitudeFraction(fracList1);
2971 cluster2->SetCellsAmplitudeFraction(fracList2);
2998 if(largestCellID==-1) AliFatal(
"CheckDistanceToBadChannel: FindLargestCellInCluster found cluster with NCells<1?");
3000 Int_t largestCellicol = -1, largestCellirow = -1;
3001 Int_t rowdiff = 0, coldiff = 0;
3004 if(largestCelliMod < 0) AliFatal(
"CheckDistanceToBadChannel: GetModuleNumberAndCellPosition found SM with ID<0?");
3006 Int_t nMinRows = 0, nMaxRows = 0;
3007 Int_t nMinCols = 0, nMaxCols = 0;
3009 Bool_t checkNextSM = kFALSE;
3015 cluster->GetPosition(clusPos);
3016 TVector3 clusterVector(clusPos[0],clusPos[1],clusPos[2]);
3017 Double_t phiCluster = clusterVector.Phi();
3018 if (phiCluster < 0) phiCluster += 2*TMath::Pi();
3026 nMinRows = largestCellirow - distanceForLoop;
3027 nMaxRows = largestCellirow + distanceForLoop;
3028 if(nMinRows < 0) nMinRows = 0;
3029 if(nMaxRows > AliEMCALGeoParams::fgkEMCALRows) nMaxRows = AliEMCALGeoParams::fgkEMCALRows;
3031 nMinCols = largestCellicol - distanceForLoop;
3032 nMaxCols = largestCellicol + distanceForLoop;
3034 if(largestCelliMod%2){
3037 checkNextSM = kTRUE;
3039 if(nMaxCols > AliEMCALGeoParams::fgkEMCALCols) nMaxCols = AliEMCALGeoParams::fgkEMCALCols;
3041 if(nMinCols < 0) nMinCols = 0;
3042 if(nMaxCols > AliEMCALGeoParams::fgkEMCALCols){
3043 nMaxCols = AliEMCALGeoParams::fgkEMCALCols;
3044 checkNextSM = kTRUE;
3048 nMinRows = largestCellirow - distanceForLoop;
3049 nMaxRows = largestCellirow + distanceForLoop;
3050 if(nMinRows < 0) nMinRows = 0;
3051 if(nMaxRows > AliEMCALGeoParams::fgkEMCALCols) nMaxRows = AliEMCALGeoParams::fgkEMCALCols;
3053 nMinCols = largestCellicol - distanceForLoop;
3054 nMaxCols = largestCellicol + distanceForLoop;
3055 if(nMinCols < 0) nMinCols = 0;
3068 for (
Int_t irow = nMinRows;irow < nMaxRows;irow++)
3070 for (
Int_t icol = nMinCols;icol < nMaxCols;icol++)
3072 if(irow == largestCellirow && icol == largestCellicol)
continue;
3081 if(iBadCell==0)
continue;
3083 rowdiff = TMath::Abs( largestCellirow - irow ) ;
3084 coldiff = TMath::Abs( largestCellicol - icol ) ;
3100 if(largestCelliMod%2){
3101 nMinCols = largestCellicol - distanceForLoop + AliEMCALGeoParams::fgkEMCALCols;
3102 nMaxCols = AliEMCALGeoParams::fgkEMCALCols;
3104 largestCelliMod -= 1;
3105 largestCellicol += AliEMCALGeoParams::fgkEMCALCols;
3108 nMaxCols = largestCellicol + distanceForLoop - AliEMCALGeoParams::fgkEMCALCols;
3110 largestCelliMod += 1;
3111 largestCellicol -= AliEMCALGeoParams::fgkEMCALCols;
3119 for (
Int_t irow = nMinRows;irow < nMaxRows;irow++)
3121 for (
Int_t icol = nMinCols;icol < nMaxCols;icol++)
3130 if(iBadCell==0)
continue;
3132 rowdiff = TMath::Abs( largestCellirow - irow ) ;
3133 coldiff = TMath::Abs( largestCellicol - icol ) ;
3163 cluster->GetPosition(clusPos);
3164 TVector3 clusterVector(clusPos[0],clusPos[1],clusPos[2]);
3165 Double_t etaCluster = clusterVector.Eta();
3166 Double_t phiCluster = clusterVector.Phi();
3167 if (phiCluster < 0) phiCluster += 2*TMath::Pi();
3180 if (
fClusterType == 2 && !( cluster->GetType() == AliVCluster::kPHOSNeutral)){
3219 cluster->GetPosition(clusPos);
3220 TVector3 clusterVector(clusPos[0],clusPos[1],clusPos[2]);
3221 Double_t etaCluster = clusterVector.Eta();
3222 Double_t phiCluster = clusterVector.Phi();
3223 if (phiCluster < 0) phiCluster += 2*TMath::Pi();
3229 if (etaCluster < fMinEtaCut || etaCluster >
fMaxEtaCut ){
3245 if ( (phiCluster < fMinPhiCut || phiCluster >
fMaxPhiCut) && (phiCluster < fMinPhiCutDMC || phiCluster >
fMaxPhiCutDMC) ){
3250 if (phiCluster < fMinPhiCut || phiCluster >
fMaxPhiCut){
3285 Float_t ClusterPt = PhotonCandidate->Pt();
3314 AliError(
"Task needs AOD or ESD event, returning");
3319 if(!cluster->IsEMCAL() && !cluster->IsPHOS()){AliError(
"Cluster is neither EMCAL nor PHOS, returning");
return kFALSE;}
3321 Float_t clusterPosition[3] = {0,0,0};
3322 cluster->GetPosition(clusterPosition);
3323 Double_t clusterR = TMath::Sqrt( clusterPosition[0]*clusterPosition[0] + clusterPosition[1]*clusterPosition[1] );
3329 for (
Int_t i = 0;i < 2;i++){
3331 AliVTrack *inTrack = 0x0;
3333 if(tracklabel > event->GetNumberOfTracks() )
continue;
3334 inTrack = esdev->GetTrack(tracklabel);
3337 inTrack =
dynamic_cast<AliVTrack*
>(
event->GetTrack(tracklabel));
3339 for(
Int_t ii=0;ii<
event->GetNumberOfTracks();ii++) {
3340 inTrack =
dynamic_cast<AliVTrack*
>(
event->GetTrack(ii));
3342 if(inTrack->GetID() == tracklabel) {
3354 Float_t dR2 = dPhi*dPhi + dEta*dEta;
3361 if(inTrack->Charge() > 0) {
3377 Int_t clusterMCLabel = cluster->GetLabel();
3378 Int_t convPhotonDaughterLabel = -1;
3379 if(inTrack->Charge() > 0) convPhotonDaughterLabel = convPhoton->
GetMCLabelPositive();
3381 if( (convPhotonDaughterLabel != -1) && (clusterMCLabel != -1) && (convPhotonDaughterLabel == clusterMCLabel)){
3390 Bool_t match_dPhi = kFALSE;
3395 if( TMath::Abs(dEta) <
fFuncPtDepEta->Eval(inTrack->Pt())) match_dEta = kTRUE;
3396 else match_dEta = kFALSE;
3398 if( TMath::Abs(dPhi) <
fFuncPtDepPhi->Eval(inTrack->Pt())) match_dPhi = kTRUE;
3399 else match_dPhi = kFALSE;
3402 if(match_dEta && match_dPhi){
3436 TClonesArray * arrClustersMatch = NULL;
3438 nClus =
event->GetNumberOfCaloClusters();
3440 arrClustersMatch =
dynamic_cast<TClonesArray*
>(
event->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
3441 if(!arrClustersMatch)
3442 AliFatal(Form(
"%sClustersBranch was not found in AliCaloPhotonCuts::FillHistogramsExtendedQA! Check the correction framework settings!",
fCorrTaskSetting.Data()));
3443 nClus = arrClustersMatch->GetEntries();
3448 fGeomEMCAL = AliEMCALGeometry::GetInstance();
3449 if(!
fGeomEMCAL){ AliFatal(
"EMCal geometry not initialized!");}
3452 fGeomPHOS = AliPHOSGeometry::GetInstance();
3453 if(!
fGeomPHOS){ AliFatal(
"PHOS geometry not initialized!");}
3462 AliError(
"Task needs AOD or ESD event, returning");
3468 std::unique_ptr<AliESDtrackCuts> EsdTrackCuts;
3469 if(!isEMCalOnly && esdev){
3471 Int_t runNumber =
event->GetRunNumber();
3473 if( (runNumber<=146860) || (runNumber>=197470 && runNumber<=197692) || (runNumber>=172440 && runNumber<=193766) ){
3474 EsdTrackCuts = std::unique_ptr<AliESDtrackCuts>(AliESDtrackCuts::GetStandardITSTPCTrackCuts2010());
3476 }
else if (runNumber>=209122){
3479 EsdTrackCuts = std::unique_ptr<AliESDtrackCuts>(
new AliESDtrackCuts());
3480 EsdTrackCuts->AliESDtrackCuts::SetMinNCrossedRowsTPC(70);
3481 EsdTrackCuts->AliESDtrackCuts::SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
3482 EsdTrackCuts->AliESDtrackCuts::SetCutOutDistortedRegionsTPC(kTRUE);
3483 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterTPC(4);
3484 EsdTrackCuts->AliESDtrackCuts::SetAcceptKinkDaughters(kFALSE);
3485 EsdTrackCuts->AliESDtrackCuts::SetRequireTPCRefit(kTRUE);
3487 EsdTrackCuts->AliESDtrackCuts::SetRequireITSRefit(kTRUE);
3488 EsdTrackCuts->AliESDtrackCuts::SetClusterRequirementITS(AliESDtrackCuts::kSPD,
3489 AliESDtrackCuts::kAny);
3490 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexXYPtDep(
"0.0105+0.0350/pt^1.1");
3491 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2TPCConstrainedGlobal(36);
3492 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexZ(2);
3493 EsdTrackCuts->AliESDtrackCuts::SetDCAToVertex2D(kFALSE);
3494 EsdTrackCuts->AliESDtrackCuts::SetRequireSigmaToVertex(kFALSE);
3495 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterITS(36);
3498 EsdTrackCuts = std::unique_ptr<AliESDtrackCuts>(AliESDtrackCuts::GetStandardITSTPCTrackCuts2011());
3500 EsdTrackCuts->SetMaxDCAToVertexZ(2);
3501 EsdTrackCuts->SetEtaRange(-0.8, 0.8);
3502 EsdTrackCuts->SetPtRange(0.15);
3507 for (
Int_t itr=0;itr<
event->GetNumberOfTracks();itr++){
3508 AliVTrack *inTrack = 0x0;
3510 inTrack = esdev->GetTrack(itr);
3511 if(!inTrack)
continue;
3512 AliESDtrack *esdt =
dynamic_cast<AliESDtrack*
>(inTrack);
3514 if(!EsdTrackCuts->AcceptTrack(esdt))
continue;
3516 const AliExternalTrackParam *in = esdt->GetInnerParam();
3517 if (!in){AliDebug(2,
"Could not get InnerParam of Track, continue");
continue;}
3519 inTrack =
dynamic_cast<AliVTrack*
>(aodev->GetTrack(itr));
3520 if(!inTrack)
continue;
3521 AliAODTrack *aodt =
dynamic_cast<AliAODTrack*
>(inTrack);
3523 if(!aodt->IsHybridGlobalConstrainedGlobal())
continue;
3524 if(TMath::Abs(aodt->Eta())>0.8)
continue;
3525 if(aodt->Pt()<0.15)
continue;
3530 Float_t clsPos[3] = {0.,0.,0.};
3531 for(
Int_t iclus=0;iclus < nClus;iclus++){
3532 AliVCluster * cluster = NULL;
3533 std::unique_ptr<AliVCluster> tmpcluster;
3534 if(arrClustersMatch){
3536 tmpcluster = std::unique_ptr<AliVCluster>(
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersMatch->At(iclus)));
3537 cluster = tmpcluster.get();
3540 tmpcluster = std::unique_ptr<AliVCluster>(
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersMatch->At(iclus)));
3541 cluster = tmpcluster.get();
3544 cluster =
event->GetCaloCluster(iclus);
3554 cluster->GetPosition(clsPos);
3555 Float_t clusterR = TMath::Sqrt( clsPos[0]*clsPos[0] + clsPos[1]*clsPos[1] );
3556 Float_t dR2 = dPhi*dPhi + dEta*dEta;
3565 if(inTrack->Charge() > 0) {
3584 Bool_t match_dPhi = kFALSE;
3585 Bool_t vetoEOverP = kFALSE;
3591 if( TMath::Abs(dEta) <
fFuncPtDepEta->Eval(inTrack->Pt())) match_dEta = kTRUE;
3592 else match_dEta = kFALSE;
3594 if( TMath::Abs(dPhi) <
fFuncPtDepPhi->Eval(inTrack->Pt())) match_dPhi = kTRUE;
3595 else match_dPhi = kFALSE;
3601 if(match_dEta && match_dPhi){
3609 cluster->SetE(cluster->E()-0.290);
3624 }
else if(isEMCalOnly){
3641 vector<Int_t>::iterator it;
3664 AliInfo(Form(
"Set CaloCut Number: %s",analysisCutSelection.Data()));
3665 if(analysisCutSelection.Length()!=
kNCuts) {
3666 AliError(Form(
"Cut selection has the wrong length! size is %d, number of cuts is %d", analysisCutSelection.Length(),
kNCuts));
3669 if(!analysisCutSelection.IsAlnum()){
3670 AliError(
"Cut selection is not alphanumeric");
3674 TString analysisCutSelectionLowerCase = Form(
"%s",analysisCutSelection.Data());
3675 analysisCutSelectionLowerCase.ToLower();
3676 const char *cutSelection = analysisCutSelectionLowerCase.Data();
3677 #define ASSIGNARRAY(i) fCuts[i] = ((int)cutSelection[i]>=(int)'a') ? cutSelection[i]-'a'+10 : cutSelection[i]-'0' 3702 }
else return kFALSE;
3709 }
else return kFALSE;
3716 }
else return kFALSE;
3723 }
else return kFALSE;
3730 }
else return kFALSE;
3737 }
else return kFALSE;
3744 }
else return kFALSE;
3751 }
else return kFALSE;
3758 }
else return kFALSE;
3765 }
else return kFALSE;
3772 }
else return kFALSE;
3779 }
else return kFALSE;
3786 }
else return kFALSE;
3793 }
else return kFALSE;
3800 }
else return kFALSE;
3807 }
else return kFALSE;
3814 }
else return kFALSE;
3821 }
else return kFALSE;
3828 }
else return kFALSE;
3831 AliError(
"Cut id out of range");
3835 AliError(
"Cut id %d not recognized");
3852 printf(
"\nCluster cutnumber \n %s", analysisCutSelection.Data());
3856 printf(
"Acceptance cuts: \n");
3857 if (
fClusterType == 0) printf(
"\tall calorimeter clusters are used\n");
3858 if (
fClusterType == 1) printf(
"\tEMCAL calorimeter clusters are used\n");
3859 if (
fClusterType == 2) printf(
"\tPHOS calorimeter clusters are used\n");
3860 if (
fClusterType == 3) printf(
"\tDCAL calorimeter clusters are used\n");
3861 if (
fClusterType == 4) printf(
"\tEMCAL and DCAL calorimeter clusters are used together\n");
3868 printf(
"PhotonIsolation Cuts: \n");
3869 if (
fClusterType == 1) printf(
"\tEMCAL calorimeter clusters are used\n");
3871 if (fIsolationRadius < 0.11 && fIsolationRadius > 0.09) printf(
"\tIsolation Radius = 0.1\n");
3872 if (fIsolationRadius < 0.21 && fIsolationRadius > 0.19) printf(
"\tIsolation Radius = 0.2\n");
3873 if (fIsolationRadius < 0.31 && fIsolationRadius > 0.29) printf(
"\tIsolation Radius = 0.3\n");
3874 if (fIsolationRadius < 0.41 && fIsolationRadius > 0.39) printf(
"\tIsolation Radius = 0.4\n");
3877 printf(
"Cluster Quality cuts: \n");
3891 printf(
"NonLinearity Correction: \n");
3896 else printf(
"\t No NonLinearity Correction on AnalysisTask level has been chosen\n");
3908 switch(clusterType){
3949 AliError(Form(
"ClusterTypeCut not defined %d",clusterType));
4003 AliError(Form(
"MinEta Cut not defined %d",minEta));
4057 AliError(Form(
"MaxEta Cut not defined %d",maxEta));
4102 AliError(Form(
"MinPhi Cut not defined %d",minPhi));
4157 AliError(Form(
"Max Phi Cut not defined %d",maxPhi));
4166 switch(distanceToBadChannel){
4204 AliError(Form(
"minimum distance to bad channel Cut not defined %d",distanceToBadChannel));
4275 AliError(Form(
"Timing Cut not defined %d",timing));
4286 switch(trackMatching){
4327 fFuncPtDepEta =
new TF1(
"funcEta6",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4329 fFuncPtDepPhi =
new TF1(
"funcPhi6",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4335 fFuncPtDepEta =
new TF1(
"funcEta7",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4337 fFuncPtDepPhi =
new TF1(
"funcPhi7",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4343 fFuncPtDepEta =
new TF1(
"funcEta8",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4345 fFuncPtDepPhi =
new TF1(
"funcPhi8",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4351 fFuncPtDepEta =
new TF1(
"funcEta9",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4353 fFuncPtDepPhi =
new TF1(
"funcPhi9",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4359 fFuncPtDepEta =
new TF1(
"funcEta10",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4361 fFuncPtDepPhi =
new TF1(
"funcPhi10",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4367 fFuncPtDepEta =
new TF1(
"funcEta11",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4369 fFuncPtDepPhi =
new TF1(
"funcPhi11",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4377 fFuncPtDepEta =
new TF1(
"funcEta12",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4379 fFuncPtDepPhi =
new TF1(
"funcPhi12",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4388 fFuncPtDepEta =
new TF1(
"funcEta13",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4390 fFuncPtDepPhi =
new TF1(
"funcPhi13",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4399 fFuncPtDepEta =
new TF1(
"funcEta14",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");
4401 fFuncPtDepPhi =
new TF1(
"funcPhi14",
"[1] + 1 / pow(x + pow(1 / ([0] - [1]), 1 / [2]), [2])");