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