AliPhysics  b69f57c (b69f57c)
ConfigureCaloTrackCorrAnalysis.C
Go to the documentation of this file.
1 
23 // Set includes for compilation
24 
25 #if !defined(__CINT__) || defined(__MAKECINT__)
26 
27 #include <TString.h>
28 #include <TSystem.h>
29 #include <TROOT.h>
30 
31 #include "AliAnaPhoton.h"
32 #include "AliAnaElectron.h"
33 #include "AliAnaPi0.h"
34 #include "AliAnaPi0EbE.h"
35 #include "AliHistogramRanges.h"
38 #include "AliAnaChargedParticles.h"
39 #include "AliAnaCalorimeterQA.h"
41 #include "AliAnaGeneratorKine.h"
44 #endif
45 
48 
50 // Some examples of strings: "Photon_MergedPi0_DecayPi0_Isolation_Correlation_Bkg_QA_Charged_HighMult_MultiIso_PerSM_PerTCard",
52 
70  TString col, Bool_t simulation,
71  Bool_t printSettings, Int_t debug)
72 {
73  //
74  // Histograms ranges
75  //
76  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
77 
78  if ( histoString != "" )
79  ana->AddToHistogramsName(Form("%s_%s", histoString.Data(), (ana->GetAddedHistogramsStringToName()).Data()) );
80 
81  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
82 
83  if(calorimeter=="EMCAL")
84  {
85  ana->SetFirstSMCoveredByTRD(-1);
86 
87  if ( year == 2010 )
88  {
89  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
90  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
91  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
92  }
93  else if ( year < 2014 )
94  {
95  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 104) ;
96  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
97  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
98 
99  if (year == 2011) ana->SetFirstSMCoveredByTRD( 6);
100  else if(year == 2012 ||
101  year == 2013) ana->SetFirstSMCoveredByTRD( 4);
102  }
103  else // Run2
104  {
105  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 189*TMath::DegToRad(), 111) ;
106  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA, revise
107  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA, revise
108  }
109 
110  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
111  }
112  else if(calorimeter=="DCAL")
113  {
114  histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 327*TMath::DegToRad(), 67) ;
115  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
116  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA, revise
117  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA, revise
118  }
119  else if(calorimeter=="PHOS")
120  {
121  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
122  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
123  }
124  else if(calorimeter=="CTS")
125  {
126  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
127  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
128  }
129 
130  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 2.9, 300);
131 
132  // Invariant mass histo
133  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
134  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
135 
136  // check if time calibration is on
137  //histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
138  histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
139  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
140 
141  // track-cluster residuals
142  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.06,0.06,120);
143  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.06,0.06,120);
144  histoRanges->SetHistodRRangeAndNBins(0.,0.06,60);//QA
145 
146  // QA, electron, charged
147  histoRanges->SetHistoEOverPRangeAndNBins(0,1.5,150);
148  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
149 
150  // QA
151  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
152  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
153  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
154  histoRanges->SetHistoRRangeAndNBins(430,460,30);
155  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
156  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
157 
158  // QA, correlation
159  if(col=="PbPb")
160  {
161  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
162  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
163  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
164  }
165  else
166  {
167  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
168  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
169  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
170  }
171 
172  // xE, zT
173  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
174  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,200);
175 
176  // Isolation
177  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
178  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
179 
180  //
181  // MC histograms?
182  //
183  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
184  else ana->SwitchOffDataMC() ;
185 
186 
187  //
188  // Specialized histograms on multiplicity
189  //
190  if ( kAnaCutsString.Contains("HighMult") )
192  else
194 
195  //
196  // Debug
197  //
198  if(printSettings) ana->Print("");
199 
200  ana->SetDebug(debug); // 10 for lots of messages
201 }
202 
217  TString calorimeter, Int_t year, Int_t tm,
218  Bool_t printSettings, Int_t debug,
219  TString histoString )
220 {
221  AliAnaPhoton *ana = new AliAnaPhoton();
222 
223  // cluster selection cuts
224 
226 
227  ana->SwitchOnFiducialCut();
228  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
229  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
230 
231  if ( kAnaCutsString.Contains("TightAcc") )
232  {
233  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
234  }
235 
236  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
237 
238  ana->SetCalorimeter(calorimeter);
239  if(calorimeter == "DCAL")
240  {
241  TString calo = "EMCAL";
242  ana->SetCalorimeter(calo);
243  }
244 
245  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
246  if ( kAnaCutsString.Contains("MultiIso") ) ana->SwitchOffFillShowerShapeHistograms();
247 
248  if ( kAnaCutsString.Contains("PerSM") )
250 
251  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
252 
253  if(tm) ana->SwitchOnTrackMatchRejection() ;
254  else ana->SwitchOffTrackMatchRejection() ;
255 
256  // Fill track matching histograms if track matching activated
257  // and only once in case of multiple analysis
258  if ( tm && !kAnaCutsString.Contains("MultiIso") )
259  {
260  ana->SwitchOnTMHistoFill() ;
261  if(tm > 1) ana->SwitchOnTMTrackPtHistoFill() ;
262  }
263 
264  if(calorimeter == "PHOS")
265  {
266  ana->SetNCellCut(2);// At least 3 cells
267  ana->SetMinPt(0.3);
268  ana->SetMinDistanceToBadChannel(2, 4, 5);
269  ana->SetTimeCut(-1e10,1e10); // open cut
270  }
271  else
272  {//EMCAL
273  ana->SetNCellCut(1);// At least 2 cells
274  ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
275  ana->SetMaxEnergy(100);
276  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
277  // restrict to less than 100 ns when time calibration is on
278  ana->SetMinDistanceToBadChannel(2, 4, 6);
279 
280  // NLM cut, used in all, exclude clusters with more than 2 maxima
281  // Not needed if M02 cut is already strong or clusterizer V2
282  ana->SetNLMCut(1, 2) ;
283  }
284 
285  //PID cuts (shower shape)
286  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
287  AliCaloPID* caloPID = ana->GetCaloPID();
288  //Not used in bayesian
289 
290  // EMCAL
291 
292  //caloPID->SetEMCALLambda0CutMax(0.27);
293  caloPID->SetEMCALLambda0CutMax(10); // open, full shower shape needed for isolation studies
294  caloPID->SetEMCALLambda0CutMin(0.10);
295 
296  // Track matching
297  // tm = 1, fixed cuts
298  caloPID->SetEMCALDEtaCut(0.025);
299  caloPID->SetEMCALDPhiCut(0.030);
300 
301  // pT track dependent cuts
302  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
303 
304  // PHOS
305  caloPID->SetPHOSDispersionCut(2.5);
306  caloPID->SetPHOSRCut(2.);
307  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
308 
309  // Branch AOD settings
310  ana->SetOutputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
311  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
312 
313  //Set Histograms name tag, bins and ranges
314  //ana->AddToHistogramsName(Form("AnaPhoton_TM%d_",tm));
315  ana->AddToHistogramsName("AnaPhoton_");
316 
317  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
318 
319  if(ana->GetFirstSMCoveredByTRD() > 0)
320  printf("ConfigurePhotonAnalysis() >>> Set first SM covered by TRD, SM=%d <<< year %d \n", ana->GetFirstSMCoveredByTRD(),year);
321 
322  // Number of particle type MC histograms
323  ana->FillNOriginHistograms (17); // 18 max
324  ana->FillNPrimaryHistograms(6); // 6 max
325 
326  return ana;
327 }
328 
342  TString calorimeter, Int_t year,
343  Bool_t printSettings, Int_t debug,
344  TString histoString)
345 {
347  ana->SetDebug(debug); //10 for lots of messages
348 
349  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
350  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
351 
352  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
353 
354  ana->SetCalorimeter(calorimeter);
355  if(calorimeter == "DCAL")
356  {
357  TString calo = "EMCAL";
358  ana->SetCalorimeter(calo);
359  }
360 
361  // What particles to select:
362  //ana->FillAODWithElectrons();
363  //ana->FillAODWithHadrons();
364  ana->FillAODWithAny(); // Both
365 
366  if(calorimeter == "PHOS")
367  {
368  ana->SetNCellCut(2);// At least 2 cells
369  ana->SetMinPt(0.3);
371  }
372  else
373  {// EMCAL
374  ana->SetNCellCut(1);// At least 2 cells
375  ana->SetMinPt(0.7); // no effect minium EMCAL cut.
376  ana->SetMaxPt(100);
377  //ana->SetTimeCut(400,900);// Time window of [400-900] ns
379  }
380 
381  // Electron selection cuts with tracks
382  //ana->SetM02Range(0.05, 0.35);
383  //ana->SetM20Range(-10, 0.3);
384  //ana->SetEOverP(0.9, 1.2);
385  //ana->SetNSigma(-1, 3);
386  //ana->SetNSigmaForHadron(-10, -4);
387 
388 // if (kRunNumber < 146861) ana->SetdEdxCut(72, 90);
389 // else if(kRunNumber < 154000) ana->SetdEdxCut(54, 70);
390 // else ana->SetdEdxCut(74, 90);
391 //
392 // if(simulation) ana->SetdEdxCut(80, 100);
393 
395 
397 
398  ana->SetOutputAODName(Form("Electron_%s",kAnaCaloTrackCorr.Data()));
399  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
400 
401  // Set Histograms name tag, bins and ranges
402 
403  //ana->AddToHistogramsName(Form("AnaElectron_TM%d_",tm));
404  ana->AddToHistogramsName("AnaElectron_");
405 
406  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
407 
408  //if(printSettings)
409  ana->Print("");
410 
411  return ana ;
412 }
413 
432  Bool_t useSSIso, Bool_t useAsy,
433  TString col, Bool_t simulation,
434  TString calorimeter, Int_t year, Int_t tm,
435  Bool_t printSettings, Int_t debug,
436  TString histoString )
437 {
438  // Configuration of pi0 event by event selection
439 
440  AliAnaPi0EbE *ana = new AliAnaPi0EbE();
441 
442  ana->SetDebug(debug);
443 
444  ana->SetAnalysisType((AliAnaPi0EbE::anaTypes)analysis);
445  TString opt = "";
446  if(analysis==AliAnaPi0EbE::kIMCaloTracks) opt = "Conv";
447  if(analysis==AliAnaPi0EbE::kSSCalo) opt = "SS";
448 
451 
453  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
454  //if(!kTime && !simulation) ana->SwitchOnFillEMCALBCHistograms();
455 
456  if(tm) ana->SwitchOnTrackMatchRejection() ;
457  else ana->SwitchOffTrackMatchRejection() ;
458 
459  if ( tm && !kAnaCutsString.Contains("Photon") && !kAnaCutsString.Contains("MultiIso") )
460  ana->SwitchOnTMHistoFill() ;
461  else
462  ana->SwitchOffTMHistoFill() ;
463 
464  ana->SetCalorimeter(calorimeter);
465  if(calorimeter == "DCAL")
466  {
467  TString calo = "EMCAL";
468  ana->SetCalorimeter(calo);
469  }
470 
471  // Branch AOD settings
472  ana->SetOutputAODName(Form("%s%sTrigger_%s",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
473  printf("ConfigurePi0EbEAnalysis() *** Out branch %s***\n",ana->GetOutputAODName().Data());
474  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
475 
476  if(analysis == AliAnaPi0EbE::kIMCaloTracks) ana->SetInputAODGammaConvName("PhotonsCTS");
477 
478  //Set Histograms name tag, bins and ranges
479 
480  //ana->AddToHistogramsName(Form("Ana%s%sEbE_TM%d_",particle.Data(),opt.Data(),tm));
481  ana->AddToHistogramsName(Form("Ana%s%sEbE_",particle.Data(),opt.Data()));
482 
483  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
484 
486  if(analysis!=AliAnaPi0EbE::kSSCalo)
487  {
488  ana->SetInputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
489 
490  ana->SetM02CutForInvMass(0.1,0.35); // Loose SS cut
491 
493  ana->SetR(0.4);
495 
496  if(useSSIso)
497  {
499  //ana->AddToHistogramsName(Form("Ana%s%sEbEIsoDecay_TM%d_",particle.Data(),opt.Data(),tm));
500  ana->AddToHistogramsName(Form("Ana%s%sEbEIsoDecay_",particle.Data(),opt.Data()));
501  ana->SetOutputAODName(Form("%s%sIsoDecayTrigger_%s",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
502  }
503 
504  if ( calorimeter.Contains("CAL") && !simulation ) ana->SetPairTimeCut(100);
505 
507  nms->SetParticle(particle);
508 
509  //****
510  nms->SetInvMassCutMaxParameters(0,0,0); // Overrule the setting in SetParticle for Pi0 option
511  //****
512 
513  // Tighten a bit mass cut with respect to default window
514  if(particle=="Pi0") nms->SetInvMassCutRange(0.110,0.160);
515  if(particle=="Eta") nms->SetInvMassCutRange(0.520,0.580);
516 
517  //if(!particle.Contains("SideBand")) nms->SwitchOnAngleSelection();
518  //else nms->SwitchOnAngleSelection();
519 
521 
522  if(particle.Contains("Pi0SideBand")) // For pi0, do not consider left band
523  nms->SetSideBandCutRanges(-1,0,0.190,0.240);
524 
525  if(particle.Contains("EtaSideBand")) // For pi0, do not consider left band
526  nms->SetSideBandCutRanges(0.410,0.470,0.620,0.680);
527 
529  //nms->SetAngleMaxParam(2,0.2);
530  nms->SetHistoERangeAndNBins(0, 20, 80) ;
531  //nms->SetHistoIMRangeAndNBins(0, 1, 400);
532  }
533  else
534  {
535  ana->SwitchOnFiducialCut();
536  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
537  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
538 
539  if ( kAnaCutsString.Contains("TightAcc") )
540  {
541  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
542  }
543 
544  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
545 
546  // cluster splitting settings
547  ana->SetMinEnergy(6);
548  ana->SetMaxEnergy(100.);
549 
550  ana->SetNLMMinEnergy(0, 10);
551  ana->SetNLMMinEnergy(1, 6);
552  ana->SetNLMMinEnergy(2, 6);
553 
554  // NLM cut, used in all, exclude clusters with more than 2 maxima
555  ana->SetNLMCut(1, 2) ;
556 
557  //
558  ana->SetMinDistanceToBadChannel(2, 4, 6);
560  ana->SetTimeCut(-1e10,1e10); // Open time cut
561 
562  AliCaloPID* caloPID = ana->GetCaloPID();
563 
564  // Track matching
565  // tm = 1, fixed cuts
566  caloPID->SetEMCALDEtaCut(0.025);
567  caloPID->SetEMCALDPhiCut(0.030);
568 
569  // pT track dependent cuts
570  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
571 
572  caloPID->SetSplitWidthSigma(3); // cut at 3 sigma of the mean pi0 peak.
573 
574  if(!useSSIso)
575  {
576  printf("ConfigurePi0EbEAnalysis() << Do not apply SS cut on merged pi0 analysis >> \n");
577  caloPID->SwitchOffSplitShowerShapeCut() ;
578  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_TM%d_",particle.Data(),opt.Data(),tm));
579  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_",particle.Data(),opt.Data()));
580  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
581  caloPID->SetClusterSplittingM02Cut(0.1,10);
582  }
583  else
584  {
585  caloPID->SetClusterSplittingM02Cut(0.3,4); // Do the selection in the analysis class and not in the PID method to fill SS histograms
586  caloPID->SwitchOnSplitShowerShapeCut() ;
587  }
588 
589  if(useAsy)
590  {
591  caloPID->SwitchOnSplitAsymmetryCut() ;
593  ana->GetCaloPID()->SetSubClusterEnergyMinimum(1,0.5);
594  ana->GetCaloPID()->SetSubClusterEnergyMinimum(2,0.5);
595  }
596  else
597  {
598  caloPID->SwitchOffSplitAsymmetryCut() ;
599  if(!useSSIso)
600  {
601  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
602  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_OpenAsy_",particle.Data(),opt.Data()));
603  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS_OpenAsy",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
604  }
605  else
606  {
607  //ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
608  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenAsy_",particle.Data(),opt.Data()));
609  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenAsy",particle.Data(), opt.Data(), kAnaCaloTrackCorr.Data()));
610  }
611  }
612 
613  // For Pi0 only if SwitchOnSimpleSplitMassCut()
614  caloPID->SetPi0MassRange(0.10, 0.18);
615  caloPID->SetEtaMassRange(0.50, 0.60);
616  caloPID->SetPhotonMassRange(0.00, 0.08);
617 
618  caloPID->SetClusterSplittingMinNCells(6);
619 
620  //caloPID->SetSplitEnergyFractionMinimum(0, 0.95);
621  //caloPID->SetSplitEnergyFractionMinimum(1, 0.95);
622  //caloPID->SetSplitEnergyFractionMinimum(2, 0.8);
623 
624  if(col=="PbPb" || kAnaCaloTrackCorr.Contains("150"))
625  {
626  caloPID->SetClusterSplittingMinNCells(4);
627  //caloPID->SetPi0MassShiftHighECell(0.005);
628  }
629  }
631 
632  return ana;
633 }
634 
635 
651 (TString col, Bool_t simulation,
652  TString calorimeter, Bool_t bothCalo,
653  Int_t year, Bool_t mixOn,
654  Bool_t printSettings, Int_t debug,
655  TString histoString )
656 {
657  AliAnaPi0 *ana = new AliAnaPi0();
658 
659  ana->SetDebug(debug);
660 
661  // Input delta AOD settings
662  ana->SetInputAODName(Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data()));
663 
664  if(bothCalo)
665  {
667 
668  TString otherDetector = Form("PhotonTrigger_%s",kAnaCaloTrackCorr.Data());
669 
670  if ( calorimeter == "EMCAL" )
671  otherDetector.ReplaceAll("PhotonTrigger_EMCAL","PhotonTrigger_PHOS");
672  else
673  otherDetector.ReplaceAll("PhotonTrigger_PHOS","PhotonTrigger_EMCAL");
674 
675  ana->SetOtherDetectorInputName(otherDetector);
676  }
677 
678  // Calorimeter settings
679  ana->SetCalorimeter(calorimeter);
680  if(calorimeter == "DCAL")
681  {
682  TString calo = "EMCAL";
683  ana->SetCalorimeter(calo);
684  }
685 
686  // Acceptance plots
687  ana->SwitchOnFiducialCut();
688  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
689  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
690 
691  if ( calorimeter.Contains("CAL") ) ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
692 
694 
695  // settings for pp collision mixing
696  if(mixOn) ana->SwitchOnOwnMix();
697  else ana->SwitchOffOwnMix();
698 
699  // Cuts
700  if (calorimeter == "EMCAL" )
701  {
702  if(year < 2014) ana->SetPairTimeCut(50);
703  else ana->SetPairTimeCut(200); // REMEMBER to remove this when time calib is on
704  }
705 
706  ana->SetNPIDBits(1);
707  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
708  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
709 
710  if (col == "pp" )
711  {
712  printf("ConfigureInvariantMassAnalysis() - Set pp configuration\n");
713  ana->SetNCentrBin(1);
714  ana->SwitchOffTrackMultBins();
715  ana->SetNZvertBin(10);
716  ana->SetNRPBin(1);
717  ana->SetNMaxEvMix(100);
718  ana->SetMinPt(0.7);
719  }
720  else if(col == "PbPb")
721  {
722  printf("ConfigureInvariantMassAnalysis() - Set PbPb configuration\n");
723  ana->SetNCentrBin(10);
724  ana->SetNZvertBin(10);
725  ana->SetNRPBin(4);
726  ana->SetNMaxEvMix(10);
727  ana->SetMinPt(1.5);
728  }
729  else if(col =="pPb")
730  {
731  printf("ConfigureInvariantMassAnalysis() - Set pPb configuration\n");
732  ana->SetNCentrBin(1);
733  ana->SetNZvertBin(10);
734  ana->SetNRPBin(4);
735  ana->SetNMaxEvMix(100);
736  ana->SetMinPt(0.7);
737  }
738 
739  // Angle cut, avoid pairs with too large angle
740  ana->SwitchOnAngleSelection();
741  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
742  ana->SetAngleCut(0.017); // Minimum angle open, cell size
743 
744  if ( kAnaCutsString.Contains("PerSM") ) //&& !bothCalo )
745  ana->SwitchOnSMCombinations();
746 
748  ana->SwitchOnFillAngleHisto();
749  ana->SwitchOnFillOriginHisto(); // MC
750 
751  // Set Histograms name tag, bins and ranges
752  if(!bothCalo) ana->AddToHistogramsName(Form("AnaPi0_"));
753  else ana->AddToHistogramsName(Form("AnaPi0_2Det_"));
754 
755  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
756  if(printSettings) ana->Print("");
757 
758  return ana;
759 }
760 
761 
783  Int_t partInCone, Int_t thresType,
784  Float_t cone, Float_t coneMin,
785  Float_t pth, Bool_t multi,
786  TString col, Bool_t simulation,
787  TString calorimeter, Int_t year, Int_t tm,
788  Bool_t printSettings, Int_t debug,
789  TString histoString )
790 {
792 
793  ana->SetDebug(debug);
794 
795  ana->SetMinPt(5);
796  ana->SetCalorimeter(calorimeter);
797  if(calorimeter == "DCAL")
798  {
799  TString calo = "EMCAL";
800  ana->SetCalorimeter(calo);
801  }
802 
804  ana->SwitchOffCellHistoFill() ;
805 
806  ana->SwitchOffLeadingOnly();
808  if( leading > 0 ) ana->SwitchOnLeadingOnly();
809  if( leading == 2 ||
810  leading == 4) ana->SwitchOnCheckNeutralClustersForLeading();
811 
812  // MC
815 
816  ana->SwitchOffSSHistoFill();
817 
818  if(particle.Contains("Photon"))
819  {
820  ana->SwitchOnSSHistoFill();
821 
822  if(kAnaCutsString.Contains("Decay"))
823  {
825  ana->SetNDecayBits(5);
826  }
827  }
828 
829  if ( kAnaCutsString.Contains("PerSM") )
830  {
832  ana->SwitchOnStudyNCellsCut();
833  }
834 
835  if ( kAnaCutsString.Contains("PerTCard") )
837 
838  if(kAnaCutsString.Contains("Bkg"))
839  {
840  printf("ConfigureIsolationAnalysis() *** Activate analysis on PtTrig and Bkg bins >> \n");
842  ana->SetNPtTrigBins(6);
843  //ana->SetPtTrigLimits(0,8); ana->SetPtTrigLimits(1,12); ana->SetPtTrigLimits(2,16); ana->SetPtTrigLimits(3,25);
844 
846  ana->SetNBackgroundBins(11);
847  //ana->SetBackgroundLimits(0,0); ana->SetBackgroundLimits(1,0.2); ana->SetBackgroundLimits(2,3); ana->SetBackgroundLimits(3,0.4);
848  }
849 
850  if(!tm) ana->SwitchOnTMHistoFill();
851  else ana->SwitchOffTMHistoFill();
852 
853  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
854 
855  // Avoid borders of calorimeter
857  ana->SwitchOnFiducialCut();
858  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
859  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 266, 314) ;
860  else if ( calorimeter == "PHOS" ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 266, 314) ;
861 
862  if ( kAnaCutsString.Contains("TightAcc") )
863  {
864  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.27, 103, 157) ; // EMC
865  }
866 
867  // Same Eta as EMCal, cut in phi if EMCAL was triggering
868  if(particle=="Hadron" || particle.Contains("CTS"))
869  {
870  //if(trigger.Contains("EMC"))
871  // ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 260, 360) ;
872  //else
873  ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 0, 360) ;
874  }
875 
876  // Branch AOD settings
877 
878  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
879  ana->SetAODObjArrayName(Form("IC%sTrigger_%s_R%1.1f_ThMin%1.1f",particle.Data(),kAnaCaloTrackCorr.Data(),cone,pth));
880 
881  //
882  // Do settings for main isolation cut class
883  //
884  AliIsolationCut * ic = ana->GetIsolationCut();
885  ic->SetDebug(debug);
886  ic->SetParticleTypeInCone(partInCone);
887  ic->SetICMethod(thresType);
888  ic->SetPtFraction(0.1);
889  ic->SetPtThreshold(0.5); // default, change in next lines
890  ic->SetSumPtThreshold(1.0); // default, change in next lines
891 
892  if(cone > 0 && pth > 0)
893  {
894  ic->SetConeSize(cone);
895  ic->SetMinDistToTrigger(coneMin);
896  ic->SetPtThresholdMax(10000);
897 
898  if(thresType == AliIsolationCut::kPtThresIC)
899  {
900  printf("ConfigureIsolationAnalysis() *** Iso *** PtThresMin = %1.1f GeV/c *** R = %1.2f *** R min %1.2f\n",pth,cone,coneMin);
901  ic->SetPtThreshold(pth);
902  }
903 
904  if(thresType == AliIsolationCut::kSumPtIC)
905  {
906  printf("ConfigureIsolationAnalysis() *** Iso *** SumPtMin = %1.1f GeV/c *** R = %1.1f *** R min %1.2f\n",pth,cone,coneMin);
907  ic->SetSumPtThreshold(pth);
908  }
909  }
910  else
911  {
912  if(col=="pp")
913  {
914  ic->SetPtThreshold(0.5);
915  ic->SetSumPtThreshold(1.0) ;
916  ic->SetConeSize(0.4);
917  ic->SetMinDistToTrigger(-1);
918  }
919  if(col=="PbPb")
920  {
921  ic->SetPtThreshold(3.);
922  ic->SetSumPtThreshold(3.0) ;
923  ic->SetConeSize(0.3);
924  ic->SetMinDistToTrigger(-1);
925  }
926  }
927 
928 
929  // Do or not do isolation with previously produced AODs.
930  // No effect if use of SwitchOnSeveralIsolation()
931  ana->SwitchOffReIsolation();
932 
933  // Multiple IC
934  if(multi)
935  {
936  ic->SetConeSize(1.); // Take all for first iteration
937  ic->SetPtThreshold(100);// Take all for first iteration
938  ic->SetMinDistToTrigger(-1);
939 
940  ana->SwitchOnSeveralIsolation() ;
941  //ana->SetAODObjArrayName(Form("MultiIC%sTM%d",particle.Data(),tm));
942  ana->SetAODObjArrayName(Form("MultiIC%s",particle.Data()));
943 
944  ana->SetNCones(3);
945  ana->SetNPtThresFrac(2);
946  ana->SetConeSizes(0,0.3); ana->SetConeSizes(1,0.4); ana->SetConeSizes(2,0.5);
947  ana->SetPtThresholds(0, 0.5); ana->SetPtThresholds(1, 1); ana->SetPtThresholds(2, 1.5); ana->SetPtThresholds(3, 2);
948  ana->SetPtFractions (0, 0.05) ; ana->SetPtFractions (1, 0.1); ana->SetPtFractions (2, 0.2) ; ana->SetPtFractions (3, 0.3) ;
949  ana->SetSumPtThresholds(0, 0.5) ; ana->SetSumPtThresholds(1, 1) ; ana->SetSumPtThresholds(2, 1.5); ana->SetSumPtThresholds(3, 2) ;
950  //ana->SetPtThresholds(0, 0.5);
951 
952  ana->SwitchOffTMHistoFill();
953  ana->SwitchOffSSHistoFill();
954  }
955  else
957 
958  AliCaloPID* caloPID = ana->GetCaloPID();
959 
960  // Track matching
961  // tm = 1, fixed cuts
962  caloPID->SetEMCALDEtaCut(0.025);
963  caloPID->SetEMCALDPhiCut(0.030);
964 
965  // pT track dependent cuts
966  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
967 
968  //Set Histograms name tag, bins and ranges
969 
970 // if(!multi) ana->AddToHistogramsName(Form("AnaIsol%s_TM%d_" ,particle.Data(),tm));
971 // else ana->AddToHistogramsName(Form("AnaMultiIsol%s_TM%d_",particle.Data(),tm));
972  if(!multi) ana->AddToHistogramsName(Form("AnaIsol%s_" ,particle.Data()));
973  else ana->AddToHistogramsName(Form("AnaMultiIsol%s_",particle.Data()));
974 
975  SetAnalysisCommonParameters(ana,histoString, calorimeter,year,col,simulation,printSettings,debug); // see method below
976 
977  if(particle=="Hadron" || particle.Contains("CTS"))
978  {
979  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
980  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
981  }
982 
983  if(printSettings) ic ->Print("");
984 
985  return ana;
986 }
987 
1010  Bool_t bIsolated, Float_t shshMax,
1011  Int_t partInCone, Int_t thresType,
1012  Float_t cone, Float_t coneMin,
1013  Float_t pth, Bool_t mixOn,
1014  TString col, Bool_t simulation,
1015  TString calorimeter, Int_t year, Int_t tm,
1016  Bool_t printSettings, Int_t debug,
1017  TString histoString )
1018 {
1020 
1021  ana->SetTriggerPtRange(5,100);
1022  ana->SetAssociatedPtRange(0.2,100);
1023  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
1024 
1025  // Underlying event
1026  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
1028 
1029  ana->SwitchOffAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
1030  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
1032 
1033  if(leading > 0 && leading < 3 ) ana->SwitchOnAbsoluteLeading();
1034  if(leading > 2 ) ana->SwitchOnNearSideLeading();
1035  if(leading == 2 || leading == 4 ) ana->SwitchOnCheckNeutralClustersForLeading();
1036 
1038  ana->SwitchOffCorrelationVzBin() ;
1040 
1042 
1043  if(particle.Contains("Photon"))
1044  {
1045  if(kAnaCutsString.Contains("Decay"))
1046  {
1047  printf("ConfigureHadronCorrelationAnalysis() *** Activate analysis on Tagged clusters as Decay product >> \n");
1049  ana->SetNDecayBits(5);
1051  if ( kAnaCutsString.Contains("Bkg") && !bIsolated )
1053  }
1054 
1055  //printf("ConfigureHadronCorrelationAnalysis() *** SET M02 limits in correlation task *** \n");
1056  ana->SetM02Cut(0.10,shshMax);
1057  }
1058 
1059  if ( kAnaCutsString.Contains("PerSM") )
1061 
1062  if ( kAnaCutsString.Contains("PerTCard") )
1064 
1065  ana->SetMCGenType(0,7); // Change to higher to include Tagged decays
1066 
1067  ana->SwitchOffLeadHadronSelection(); // Open cuts, just fill histograms
1069 
1070  if ( kAnaCutsString.Contains("Bkg") && !bIsolated )
1071  {
1072  printf("ConfigureHadronCorrelationAnalysis() *** Activate analysis on PtTrig and Bkg bins,\n"
1073  " \t make sure isolation runs first even if not used to select trigger >> \n");
1075  }
1076 
1077  ana->SetLeadHadronPhiCut(TMath::DegToRad()*130, TMath::DegToRad()*230.);
1078  ana->SetLeadHadronPtCut(0.5, 1000);
1079 
1080  // if triggering on PHOS and EMCAL is on
1081  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
1082  //ana->SetPi0AODBranchName("Pi0EMCAL_TrigEMC7_Cl_TM1");
1083 
1085 
1087 
1088  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
1089 
1091 
1092  ana->SetNAssocPtBins(16); // set last bin [20,30] GeV/c
1093  // See AliAnaParticleCorrelation::InitParameters();
1094  // 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
1095  // If you want to change it:
1096  // ana->SetAssocPtBinLimit(0, 1) ;
1097  // ana->SetAssocPtBinLimit(1, 2) ;
1098  // ana->SetAssocPtBinLimit(2, 3) ;
1099  // ana->SetAssocPtBinLimit(3, 4) ;
1100  // ana->SetAssocPtBinLimit(4, 5) ;
1101  // ana->SetAssocPtBinLimit(5, 8) ;
1102  // ana->SetAssocPtBinLimit(6, 10) ;
1103  // ana->SetAssocPtBinLimit(7, 100);
1104 
1105  ana->SetNTriggerPtBins(5); // set last bin [25,30] GeV/c
1106  // See AliAnaParticleCorrelation::InitParameters();
1107  // Default bins{10,12,16,20,25,30,40,50,75,100} GeV/c
1108  // If you want to change it:
1109  // ana->SetTriggerPtBinLimit(0, 5) ;
1110  // ana->SetTriggerPtBinLimit(1, 10) ;
1111 
1112  ana->SelectIsolated(bIsolated); // do correlation with isolated photons
1113 
1114  // Mixing with own pool
1115  if(mixOn)
1116  {
1117  ana->SwitchOnOwnMix();
1119 
1120  if(bIsolated)
1121  {
1122  //Do settings for main isolation cut class
1123  AliIsolationCut * ic = ana->GetIsolationCut();
1124  ic->SetDebug(debug);
1125 
1126  if(cone >0 && pth > 0)
1127  {
1128  //printf("ConfigureHadronCorrelationAnalysis() *** PtThres = %1.1f GeV/c *** R = %1.1f *** R min = %1.2f\n",pth,cone,coneMin);
1129  ic->SetPtThreshold(pth);
1130  ic->SetConeSize(cone);
1131  ic->SetMinDistToTrigger(coneMin);
1132  }
1133  else
1134  {
1135  if(col=="pp")
1136  {
1137  ic->SetPtThreshold(0.5);
1138  ic->SetConeSize(0.4);
1139  ic->SetMinDistToTrigger(-1);
1140  }
1141  if(col=="PbPb")
1142  {
1143  ic->SetPtThreshold(3.);
1144  //ic->SetPtThreshold(1.);
1145  ic->SetConeSize(0.3);
1146  ic->SetMinDistToTrigger(-1);
1147  }
1148  }
1149 
1150  ic->SetPtFraction(0.1);
1151  ic->SetSumPtThreshold(1.0) ;
1152  ic->SetParticleTypeInCone(partInCone);
1153  ic->SetICMethod(thresType);
1154  }
1155  }
1156  else
1157  ana->SwitchOffOwnMix();
1158 
1159  ana->SetNZvertBin(20);
1160 
1161  if(col=="pp")
1162  {
1163  ana->SetNMaxEvMix(100);
1164  ana->SwitchOnTrackMultBins();
1165  ana->SetNTrackMultBin(10);
1166  ana->SetNRPBin(1);
1167  }
1168  else
1169  {
1170  ana->SetNMaxEvMix(10);
1171  ana->SwitchOffTrackMultBins(); // centrality bins
1172  ana->SetNCentrBin(12);
1173  ana->SetNRPBin(3);
1174  if(kAnaCaloTrackCorr.Contains("60_90"))
1175  {
1176  //printf("ConfigureHadronCorrelationAnalysis() *** Set mixing for peripheral ***\n");
1177  ana->SetNMaxEvMix(50);
1178  ana->SetNCentrBin(2);
1179  }
1180  }
1181 
1182  // Avoid borders of calorimeter, same as for isolation
1183  //
1184  ana->SwitchOnFiducialCut();
1185  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
1186  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 266, 314) ;
1187  else if ( calorimeter == "PHOS" ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.10, 266, 314) ;
1188 
1189  // Track matching, in case of mixing and specially in isolation case
1190  //
1191  AliCaloPID* caloPID = ana->GetCaloPID();
1192  // tm = 1, fixed cuts
1193  caloPID->SetEMCALDEtaCut(0.025);
1194  caloPID->SetEMCALDPhiCut(0.030);
1195 
1196  // pT track dependent cuts
1197  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
1198 
1199  // Input / output delta AOD settings
1200  //
1201  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaCaloTrackCorr.Data()));
1202  ana->SetAODObjArrayName(Form("%sHadronCorrIso%dTrigger_%s",particle.Data(),bIsolated,kAnaCaloTrackCorr.Data()));
1203  //ana->SetAODNamepTInConeHisto(Form("IC%s_%s_R%1.1f_ThMin%1.1f" ,particle.Data(),kAnaCaloTrackCorr.Data(),cone,pth));
1204 
1205  //Set Histograms name tag, bins and ranges
1206  //
1207  //ana->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_TM%d_",particle.Data(),bIsolated,tm));
1208  ana->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_",particle.Data(),bIsolated));
1209 
1210  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1211 
1212  if(particle=="Hadron" || particle.Contains("CTS"))
1213  {
1214  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1215  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1216  }
1217 
1218  return ana;
1219 }
1220 
1230 ( Bool_t simulation, Bool_t printSettings, Int_t debug, TString histoString )
1231 {
1233 
1234  ana->SetDebug(debug);
1235 
1236  // selection cuts
1237 
1238  ana->SetMinPt(0.2);
1239  ana->SwitchOnFiducialCut();
1240  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ; //more restrictive cut in reader and after in isolation
1241 
1243 
1246 
1247  // Branch AOD settings
1248 
1249  ana->SetOutputAODName(Form("HadronTrigger_%s",kAnaCaloTrackCorr.Data()));
1250  ana->SetOutputAODClassName("AliCaloTrackParticle"); // use if no correlation done
1251 
1252  //Set Histograms name tag, bins and ranges
1253 
1254  ana->AddToHistogramsName("AnaHadrons_");
1255 
1256  SetAnalysisCommonParameters(ana,histoString,"CTS",2012,"pp",simulation,printSettings,debug); // see method below
1257 
1258  return ana;
1259 }
1260 
1274 (Int_t tm, TString col , Bool_t simulation,
1275  TString calorimeter, Int_t year,
1276  Bool_t printSettings, Int_t debug, TString histoString )
1277 {
1279 
1280  ana->SetM02Min(-1);
1281  ana->SetNCellsPerClusterMin(-1);
1282 
1283  ana->SetCalorimeter(calorimeter);
1284  if(calorimeter == "DCAL")
1285  {
1286  TString calo = "EMCAL";
1287  ana->SetCalorimeter(calo);
1288  }
1289 
1290  if(simulation) ana->SetConstantTimeShift(615);
1291 
1292  ana->SwitchOffFiducialCut();
1293 
1295 
1297 
1299 
1301 
1302  ana->SwitchOffStudyMatchedPID() ;
1303 
1304  ana->SwitchOffStudyWeight();
1305 
1306  ana->SetNCellBinLimits(3); // set to -1 for no analysis on predefined bins in nCell
1307  ana->SetDistToBadMin(2);
1308 
1310  ana->SwitchOffStudyExotic();
1312  ana->SwitchOffStudyCellTime() ;
1313 
1314  // PID cuts (Track-matching)
1315  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
1316  AliCaloPID* caloPID = ana->GetCaloPID();
1317 
1318  if(tm > 1)
1319  {
1320  // track pT dependent cut
1322 
1323  // Begining of histograms name
1324  ana->AddToHistogramsName("Shape_TMDep_");
1325  }
1326  else if ( tm )
1327  {
1328  // Fix
1330  caloPID->SetEMCALDEtaCut(0.025);
1331  caloPID->SetEMCALDPhiCut(0.030);
1332 
1333  // Begining of histograms name
1334  ana->AddToHistogramsName("Shape_TMFix_");
1335  }
1336 
1337  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1338 
1339  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
1340  histoRanges->SetHistoPtRangeAndNBins(0, 50, 100) ; // Reduce a bit size
1341 
1342  return ana;
1343 }
1344 
1357  TString calorimeter, Int_t year,
1358  Bool_t printSettings, Int_t debug,
1359  TString histoString )
1360 {
1362 
1363  ana->SetCalorimeter(calorimeter);
1364  if(calorimeter == "DCAL")
1365  {
1366  TString calo = "EMCAL";
1367  ana->SetCalorimeter(calo);
1368  }
1369 
1370  ana->SetTimeCut(-1e10,1e10); // Open time cut
1371 
1372  ana->SwitchOffCorrelation(); // make sure you switch in the reader PHOS and EMCAL cells and clusters if option is ON
1373 
1375 
1376  ana->SwitchOffFiducialCut();
1380  ana->SwitchOffStudyBadClusters() ;
1382 
1384 
1385  ana->AddToHistogramsName("QA_"); // Begining of histograms name
1386 
1387  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1388 
1389  return ana;
1390 }
1391 
1408  Float_t cone, Float_t coneMin,
1409  TString col, Bool_t simulation,
1410  TString calorimeter, Int_t year,
1411  Bool_t printSettings, Int_t debug,
1412  TString histoString )
1413 {
1415 
1416  // Trigger detector, acceptance and pT cut
1417  ana->SetTriggerDetector(calorimeter);
1418  if(calorimeter == "DCAL")
1419  {
1420  TString calo = "EMCAL";
1421  ana->SetTriggerDetector(calo);
1422  }
1423 
1424  ana->SetMinPt(2); // Trigger photon, pi0 minimum pT
1425  if ( calorimeter == "EMCAL" ) ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
1426  else if ( calorimeter == "DCAL" ) ana->GetFiducialCutForTrigger()->SetSimpleEMCALFiducialCut(0.60, 266, 314) ;
1427  else if ( calorimeter == "PHOS" ) ana->GetFiducialCutForTrigger()->SetSimplePHOSFiducialCut (0.10, 266, 314) ;
1428 
1429  // Particles associated to trigger or isolation cone acceptance and pT cut
1430  ana->SetCalorimeter(calorimeter);
1431  if(calorimeter == "DCAL")
1432  {
1433  TString calo = "EMCAL";
1434  ana->SetCalorimeter(calo);
1435  }
1436 
1437  ana->SetMinChargedPt(0.2);
1438  ana->SetMinNeutralPt(0.3);
1439 
1440  if ( calorimeter == "EMCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.70, 80, 174) ;
1441  else if ( calorimeter == "DCAL" ) ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.70, 260, 327) ;
1442  else if ( calorimeter == "PHOS" ) ana->GetFiducialCut()->SetSimplePHOSFiducialCut (0.12, 250, 320) ;
1443  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.9, 0, 360);
1444 
1445  // Isolation paramters
1446  AliIsolationCut * ic = ana->GetIsolationCut();
1447  ic->SetDebug(debug);
1448  ic->SetPtThreshold(pth);
1449  ic->SetConeSize(cone);
1450  ic->SetMinDistToTrigger(coneMin);
1451  ic->SetSumPtThreshold(1.0) ;
1452  ic->SetICMethod(thresType);
1453 
1454  ana->AddToHistogramsName("AnaGenKine_");
1455 
1456  SetAnalysisCommonParameters(ana,histoString,calorimeter,year,col,simulation,printSettings,debug); // see method below
1457 
1458  return ana;
1459 }
1460 
1487  TList* anaList = 0x0,
1488  TString calorimeter = "EMCAL", // "DCAL", "PHOS"
1489  Bool_t simulation = kFALSE,
1490  Int_t year = 2011,
1491  TString col = "pp",
1492  TString analysisString= "Photon_MergedPi0_DecayPi0_Isolation_Correlation_QA_Charged",
1493  TString histoString = "",
1494  Float_t shshMax = 0.27,
1495  Float_t isoCone = 0.4,
1496  Float_t isoConeMin = -1,
1497  Float_t isoPtTh = 2,
1498  Int_t isoMethod = AliIsolationCut::kSumPtIC,
1500  Int_t leading = 0,
1501  Int_t tm = 2,
1502  Bool_t mixOn = kTRUE,
1503  Bool_t printSettings = kFALSE,
1504  Int_t debug = 0
1505 )
1506 {
1507  if ( !anaList )
1508  {
1509  printf("ConfigureCaloTrackCorrAnalysis() << No analysis list passed. Stop >>\n");
1510  return;
1511  }
1512 
1513  // Check the passed variables
1514  //
1515  printf("ConfigureCaloTrackCorrAnalysis() << Settings: Base string <%s>, Analysis string <%s>, "
1516  "\n calorimeter <%s>, simulation <%d>, year <%d>, col <%s>, "
1517  "\n shshMax <%2.2f>, R <%1.2f>, Rmin <%1.2f>, isoPtTh <%2.2f>, isoMethod <%d>,isoContent <%d>,"
1518  "\n leading <%d>, tm <%d>, mixOn <%d>, printSettings <%d>, debug <%d>\n",
1519  anaList->GetName(), analysisString.Data(),
1520  calorimeter.Data(), simulation, year, col.Data(),
1521  shshMax,isoCone,isoConeMin,isoPtTh,isoMethod,isoContent,
1522  leading,tm,mixOn,printSettings,debug);
1523 
1524  kAnaCutsString = analysisString;
1525 
1526  kAnaCaloTrackCorr = Form("%s",anaList->GetName());
1527 
1528  if ( analysisString.Contains("Isolation") )
1529  kAnaCaloTrackCorr+= Form("_Iso_Meth%d_Part%d_Pt%1.2f_R%1.2f",isoMethod,isoContent,isoPtTh,isoCone);
1530  if ( analysisString.Contains("Corr") && analysisString.Contains("Photon") && shshMax > 0)
1531  kAnaCaloTrackCorr+= Form("_CorrM02_%1.2f",shshMax);
1532 
1533  if ( isoConeMin > 0 ) kAnaCaloTrackCorr+=Form("_Rmin%1.2f",isoConeMin);
1534  if ( leading > 0 ) kAnaCaloTrackCorr+=Form("_Lead%d" ,leading);
1535  if ( tm > 0 ) kAnaCaloTrackCorr+=Form("_TM%d" ,tm);
1536 
1537  printf("ConfigureCaloTrackCorrAnalysis() <<<< TMP branch internal NAME: %s >>>>>\n",kAnaCaloTrackCorr.Data());
1538 
1539  // #### Configure analysis ####
1540 
1541 
1542  Int_t n = anaList->GetEntries();//Analysis number, order is important
1543 
1544  //
1545  // Photon analysis
1546  //
1547  if ( analysisString.Contains("Photon") )
1548  {
1549  anaList->AddAt(ConfigurePhotonAnalysis
1550  (col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Photon cluster selection
1551 
1552  if ( analysisString.Contains("InvMass") )
1553  anaList->AddAt(ConfigureInvariantMassAnalysis
1554  (col,simulation,calorimeter,/*bothCalo*/kFALSE,
1555  year,/*mix*/kTRUE,printSettings,debug,histoString), n++);
1556 
1557  if ( analysisString.Contains("DecayPi0") )
1558  {
1559  anaList->AddAt(ConfigurePi0EbEAnalysis
1560  ("Pi0" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1561  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 event by event selection, invariant mass and photon tagging from decay
1562 
1563  anaList->AddAt(ConfigurePi0EbEAnalysis
1564  ("Eta" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1565  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Eta event by event selection, invariant mass and photon tagging from decay
1566 
1567  anaList->AddAt(ConfigurePi0EbEAnalysis
1568  ("Pi0SideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1569  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 out of peak event by event selection, and photon tagging from decay
1570 
1571  anaList->AddAt(ConfigurePi0EbEAnalysis
1572  ("EtaSideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
1573  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Eta out of peak event by event selection, and photon tagging from decay
1574  }
1575 
1576  if ( analysisString.Contains("Isolation") )
1577  {
1578  anaList->AddAt(ConfigureIsolationAnalysis
1579  ("Photon", leading, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, kFALSE,
1580  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Photon isolation
1581 
1582  }
1583 
1584  if( analysisString.Contains("Correlation") )
1585  {
1586  if ( !analysisString.Contains("MultiIso") )
1587  {
1588  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1589  ("Photon", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1590  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Gamma-hadron correlation
1591  }
1592 
1593  if ( analysisString.Contains("Isolation") )
1594  {
1595  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1596  ("Photon", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1597  col,simulation,calorimeter,year,tm,printSettings,debug,histoString) , n++); // Isolated gamma hadron correlation
1598  }
1599  } // correlation
1600  }
1601 
1602  //
1603  // Merged pi0 analysis
1604  //
1605  if ( analysisString.Contains("MergedPi0") )
1606  {
1607  anaList->AddAt(ConfigurePi0EbEAnalysis
1608  ("Pi0", AliAnaPi0EbE::kSSCalo,kTRUE,kTRUE,
1609  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 event by event selection, cluster splitting
1610  if ( analysisString.Contains("Isolation") )
1611  {
1612  anaList->AddAt(ConfigureIsolationAnalysis
1613  ("Pi0SS", leading, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, kFALSE,
1614  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0 isolation, cluster splits
1615 
1616  }
1617 
1618  if( analysisString.Contains("Correlation") )
1619  {
1620  if ( !analysisString.Contains("MultiIso") )
1621  {
1622  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1623  ("Pi0SS", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1624  col,simulation,calorimeter,year,tm,printSettings,debug,histoString), n++); // Pi0-hadron correlation
1625  }
1626 
1627  if ( analysisString.Contains("Isolation") )
1628  {
1629  anaList->AddAt(ConfigureHadronCorrelationAnalysis
1630  ("Pi0SS", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoConeMin,isoPtTh, mixOn,
1631  col,simulation,calorimeter,year,tm,printSettings,debug,histoString) , n++); // Isolated pi0-hadron correlation
1632  }
1633  } // correlation
1634  }
1635 
1636  // Check the generated kinematics
1637  if(simulation && analysisString.Contains("Generator"))
1638  {
1639  anaList->AddAt(ConfigureGenKineAnalysis
1640  (isoMethod,isoPtTh,isoCone,isoConeMin,
1641  col,simulation,calorimeter,year,printSettings,debug,histoString), n++);
1642  }
1643 
1644  // Charged analysis
1645  if ( analysisString.Contains("Charged") )
1646  {
1647  anaList->AddAt(ConfigureChargedAnalysis(simulation,printSettings,debug,histoString), n++); // track selection checks
1648  }
1649 
1650  // Charged analysis
1651  if ( analysisString.Contains("Electron") )
1652  {
1653  anaList->AddAt(ConfigureElectronAnalysis
1654  (col,simulation,calorimeter,year,printSettings,debug,histoString), n++); // electron/hadron selection checks
1655  }
1656 
1657  // Cluster Shape studies
1658  if ( analysisString.Contains("ClusterShape") )
1659  {
1660  anaList->AddAt(ConfigureClusterShape(tm,col,simulation,calorimeter,year,printSettings,debug,histoString) , n++);
1661  }
1662 
1663  // Calo QA
1664  if ( analysisString.Contains("QA") )
1665  {
1666  anaList->AddAt(ConfigureQAAnalysis(col,simulation,calorimeter,year,printSettings,debug,histoString) , n++);
1667  }
1668 
1669  printf("ConfigureCaloTrackCorrAnalysis() << End configuration for %s with total analysis %d>>\n",
1670  kAnaCaloTrackCorr.Data(), n);
1671 }
1672 
1673 
1674 
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 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:283
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:134
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetClusterSplittingM02Cut(Float_t min=0, Float_t max=100)
Definition: AliCaloPID.h:264
void SwitchOnSplitShowerShapeCut()
Definition: AliCaloPID.h:260
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:96
void SetAssociatedPtRange(Float_t min, Float_t max)
Class with utils to perform Isolation Cuts.
AliAnaGeneratorKine * ConfigureGenKineAnalysis(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)
void SetNPIDBits(Int_t s)
Definition: AliAnaPi0.h:123
void SwitchOnFillShowerShapeHistograms()
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:145
void SwitchOffSplitShowerShapeCut()
Definition: AliCaloPID.h:261
void SetClusterSplittingMinNCells(Int_t c)
Definition: AliCaloPID.h:267
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
Selected photon clusters 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:117
void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
void KeepNeutralMesonSelectionHistos(Bool_t keep)
void SetTriggerDetector(TString det)
Set the calorimeter for the analysis.
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 SwitchOnAngleSelection()
Definition: AliAnaPi0.h:71
virtual void SetOutputAODClassName(TString name)
void SwitchOnTMTrackPtHistoFill()
Definition: AliAnaPhoton.h:99
void SwitchOffFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:74
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:79
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:257
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:125
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
2 calorimeter clusters invariant mass selection
Definition: AliAnaPi0EbE.h:86
Selection of electron clusters in calorimeter.
const TString calorimeter
Definition: anaM.C:36
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)
void SetPHOSRCut(Float_t rcut)
Definition: AliCaloPID.h:213
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:221
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:135
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()
void SwitchOnSplitAsymmetryCut()
Definition: AliCaloPID.h:256
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:33
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 SwitchOnUEBandSubtractionHistoFill(Int_t lev=1)
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:120
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:305
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:304
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:202
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:73
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 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:228
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)
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 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:143
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)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffEMCTrackPtDepResMatching()
Definition: AliCaloPID.h:229
void ana(anaModes mode=mGRID)
Definition: ana.C:1037
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:273
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:218
void SetPhotonMassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:306
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 SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:128
void SetMinDistToTrigger(Float_t md)
Int_t GetFirstSMCoveredByTRD() const
Time cut in ns.
void SetTriggerPtRange(Float_t min, Float_t max)