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