AliPhysics  4446124 (4446124)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AddTaskPi0IMGammaCorrQA.C
Go to the documentation of this file.
1 
17 
18 // Set includes for compilation
19 
20 #if !defined(__CINT__) || defined(__MAKECINT__)
21 
22 #include <TString.h>
23 #include <TROOT.h>
24 #include <TSystem.h>
25 
26 #include "AliLog.h"
28 #include "AliCaloTrackESDReader.h"
29 #include "AliCaloTrackAODReader.h"
30 #include "AliCalorimeterUtils.h"
31 #include "AliAnaPhoton.h"
32 #include "AliAnaPi0.h"
33 #include "AliHistogramRanges.h"
36 #include "AliAnaChargedParticles.h"
37 #include "AliAnaCalorimeterQA.h"
38 #include "AliAnaGeneratorKine.h"
41 #include "AliAnalysisManager.h"
42 #include "AliInputEventHandler.h"
43 #include "AliVTrack.h"
45 #include "AliESDtrackCuts.h"
46 #include "CreateTrackCutsPWGJE.C"
48 //#include "ConfigureEMCALRecoUtils.C"
49 
50 #endif // CINT
51 
52 
57  TString collision, Int_t year)
58 {
59  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
60 
61  if(calorimeter=="EMCAL")
62  {
63  if ( year == 2010 )
64  {
65  histoRanges->SetHistoPhiRangeAndNBins(79*TMath::DegToRad(), 121*TMath::DegToRad(), 42) ;
66  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
67  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
68  }
69  else if ( year < 2014 )
70  {
71  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
72  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
73  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
74  }
75  else // Run2
76  {
77  if (caloType == 0)
78  histoRanges->SetHistoPhiRangeAndNBins(78 *TMath::DegToRad(), 189*TMath::DegToRad(), 111) ;
79  else if (caloType == 1)
80  histoRanges->SetHistoPhiRangeAndNBins(258*TMath::DegToRad(), 329*TMath::DegToRad(), 71) ;
81  else
82  histoRanges->SetHistoPhiRangeAndNBins(80 *TMath::DegToRad(), 327*TMath::DegToRad(), 247) ;
83 
84  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA
85  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA
86  }
87 
88  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
89  }
90  else
91  {
92  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
93  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
94  }
95 
96  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 2.9, 300);
97 
98  // Invariant mass histoRangeslysis
99  histoRanges->SetHistoMassRangeAndNBins(0., 0.8, 160) ;
100  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
101  histoRanges->SetHistoOpeningAngleRangeAndNBins(0,0.7,50);
102 
103  // check if time calibration is on
104  histoRanges->SetHistoTimeRangeAndNBins(-250.,250,250);
105  histoRanges->SetHistoDiffTimeRangeAndNBins(-150, 150, 150);
106 
107  // track-cluster residuals
108  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.05,0.05,100);
109  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.05,0.05,100);
110  histoRanges->SetHistodRRangeAndNBins(0.,0.05,50);//QA
111 
112  // QA, electron, charged
113  histoRanges->SetHistoPOverERangeAndNBins(0, 2. ,100);
114  histoRanges->SetHistodEdxRangeAndNBins (0.,200.,100);
115 
116  // QA
117  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
118  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,250);
119  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
120  histoRanges->SetHistoRRangeAndNBins(430,460,30);
121  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,250);
122  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,250);
123 
124  // QA, correlation
125  if(collision=="PbPb")
126  {
127  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
128  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
129  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
130  }
131  else
132  {
133  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
134  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
135  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
136  }
137 
138  // xE, zT
139  histoRanges->SetHistoRatioRangeAndNBins(0.,1.2,120);
140  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,100);
141 
142  // Isolation
143  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 100);
144  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 100);
145  if(collision.Contains("pPb"))
146  histoRanges->SetHistoPtSumRangeAndNBins (0, 200, 100);
147  else if(collision.Contains("PbPb"))
148  histoRanges->SetHistoPtSumRangeAndNBins (0, 500, 100);
149 }
150 
151 
155 AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision, Bool_t calibrate,
156  Int_t minTime, Int_t maxTime,
157  Int_t minCen, Int_t maxCen,
158  Bool_t simulation, Int_t year, Int_t debugLevel)
159 {
160  AliCaloTrackReader * reader = 0;
161  if (inputDataType=="AOD")
162  reader = new AliCaloTrackAODReader();
163  else if(inputDataType=="ESD")
164  reader = new AliCaloTrackESDReader();
165  else
166  printf("AddTaskPi0IMGammaCorrQA::ConfigureReader() - Data combination not known input Data=%s\n",
167  inputDataType.Data());
168 
169  reader->SetDebug(debugLevel);//10 for lots of messages
170 
171  //------------------------
172  // Detector input filling
173  //------------------------
174 
175  //Min cluster/track E
176  reader->SetEMCALEMin(0.3);
177  reader->SetEMCALEMax(1000);
178  reader->SetPHOSEMin(0.3);
179  reader->SetPHOSEMax(1000);
180  reader->SetCTSPtMin(0.2);
181  reader->SetCTSPtMax(1000);
182 
183  // Time cut
185 
186  if(calibrate)
187  {
188  reader->SwitchOnUseEMCALTimeCut() ;
189  reader->SetEMCALTimeCut(minTime,maxTime);
190  }
191 
192  reader->SwitchOffUseTrackTimeCut();
193  reader->SetTrackTimeCut(-1e10,1e10);
194 
195  reader->SwitchOffFiducialCut();
196 
197  // Tracks
198  reader->SwitchOffCTS();
202  reader->SwitchOffUseTrackDCACut();
203  //reader->SetTrackDCACut(0,0.0105);
204  //reader->SetTrackDCACut(1,0.035);
205  //reader->SetTrackDCACut(2,1.1);
206 
207  if(inputDataType=="ESD")
208  {
209  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
210  if(year > 2010)
211  {
212  //Hybrids 2011
213  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
214  reader->SetTrackCuts(esdTrackCuts);
215  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
216  reader->SetTrackComplementaryCuts(esdTrackCuts2);
217  }
218  else
219  {
220  //Hybrids 2010
221  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
222  reader->SetTrackCuts(esdTrackCuts);
223  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
224  reader->SetTrackComplementaryCuts(esdTrackCuts2);
225  }
226  }
227  else if(inputDataType=="AOD")
228  {
229  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
230  reader->SetTrackStatus(AliVTrack::kITSrefit);
231  }
232 
233  // Calorimeter
234 
235  //reader->SetEMCALClusterListName("");
236 
237  if(calibrate && !simulation) reader->SwitchOnClusterRecalculation();
238  else reader->SwitchOffClusterRecalculation();
239 
240  reader->SwitchOnEMCALCells();
241  reader->SwitchOnEMCAL();
242 
243  reader->SwitchOffPHOSCells();
244  reader->SwitchOffPHOS();
245 
246  //-----------------
247  // Event selection
248  //-----------------
249 
250  reader->SwitchOnEventTriggerAtSE();
251 
252  reader->SetZvertexCut(10.);
253  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
254  reader->SwitchOffPileUpEventRejection(); // remove pileup
255  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
256 
257  if(collision=="PbPb")
258  {
259  if(year < 2014) reader->SwitchOnAliCentrality();
260  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
261  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
262  }
263 
264  if(debugLevel > 0) reader->Print("");
265 
266  return reader;
267 }
268 
273  Bool_t simulation , Bool_t calibrate,
274  Int_t year , Int_t debugLevel)
275 {
277  cu->SetDebug(debugLevel);
278 
279  // Remove clusters close to borders, at least max energy cell is 1 cell away
282 
283  // Search of local maxima in cluster
284  cu->SetLocalMaximaCutE(0.1);
285  cu->SetLocalMaximaCutEDiff(0.03);
286 
287  //cu->SwitchOffClusterPlot();
289 
291 
292  //EMCAL settings
293 
294  if(!simulation)
296 
297  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
299 
301 
302  Bool_t bExotic = kTRUE;
303  Bool_t bNonLin = kFALSE;
304  Bool_t bBadMap = kTRUE;
305 
306  Bool_t bEnCalib = kFALSE;
307  Bool_t bTiCalib = kFALSE;
308 
309  if(calibrate && !simulation)
310  {
311  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
314 
315  bEnCalib = kTRUE;
316  bTiCalib = kTRUE;
317  }
318 
319 // AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
320 //
321 // gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
322 // ConfigureEMCALRecoUtils(recou,
323 // simulation,
324 // bExotic,
325 // bNonLin,
326 // bEnCalib,
327 // bBadMap,
328 // bTiCalib,
329 // debugLevel
330 // );
331 
332  cu->ConfigureEMCALRecoUtils(simulation,
333  bExotic,
334  bNonLin,
335  bEnCalib,
336  bBadMap,
337  bTiCalib,
338  debugLevel);
339 
340  //recou->SetExoticCellDiffTimeCut(50.);
341 
342  if(calorimeter=="PHOS")
343  {
344  if(year < 2014) cu->SetNumberOfSuperModulesUsed(3);
345  else cu->SetNumberOfSuperModulesUsed(4);
346  }
347  else
348  {
349  Int_t nSM = 20;
350  Int_t lastEMC = 11;
351  if (year == 2010) { nSM = 4; lastEMC = 3; }// EMCAL first year
352  else if (year < 2014) { nSM = 10; lastEMC = 9; }// EMCAL active 2011-2013
353 
355 
356  if (trigger.Contains("EMCAL"))
357  {
358  cu->SetFirstSuperModuleUsed( 0);
359  cu->SetLastSuperModuleUsed (lastEMC);
360  }
361  else if (trigger.Contains("DCAL"))
362  {
363  cu->SetFirstSuperModuleUsed(12);
364  cu->SetLastSuperModuleUsed (19);
365  }
366  else
367  {
370  }
371 
372  printf("AddTaskPi0IMGammaCorrQA::CalorimeterUtils() - nSM %d, first %d, last %d\n",
374  }
375 
376  // PHOS
378 
379  if(debugLevel > 0) cu->Print("");
380 
381  return cu;
382 }
383 
389  TString containerName, Bool_t simulation,
390  Int_t year, Int_t debugLevel)
391 {
392  AliAnaPhoton *ana = new AliAnaPhoton();
393  ana->SetDebug(debugLevel); //10 for lots of messages
394 
395  // cluster selection cuts
396 
397  ana->SwitchOnFiducialCut();
398  if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
399  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
400  ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
401 
402  ana->SetCalorimeter(calorimeter);
403 
404  if(calorimeter == "PHOS")
405  {
406  ana->SetNCellCut(2);// At least 3 cells
407  ana->SetMinPt(0.5);
408  ana->SetMinDistanceToBadChannel(2, 4, 5);
409  ana->SetTimeCut(-1e10,1e10); // open cut
410  }
411  else
412  {
413  // EMCAL
414  ana->SetConstantTimeShift(615); // for MC and uncalibrated data, whenever there is time > 400 ns
415  ana->SetNCellCut(1);// At least 2 cells
416  ana->SetMinEnergy(0.5); // avoid mip peak at E = 260 MeV
417  ana->SetMaxEnergy(1000);
418  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
419  // restrict to less than 100 ns when time calibration is on
420  ana->SetMinDistanceToBadChannel(2, 4, 6);
421  // Not useful if M02 cut is already strong
422  ana->SetNLMCut(1, 2) ;
423  }
424 
426  ana->SwitchOnTMHistoFill() ;
427 
429  ana->SetNEBinCuts(2);
430  // Set the acceptance E bins depending on the trigger and their likely values
431  if(containerName.Contains("efault") || containerName.Contains("INT") || containerName.Contains("MB"))
432  {
433  ana->SetEBinCutsAt(0, 0.5);
434  ana->SetEBinCutsAt(1, 3.0);
435  ana->SetEBinCutsAt(2, 100.0);
436  }
437  else if(containerName.Contains("L0"))
438  {
439  ana->SetEBinCutsAt(0, 2.0);
440  ana->SetEBinCutsAt(1, 5.0);
441  ana->SetEBinCutsAt(2, 100.0);
442  }
443  else
444  {
445  ana->SetEBinCutsAt(0, 5.0);
446  ana->SetEBinCutsAt(1, 12.0);
447  ana->SetEBinCutsAt(2, 100.0);
448  }
449 
450  //PID cuts (shower shape)
451  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
452  AliCaloPID* caloPID = ana->GetCaloPID();
453  //Not used in bayesian
454 
455  //EMCAL
456  caloPID->SetEMCALLambda0CutMax(0.4); // Rather open
457  caloPID->SetEMCALLambda0CutMin(0.10);
458 
459  caloPID->SetEMCALDEtaCut(0.025);
460  caloPID->SetEMCALDPhiCut(0.030);
461 
462  //PHOS
463  caloPID->SetPHOSDispersionCut(2.5);
464  caloPID->SetPHOSRCut(2.);
465 
466  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
467  //if(!simulation)ana->SwitchOnFillPileUpHistograms();
468 
469  if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
470 
471  // Input / output delta AOD settings
472  ana->SetOutputAODName(Form("Photon%s_Calo%d",containerName.Data(),caloType));
473  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
474  ana->SetInputAODName (Form("Photon%s_Calo%d",containerName.Data(),caloType));
475 
476  // Set Histograms name tag, bins and ranges
477  ana->AddToHistogramsName(Form("AnaPhoton_Calo%d_",caloType));
478  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
479 
480  // Number of particle type MC histograms
481  ana->FillNOriginHistograms(7);
482  ana->FillNPrimaryHistograms(4);
483 
484  if(simulation) ana->SwitchOnDataMC();
485 
486  if(debugLevel > 0 ) ana->Print("");
487 
488  return ana;
489 }
490 
495  TString containerName, Bool_t simulation, Int_t year,
496  Int_t debugLevel , Int_t minCen)
497 {
498  AliAnaPi0 *ana = new AliAnaPi0();
499 
500  ana->SetDebug(debugLevel);//10 for lots of messages
501 
502  // Input delta AOD settings
503  ana->SetInputAODName(Form("Photon%s_Calo%d",containerName.Data(),caloType));
504 
505  // Calorimeter settings
506  ana->SetCalorimeter(calorimeter);
507 
508  ana->SwitchOnFiducialCut();
509  if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
510  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
511  ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
512 
514 
515  // Settings for pp collision mixing
516  ana->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
517 
518  // Cuts
519  if(calorimeter=="EMCAL")
520  {
521  ana->SetPairTimeCut(100);
522 
523  // Angle cut, avoid pairs with too large angle
524  ana->SwitchOnAngleSelection();
525  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
526  ana->SetAngleCut(0.016); // Minimum angle open, ~cell size
527  }
528 
529  ana->SetNPIDBits(1);
530  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
531  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
532 
533  if (collision == "pp" )
534  {
535  ana->SetNCentrBin(1);
536  ana->SetNZvertBin(10);
537  ana->SetNRPBin(1);
538  ana->SetNMaxEvMix(100);
539  ana->SetMinPt(0.5);
540  }
541  else if(collision =="PbPb")
542  {
543  ana->SetNCentrBin(10);
544  ana->SetNZvertBin(10);
545  ana->SetNRPBin(4);
546  ana->SetNMaxEvMix(10);
547  if(minCen >= 10) ana->SetNMaxEvMix(50);
548  if(minCen >= 50) ana->SetNMaxEvMix(100);
549  ana->SetMinPt(1.5);
551  }
552  else if(collision =="pPb")
553  {
554  ana->SetNCentrBin(1);
555  ana->SetNZvertBin(10);
556  ana->SetNRPBin(4);
557  ana->SetNMaxEvMix(100);
558  ana->SetMinPt(0.5);
560  }
561 
563  ana->SwitchOnSMCombinations();
566 
567  // Set Histograms name tag, bins and ranges
568 
569  ana->AddToHistogramsName(Form("AnaPi0_Calo%d_",caloType));
570  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
571 
572  if(simulation) ana->SwitchOnDataMC();
573 
574  if(debugLevel > 0) ana->Print("");
575 
576  return ana;
577 }
578 
583  Bool_t simulation, Int_t year, Int_t debugLevel)
584 {
586  ana->SetDebug(debugLevel); //10 for lots of messages
587 
588  // selection cuts
589 
590  ana->SetMinPt(0.5);
591  ana->SwitchOnFiducialCut();
592  Float_t etacut = 0.8;
593  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(etacut, 0, 360) ; //more restrictive cut in reader and after in isolation
594 
595  // histogram switchs
596 
598  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
599 
601 
602  // Input / output delta AOD settings
603 
604  ana->SetOutputAODName(Form("Hadron%s",containerName.Data()));
605  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
606  ana->SetInputAODName(Form("Hadron%s",containerName.Data()));
607 
608  //Set Histograms name tag, bins and ranges
609 
610  ana->AddToHistogramsName("AnaHadrons_");
611  SetHistoRangeAndNBins(ana->GetHistogramRanges(),"",kFALSE,collision,year); // see method below
612 
613  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 120) ;
614  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.*etacut, 1.*etacut, etacut*100) ;
615 
616  if(simulation) ana->SwitchOnDataMC();
617 
618  if(debugLevel > 0) ana->Print("");
619 
620  return ana;
621 }
622 
627  TString collision , TString containerName,
628  Bool_t simulation, Int_t year , Int_t debugLevel)
629 {
631  ana->SetDebug(debugLevel);
632 
633  //if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
634 
635  ana->SetMinPt(5);
636 
639 
641  ana->SwitchOnSSHistoFill();
642 
643  ana->SwitchOffLeadingOnly();
645 
648  ana->SwitchOffTMHistoFill();
649 
650  // MC
653 
655  ana->SwitchOnFiducialCut();
656 
657  if(calorimeter == "EMCAL" && caloType == 0)
658  {
659  // Avoid borders of EMCal
660  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
661  }
662  if(calorimeter == "EMCAL" && caloType == 1)
663  {
664  // Avoid borders of DCal
665  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 264, 316) ;
666  }
667 
668  AliCaloPID* caloPID = ana->GetCaloPID();
669  caloPID->SetEMCALDEtaCut(0.025);
670  caloPID->SetEMCALDPhiCut(0.030);
671 
673  ana->SwitchOffReIsolation();
674 
675  //
676  // Do settings for main isolation cut class
677  //
678  AliIsolationCut * ic = ana->GetIsolationCut();
679  ic->SetDebug(debugLevel);
682  if ( collision == "pp" || collision == "pPb" )
683  {
684  ic->SetPtThreshold(0.5);
685  ic->SetSumPtThreshold(2.0) ;
686  ic->SetConeSize(0.4);
687  }
688  if ( collision == "PbPb" )
689  {
690  ic->SetPtThreshold(3.);
691  ic->SetSumPtThreshold(3.0) ;
692  ic->SetConeSize(0.3);
693  }
694 
695  // Input / output delta AOD settings
696 
697  ana->SetInputAODName(Form("%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
698  ana->SetAODObjArrayName(Form("%sIso_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
699 
700  // Set Histograms name tag, bins and ranges
701 
702  ana->AddToHistogramsName(Form("AnaIsol%s_Calo%d_",particle.Data(),caloType));
703  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
704 
705  if(simulation) ana->SwitchOnDataMC();
706 
707  if(debugLevel > 0) ana->Print("");
708 
709  return ana;
710 }
711 
716  TString collision, TString containerName,
717  Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
718 {
720  ana->SetDebug(debugLevel);
721 
722  ana->SetTriggerPtRange(5,100);
723  ana->SetAssociatedPtRange(0.2,100);
724  //ana->SetDeltaPhiCutRange( TMath::Pi()/2,3*TMath::Pi()/2 ); //[90 deg, 270 deg]
725  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
726  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
728 
729  ana->SetNAssocPtBins(4);
730  ana->SetAssocPtBinLimit(0, 0.5) ;
731  ana->SetAssocPtBinLimit(1, 2) ;
732  ana->SetAssocPtBinLimit(2, 5) ;
733  ana->SetAssocPtBinLimit(3, 10) ;
734  ana->SetAssocPtBinLimit(4, 20) ;
735 
736  ana->SelectIsolated(kFALSE); // do correlation with isolated photons
737 
738  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
739 
740  ana->SwitchOffAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
741  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
742 
743  //ana->SwitchOnLeadHadronSelection();
744  //ana->SetLeadHadronPhiCut(TMath::DegToRad()*100., TMath::DegToRad()*260.);
745  //ana->SetLeadHadronPtCut(0.5, 100);
746 
747  // Mixing with own pool
748  ana->SwitchOffOwnMix();
749 
750  ana->SetNZvertBin(20);
752 
753  //if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
754 
755  if(collision=="pp")
756  {
757  ana->SetNMaxEvMix(100);
758  ana->SwitchOnTrackMultBins();
759  ana->SetNTrackMultBin(10); // same as SetNCentrBin(10);
760  ana->SetNRPBin(1);
761  }
762  else
763  {
764  ana->SetNMaxEvMix(10);
765  if(minCen >= 10) ana->SetNMaxEvMix(50);
766  if(minCen >= 50) ana->SetNMaxEvMix(100);
767  ana->SwitchOffTrackMultBins(); // centrality bins
768  ana->SetNCentrBin(10);
769  ana->SetNRPBin(3);
770  }
771 
772  // Input / output delta AOD settings
773 
774  ana->SetInputAODName(Form("%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
775  ana->SetAODObjArrayName(Form("%sHadronCorr_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
776 
779  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
782 
783  // Underlying event
785  ana->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
786 
787  //Set Histograms name tag, bins and ranges
788 
789  ana->AddToHistogramsName(Form("Ana%sHadronCorr_Calo%d_",particle.Data(),caloType));
790  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
791 
792  if(simulation) ana->SwitchOnDataMC();
793 
794  if(debugLevel > 0) ana->Print("");
795 
796  return ana;
797 }
798 
803  //Bool_t simulation ,
804  Int_t year, Int_t debugLevel)
805 {
807  ana->SetDebug(debugLevel); //10 for lots of messages
808  ana->SetCalorimeter(calorimeter);
809 
810  //printf("AddTaskPi0IMGammaCorrQA::CofigureQAAnalysis() - calorimeter %s, caloType %d, collision %s, simulation %d, fillCellTime %d, year %d, debugLevel %d\n",
811  // calorimeter.Data(),caloType,collision.Data(),simulation,fillCellTime,year,debugLevel);
812 
813  ana->SetTimeCut(-1e10,1e10); // Open time cut
814  ana->SetConstantTimeShift(615); // for MC and uncalibrated data, whenever there is time > 400 ns
815  ana->SetEMCALCellAmpMin(0.5);
816 
823  ana->SwitchOffCorrelation();
826 
830 
831  ana->AddToHistogramsName("QA_Cell_"); //Begining of histograms name
832  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, -1, collision,year); // see method below
833 
834 // ana->SwitchOnFiducialCut();
835 // if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
836 // else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
837 //
838 // ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
839 
840  //if(simulation) ana->SwitchOnDataMC();
841 
842  if(debugLevel > 0) ana->Print("");
843 
844  return ana;
845 }
846 
847 
868  Bool_t simulation = kFALSE,
869  TString collision = "pp",
870  TString period = "",
871  const Bool_t qaan = kTRUE,
872  const Bool_t hadronan = kTRUE,
873  const Bool_t calibrate = kFALSE,
874  const Int_t minTime = -1000,
875  const Int_t maxTime = 1000,
876  const Int_t minCen = -1,
877  const Int_t maxCen = -1,
878  const Int_t debugLevel = -1,
879  const char * suffix = "default"
880  )
881 {
882  // Check the global variables, and reset the provided ones if empty.
883  //
884  TString trigger = suffix;
885 
886  TString colType = gSystem->Getenv("ALIEN_JDL_LPMINTERACTIONTYPE");
887  TString prodTag = gSystem->Getenv("ALIEN_JDL_LPMPRODUCTIONTAG");
888  TString prodType = gSystem->Getenv("ALIEN_JDL_LPMPRODUCTIONTYPE");
889 
890  if(collision=="") // Check the alien environment
891  {
892  if (colType.Contains( "PbPb")) collision = "PbPb";
893  else if (colType.Contains( "XeXe")) collision = "PbPb";
894  else if (colType.Contains( "AA" )) collision = "PbPb";
895  else if (colType.Contains( "pA" )) collision = "pPb";
896  else if (colType.Contains( "Ap" )) collision = "pPb";
897  else if (colType.Contains( "pPb" )) collision = "pPb";
898  else if (colType.Contains( "Pbp" )) collision = "pPb";
899  else if (colType.Contains( "pp" )) collision = "pp" ;
900 
901  // Check if production is MC or data, of data recover period name
902  if ( prodType.Contains("MC") ) simulation = kTRUE;
903  else simulation = kFALSE;
904 
905  if ( !simulation && period!="" ) period = prodTag;
906 
907  // print check on global settings once
908  if ( trigger.Contains("default") || trigger.Contains("INT") || trigger.Contains("MB") )
909  printf("AddTaskPi0IMGammaCorrQA() - Get the data features from global parameters: collision <%s> (<%s>), "
910  "period <%s>, tag <%s>, type <%s>, MC bool <%d> \n",
911  colType.Data(),collision.Data(),
912  period.Data(),prodType.Data(),prodTag.Data(),simulation);
913  }
914 
915  Int_t year = 2017;
916  if ( period!="" )
917  {
918  if (period.Contains("16")) year = 2016;
919  else if(period.Contains("15")) year = 2015;
920  else if(period.Contains("13")) year = 2013;
921  else if(period.Contains("12")) year = 2012;
922  else if(period.Contains("11")) year = 2011;
923  else if(period.Contains("10")) year = 2010;
924  }
925 
926 
927  // Get the pointer to the existing analysis manager via the static access method.
928  //
929  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
930  if (!mgr)
931  {
932  ::Error("AddTaskPi0IMGammaCorrQA", "No analysis manager to connect to.");
933  return NULL;
934  }
935 
936  // Check the analysis type using the event handlers connected to the analysis manager.
937  //
938  if (!mgr->GetInputEventHandler())
939  {
940  ::Error("AddTaskPi0IMGammaCorrQA", "This task requires an input event handler");
941  return NULL;
942  }
943 
944  //
945  // Create task
946  //
947 
948  // Name for containers
949  TString containerName = Form("%s_Trig_%s",calorimeter.Data(), trigger.Data());
950 
951  if(collision!="pp" && maxCen>=0) containerName+=Form("Cen%d_%d",minCen,maxCen);
952 
953  TString taskName =Form("Pi0IM_GammaTrackCorr_%s",containerName.Data());
954 
956  //task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
957  task->SetDebugLevel(debugLevel);
958  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
959  //task->SetBranches("AOD:header,tracks,vertices,emcalCells,caloClusters");
960 
961  //
962  // Init main analysis maker and pass it to the task
964  task->SetAnalysisMaker(maker);
965 
966  //
967  // Pass the task to the analysis manager
968  mgr->AddTask(task);
969 
970  //
971  // Create containers
972  TString outputfile = AliAnalysisManager::GetCommonFileName();
973 
974  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(trigger, TList::Class(),
975  AliAnalysisManager::kOutputContainer,
976  Form("%s:%s",outputfile.Data(),Form("Pi0IM_GammaTrackCorr_%s",calorimeter.Data())));
977 
978  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",trigger.Data()), TList::Class(),
979  AliAnalysisManager::kParamContainer,
980  Form("%s_Parameters.root",Form("Pi0IM_GammaTrackCorr_%s",calorimeter.Data())));
981 
982  // Create ONLY the output containers for the data produced by the task.
983  // Get and connect other common input/output containers via the manager as below
984  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
985  mgr->ConnectOutput (task, 1, cout_pc);
986  mgr->ConnectOutput (task, 2, cout_cuts);
987  //==============================================================================
988 
989  // Do not configure the wagon for certain analysis combinations
990  // But create the task so that the sub-wagon train can run
991  //
992  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
993  Bool_t doAnalysis = CheckActiveEMCalTriggerPerPeriod(simulation,trigger,period,year);
994  if(!doAnalysis)
995  {
996  maker->SwitchOffProcessEvent();
997  return task;
998  }
999 
1000  // #### Start analysis configuration ####
1001  //
1002  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
1003 
1004  // Make sure the B field is enabled for track selection, some cuts need it
1005  //
1006  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
1007 
1008  // Print settings to check all is as expected
1009  //
1010  printf("AddTaskPi0IMGammaCorrQA - Task NAME: %s \n",taskName.Data());
1011 
1012  printf("AddTaskPi0IMGammaCorrQA - Settings: data <%s>, calo <%s>, MC <%d>, collision <%s>, trigger <%s>, period <%s>, year <%d>,\n"
1013  "\t \t \t CaloQA on <%d>, Track QA on <%d>, Make corrections <%d>, %d < time < %d, %d < cen < %d, debug level <%d> \n",
1014  inputDataType.Data(), calorimeter.Data(),simulation, collision.Data(),trigger.Data(), period.Data(), year,
1015  qaan , hadronan, calibrate, minTime, maxTime, minCen, maxCen, debugLevel);
1016  //
1017 
1018  // General frame setting and configuration
1019  maker->SetReader ( ConfigureReader (inputDataType,collision,calibrate,minTime,maxTime,minCen,maxCen,simulation,year,debugLevel) );
1020  if(hadronan)maker->GetReader()->SwitchOnCTS();
1021 
1022  maker->SetCaloUtils( ConfigureCaloUtils(calorimeter,trigger,simulation,calibrate,year,debugLevel) );
1023 
1024  // Analysis tasks setting and configuration
1025  Int_t n = 0;//Analysis number, order is important
1026 
1027  // Cell QA
1028  if(qaan) maker->AddAnalysis(ConfigureQAAnalysis(calorimeter,collision,
1029  //simulation,
1030  year,debugLevel),n++);
1031 
1032  // Analysis with EMCal trigger or MB
1033  if ( !trigger.Contains("DCAL") )
1034  {
1035  // Cluster selection
1036  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,0,collision,containerName,simulation,year,debugLevel) ,n++);
1037  // Previous cluster invariant mass
1038  maker->AddAnalysis(ConfigurePi0Analysis (calorimeter,0,collision,containerName,simulation,year,debugLevel,minCen),n++);
1039  if(hadronan)
1040  {
1041  // Isolation of selected clusters by AliAnaPhoton
1042  maker->AddAnalysis(ConfigureIsolationAnalysis("Photon",calorimeter,0,collision,containerName,simulation,year,debugLevel), n++);
1043  // Selected clusters-track correlation
1044  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,0,collision,containerName,simulation,year,debugLevel,minCen), n++);
1045  }
1046  }
1047 
1048  // Analysis with DCal trigger or MB
1049  if(year > 2014 && calorimeter=="EMCAL" && !trigger.Contains("EMCAL"))
1050  {
1051  // Cluster selection
1052  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,1,collision,containerName,simulation,year,debugLevel) , n++);
1053  // Previous cluster invariant mass
1054  maker->AddAnalysis(ConfigurePi0Analysis (calorimeter,1,collision,containerName,simulation,year,debugLevel,minCen),n++);
1055  if(hadronan)
1056  {
1057  // Isolation of selected clusters by AliAnaPhoton
1058  maker->AddAnalysis(ConfigureIsolationAnalysis("Photon",calorimeter,1,collision,containerName,simulation,year,debugLevel), n++);
1059  // Selected clusters-track correlation
1060  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,1,collision,containerName,simulation,year,debugLevel,minCen), n++);
1061  }
1062  }
1063 
1064  // Charged tracks plots, any trigger
1065  if(hadronan)
1066  maker->AddAnalysis(ConfigureChargedAnalysis(collision,containerName,simulation,year,debugLevel), n++);
1067 
1068  if(simulation)
1069  {
1070  // Calculate the cross section weights, apply them to all histograms
1071  // and fill xsec and trial histo. Sumw2 must be activated.
1072  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionCalculation();
1073  //maker->SwitchOnSumw2Histograms();
1074 
1075  // For recent productions where the cross sections and trials are not stored in separate file
1076  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionFromEventHeader() ;
1077 
1078  // Just fill cross section and trials histograms.
1080 
1081  // Add control histogram with pT hard to control aplication of weights
1082  maker->SwitchOnPtHardHistogram();
1083  }
1084 
1085  //
1086  // Select events trigger depending on trigger
1087  //
1088  if(!simulation)
1089  {
1090  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
1091  TString caloTriggerString = "";
1092  UInt_t mask = ConfigureAndGetEventTriggerMaskAndCaloTriggerString(trigger, year, caloTriggerString);
1093 
1094  task ->SelectCollisionCandidates( mask );
1095  maker->GetReader()->SetFiredTriggerClassName(caloTriggerString);
1096  printf("AddTaskPi0IMGammaCorrQA - Trigger Mask %d, caloTriggerString <%s>\n", mask, caloTriggerString.Data());
1097  }
1098 
1099  //
1100  // Final maker settings
1101  //
1102  maker->SetAnaDebug(debugLevel) ;
1103  maker->SwitchOnHistogramsMaker() ;
1104  maker->SwitchOnAODsMaker() ;
1106 
1107  if(debugLevel > 0) maker->Print("");
1108 
1109  return task;
1110 }
1111 
1112 
1113 
void SetPtThreshold(Float_t pt)
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetNEBinCuts(Int_t nb)
Definition: AliAnaPhoton.h:137
void SetAngleCut(Float_t a)
Definition: AliAnaPi0.h:77
void SetNumberOfCellsFromPHOSBorder(Int_t n)
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void SetTimeCut(Double_t min, Double_t max)
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString particle, TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void ana(Int_t mode=mGRID)
Definition: ana.C:162
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)
void SetFirstSuperModuleUsed(Int_t first)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:131
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:93
void SetAssociatedPtRange(Float_t min, Float_t max)
Class with utils to perform Isolation Cuts.
void SetNPIDBits(Int_t s)
Definition: AliAnaPi0.h:119
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
Int_t GetLastSuperModuleUsed() const
void SetLastSuperModuleUsed(Int_t last)
void SetConeSize(Float_t r)
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:142
void SetCTSPtMax(Float_t pt)
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)
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual void SetInputAODName(TString name)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
virtual AliIsolationCut * GetIsolationCut()
TSystem * gSystem
void SetEMCALEMin(Float_t en)
void SwitchOnSMCombinations()
Definition: AliAnaPi0.h:90
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPhoton.h:114
void AddAnalysis(TObject *ana, Int_t n)
Add analysis depending on AliAnaCaloTrackCorrBaseClass to list.
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOnAngleSelection()
Definition: AliAnaPi0.h:71
virtual void SetOutputAODClassName(TString name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetSumPtThreshold(Float_t s)
void SwitchOffMultipleCutAnalysis()
Definition: AliAnaPi0.h:111
Class for the Calorimeter QA analysis.
AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision, Bool_t calibrate, Int_t minTime, Int_t maxTime, Int_t minCen, Int_t maxCen, Bool_t simulation, Int_t year, Int_t debugLevel)
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetLocalMaximaCutEDiff(Float_t c)
void SwitchOnMCCrossSectionHistoFill()
Definition: AliAnaWeights.h:88
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SetNCellCut(Int_t n)
Definition: AliAnaPhoton.h:122
Bool_t CheckActiveEMCalTriggerPerPeriod(Bool_t simulation, TString trigger, TString period, Int_t year)
void SetAngleMaxCut(Float_t a)
Definition: AliAnaPi0.h:78
const TString calorimeter
Definition: anaM.C:36
AliCalorimeterUtils * ConfigureCaloUtils(TString calorimeter, TString trigger, Bool_t simulation, Bool_t calibrate, Int_t year, Int_t debugLevel)
void SetHistoTrackResidualEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Class for event, clusters and tracks filtering and preparation for the AOD analysis.
void SetCTSPtMin(Float_t pt)
void SetPHOSRCut(Float_t rcut)
Definition: AliCaloPID.h:213
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:221
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SetICMethod(Int_t i)
void SwitchOffVertexBCEventSelection()
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)
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
AliAnaPi0 * ConfigurePi0Analysis(TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)
Check EMCal trigger availability in period.
virtual void SetDebug(Int_t d)
void SetHistoPOverERangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual AliFiducialCut * GetFiducialCut()
void SwitchOffFillAngleHisto()
Definition: AliAnaPi0.h:81
virtual void SetCentralityOpt(Int_t opt)
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
int Int_t
Definition: External.C:63
virtual AliHistogramRanges * GetHistogramRanges()
unsigned int UInt_t
Definition: External.C:33
void SwitchOnDataControlHistograms(Int_t lev=1)
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
float Float_t
Definition: External.C:68
void SetTrackStatus(ULong_t bit)
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:33
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnUEBandSubtractionHistoFill(Int_t lev=1)
void SwitchOffFillAllTrackMatchingHistogram()
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Base class for event, clusters and tracks filtering and preparation for the analysis.
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:2604
Int_t GetNumberOfSuperModulesUsed() const
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:117
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetConstantTimeShift(Float_t shift)
AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis(TString particle, TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
virtual void SetZvertexCut(Float_t zcut=10.)
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter, Bool_t caloType, TString collision, Int_t year)
void SetNumberOfSuperModulesUsed(Int_t nSM)
UInt_t ConfigureAndGetEventTriggerMaskAndCaloTriggerString(TString trigger, Int_t year, TString &triggerString)
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:202
virtual void SwitchOnAliCentrality()
virtual void SetNCentrBin(Int_t n=1)
Number of bins in reaction plain.
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
void SetNAsymCuts(Int_t s)
Definition: AliAnaPi0.h:117
void SetPHOSEMin(Float_t en)
void SetReader(AliCaloTrackReader *re)
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)
virtual void SetTrackCuts(AliESDtrackCuts *)
void SetEMCALCellAmpMin(Float_t amp)
Track selection for correlation analysis.
void SetHistoOpeningAngleRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SwitchOffFiducialCut()
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 SetEBinCutsAt(Int_t i, Float_t va)
Definition: AliAnaPhoton.h:138
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString calorimeter, TString collision, Int_t year, Int_t debugLevel)
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
Configuration of the event trigger.
void SwitchOnAcceptanceHistoPerEBin()
Definition: AliAnaPhoton.h:134
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetAODObjArrayName(TString name)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALEMax(Float_t en)
void ConfigureEMCALRecoUtils(Bool_t bMC=kFALSE, Bool_t bExotic=kTRUE, Bool_t bNonLin=kFALSE, Bool_t bRecalE=kTRUE, Bool_t bBad=kTRUE, Bool_t bRecalT=kTRUE, Int_t debug=-1)
void SetNAssocPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:53
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:140
virtual void SetNMaxEvMix(Int_t n=20)
Number of bins in track multiplicity.
void SetFiredTriggerClassName(TString name)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
bool Bool_t
Definition: External.C:53
void SetPHOSEMax(Float_t en)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
AliCaloTrackReader * GetReader()
Int_t GetFirstSuperModuleUsed() const
AliAnaWeights * GetWeightUtils()
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 SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:218
void SwitchOffUseParametrizedTimeCut()
void SwitchOffFillOriginHisto()
Definition: AliAnaPi0.h:136
void SetLocalMaximaCutE(Float_t cut)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0IMGammaCorrQA(const TString calorimeter="EMCAL", Bool_t simulation=kFALSE, TString collision="pp", TString period="", const Bool_t qaan=kTRUE, const Bool_t hadronan=kTRUE, const Bool_t calibrate=kFALSE, const Int_t minTime=-1000, const Int_t maxTime=1000, const Int_t minCen=-1, const Int_t maxCen=-1, const Int_t debugLevel=-1, const char *suffix="default")
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:125
void SetAssocPtBinLimit(Int_t ibin, Float_t pt)
Set the list of pT limits for the of associated charged (neutral) hadrons.
void SetConstantTimeShift(Float_t shift)
Definition: AliAnaPhoton.h:101
void SetCaloUtils(AliCalorimeterUtils *cu)
Steering class of package CaloTrackCorrelartions.
AliAnaChargedParticles * ConfigureChargedAnalysis(TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void SetTriggerPtRange(Float_t min, Float_t max)