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