AliPhysics  master (3d17d9d)
ConfigureCaloTrackCorrAnalysis.C
Go to the documentation of this file.
1 
24 // Set includes for compilation
25 
26 #if !defined(__CINT__) || defined(__MAKECINT__)
27 
28 #include <TString.h>
29 #include <TSystem.h>
30 #include <TROOT.h>
31 
32 #include "AliAnaPhoton.h"
33 #include "AliAnaElectron.h"
34 #include "AliAnaPi0.h"
35 #include "AliAnaPi0EbE.h"
36 #include "AliHistogramRanges.h"
39 #include "AliAnaChargedParticles.h"
40 #include "AliAnaCalorimeterQA.h"
41 #include "AliAnaCaloExotics.h"
43 #include "AliAnaGeneratorKine.h"
47 #endif
48 
51 
53 // Some examples of strings: "Photon_MergedPi0_DecayPi0_Isolation_FixIsoConeExcess_Correlation_Bkg_QA_Charged_HighMult_MultiIso_PerSM_PerTCard",
55 
73  TString col, Bool_t simulation,
74  Bool_t printSettings, Int_t debug)
75 {
76  //
77  // Histograms ranges
78  //
79  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
80 
81  if ( histoString != "" )
82  ana->AddToHistogramsName(Form("%s_%s", histoString.Data(), (ana->GetAddedHistogramsStringToName()).Data()) );
83 
84  histoRanges->SetHistoPtRangeAndNBins(0, 200, 200) ; // Energy and pt histograms
85 
86  if(calorimeter=="EMCAL")
87  {
88  ana->SetFirstSMCoveredByTRD(-1);
89 
90  if ( year == 2010 )
91  {
92  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
93  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
94  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
95  }
96  else if ( year < 2014 )
97  {
98  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 104) ;
99  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
100  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
101 
102  if (year == 2011) ana->SetFirstSMCoveredByTRD( 6);
103  else if(year == 2012 ||
104  year == 2013) ana->SetFirstSMCoveredByTRD( 4);
105  }
106  else // Run2
107  {
108  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 189*TMath::DegToRad(), 111) ;
109  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA, revise
110  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA, revise
111  }
112 
113  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
114  }
115  else if(calorimeter=="DCAL")
116  {
117  histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 327*TMath::DegToRad(), 67) ;
118  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
119  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA, revise
120  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA, revise
121  }
122  else if(calorimeter=="PHOS")
123  {
124  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
125  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
126  }
127  else if(calorimeter=="CTS")
128  {
129  histoRanges->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
130  histoRanges->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
131  }
132 
133  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
134  {
135  histoRanges->SetHistoPhiRangeAndNBins(80*TMath::DegToRad(), 327*TMath::DegToRad(), 247) ;
136  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA, revise
137  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA, revise
138  }
139 
140  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 2.9, 300);
141 
142  // Invariant mass histo
143  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
144  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
145 
146  // check if time calibration is on
147  //histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
148  histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
149  histoRanges->SetHistoDiffTimeRangeAndNBins(-400, 400, 800);
150 
151  // track-cluster residuals
152  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.06,0.06,120);
153  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.06,0.06,120);
154  histoRanges->SetHistodRRangeAndNBins(0.,0.06,60);//QA
155 
156  // QA, electron, charged
157  histoRanges->SetHistoEOverPRangeAndNBins(0,10,200);
158  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
159 
160  // QA
161  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
162  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
163  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
164  histoRanges->SetHistoRRangeAndNBins(430,460,30);
165  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
166  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
167 
168  // QA, correlation
169  if(col=="PbPb")
170  {
171  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
172  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
173  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
174  }
175  else
176  {
177  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
178  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
179  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
180  }
181 
182  // xE, zT
183  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
184  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,200);
185 
186  // Isolation
187  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
188  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
189 
190  //
191  // MC histograms?
192  //
193  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
194  else ana->SwitchOffDataMC() ;
195 
196 
197  //
198  // Specialized histograms on multiplicity
199  //
200  if ( kAnaCutsString.Contains("HighMult") )
202  else
204 
205  // Consider real calo acceptance (borders, bad map holes)
206  // at generator level
207  if ( kAnaCutsString.Contains("MCRealCaloAcc") )
209  else
211 
212  //
213  // Debug
214  //
215  if(printSettings) ana->Print("");
216 
217  ana->SetDebug(debug); // 10 for lots of messages
218 }
219 
234  TString calorimeter, Int_t year, Int_t tm,
235  Bool_t printSettings, Int_t debug,
236  TString histoString )
237 {
238  AliAnaPhoton *ana = new AliAnaPhoton();
239 
240  // cluster selection cuts
241 
242  ana->SwitchOnFiducialCut();
243 
244  if ( calorimeter == "EMCAL" )
245  {
246  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
247  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
248  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
249  }
250  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
251  else if ( calorimeter == "PHOS" )
252  {
253  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 250.5, 319.5) ;
254  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 260.5, 319.5) ;
255  }
256 
257  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
258  {
259  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
260  }
261 
262 // if ( kAnaCutsString.Contains("TightAcc") )
263 // {
264 // if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
265 // }
266 
267  if ( calorimeter.Contains("CAL" ) ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
268  if ( calorimeter.Contains("PHOS") ) ana->GetFiducialCut()->DoPHOSFiducialCut (kTRUE);
269 
270  ana->SetCalorimeter(calorimeter);
271  if(calorimeter == "DCAL")
272  {
273  TString calo = "EMCAL";
274  ana->SetCalorimeter(calo);
275  }
276 
277  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
278  if ( kAnaCutsString.Contains("MultiIso") ) ana->SwitchOffFillShowerShapeHistograms();
279 
280  if ( kAnaCutsString.Contains("PerSM") )
282 
283  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
284 
285  if(tm) ana->SwitchOnTrackMatchRejection() ;
286  else ana->SwitchOffTrackMatchRejection() ;
287 
288  // Fill track matching histograms if track matching activated
289  // and only once in case of multiple analysis
290  if ( tm && !kAnaCutsString.Contains("MultiIso") )
291  {
292  ana->SwitchOnTMHistoFill() ;
293  if(tm > 1) ana->SwitchOnTMTrackPtHistoFill() ;
294  }
295  else
296  {
297  ana->SwitchOffTMHistoFill() ;
299  }
300 
301  if(calorimeter == "PHOS")
302  {
303  ana->SetNCellCut(2);// At least 3 cells
304  ana->SetMinEnergy(0.3);
305  ana->SetMaxEnergy(200);
306  ana->SetMinDistanceToBadChannel(2, 4, 5);
307  ana->SetTimeCut(-1e10,1e10); // open cut
308  }
309  else
310  {//EMCAL
311  ana->SetNCellCut(1);// At least 2 cells
312  ana->SetMinEnergy(0.7);
313  ana->SetMaxEnergy(300);
314  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
315  // restrict to less than 100 ns when time calibration is on
316  ana->SetMinDistanceToBadChannel(2, 4, 6);
317 
318  // NLM cut, used in all, exclude clusters with more than 2 maxima
319  // Not needed if M02 cut is already strong or clusterizer V2
320  ana->SetNLMCut(1, 2) ;
321  }
322 
323  //PID cuts (shower shape)
324  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
325  AliCaloPID* caloPID = ana->GetCaloPID();
326  //Not used in bayesian
327 
328  // EMCAL
329 
330  //caloPID->SetEMCALLambda0CutMax(0.27);
331  caloPID->SetEMCALLambda0CutMax(10); // open, full shower shape needed for isolation studies
332  caloPID->SetEMCALLambda0CutMin(0.10);
333 
334  // Track matching
335 
336  // E/p
337  if ( kAnaCutsString.Contains("TMEoP10" ) ) caloPID->SetEOverP(0,10);
338  if ( kAnaCutsString.Contains("TMEoP5" ) ) caloPID->SetEOverP(0,5);
339  if ( kAnaCutsString.Contains("TMEoP3" ) ) caloPID->SetEOverP(0,3);
340  if ( kAnaCutsString.Contains("TMEoP2" ) ) caloPID->SetEOverP(0,2);
341  if ( kAnaCutsString.Contains("TMEoP1.5") ) caloPID->SetEOverP(0,1.5);
342 
343  // tm = 1, fixed cuts
344  caloPID->SetEMCALDEtaCut(0.020);
345  caloPID->SetEMCALDPhiCut(0.030);
346 
347  // pT track dependent cuts
348  if ( tm > 1 ) caloPID->SwitchOnEMCTrackPtDepResMatching();
349 
350  // PHOS
351  caloPID->SetPHOSDispersionCut(2.5);
352  caloPID->SetPHOSRCut(2.);
353  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
354 
355  // Branch AOD settings
356  ana->SetOutputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
357  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
358 
359  //Set Histograms name tag, bins and ranges
360  //ana->AddToHistogramsName(Form("AnaPhoton_TM%d_",tm));
361  ana->AddToHistogramsName("AnaPhoton_");
362 
363  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
364 
365  if(ana->GetFirstSMCoveredByTRD() > 0)
366  printf("ConfigurePhotonAnalysis() >>> Set first SM covered by TRD, SM=%d <<< year %d \n", ana->GetFirstSMCoveredByTRD(),year);
367 
368  // Number of particle type MC histograms
369  ana->FillNOriginHistograms (17); // 18 max
370  ana->FillNPrimaryHistograms(6); // 6 max
371 
372  return ana;
373 }
374 
388  TString calorimeter, Int_t year,
389  Bool_t printSettings, Int_t debug,
390  TString histoString)
391 {
393  ana->SetDebug(debug); //10 for lots of messages
394 
395  if ( calorimeter == "EMCAL" )
396  {
397  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
398  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
399  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
400  }
401  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
402  else if ( calorimeter == "PHOS" )
403  {
404  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 250.5, 319.5) ;
405  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 260.5, 319.5) ;
406  }
407 
408  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
409  {
410  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
411  }
412 
413  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
414  if ( calorimeter.Contains("PHOS") ) ana->GetFiducialCut()->DoPHOSFiducialCut (kTRUE);
415 
416  ana->SetCalorimeter(calorimeter);
417  if(calorimeter == "DCAL")
418  {
419  TString calo = "EMCAL";
420  ana->SetCalorimeter(calo);
421  }
422 
423  // What particles to select:
424  //ana->FillAODWithElectrons();
425  //ana->FillAODWithHadrons();
426  ana->FillAODWithAny(); // Both
427 
428  if(calorimeter == "PHOS")
429  {
430  ana->SetNCellCut(2);// At least 2 cells
431  ana->SetMinEnergy(0.3);
432  ana->SetMaxEnergy(200);
434  }
435  else
436  {// EMCAL
437  ana->SetNCellCut(1);// At least 2 cells
438  ana->SetMinEnergy(0.7); // no effect minium EMCAL cut.
439  ana->SetMaxEnergy(300);
440  //ana->SetTimeCut(400,900);// Time window of [400-900] ns
442  }
443 
444  // Electron selection cuts with tracks
445  //ana->SetM02Range(0.05, 0.35);
446  //ana->SetM20Range(-10, 0.3);
447  //ana->SetEOverP(0.9, 1.2);
448  //ana->SetNSigma(-1, 3);
449  //ana->SetNSigmaForHadron(-10, -4);
450 
451 // if (kRunNumber < 146861) ana->SetdEdxCut(72, 90);
452 // else if(kRunNumber < 154000) ana->SetdEdxCut(54, 70);
453 // else ana->SetdEdxCut(74, 90);
454 //
455 // if(simulation) ana->SetdEdxCut(80, 100);
456 
458 
460 
461  ana->SetOutputAODName(Form("Electron_%s",kAnaCaloTrackCorr.Data()));
462  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
463 
464  // Set Histograms name tag, bins and ranges
465 
466  //ana->AddToHistogramsName(Form("AnaElectron_TM%d_",tm));
467  ana->AddToHistogramsName("AnaElectron_");
468 
469  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
470 
471  //if(printSettings)
472  ana->Print("");
473 
474  return ana ;
475 }
476 
495  Bool_t useSSIso, Bool_t useAsy,
496  TString col, Bool_t simulation,
497  TString calorimeter, Int_t year, Int_t tm,
498  Bool_t printSettings, Int_t debug,
499  TString histoString )
500 {
501  // Configuration of pi0 event by event selection
502 
503  AliAnaPi0EbE *ana = new AliAnaPi0EbE();
504 
505  ana->SetDebug(debug);
506 
507  ana->SetAnalysisType((AliAnaPi0EbE::anaTypes)analysis);
508  TString opt = "";
509  if(analysis==AliAnaPi0EbE::kIMCaloTracks) opt = "Conv";
510  if(analysis==AliAnaPi0EbE::kSSCalo) opt = "SS";
511 
514 
516  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
517  //if(!kTime && !simulation) ana->SwitchOnFillEMCALBCHistograms();
518 
519  if(tm) ana->SwitchOnTrackMatchRejection() ;
520  else ana->SwitchOffTrackMatchRejection() ;
521 
522  if ( tm && !kAnaCutsString.Contains("Photon") && !kAnaCutsString.Contains("MultiIso") )
523  ana->SwitchOnTMHistoFill() ;
524  else
525  ana->SwitchOffTMHistoFill() ;
526 
527  ana->SetCalorimeter(calorimeter);
528  if(calorimeter == "DCAL")
529  {
530  TString calo = "EMCAL";
531  ana->SetCalorimeter(calo);
532  }
533 
534  // Branch AOD settings
535  ana->SetOutputAODName(Form("%s%sTrigger_%s",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
536  printf("ConfigurePi0EbEAnalysis() *** Out branch %s***\n",ana->GetOutputAODName().Data());
537  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
538 
539  if(analysis == AliAnaPi0EbE::kIMCaloTracks) ana->SetInputAODGammaConvName("PhotonsCTS");
540 
541  //Set Histograms name tag, bins and ranges
542 
543  //ana->AddToHistogramsName(Form("Ana%s%sEbE_TM%d_",particle.Data(),opt.Data(),tm));
544  ana->AddToHistogramsName(Form("Ana%s%sEbE_",particle.Data(),opt.Data()));
545 
546  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
547 
549  if(analysis!=AliAnaPi0EbE::kSSCalo)
550  {
551  ana->SetInputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
552 
553  ana->SetM02CutForInvMass(0.1,0.35); // Loose SS cut
554 
556  ana->SetR(0.4);
558 
559  if(useSSIso)
560  {
562  //ana->AddToHistogramsName(Form("Ana%s%sEbEIsoDecay_TM%d_",particle.Data(),opt.Data(),tm));
563  ana->AddToHistogramsName(Form("Ana%s%sEbEIsoDecay_",particle.Data(),opt.Data()));
564  ana->SetOutputAODName(Form("%s%sIsoDecayTrigger_%s",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
565  }
566 
567  if ( calorimeter.Contains("CAL") && !simulation ) ana->SetPairTimeCut(100);
568 
570  nms->SetParticle(particle);
571 
572  //****
573  nms->SetInvMassCutMaxParameters(0,0,0); // Overrule the setting in SetParticle for Pi0 option
574  //****
575 
576  // Tighten a bit mass cut with respect to default window
577  if(particle=="Pi0") nms->SetInvMassCutRange(0.110,0.160);
578  if(particle=="Eta") nms->SetInvMassCutRange(0.520,0.580);
579 
580  //if(!particle.Contains("SideBand")) nms->SwitchOnAngleSelection();
581  //else nms->SwitchOnAngleSelection();
582 
584 
585  if(particle.Contains("Pi0SideBand")) // For pi0, do not consider left band
586  nms->SetSideBandCutRanges(-1,0,0.190,0.240);
587 
588  if(particle.Contains("EtaSideBand")) // For pi0, do not consider left band
589  nms->SetSideBandCutRanges(0.410,0.470,0.620,0.680);
590 
592  //nms->SetAngleMaxParam(2,0.2);
593  nms->SetHistoERangeAndNBins(0, 20, 80) ;
594  //nms->SetHistoIMRangeAndNBins(0, 1, 400);
595  }
596  else
597  {
598  ana->SwitchOnFiducialCut();
599  if ( calorimeter == "EMCAL" )
600  {
601  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
602  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
603  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
604  }
605  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
606 
607  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
608  {
609  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
610  }
611 
612  if ( kAnaCutsString.Contains("TightAcc") )
613  {
614  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
615  }
616 
617  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
618 
619  // cluster splitting settings
620  ana->SetMinEnergy(6);
621  ana->SetMaxEnergy(300.);
622 
623  ana->SetNLMMinEnergy(0, 10);
624  ana->SetNLMMinEnergy(1, 6);
625  ana->SetNLMMinEnergy(2, 6);
626 
627  // NLM cut, used in all, exclude clusters with more than 2 maxima
628  ana->SetNLMCut(1, 2) ;
629 
630  //
631  ana->SetMinDistanceToBadChannel(2, 4, 6);
633  ana->SetTimeCut(-1e10,1e10); // Open time cut
634 
635  AliCaloPID* caloPID = ana->GetCaloPID();
636 
637  // Track matching
638 
639  // E/p
640  if ( kAnaCutsString.Contains("TMEoP10" ) ) caloPID->SetEOverP(0,10);
641  if ( kAnaCutsString.Contains("TMEoP5" ) ) caloPID->SetEOverP(0,5);
642  if ( kAnaCutsString.Contains("TMEoP3" ) ) caloPID->SetEOverP(0,3);
643  if ( kAnaCutsString.Contains("TMEoP2" ) ) caloPID->SetEOverP(0,2);
644  if ( kAnaCutsString.Contains("TMEoP1.5") ) caloPID->SetEOverP(0,1.5);
645 
646  // tm = 1, fixed cuts
647  caloPID->SetEMCALDEtaCut(0.020);
648  caloPID->SetEMCALDPhiCut(0.030);
649 
650  // pT track dependent cuts
651  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
652 
653  caloPID->SetSplitWidthSigma(3); // cut at 3 sigma of the mean pi0 peak.
654 
655  if(!useSSIso)
656  {
657  printf("ConfigurePi0EbEAnalysis() << Do not apply SS cut on merged pi0 analysis >> \n");
658  caloPID->SwitchOffSplitShowerShapeCut() ;
659  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_TM%d_",particle.Data(),opt.Data(),tm));
660  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_",particle.Data(),opt.Data()));
661  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
662  caloPID->SetClusterSplittingM02Cut(0.1,10);
663  }
664  else
665  {
666  caloPID->SetClusterSplittingM02Cut(0.3,4); // Do the selection in the analysis class and not in the PID method to fill SS histograms
667  caloPID->SwitchOnSplitShowerShapeCut() ;
668  }
669 
670  if(useAsy)
671  {
672  caloPID->SwitchOnSplitAsymmetryCut() ;
674  ana->GetCaloPID()->SetSubClusterEnergyMinimum(1,0.5);
675  ana->GetCaloPID()->SetSubClusterEnergyMinimum(2,0.5);
676  }
677  else
678  {
679  caloPID->SwitchOffSplitAsymmetryCut() ;
680  if(!useSSIso)
681  {
682  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
683  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_OpenAsy_",particle.Data(),opt.Data()));
684  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS_OpenAsy",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
685  }
686  else
687  {
688  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
689  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenAsy_",particle.Data(),opt.Data()));
690  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenAsy",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
691  }
692  }
693 
694  // For Pi0 only if SwitchOnSimpleSplitMassCut()
695  caloPID->SetPi0MassRange(0.10, 0.18);
696  caloPID->SetEtaMassRange(0.50, 0.60);
697  caloPID->SetPhotonMassRange(0.00, 0.08);
698 
699  caloPID->SetClusterSplittingMinNCells(6);
700 
701  //caloPID->SetSplitEnergyFractionMinimum(0, 0.95);
702  //caloPID->SetSplitEnergyFractionMinimum(1, 0.95);
703  //caloPID->SetSplitEnergyFractionMinimum(2, 0.8);
704 
705  if(col=="PbPb" || kAnaCaloTrackCorr.Contains("150"))
706  {
707  caloPID->SetClusterSplittingMinNCells(4);
708  //caloPID->SetPi0MassShiftHighECell(0.005);
709  }
710  }
712 
713  return ana;
714 }
715 
716 
732 (TString col, Bool_t simulation,
733  TString calorimeter, Bool_t bothCalo,
734  Int_t year, Bool_t mixOn,
735  Bool_t printSettings, Int_t debug,
736  TString histoString )
737 {
738  AliAnaPi0 *ana = new AliAnaPi0();
739 
740  ana->SetDebug(debug);
741 
742  // Input delta AOD settings
743  ana->SetInputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
744 
745  if(bothCalo)
746  {
748 
749  TString otherDetector = Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data());
750 
751  if ( calorimeter == "EMCAL" )
752  otherDetector.ReplaceAll("PhotonTrigger_EMCAL","PhotonTrigger_PHOS");
753  else
754  otherDetector.ReplaceAll("PhotonTrigger_PHOS","PhotonTrigger_EMCAL");
755 
756  ana->SetOtherDetectorInputName(otherDetector);
757  }
758 
759  // Calorimeter settings
760  ana->SetCalorimeter(calorimeter);
761  if(calorimeter == "DCAL")
762  {
763  TString calo = "EMCAL";
764  ana->SetCalorimeter(calo);
765  }
766 
767  // Acceptance plots
768  ana->SwitchOnFiducialCut();
769  if ( calorimeter == "EMCAL" )
770  {
771  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
772  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
773  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
774  }
775  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
776  else if ( calorimeter == "PHOS" )
777  {
778  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 250.5, 319.5) ;
779  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 260.5, 319.5) ;
780  }
781 
782  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
783  {
784  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
785  }
786 
787  if ( calorimeter.Contains("CAL" ) ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
788  if ( calorimeter.Contains("PHOS") ) ana->GetFiducialCut()->DoPHOSFiducialCut(kTRUE);
789 
790  // settings for pp collision mixing
791  if(mixOn) ana->SwitchOnOwnMix();
792  else ana->SwitchOffOwnMix();
793 
794  // Cuts
795  if (calorimeter == "EMCAL" )
796  {
797  if(year < 2014) ana->SetPairTimeCut(50);
798  else ana->SetPairTimeCut(200); // REMEMBER to remove this when time calib is on
799  }
800 
801  ana->SetNPIDBits(1);
802  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
803  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
804 
805  if (col == "pp" )
806  {
807  printf("ConfigureInvariantMassAnalysis() - Set pp configuration\n");
808  ana->SetNCentrBin(1);
809  ana->SwitchOffTrackMultBins();
810  ana->SetNZvertBin(10);
811  ana->SetNRPBin(1);
812  ana->SetNMaxEvMix(100);
813  ana->SetMinPt(0.7);
814  }
815  else if(col == "PbPb")
816  {
817  printf("ConfigureInvariantMassAnalysis() - Set PbPb configuration\n");
818  ana->SetNCentrBin(10);
819  ana->SetNZvertBin(10);
820  ana->SetNRPBin(4);
821  ana->SetNMaxEvMix(10);
822  ana->SetMinPt(1.5);
823  }
824  else if(col =="pPb")
825  {
826  printf("ConfigureInvariantMassAnalysis() - Set pPb configuration\n");
827  ana->SetNCentrBin(1);
828  ana->SetNZvertBin(10);
829  ana->SetNRPBin(4);
830  ana->SetNMaxEvMix(100);
831  ana->SetMinPt(0.7);
832  }
833 
834  // Angle cut, avoid pairs with too large angle
835  ana->SwitchOnAngleSelection();
836  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
837  ana->SetAngleCut(0.017); // Minimum angle open, cell size
838 
839  if ( kAnaCutsString.Contains("PerSM") ) //&& !bothCalo )
840  ana->SwitchOnSMCombinations();
841 
843  ana->SwitchOnFillAngleHisto();
844  ana->SwitchOnFillOriginHisto(); // MC
845 
846  // Set Histograms name tag, bins and ranges
847  if(!bothCalo) ana->AddToHistogramsName(Form("AnaPi0_"));
848  else ana->AddToHistogramsName(Form("AnaPi0_2Det_"));
849 
850  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
851  if(printSettings) ana->Print("");
852 
853  return ana;
854 }
855 
870  Int_t partInCone, Int_t thresType,
871  Float_t cone, Float_t coneMin,
872  Float_t pth, TString col, Int_t debug)
873 {
874  ic->SetDebug(debug);
875  ic->SetParticleTypeInCone(partInCone);
876  ic->SetICMethod(thresType);
877  ic->SetPtFraction(0.1);
878  ic->SetPtThreshold(0.5); // default, change in next lines
879  ic->SetSumPtThreshold(1.0); // default, change in next lines
880 
881  if ( cone > 0 && pth > 0 )
882  {
883  ic->SetConeSize(cone);
884  ic->SetMinDistToTrigger(coneMin);
885  ic->SetPtThresholdMax(10000);
886 
887  if ( thresType == AliIsolationCut::kPtThresIC )
888  {
889  printf("ConfigureIsolationCuts() *** PtThresMin = %1.1f GeV/c *** R = %1.2f *** R min %1.2f\n",pth,cone,coneMin);
890  ic->SetPtThreshold(pth);
891  }
892 
893  if ( thresType == AliIsolationCut::kSumPtIC ||
894  thresType >= AliIsolationCut::kSumBkgSubIC )
895  {
896  printf("ConfigureIsolationCuts() *** SumPtMin = %1.1f GeV/c *** R = %1.1f *** R min %1.2f\n",pth,cone,coneMin);
897  ic->SetSumPtThreshold(pth);
898  }
899  }
900  else
901  {
902  printf("ConfigureIsolationCuts() *** Careful, use old hardcoded values\n");
903  if ( col == "pp" )
904  {
905  ic->SetPtThreshold(0.5);
906  ic->SetSumPtThreshold(1.0) ;
907  ic->SetConeSize(0.4);
908  ic->SetMinDistToTrigger(-1);
909  }
910  if ( col == "PbPb" )
911  {
912  ic->SetPtThreshold(3.);
913  ic->SetSumPtThreshold(3.0) ;
914  ic->SetConeSize(0.3);
915  ic->SetMinDistToTrigger(-1);
916  }
917  }
918 
919  //ic->SwitchOnFillEtaPhiHistograms();
920 
921  if ( kAnaCutsString.Contains("FixIsoConeExcess") )
923  else
925 }
926 
948  Int_t partInCone, Int_t thresType,
949  Float_t cone, Float_t coneMin,
950  Float_t pth, Bool_t multi,
951  TString col, Bool_t simulation,
952  TString calorimeter, Int_t year, Int_t tm,
953  Bool_t printSettings, Int_t debug,
954  TString histoString )
955 {
957 
958  ana->SetDebug(debug);
959 
960  ana->SetMinPt(5);
961  ana->SetMaxPt(200);
962  ana->SetCalorimeter(calorimeter);
963  if(calorimeter == "DCAL")
964  {
965  TString calo = "EMCAL";
966  ana->SetCalorimeter(calo);
967  }
968 
969  ana->SwitchOffLeadingOnly();
971  if( leading > 0 ) ana->SwitchOnLeadingOnly();
972  if( leading == 2 ||
973  leading == 4) ana->SwitchOnCheckNeutralClustersForLeading();
974 
975  // Do at generation level detector cuts and effects
978 
979  ana->SwitchOffSSHistoFill();
980 
981  if(particle.Contains("Photon"))
982  {
983  ana->SwitchOnSSHistoFill();
984 
985  if(kAnaCutsString.Contains("Decay"))
986  {
988  ana->SetNDecayBits(5);
989  }
990  }
991 
992  if ( kAnaCutsString.Contains("PerSM") )
993  {
995  ana->SwitchOnStudyNCellsCut();
996  }
997 
998  if ( kAnaCutsString.Contains("PerTCard") )
1000 
1001  if(kAnaCutsString.Contains("Bkg"))
1002  {
1003  printf("ConfigureIsolationAnalysis() *** Activate analysis on PtTrig and Bkg bins >> \n");
1005  ana->SetNPtTrigBins(6);
1006  //ana->SetPtTrigLimits(0,8); ana->SetPtTrigLimits(1,12); ana->SetPtTrigLimits(2,16); ana->SetPtTrigLimits(3,25);
1007 
1009  ana->SetNBackgroundBins(11);
1010  //ana->SetBackgroundLimits(0,0); ana->SetBackgroundLimits(1,0.2); ana->SetBackgroundLimits(2,3); ana->SetBackgroundLimits(3,0.4);
1011  }
1012 
1013  if(!tm) ana->SwitchOnTMHistoFill();
1014  else ana->SwitchOffTMHistoFill();
1015 
1016  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
1017 
1018  // Avoid borders of calorimeter
1019  ana->SwitchOnFiducialCut();
1020 
1021  // Set isolation candidate acceptance cuts similar as in p-Pb Erwann's analysis
1022  if ( calorimeter == "EMCAL" )
1023  {
1024  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 176.5) ;
1025  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 169.5) ;
1026  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 109.5) ;
1027  }
1028  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 270.7, 316.5) ;
1029  else if ( calorimeter == "PHOS" )
1030  {
1031  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 260.5, 309.5) ;
1032  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 270.5, 309.5) ;
1033  }
1034 
1035  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
1036  {
1037  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
1038  }
1039 
1040  if ( kAnaCutsString.Contains("TightAcc") ) // pp 7 TeV analysis cut
1041  {
1042  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
1043  }
1044 
1045  // Same Eta as EMCal, cut in phi if EMCAL was triggering
1046  if(particle=="Hadron" || particle.Contains("CTS"))
1047  {
1048  //if(trigger.Contains("EMC"))
1049  // ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 260, 360) ;
1050  //else
1051  ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 0, 360) ;
1052  }
1053 
1054  // Branch AOD settings
1055 
1056  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
1057  ana->SetAODObjArrayName(Form("IC%sTrigger_%s_R%1.1f_ThMin%1.1f",particle.Data(),kAnaCaloTrackCorr.Data(),cone,pth));
1058 
1059  //
1060  // Do settings for main isolation cut class
1061  //
1062  AliIsolationCut * ic = ana->GetIsolationCut();
1063  ConfigureIsolationCut(ic,partInCone,thresType,cone,coneMin,pth,col,debug);
1064 
1065  // Do or not do isolation with previously produced AODs.
1066  // No effect if use of SwitchOnSeveralIsolation()
1067  ana->SwitchOffReIsolation();
1068 
1069  // Multiple IC
1070  if(multi)
1071  {
1072  ic->SetConeSize(1.); // Take all for first iteration
1073  ic->SetPtThreshold(100);// Take all for first iteration
1074  ic->SetMinDistToTrigger(-1);
1075 
1076  ana->SwitchOnSeveralIsolation() ;
1077  //ana->SetAODObjArrayName(Form("MultiIC%sTM%d",particle.Data(),tm));
1078  ana->SetAODObjArrayName(Form("MultiIC%s",particle.Data()));
1079 
1080  ana->SetNCones(3);
1081  ana->SetNPtThresFrac(2);
1082  ana->SetConeSizes(0,0.3); ana->SetConeSizes(1,0.4); ana->SetConeSizes(2,0.5);
1083  ana->SetPtThresholds(0, 0.5); ana->SetPtThresholds(1, 1); ana->SetPtThresholds(2, 1.5); ana->SetPtThresholds(3, 2);
1084  ana->SetPtFractions (0, 0.05) ; ana->SetPtFractions (1, 0.1); ana->SetPtFractions (2, 0.2) ; ana->SetPtFractions (3, 0.3) ;
1085  ana->SetSumPtThresholds(0, 0.5) ; ana->SetSumPtThresholds(1, 1) ; ana->SetSumPtThresholds(2, 1.5); ana->SetSumPtThresholds(3, 2) ;
1086  //ana->SetPtThresholds(0, 0.5);
1087 
1088  ana->SwitchOffTMHistoFill();
1089  ana->SwitchOffSSHistoFill();
1090  }
1091  else
1092  ana->SwitchOffSeveralIsolation() ;
1093 
1094  // Track matching
1095  //
1096  // By default apply always a TM cut in cone if charged and neutrals
1097  // in isolation cone
1098  if ( partInCone == AliIsolationCut::kNeutralAndCharged )
1099  {
1100  AliCaloPID* caloPID = ana->GetCaloPID();
1101 
1102  // E/p
1103  if ( kAnaCutsString.Contains("TMEoP10" ) ) caloPID->SetEOverP(0,10);
1104  if ( kAnaCutsString.Contains("TMEoP5" ) ) caloPID->SetEOverP(0,5);
1105  if ( kAnaCutsString.Contains("TMEoP3" ) ) caloPID->SetEOverP(0,3);
1106  if ( kAnaCutsString.Contains("TMEoP2" ) ) caloPID->SetEOverP(0,2);
1107  if ( kAnaCutsString.Contains("TMEoP1.5") ) caloPID->SetEOverP(0,1.5);
1108 
1109  if ( tm == 1 )
1110  {
1111  // tm = 1, fixed cuts
1112 
1113  caloPID->SetEMCALDEtaCut(0.020);
1114  caloPID->SetEMCALDPhiCut(0.030);
1115  }
1116  else
1117  {
1118  // pT track dependent cuts
1120  }
1121  }
1122 
1123  // Set Histograms name tag, bins and ranges
1124 
1125 // if(!multi) ana->AddToHistogramsName(Form("AnaIsol%s_TM%d_" ,particle.Data(),tm));
1126 // else ana->AddToHistogramsName(Form("AnaMultiIsol%s_TM%d_",particle.Data(),tm));
1127  if(!multi) ana->AddToHistogramsName(Form("AnaIsol%s_" ,particle.Data()));
1128  else ana->AddToHistogramsName(Form("AnaMultiIsol%s_",particle.Data()));
1129 
1130  SetAnalysisCommonParameters(ana,histoString, calorimeter,year,col,simulation,printSettings,debug); // see method below
1131 
1132  if ( particle=="Hadron" || particle.Contains("CTS") )
1133  {
1134  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1135  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1136  }
1137 
1138  if ( printSettings ) ic ->Print("");
1139 
1140  return ana;
1141 }
1142 
1165  Bool_t bIsolated, Float_t shshMax,
1166  Int_t partInCone, Int_t thresType,
1167  Float_t cone, Float_t coneMin,
1168  Float_t pth, Bool_t mixOn,
1169  TString col, Bool_t simulation,
1170  TString calorimeter, Int_t year, Int_t tm,
1171  Bool_t printSettings, Int_t debug,
1172  TString histoString )
1173 {
1175 
1176  ana->SetTriggerPtRange(5,100);
1177  ana->SetAssociatedPtRange(0.2,100);
1178  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
1179 
1180  // Underlying event
1181  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
1183 
1184  ana->SwitchOffAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
1185  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
1187 
1188  if(leading > 0 && leading < 3 ) ana->SwitchOnAbsoluteLeading();
1189  if(leading > 2 ) ana->SwitchOnNearSideLeading();
1190  if(leading == 2 || leading == 4 ) ana->SwitchOnCheckNeutralClustersForLeading();
1191 
1193  ana->SwitchOffCorrelationVzBin() ;
1195 
1197 
1198  if(particle.Contains("Photon"))
1199  {
1200  if(kAnaCutsString.Contains("Decay"))
1201  {
1202  printf("ConfigureHadronCorrelationAnalysis() *** Activate analysis on Tagged clusters as Decay product >> \n");
1204  ana->SetNDecayBits(5);
1206  if ( kAnaCutsString.Contains("Bkg") && !bIsolated )
1208  }
1209 
1210  //printf("ConfigureHadronCorrelationAnalysis() *** SET M02 limits in correlation task *** \n");
1211  ana->SetM02Cut(0.10,shshMax);
1212  }
1213 
1214  if ( kAnaCutsString.Contains("PerSM") )
1216 
1217  if ( kAnaCutsString.Contains("PerTCard") )
1219 
1220  ana->SetMCGenType(0,7); // Change to higher to include Tagged decays
1221 
1222  ana->SwitchOffLeadHadronSelection(); // Open cuts, just fill histograms
1224 
1225  if ( kAnaCutsString.Contains("Bkg") && !bIsolated )
1226  {
1227  printf("ConfigureHadronCorrelationAnalysis() *** Activate analysis on PtTrig and Bkg bins,\n"
1228  " \t make sure isolation runs first even if not used to select trigger >> \n");
1230  }
1231 
1232  ana->SetLeadHadronPhiCut(TMath::DegToRad()*130, TMath::DegToRad()*230.);
1233  ana->SetLeadHadronPtCut(0.5, 1000);
1234 
1235  // if triggering on PHOS and EMCAL is on
1236  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
1237  //ana->SetPi0AODBranchName("Pi0EMCAL_TrigEMC7_Cl_TM1");
1238 
1240 
1242 
1243  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
1244 
1246 
1247  ana->SetNAssocPtBins(16); // set last bin [20,30] GeV/c
1248  // See AliAnaParticleCorrelation::InitParameters();
1249  // Default bins{0.2,0.5,1,2,3,4,5,6,7,8,9,10,12,14,16,20,30,40,50,100} GeV/c
1250  // If you want to change it:
1251  // ana->SetAssocPtBinLimit(0, 1) ;
1252  // ana->SetAssocPtBinLimit(1, 2) ;
1253  // ana->SetAssocPtBinLimit(2, 3) ;
1254  // ana->SetAssocPtBinLimit(3, 4) ;
1255  // ana->SetAssocPtBinLimit(4, 5) ;
1256  // ana->SetAssocPtBinLimit(5, 8) ;
1257  // ana->SetAssocPtBinLimit(6, 10) ;
1258  // ana->SetAssocPtBinLimit(7, 100);
1259 
1260  ana->SetNTriggerPtBins(8); // set first bin [10,12] GeV/c and last bin [40,50] GeV/c
1261  // See AliAnaParticleCorrelation::InitParameters();
1262  // Default bins{10,12,16,20,25,30,40,50,75,100} GeV/c
1263  // If you want to change it:
1264  // ana->SetTriggerPtBinLimit(0, 5) ;
1265  // ana->SetTriggerPtBinLimit(1, 10) ;
1266 
1267  ana->SelectIsolated(bIsolated); // do correlation with isolated photons
1268 
1269  // Mixing with own pool
1270  if(mixOn)
1271  {
1272  ana->SwitchOnOwnMix();
1274 
1275  if(bIsolated)
1276  {
1277  //Do settings for main isolation cut class
1278  AliIsolationCut * ic = ana->GetIsolationCut();
1279  ConfigureIsolationCut(ic,partInCone,thresType,cone,coneMin,pth,col,debug);
1280  }
1281  }
1282  else
1283  ana->SwitchOffOwnMix();
1284 
1285  ana->SetNZvertBin(20);
1286 
1287  if(col=="pp")
1288  {
1289  ana->SetNMaxEvMix(100);
1290  ana->SwitchOnTrackMultBins();
1291  ana->SetNTrackMultBin(10);
1292  ana->SetNRPBin(1);
1293  }
1294  else
1295  {
1296  ana->SetNMaxEvMix(10);
1297  ana->SwitchOffTrackMultBins(); // centrality bins
1298  ana->SetNCentrBin(12);
1299  ana->SetNRPBin(3);
1300  if(kAnaCaloTrackCorr.Contains("60_90"))
1301  {
1302  //printf("ConfigureHadronCorrelationAnalysis() *** Set mixing for peripheral ***\n");
1303  ana->SetNMaxEvMix(50);
1304  ana->SetNCentrBin(2);
1305  }
1306  }
1307 
1308  // Avoid borders of calorimeter, same as for isolation
1309  //
1310  ana->SwitchOnFiducialCut();
1311 
1312  // Set candidate acceptance cuts similar as in p-Pb Isolation Erwann's analysis
1313  if ( calorimeter == "EMCAL" )
1314  {
1315  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 176.5) ;
1316  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 169.5) ;
1317  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 90.5, 109.5) ;
1318  }
1319  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.52, 270.7, 316.5) ;
1320  else if ( calorimeter == "PHOS" )
1321  {
1322  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 260.5, 309.5) ;
1323  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 270.5, 309.5) ;
1324  }
1325 
1326  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
1327  {
1328  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ; //20 SM
1329  }
1330 
1331  if ( kAnaCutsString.Contains("TightAcc") ) // pp 7 TeV isolation analysis cut
1332  {
1333  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
1334  }
1335 
1336  // Track matching, in case of mixing and specially in isolation case
1337  //
1338  AliCaloPID* caloPID = ana->GetCaloPID();
1339 
1340  // E/p
1341  if ( kAnaCutsString.Contains("TMEoP10" ) ) caloPID->SetEOverP(0,10);
1342  if ( kAnaCutsString.Contains("TMEoP5" ) ) caloPID->SetEOverP(0,5);
1343  if ( kAnaCutsString.Contains("TMEoP3" ) ) caloPID->SetEOverP(0,3);
1344  if ( kAnaCutsString.Contains("TMEoP2" ) ) caloPID->SetEOverP(0,2);
1345  if ( kAnaCutsString.Contains("TMEoP1.5") ) caloPID->SetEOverP(0,1.5);
1346 
1347  // tm = 1, fixed cuts
1348  caloPID->SetEMCALDEtaCut(0.020);
1349  caloPID->SetEMCALDPhiCut(0.030);
1350 
1351  // pT track dependent cuts
1352  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
1353 
1354  // Input / output delta AOD settings
1355  //
1356  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
1357  ana->SetAODObjArrayName(Form("%sHadronCorrIso%dTrigger_%s",particle.Data(),bIsolated,kAnaCaloTrackCorr.Data()));
1358  //ana->SetAODNamepTInConeHisto(Form("IC%s_%s_R%1.1f_ThMin%1.1f" ,particle.Data(),kAnaCaloTrackCorr.Data(),cone,pth));
1359 
1360  //Set Histograms name tag, bins and ranges
1361  //
1362  //ana->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_TM%d_",particle.Data(),bIsolated,tm));
1363  ana->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_",particle.Data(),bIsolated));
1364 
1365  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1366 
1367  if(particle=="Hadron" || particle.Contains("CTS"))
1368  {
1369  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1370  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1371  }
1372 
1373  return ana;
1374 }
1375 
1385 ( Bool_t simulation, Bool_t printSettings, Int_t debug, TString histoString )
1386 {
1388 
1389  ana->SetDebug(debug);
1390 
1391  // selection cuts
1392 
1393  ana->SetMinPt(0.2);
1394  ana->SwitchOnFiducialCut();
1395  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ; //more restrictive cut in reader and after in isolation
1396 
1398 
1401 
1402  // Branch AOD settings
1403 
1404  ana->SetOutputAODName(Form("HadronTrigger_%s",kAnaCaloTrackCorr.Data()));
1405  ana->SetOutputAODClassName("AliCaloTrackParticle"); // use if no correlation done
1406 
1407  //Set Histograms name tag, bins and ranges
1408 
1409  ana->AddToHistogramsName("AnaHadrons_");
1410 
1411  SetAnalysisCommonParameters(ana,histoString,"CTS",2012,"pp",simulation,printSettings,debug); // see method below
1412 
1413  return ana;
1414 }
1415 
1429 (Int_t tm, TString col , Bool_t simulation,
1430  TString calorimeter, Int_t year,
1431  Bool_t printSettings, Int_t debug, TString histoString )
1432 {
1434 
1435  ana->SetM02Min(-1);
1436  ana->SetNCellsPerClusterMin(-1);
1437 
1438  ana->SetCalorimeter(calorimeter);
1439  if(calorimeter == "DCAL")
1440  {
1441  TString calo = "EMCAL";
1442  ana->SetCalorimeter(calo);
1443  }
1444 
1445  if(simulation) ana->SetConstantTimeShift(615);
1446 
1447  ana->SwitchOffFiducialCut();
1448 
1450 
1452 
1454 
1456 
1457  ana->SwitchOffStudyMatchedPID() ;
1458 
1459  ana->SwitchOffStudyWeight();
1460 
1461  ana->SetNCellBinLimits(3); // set to -1 for no analysis on predefined bins in nCell
1462  ana->SetDistToBadMin(2);
1463 
1465  ana->SwitchOffStudyExotic();
1467  ana->SwitchOffStudyCellTime() ;
1468 
1469  // PID cuts (Track-matching)
1470  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
1471  AliCaloPID* caloPID = ana->GetCaloPID();
1472 
1473  // E/p
1474  if ( kAnaCutsString.Contains("TMEoP10" ) ) caloPID->SetEOverP(0,10);
1475  if ( kAnaCutsString.Contains("TMEoP5" ) ) caloPID->SetEOverP(0,5);
1476  if ( kAnaCutsString.Contains("TMEoP3" ) ) caloPID->SetEOverP(0,3);
1477  if ( kAnaCutsString.Contains("TMEoP2" ) ) caloPID->SetEOverP(0,2);
1478  if ( kAnaCutsString.Contains("TMEoP1.5") ) caloPID->SetEOverP(0,1.5);
1479 
1480  if(tm > 1)
1481  {
1482  // track pT dependent cut
1484 
1485  // Begining of histograms name
1486  ana->AddToHistogramsName("Shape_TMDep_");
1487  }
1488  else if ( tm )
1489  {
1490  // Fix
1492  caloPID->SetEMCALDEtaCut(0.020);
1493  caloPID->SetEMCALDPhiCut(0.030);
1494 
1495  // Begining of histograms name
1496  ana->AddToHistogramsName("Shape_TMFix_");
1497  }
1498 
1499  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1500 
1501  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
1502  histoRanges->SetHistoPtRangeAndNBins(0, 50, 100) ; // Reduce a bit size
1503 
1504  return ana;
1505 }
1506 
1519  TString calorimeter, Int_t year,
1520  Bool_t printSettings, Int_t debug,
1521  TString histoString )
1522 {
1524 
1525  ana->SetCalorimeter(calorimeter);
1526  if(calorimeter == "DCAL")
1527  {
1528  TString calo = "EMCAL";
1529  ana->SetCalorimeter(calo);
1530  }
1531 
1532  ana->SetTimeCut(-1e10,1e10); // Open time cut
1533 
1534  ana->SwitchOffCorrelation(); // make sure you switch in the reader PHOS and EMCAL cells and clusters if option is ON
1535 
1536  ana->SwitchOffFiducialCut();
1540  ana->SwitchOffStudyBadClusters() ;
1542 
1544 
1545  ana->AddToHistogramsName("QA_"); // Begining of histograms name
1546 
1547  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1548 
1549  return ana;
1550 }
1551 
1564  TString calorimeter, Int_t year,
1565  Bool_t printSettings, Int_t debug,
1566  TString histoString )
1567 {
1569 
1570  ana->SetCalorimeter(calorimeter);
1571  if(calorimeter == "DCAL")
1572  {
1573  TString calo = "EMCAL";
1574  ana->SetCalorimeter(calo);
1575  }
1576 
1577  ana->SwitchOnFillCellHisto();
1578  ana->SwitchOffFill1CellHisto();
1580 
1581  ana->SetEMinForExo(50);
1582 
1583  ana->SetCellAmpMin(0.2);
1584 
1585  ana->SetTimeCut(-20,20);
1586 
1587  if ( simulation )
1588  {
1589  ana->SetConstantTimeShift(615);
1591  ana->SetTimeCut(-10000,10000);
1592  }
1593 
1594  ana->AddToHistogramsName("Exo_"); // Begining of histograms name
1595 
1596  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1597  ana->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 300, 150) ; // Energy and pt histograms
1598  ana->GetHistogramRanges()->SetHistoTimeRangeAndNBins(-602.,602.,301);
1599  ana->GetHistogramRanges()->SetHistoDiffTimeRangeAndNBins(-401, 401, 401);
1600  return ana;
1601 }
1602 
1620 (Int_t partInCone,
1621  Int_t thresType, Float_t pth,
1622  Float_t cone, Float_t coneMin,
1623  TString col, Bool_t simulation,
1624  TString calorimeter, Int_t year,
1625  Bool_t printSettings, Int_t debug,
1626  TString histoString )
1627 {
1629 
1630  // Trigger detector, acceptance and pT cut
1631  ana->SetTriggerDetector(calorimeter);
1632  if(calorimeter == "DCAL")
1633  {
1634  TString calo = "EMCAL";
1635  ana->SetTriggerDetector(calo);
1636  }
1637 
1638  ana->SetMinPt(2); // Trigger photon, pi0 minimum pT
1639  if ( calorimeter == "EMCAL" )
1640  {
1641  if ( year > 2014 ) ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
1642  else if ( year > 2010 ) ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
1643  else ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
1644  }
1645  else if ( calorimeter == "DCAL" ) ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
1646  else if ( calorimeter == "PHOS" )
1647  {
1648  if ( year > 2014 ) ana->GetFiducialCutForTrigger()->SetSimplePHOSFiducialCut (0.125, 250.5, 319.5) ;
1649  else ana->GetFiducialCutForTrigger()->SetSimplePHOSFiducialCut (0.125, 260.5, 319.5) ;
1650  }
1651 
1652  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
1653  {
1654  ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ;
1655  }
1656 
1657  // Particles associated to trigger or isolation cone acceptance and pT cut
1658  ana->SetCalorimeter(calorimeter);
1659  if(calorimeter == "DCAL")
1660  {
1661  TString calo = "EMCAL";
1662  ana->SetCalorimeter(calo);
1663  }
1664 
1665  ana->SetMinChargedPt(0.2);
1666  ana->SetMinNeutralPt(0.5);
1667 
1668  if ( calorimeter == "EMCAL" )
1669  {
1670  if ( year > 2014 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 185.8) ; //12 SM
1671  else if ( year > 2010 ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 178.8) ; //10 SM
1672  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 118.8) ; // 4 SM
1673  }
1674  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 261.2, 325.8) ;
1675  else if ( calorimeter == "PHOS" )
1676  {
1677  if ( year > 2014 ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 250.5, 319.5) ;
1678  else ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.125, 260.5, 319.5) ;
1679  }
1680 
1681  if ( kAnaCaloTrackCorr.Contains("FullCalo") )
1682  {
1683  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.67, 81.2, 325.8) ;
1684  }
1685 
1686  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.9, 0, 360);
1687 
1688  // Isolation paramters
1689  AliIsolationCut * ic = ana->GetIsolationCut();
1690  ConfigureIsolationCut(ic,partInCone,thresType,cone,coneMin,pth,col,debug);
1691 
1692  ana->SwitchOnPartonAnalysis();
1693  if ( kAnaCutsString.Contains("Generator_NoParton") )
1694  ana->SwitchOffPartonAnalysis();
1695 
1696  ana->AddToHistogramsName("AnaGenKine_");
1697 
1698  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1699 
1700  return ana;
1701 }
1702 
1703 
1718 (TString calorimeter = "EMCAL" , Int_t year = 2011,
1719  Bool_t isolationMatters = kTRUE, Float_t gammaConeSize = 0.3,
1720  Bool_t simulation = kFALSE , TString col = "pp",
1721  Bool_t printSettings = kFALSE , Int_t debug = -1,
1722  TString histoString = "")
1723 {
1725  ana->SetDebug(debug);
1726  //ana->SetDebug(3);
1727  TString particle="Photon";
1728  Bool_t isolation=kTRUE;
1729  if(gammaConeSize>0) isolation=kTRUE;//only isolated photons
1730  else isolation=kFALSE;//only not isolated photons
1731 
1732  Double_t jetConeSize=0.3;
1733  Double_t ptThresholdInCone=0.15;
1734  Double_t jetMinPt=0.15,deltaPhi=1.5,minPtRatio=0.,maxPtRatio=5.;
1735 
1736  // Input / output delta AOD settings
1737  //
1738  //ana->SetInputAODName(Form("%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
1739  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
1740  ana->SetAODObjArrayName(Form("%sJetCorr_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
1741 
1742  ana->SwitchOffFiducialCut();
1743 
1744  ana->SetMakeCorrelationInHistoMaker(kFALSE);//must be set to false due to differences AliAODJet and AliEmcalJet
1745 
1746  ana->SetIsolationMatters(isolationMatters); //set whether isolation matters or not
1747  ana->SelectIsolated(isolation); // do correlation with isolated photons or not
1748  ana->SetConeSize(jetConeSize); //was 1 - cone to calculate FF
1749  ana->SetPtThresholdInCone(ptThresholdInCone);
1750  ana->SetDeltaPhiCutRange(TMath::Pi()-deltaPhi,TMath::Pi()+deltaPhi); // Delta phi cut for correlation
1751  ana->SetJetConeSize(jetConeSize);//jet cone size / check the reco jet name
1752  ana->SetJetMinPt(jetMinPt);//min jet pt
1753  ana->SetJetAreaFraction(0.8);//min area fraction
1754  ana->SetMinPt(0.3);//min cluster pt repeated from reader
1755  ana->SetGammaConeSize(TMath::Abs(gammaConeSize));//isolation cone repeated from isolation ana
1756  ana->SetRatioCutRange(minPtRatio,maxPtRatio); // Delta pt cut for correlation
1757 
1758  ana->UseJetRefTracks(kTRUE); //Working now
1759  //Set Histograms bins and ranges
1760  //SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below 0,100,200
1761  //ana->SetHistoPtRangeAndNBins(0, 50, 200) ;
1762  //ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
1763  //ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
1765  //background subtraction for photons
1766  ana->SwitchOffBackgroundSubtractionGamma();//recomended
1767 
1768  //ana->SwitchOnSaveGJTree();
1769  ana->SwitchOffSaveGJTree();
1770  ana->SwitchOnMostOpposite();
1771  //ana->SwitchOnMostEnergetic();
1772 
1773  ana->SwitchOnHistogramTracks();
1775  ana->SwitchOnHistogramJetBkg();
1776 
1777  ana->AddToHistogramsName(Form("Ana%sJetCorr_",particle.Data()));
1778 
1779  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1780 
1781  return ana;
1782 }
1783 
1784 
1811  TList* anaList = 0x0,
1812  TString calorimeter = "EMCAL", // "DCAL", "PHOS"
1813  Bool_t simulation = kFALSE,
1814  Int_t year = 2011,
1815  TString col = "pp",
1816  TString analysisString= "Photon_MergedPi0_DecayPi0_Isolation_Correlation_QA_Charged",
1817  TString histoString = "",
1818  Float_t shshMax = 0.27,
1819  Float_t isoCone = 0.4,
1820  Float_t isoConeMin = -1,
1821  Float_t isoPtTh = 2,
1822  Int_t isoMethod = AliIsolationCut::kSumPtIC,
1824  Int_t leading = 0,
1825  Int_t tm = 2,
1826  Bool_t mixOn = kTRUE,
1827  Bool_t printSettings = kFALSE,
1828  Int_t debug = 0
1829 )
1830 {
1831  if ( !anaList )
1832  {
1833  printf("ConfigureCaloTrackCorrAnalysis() << No analysis list passed. Stop >>\n");
1834  return;
1835  }
1836 
1837  // Check the passed variables
1838  //
1839  printf("ConfigureCaloTrackCorrAnalysis() << Settings: Base string <%s>, Analysis string <%s>, "
1840  "\n calorimeter <%s>, simulation <%d>, year <%d>, col <%s>, "
1841  "\n shshMax <%2.2f>, R <%1.2f>, Rmin <%1.2f>, isoPtTh <%2.2f>, isoMethod <%d>,isoContent <%d>,"
1842  "\n leading <%d>, tm <%d>, mixOn <%d>, printSettings <%d>, debug <%d>\n",
1843  anaList->GetName(), analysisString.Data(),
1844  calorimeter.Data(), simulation, year, col.Data(),
1845  shshMax,isoCone,isoConeMin,isoPtTh,isoMethod,isoContent,
1846  leading,tm,mixOn,printSettings,debug);
1847 
1848  kAnaCutsString = analysisString;
1849 
1850  kAnaCaloTrackCorr = Form("%s",anaList->GetName());
1851 
1852  if ( analysisString.Contains("Isolation") )
1853  kAnaCaloTrackCorr+= Form("_Iso_Meth%d_Part%d_Pt%1.2f_R%1.2f",isoMethod,isoContent,isoPtTh,isoCone);
1854  if ( analysisString.Contains("Corr") && analysisString.Contains("Photon") && shshMax > 0)
1855  kAnaCaloTrackCorr+= Form("_CorrM02_%1.2f",shshMax);
1856 
1857  if ( isoConeMin > 0 ) kAnaCaloTrackCorr+=Form("_Rmin%1.2f",isoConeMin);
1858  if ( leading > 0 ) kAnaCaloTrackCorr+=Form("_Lead%d" ,leading);
1859  if ( tm > 0 ) kAnaCaloTrackCorr+=Form("_TM%d" ,tm);
1860 
1861  printf("ConfigureCaloTrackCorrAnalysis() <<<< TMP branch internal NAME: %s >>>>>\n",kAnaCaloTrackCorr.Data());
1862 
1863  // #### Configure analysis ####
1864 
1865 
1866  Int_t n = anaList->GetEntries();//Analysis number, order is important
1867 
1868  //
1869  // Photon analysis
1870  //
1871  if ( analysisString.Contains("Photon") )
1872  {
1873  anaList->AddAt(ConfigurePhotonAnalysis
1874  (col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Photon cluster selection
1875 
1876  if ( analysisString.Contains("InvMass") )
1877  anaList->AddAt(ConfigureInvariantMassAnalysis
1878  (col,simulation,calorimeter,/*bothCalo*/kFALSE,
1879  year,/*mix*/kTRUE,printSettings,debug,histoString), n++);
1880 
1881  if ( analysisString.Contains("DecayPi0") )
1882  {
1883  anaList->AddAt(ConfigurePi0EbEAnalysis
1884  ("Pi0" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1885  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 event by event selection, invariant mass and photon tagging from decay
1886 
1887  anaList->AddAt(ConfigurePi0EbEAnalysis
1888  ("Eta" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1889  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Eta event by event selection, invariant mass and photon tagging from decay
1890 
1891  anaList->AddAt(ConfigurePi0EbEAnalysis
1892  ("Pi0SideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1893  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 out of peak event by event selection, and photon tagging from decay
1894 
1895  anaList->AddAt(ConfigurePi0EbEAnalysis
1896  ("EtaSideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1897  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Eta out of peak event by event selection, and photon tagging from decay
1898  }
1899 
1900  if ( analysisString.Contains("Isolation") )
1901  {
1902  anaList->AddAt(ConfigureIsolationAnalysis
1903  ("Photon", leading, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, kFALSE,
1904  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Photon isolation
1905 
1906  }
1907 
1908  if( analysisString.Contains("Correlation") )
1909  {
1910  if ( !analysisString.Contains("MultiIso") )
1911  {
1912  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1913  ("Photon", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1914  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Gamma-hadron correlation
1915  }
1916 
1917  if ( analysisString.Contains("Isolation") )
1918  {
1919  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1920  ("Photon", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1921  col,simulation,calorimeter,year,tm,printSettings,debug,histoString) , n++); // Isolated gamma hadron correlation
1922  }
1923  } // correlation
1924 
1925  //Gamma-jet correlation
1926  if ( analysisString.Contains("GammaJet") )
1927  {
1928  if( analysisString.Contains("Isolation") )
1929  anaList->AddAt(ConfigureGammaJetAnalysis(calorimeter,year,kTRUE ,isoCone,simulation,col,printSettings,debug,histoString), n++);
1930  else
1931  anaList->AddAt(ConfigureGammaJetAnalysis(calorimeter,year,kFALSE,isoCone,simulation,col,printSettings,debug,histoString), n++);
1932  }// end of gamma-jet correlation
1933  }
1934 
1935  //
1936  // Merged pi0 analysis
1937  //
1938  if ( analysisString.Contains("MergedPi0") )
1939  {
1940  anaList->AddAt(ConfigurePi0EbEAnalysis
1941  ("Pi0", AliAnaPi0EbE::kSSCalo,kTRUE,kTRUE,
1942  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 event by event selection, cluster splitting
1943  if ( analysisString.Contains("Isolation") )
1944  {
1945  anaList->AddAt(ConfigureIsolationAnalysis
1946  ("Pi0SS", leading, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, kFALSE,
1947  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 isolation, cluster splits
1948 
1949  }
1950 
1951  if( analysisString.Contains("Correlation") )
1952  {
1953  if ( !analysisString.Contains("MultiIso") )
1954  {
1955  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1956  ("Pi0SS", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1957  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0-hadron correlation
1958  }
1959 
1960  if ( analysisString.Contains("Isolation") )
1961  {
1962  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1963  ("Pi0SS", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1964  col,simulation,calorimeter,year,tm,printSettings,debug,histoString) , n++); // Isolated pi0-hadron correlation
1965  }
1966  } // correlation
1967  }
1968 
1969  // Check the generated kinematics
1970  if(simulation && analysisString.Contains("Generator"))
1971  {
1972  anaList->AddAt(ConfigureGenKineAnalysis
1973  (isoContent,isoMethod,isoPtTh,isoCone,isoConeMin,
1974  col,simulation,calorimeter,year,printSettings,debug,histoString), n++);
1975  }
1976 
1977  // Charged analysis
1978  if ( analysisString.Contains("Charged") )
1979  {
1980  anaList->AddAt(ConfigureChargedAnalysis(simulation,printSettings,debug,histoString), n++); // track selection checks
1981  }
1982 
1983  // Charged analysis
1984  if ( analysisString.Contains("Electron") )
1985  {
1986  anaList->AddAt(ConfigureElectronAnalysis
1987  (col,simulation,calorimeter,year,printSettings,debug,histoString), n++); // electron/hadron selection checks
1988  }
1989 
1990  // Cluster Shape studies
1991  if ( analysisString.Contains("ClusterShape") )
1992  {
1993  anaList->AddAt(ConfigureClusterShape(tm,col,simulation,calorimeter,year,printSettings,debug,histoString) , n++);
1994  }
1995 
1996  // Calo QA
1997  if ( analysisString.Contains("QA") )
1998  {
1999  anaList->AddAt(ConfigureQAAnalysis(col,simulation,calorimeter,year,printSettings,debug,histoString) , n++);
2000  }
2001 
2002  // Exotics
2003  if ( analysisString.Contains("Exo") )
2004  {
2005  anaList->AddAt(ConfigureExoticAnalysis(col,simulation,calorimeter,year,printSettings,debug,histoString) , n++);
2006  }
2007 
2008  printf("ConfigureCaloTrackCorrAnalysis() << End configuration for %s with total analysis %d>>\n",
2009  kAnaCaloTrackCorr.Data(), n);
2010 }
2011 
2012 
void SetSumPtThresholds(Int_t i, Float_t pt)
void SwitchOffSelectedClusterHistoFill()
Definition: AliAnaPi0EbE.h:112
void SetPtThreshold(Float_t pt)
void ConfigureCaloTrackCorrAnalysis(TList *anaList=0x0, TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=2011, TString col="pp", TString analysisString="Photon_MergedPi0_DecayPi0_Isolation_Correlation_QA_Charged", TString histoString="", Float_t shshMax=0.27, Float_t isoCone=0.4, Float_t isoConeMin=-1, Float_t isoPtTh=2, Int_t isoMethod=AliIsolationCut::kSumPtIC, Int_t isoContent=AliIsolationCut::kNeutralAndCharged, Int_t leading=0, Int_t tm=2, Bool_t mixOn=kTRUE, Bool_t printSettings=kFALSE, Int_t debug=0)
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
TString kAnaCaloTrackCorr
Global name to be composed of the settings, used to set the AOD branch name.
void SetAngleCut(Float_t a)
Definition: AliAnaPi0.h:77
void SwitchOnPairWithOtherDetector()
Definition: AliAnaPi0.h:155
void SwitchOnFillOriginHisto()
Definition: AliAnaPi0.h:139
void SetTimeCut(Double_t min, Double_t max)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
double Double_t
Definition: External.C:58
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
TString kAnaCutsString
Global name to be composed of the analysis components chain and some internal settings.
void SwitchOnFillAllTrackMatchingHistogram()
void SetSplitWidthSigma(Float_t s)
Definition: AliCaloPID.h:286
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:139
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetClusterSplittingM02Cut(Float_t min=0, Float_t max=100)
Definition: AliCaloPID.h:267
void SwitchOnSplitShowerShapeCut()
Definition: AliCaloPID.h:263
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:101
void SetAssociatedPtRange(Float_t min, Float_t max)
Class with utils to perform Isolation Cuts.
void SetNPIDBits(Int_t s)
Definition: AliAnaPi0.h:123
void SwitchOnFillShowerShapeHistograms()
void SetCellAmpMin(Float_t amp)
void SetConeSize(Float_t r)
void SetPtFraction(Float_t pt)
void SwitchOnSelectPairInIsolationCone()
Definition: AliAnaPi0EbE.h:127
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPi0EbE.h:142
void SetMinDistanceToBadChannel(Float_t m)
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:150
void SwitchOffSplitShowerShapeCut()
Definition: AliCaloPID.h:264
Consider tracks and neutral calorimeter clusters in cone for isolation decission. ...
void SetClusterSplittingMinNCells(Int_t c)
Definition: AliCaloPID.h:270
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
Combine photon cluster pairs for invariant mass analysis.
Definition: AliAnaPi0.h:39
void SetDebug(Int_t d)
void SetMinChargedPt(Float_t pt)
virtual void SetInputAODName(TString name)
void SetM02CutForInvMass(Float_t min=0, Float_t max=10)
Definition: AliAnaPi0EbE.h:117
virtual AliIsolationCut * GetIsolationCut()
void SwitchOnSMCombinations()
Definition: AliAnaPi0.h:94
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPhoton.h:122
void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
void KeepNeutralMesonSelectionHistos(Bool_t keep)
void SetTriggerDetector(TString det)
Set the calorimeter for the analysis.
void SwitchOffTMHistoFill()
Definition: AliAnaPhoton.h:102
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
AliAnaElectron * ConfigureElectronAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug, TString histoString)
void SetConstantTimeShift(Float_t shift)
void SwitchOnAngleSelection()
Definition: AliAnaPi0.h:71
virtual void SetOutputAODClassName(TString name)
void SwitchOnTMTrackPtHistoFill()
Definition: AliAnaPhoton.h:104
void SwitchOffFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:77
virtual AliNeutralMesonSelection * GetNeutralMesonSelection()
void SetSumPtThreshold(Float_t s)
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPi0EbE.h:133
void SwitchOffMultipleCutAnalysis()
Definition: AliAnaPi0.h:115
Class for the Calorimeter QA analysis.
void SwitchOnFillShowerShapeHistogramsPerSM()
Definition: AliAnaPhoton.h:82
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
Get trigger particles/partons/jets and correlations at generator level.
void SwitchOffSplitAsymmetryCut()
Definition: AliCaloPID.h:260
void SetAnalysisType(anaTypes ana)
Definition: AliAnaPi0EbE.h:92
void SwitchOffFillWeightHistograms()
void SwitchOffTMHistoFill()
Definition: AliAnaPi0EbE.h:109
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug, TString histoString)
void SetNCellCut(Int_t n)
Definition: AliAnaPhoton.h:130
AliAnaPi0 * ConfigureInvariantMassAnalysis(TString col, Bool_t simulation, TString calorimeter, Bool_t bothCalo, Int_t year, Bool_t mixOn, Bool_t printSettings, Int_t debug, TString histoString)
Select cluster pairs or single merged clusters with pi0 or eta invariant mass.
Definition: AliAnaPi0EbE.h:30
AliAnaPhoton * ConfigurePhotonAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug, TString histoString)
void SetSimplePHOSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
AliAnaChargedParticles * ConfigureChargedAnalysis(Bool_t simulation, Bool_t printSettings, Int_t debug, TString histoString)
void SetPtFractions(Int_t i, Float_t pt)
void SetAngleMaxCut(Float_t a)
Definition: AliAnaPi0.h:78
AliAnaCaloExotics * ConfigureExoticAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug, TString histoString)
2 calorimeter clusters invariant mass selection
Definition: AliAnaPi0EbE.h:86
Selection of electron clusters in calorimeter.
const TString calorimeter
Definition: anaM.C:36
void ConfigureIsolationCut(AliIsolationCut *ic, Int_t partInCone, Int_t thresType, Float_t cone, Float_t coneMin, Float_t pth, TString col, Int_t debug)
void SetHistoTrackResidualEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetIsolationCandidateMinPt(Float_t min)
Definition: AliAnaPi0EbE.h:122
void SetAnalysisCommonParameters(AliAnaCaloTrackCorrBaseClass *ana, TString histoString, TString calorimeter, Int_t year, TString col, Bool_t simulation, Bool_t printSettings, Int_t debug)
Isolated if any particle pt in cone < fPtThreshold.
void SetPHOSRCut(Float_t rcut)
Definition: AliCaloPID.h:213
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:224
void SetLeadHadronPtCut(Float_t min, Float_t max)
virtual void SetOutputAODName(TString name)
void SetICMethod(Int_t i)
void SwitchOnFillAngleHisto()
Definition: AliAnaPi0.h:80
void SetR(Float_t r)
Definition: AliAnaPi0EbE.h:121
virtual void SetCalorimeter(TString calo)
Set the calorimeter for the analysis. A string.
Correlate trigger particles (photon, pi0, tracks) and charged tracks: Azimuthal correlations, xE distributions.
virtual void SetNTrackMultBin(Int_t n=1)
Number of bins in centrality.
void DoEMCALFiducialCut(Bool_t b)
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
Definition: AliAnaPhoton.h:140
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
1 calorimeter cluster and 1 photon conversion pair invariant mass selection
Definition: AliAnaPi0EbE.h:88
void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual AliFiducialCut * GetFiducialCut()
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
int Int_t
Definition: External.C:63
void SetSideBandCutRanges(Double_t lmin, Double_t lmax, Double_t rmin, Double_t rmax)
virtual AliHistogramRanges * GetHistogramRanges()
AliAnaGeneratorKine * ConfigureGenKineAnalysis(Int_t partInCone, Int_t thresType, Float_t pth, Float_t cone, Float_t coneMin, TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug, TString histoString)
Class to study exotic clusters.
void SwitchOnSplitAsymmetryCut()
Definition: AliCaloPID.h:259
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
float Float_t
Definition: External.C:68
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:34
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetConeSizes(Int_t i, Float_t r)
Class for cluster shape, cell T-Card correlation and exoticity.
void SwitchOnSelectIsolatedDecay()
Definition: AliAnaPi0EbE.h:124
void SwitchOffTMTrackPtHistoFill()
Definition: AliAnaPhoton.h:105
void SetM02Cut(Float_t min=0, Float_t max=10)
void SetHistoEOverPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnSplitClusterDistToBad()
Definition: AliAnaPi0EbE.h:160
void SwitchOffTrackMatchRejection()
Definition: AliAnaPi0EbE.h:149
virtual void SetHistoERangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetInputAODGammaConvName(TString name)
Definition: AliAnaPi0EbE.h:98
void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Definition: AliAnaPi0.cxx:2615
void SetMinNeutralPt(Float_t pt)
anaTypes
Analysis types.
Definition: AliAnaPi0EbE.h:84
void SetParticle(TString particleName)
Set some default parameters for selection of pi0 or eta.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:125
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString particle, Int_t leading, Int_t partInCone, Int_t thresType, Float_t cone, Float_t coneMin, Float_t pth, Bool_t multi, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug, TString histoString)
AliAnaClusterShapeCorrelStudies * ConfigureClusterShape(Int_t tm, TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug, TString histoString)
virtual TString GetAddedHistogramsStringToName() const
void SetPtThresholdMax(Float_t pt)
AliFiducialCut * GetFiducialCutForTrigger()
void SetEtaMassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:308
void SetEOverP(Float_t min, Float_t max)
Definition: AliCaloPID.h:218
void SwitchOnTMHistoFill()
Definition: AliAnaPi0EbE.h:108
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
void SetPi0MassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:307
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:202
void SetTimeCut(Float_t min, Float_t max)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPi0EbE.h:148
virtual void SetNCentrBin(Int_t n=1)
Number of bins in reaction plain.
AliAnaPi0EbE * ConfigurePi0EbEAnalysis(TString particle, Int_t analysis, Bool_t useSSIso, Bool_t useAsy, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug, TString histoString)
void SetNAsymCuts(Int_t s)
Definition: AliAnaPi0.h:121
virtual void SetNRPBin(Int_t n=1)
Number of bins for vertex position.
void SetPHOSDispersionCut(Float_t dcut)
Definition: AliCaloPID.h:208
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPi0EbE.h:100
Track selection for correlation analysis.
void SetMCGenType(Int_t min=0, Int_t max=6)
void SwitchOnFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:76
Select clusters/tracks with low particle environment in their vecinity, isolated within a cone...
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffFillWeightHistograms()
Definition: AliAnaPi0EbE.h:152
void SetEMinForExo(Float_t min)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SwitchOnEMCTrackPtDepResMatching()
Definition: AliCaloPID.h:231
virtual void SetAODObjArrayName(TString name)
void SetNTriggerPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis(TString particle, Int_t leading, Bool_t bIsolated, Float_t shshMax, Int_t partInCone, Int_t thresType, Float_t cone, Float_t coneMin, Float_t pth, Bool_t mixOn, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug, TString histoString)
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
Same as kSumPtIC, but sum pt particle in cone subtracted from UE estimated in perpendicular cones...
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
Class that contains methods to select candidate cluster pairs to neutral meson.
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void DoPHOSFiducialCut(Bool_t b)
void SetOtherDetectorInputName(TString name)
Definition: AliAnaPi0.h:157
void SetNAssocPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:53
1 calorimeter cluster shower shape and split invariatn mass selection
Definition: AliAnaPi0EbE.h:87
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:148
virtual void SetNMaxEvMix(Int_t n=20)
Number of bins in track multiplicity.
void SetNCellCut(Int_t n)
void SetNLMMinEnergy(Int_t i, Float_t min)
Definition: AliAnaPi0EbE.h:138
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
bool Bool_t
Definition: External.C:53
void SetLeadHadronPhiCut(Float_t min, Float_t max)
AliAnaParticleJetFinderCorrelation * ConfigureGammaJetAnalysis(TString calorimeter="EMCAL", Int_t year=2011, Bool_t isolationMatters=kTRUE, Float_t gammaConeSize=0.3, Bool_t simulation=kFALSE, TString col="pp", Bool_t printSettings=kFALSE, Int_t debug=-1, TString histoString="")
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffEMCTrackPtDepResMatching()
Definition: AliCaloPID.h:232
void SwitchOffConeExcessCorrectionHistograms()
void SwitchOnConeExcessCorrectionHistograms()
void ana(anaModes mode=mGRID)
Definition: ana.C:1036
void SetInvMassCutMaxParameters(Float_t a, Float_t b, Float_t c)
void SetHistoHBPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALLambda0CutMin(Float_t lcut)
Definition: AliCaloPID.h:205
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetParticleTypeInCone(Int_t i)
void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetSubClusterEnergyMinimum(Int_t i, Float_t min)
Definition: AliCaloPID.h:276
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:221
Isolated if sum pt particle in cone < fSumPtThreshold.
void SetPhotonMassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:309
void SetPtThresholds(Int_t i, Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffAllNLMHistoFill()
Definition: AliAnaPi0EbE.h:106
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:133
void SetMinDistToTrigger(Float_t md)
Int_t GetFirstSMCoveredByTRD() const
Time cut in ns.
void SetTriggerPtRange(Float_t min, Float_t max)