AliPhysics  095eea3 (095eea3)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AddTaskPi0IMGammaCorrQA.C
Go to the documentation of this file.
1 
17 // Global variables, set externally, uncomment next lines for local tests.
18 //const char* kPeriod = "LHC16t"; // gSystem->Getenv("ALIEN_JDL_LPMPRODUCTIONTAG");
19 //const char* kColType = "PbPb"; // gSystem->Getenv("ALIEN_JDL_LPMINTERACTIONTYPE"); //either "pp", "pPb" or "PbPb"
20 //const char* kProdType = "MC"; // gSystem->Getenv("ALIEN_JDL_LPMPRODUCTIONTYPE");
21 //Bool_t kMC = kFALSE;
22 
43  Bool_t simulation = kFALSE,
44  TString collision = "pp",
45  TString period = "",
46  const Bool_t qaan = kTRUE,
47  const Bool_t hadronan = kTRUE,
48  const Bool_t calibrate = kFALSE,
49  const Int_t minTime = -1000,
50  const Int_t maxTime = 1000,
51  const Int_t minCen = -1,
52  const Int_t maxCen = -1,
53  const Int_t debugLevel = -1,
54  const char * suffix = "default"
55  )
56 {
57  // Check the global variables, and reset the provided ones if empty.
58  //
59  TString trigger = suffix;
60  if(collision=="")
61  {
62 
63  if (!strcmp(kColType, "PbPb")) collision = "PbPb";
64  else if (!strcmp(kColType, "AA" )) collision = "PbPb";
65  else if (!strcmp(kColType, "pA" )) collision = "pPb";
66  else if (!strcmp(kColType, "Ap" )) collision = "pPb";
67  else if (!strcmp(kColType, "pPb" )) collision = "pPb";
68  else if (!strcmp(kColType, "Pbp" )) collision = "pPb";
69  else if (!strcmp(kColType, "pp" )) collision = "pp" ;
70 
71  simulation = kMC;
72  period = kPeriod;
73 
74  // print check on global settings once
75  if(trigger.Contains("default") ||trigger.Contains("INT") || trigger.Contains("MB") )
76  printf("AddTaskPi0IMGammaCorrQA - Get the data features from global parameters: col <%s>, period <%s>, mc <%d> \n",
77  kColType,kPeriod,kMC);
78  }
79 
80  Int_t year = 2017;
81  if ( period!="" )
82  {
83  if (period.Contains("16")) year = 2016;
84  else if(period.Contains("15")) year = 2015;
85  else if(period.Contains("13")) year = 2013;
86  else if(period.Contains("12")) year = 2012;
87  else if(period.Contains("11")) year = 2011;
88  else if(period.Contains("10")) year = 2010;
89  }
90 
91  // Do not create the analysis for certain analysis combinations
92  // But create the task so that the sub-wagon train can run
93  //
94  Bool_t doAnalysis = CheckAnalysisTrigger(simulation,trigger,period,year);
95  if(!doAnalysis)
96  {
97  AliAnalysisTaskCaloTrackCorrelation * task = new AliAnalysisTaskCaloTrackCorrelation(Form("Pi0IM_GammaTrackCorr_%s",trigger.Data()));
98  return task;
99  }
100 
101  // Get the pointer to the existing analysis manager via the static access method.
102  //
103  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
104  if (!mgr)
105  {
106  ::Error("AddTaskPi0IMGammaCorrQA", "No analysis manager to connect to.");
107  return NULL;
108  }
109 
110  // Check the analysis type using the event handlers connected to the analysis manager.
111  //
112  if (!mgr->GetInputEventHandler())
113  {
114  ::Error("AddTaskPi0IMGammaCorrQA", "This task requires an input event handler");
115  return NULL;
116  }
117 
118  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
119 
120  // Make sure the B field is enabled for track selection, some cuts need it
121  //
122  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
123 
124  // Print settings to check all is as expected
125  //
126  printf("AddTaskPi0IMGammaCorrQA - Settings: data <%s>, calo <%s>, MC <%d>, collision <%s>, trigger <%s>, period <%s>, year <%d>,\n"
127  "\t \t \t CaloQA on <%d>, Track QA on <%d>, Make corrections <%d>, %5.1f < time < %5.1f, %2.1f < cen < %2.1f, debug level <%d> \n",
128  inputDataType.Data(), calorimeter.Data(),simulation, collision.Data(),trigger.Data(), period.Data(), year,
129  qaan , hadronan, calibrate, minTime, maxTime, minCen, maxCen, debugLevel);
130  //
131 
132  // Name for containers
133  //
134  TString containerName = Form("%s_Trig_%s",calorimeter.Data(), trigger.Data());
135 
136  if(collision!="pp" && maxCen>=0) containerName+=Form("Cen%d_%d",minCen,maxCen);
137 
138  // #### Configure analysis ####
139  //
141 
142  // General frame setting and configuration
143  maker->SetReader ( ConfigureReader (inputDataType,collision,calibrate,minTime,maxTime,minCen,maxCen,simulation,year,debugLevel) );
144  if(hadronan)maker->GetReader()->SwitchOnCTS();
145 
146  maker->SetCaloUtils( ConfigureCaloUtils(calorimeter,trigger,simulation,calibrate,year,debugLevel) );
147 
148  // Analysis tasks setting and configuration
149  Int_t n = 0;//Analysis number, order is important
150 
151  // Cell QA
152  if(qaan) maker->AddAnalysis(ConfigureQAAnalysis(calorimeter,collision,simulation,year,debugLevel),n++);
153 
154  // Analysis with EMCal trigger or MB
155  if ( !trigger.Contains("DCAL") )
156  {
157  // Cluster selection
158  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,0,collision,containerName,simulation,year,debugLevel) ,n++);
159  // Previous cluster invariant mass
160  maker->AddAnalysis(ConfigurePi0Analysis (calorimeter,0,collision,containerName,simulation,year,debugLevel,minCen),n++);
161  if(hadronan)
162  {
163  // Isolation of selected clusters by AliAnaPhoton
164  maker->AddAnalysis(ConfigureIsolationAnalysis("Photon",calorimeter,0,collision,containerName,simulation,year,debugLevel), n++);
165  // Selected clusters-track correlation
166  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,0,collision,containerName,simulation,year,debugLevel,minCen), n++);
167  }
168  }
169 
170  // Analysis with DCal trigger or MB
171  if(year > 2014 && calorimeter=="EMCAL" && !trigger.Contains("EMCAL"))
172  {
173  // Cluster selection
174  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,1,collision,containerName,simulation,year,debugLevel) , n++);
175  // Previous cluster invariant mass
176  maker->AddAnalysis(ConfigurePi0Analysis (calorimeter,1,collision,containerName,simulation,year,debugLevel,minCen),n++);
177  if(hadronan)
178  {
179  // Isolation of selected clusters by AliAnaPhoton
180  maker->AddAnalysis(ConfigureIsolationAnalysis("Photon",calorimeter,1,collision,containerName,simulation,year,debugLevel), n++);
181  // Selected clusters-track correlation
182  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,1,collision,containerName,simulation,year,debugLevel,minCen), n++);
183  }
184  }
185 
186  // Charged tracks plots, any trigger
187  if(hadronan)
188  maker->AddAnalysis(ConfigureChargedAnalysis(collision,containerName,simulation,year,debugLevel), n++);
189 
190  maker->SetAnaDebug(debugLevel) ;
191  maker->SwitchOnHistogramsMaker() ;
192  maker->SwitchOnAODsMaker() ;
194 
195  if(simulation)
196  {
197  // Calculate the cross section weights, apply them to all histograms
198  // and fill xsec and trial histo. Sumw2 must be activated.
199  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionCalculation();
200  //maker->SwitchOnSumw2Histograms();
201 
202  // For recent productions where the cross sections and trials are not stored in separate file
203  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionFromEventHeader() ;
204 
205  // Just fill cross section and trials histograms.
207 
208  // Add control histogram with pT hard to control aplication of weights
209  maker->SwitchOnPtHardHistogram();
210  }
211 
212  if(debugLevel > 0) maker->Print("");
213 
214  // Create task
215 
216  TString taskName =Form("Pi0IM_GammaTrackCorr_%s",containerName.Data());
217 
218  printf("AddTaskPi0IMGammaCorrQA - Task NAME: %s \n",taskName.Data());
219 
221  task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
222  task->SetDebugLevel(debugLevel);
223  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
224  //task->SetBranches("AOD:header,tracks,vertices,emcalCells,caloClusters");
225  task->SetAnalysisMaker(maker);
226 
227  //
228  // Select events trigger depending on trigger
229  //
230  if(!simulation)
231  {
232  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureEventTriggerCaloTrackCorr.C");
233  ConfigureEventTriggerCaloTrackCorr(task,trigger,year);
234  }
235 
236  mgr->AddTask(task);
237 
238  //Create containers
239 
240  TString outputfile = AliAnalysisManager::GetCommonFileName();
241 
242  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(trigger, TList::Class(),
243  AliAnalysisManager::kOutputContainer,
244  Form("%s:%s",outputfile.Data(),Form("Pi0IM_GammaTrackCorr_%s",calorimeter.Data())));
245 
246  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",trigger.Data()), TList::Class(),
247  AliAnalysisManager::kParamContainer,
248  Form("%s_Parameters.root",Form("Pi0IM_GammaTrackCorr_%s",calorimeter.Data())));
249 
250  // Create ONLY the output containers for the data produced by the task.
251  // Get and connect other common input/output containers via the manager as below
252  //==============================================================================
253  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
254  mgr->ConnectOutput (task, 1, cout_pc);
255  mgr->ConnectOutput (task, 2, cout_cuts);
256 
257  return task;
258 }
259 
263 AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision, Bool_t calibrate,
264  Int_t minTime, Int_t maxTime,
265  Int_t minCen, Int_t maxCen,
266  Bool_t simulation, Int_t year, Int_t debugLevel)
267 {
268  AliCaloTrackReader * reader = 0;
269  if (inputDataType=="AOD")
270  reader = new AliCaloTrackAODReader();
271  else if(inputDataType=="ESD")
272  reader = new AliCaloTrackESDReader();
273  else
274  printf("AliCaloTrackReader::ConfigureReader() - Data combination not known input Data=%s\n",
275  inputDataType.Data());
276 
277  reader->SetDebug(debugLevel);//10 for lots of messages
278 
279  // MC settings
280  if(simulation)
281  {
282  if(inputDataType == "ESD")
283  {
284  reader->SwitchOnStack();
285  reader->SwitchOffAODMCParticles();
286  }
287  else if(inputDataType == "AOD")
288  {
289  reader->SwitchOffStack();
290  reader->SwitchOnAODMCParticles();
291  }
292  }
293 
294  //------------------------
295  // Detector input filling
296  //------------------------
297 
298  //Min cluster/track E
299  reader->SetEMCALEMin(0.3);
300  reader->SetEMCALEMax(1000);
301  reader->SetPHOSEMin(0.3);
302  reader->SetPHOSEMax(1000);
303  reader->SetCTSPtMin(0.2);
304  reader->SetCTSPtMax(1000);
305 
306  // Time cut
308 
309  if(calibrate)
310  {
311  reader->SwitchOnUseEMCALTimeCut() ;
312  reader->SetEMCALTimeCut(minTime,maxTime);
313  }
314 
315  reader->SwitchOffUseTrackTimeCut();
316  reader->SetTrackTimeCut(-1e10,1e10);
317 
318  reader->SwitchOffFiducialCut();
319 
320  // Tracks
321  reader->SwitchOffCTS();
325  reader->SwitchOffUseTrackDCACut();
326  //reader->SetTrackDCACut(0,0.0105);
327  //reader->SetTrackDCACut(1,0.035);
328  //reader->SetTrackDCACut(2,1.1);
329 
330  if(inputDataType=="ESD")
331  {
332  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
333  if(year > 2010)
334  {
335  //Hybrids 2011
336  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
337  reader->SetTrackCuts(esdTrackCuts);
338  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
339  reader->SetTrackComplementaryCuts(esdTrackCuts2);
340  }
341  else
342  {
343  //Hybrids 2010
344  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
345  reader->SetTrackCuts(esdTrackCuts);
346  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
347  reader->SetTrackComplementaryCuts(esdTrackCuts2);
348  }
349  }
350  else if(inputDataType=="AOD")
351  {
352  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
353  reader->SetTrackStatus(AliVTrack::kITSrefit);
354  }
355 
356  // Calorimeter
357 
358  reader->SetEMCALClusterListName("");
359 
360  if(calibrate && !simulation) reader->SwitchOnClusterRecalculation();
361  else reader->SwitchOffClusterRecalculation();
362 
363  reader->SwitchOnEMCALCells();
364  reader->SwitchOnEMCAL();
365 
366  reader->SwitchOffPHOSCells();
367  reader->SwitchOffPHOS();
368 
369  //-----------------
370  // Event selection
371  //-----------------
372 
373  reader->SwitchOnEventTriggerAtSE();
374 
375  reader->SetZvertexCut(10.);
376  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
377  reader->SwitchOffPileUpEventRejection(); // remove pileup
378  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
379 
380  if(collision=="PbPb")
381  {
382  if(year < 2014) reader->SwitchOnAliCentrality();
383  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
384  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
385  }
386 
387  if(debugLevel > 0) reader->Print("");
388 
389  return reader;
390 }
391 
396  Bool_t simulation, Bool_t calibrate,
397  Int_t year, Int_t debugLevel)
398 {
400  cu->SetDebug(debugLevel);
401 
402  // Remove clusters close to borders, at least max energy cell is 1 cell away
405 
406  // Search of local maxima in cluster
407  cu->SetLocalMaximaCutE(0.1);
408  cu->SetLocalMaximaCutEDiff(0.03);
409 
410  //cu->SwitchOffClusterPlot();
412 
414 
415  //EMCAL settings
416 
417  if(!simulation)
419 
420  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
421  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
423 
425 
426  Bool_t bExotic = kTRUE;
427  Bool_t bNonLin = kFALSE;
428  Bool_t bBadMap = kTRUE;
429 
430  Bool_t bEnCalib = kFALSE;
431  Bool_t bTiCalib = kFALSE;
432 
433  if(calibrate && !simulation)
434  {
435  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
438 
439  bEnCalib = kTRUE;
440  bTiCalib = kTRUE;
441  }
442 
443  gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
445  simulation,
446  bExotic,
447  bNonLin,
448  bEnCalib,
449  bBadMap,
450  bTiCalib,
451  debugLevel
452  );
453  //recou->SetExoticCellDiffTimeCut(50.);
454 
455  if(calorimeter=="PHOS")
456  {
458  }
459  else
460  {
461  if (year == 2010) cu->SetNumberOfSuperModulesUsed(4); // EMCAL first year
462  else if (year < 2014) cu->SetNumberOfSuperModulesUsed(10);
463  else cu->SetNumberOfSuperModulesUsed(20);
464 
465  if (trigger.Contains("EMCAL"))
466  {
467  cu->SetFirstSuperModuleUsed( 0);
468  cu->SetLastSuperModuleUsed (11);
469  }
470  else if (trigger.Contains("DCAL"))
471  {
472  cu->SetFirstSuperModuleUsed(12);
473  cu->SetLastSuperModuleUsed (19);
474  }
475  else
476  {
479  }
480  }
481 
482  // PHOS
484 
485  if(debugLevel > 0) cu->Print("");
486 
487  return cu;
488 }
489 
495  TString containerName, Bool_t simulation,
496  Int_t year, Int_t debugLevel)
497 {
498  AliAnaPhoton *ana = new AliAnaPhoton();
499  ana->SetDebug(debugLevel); //10 for lots of messages
500 
501  // cluster selection cuts
502 
503  ana->SwitchOnFiducialCut();
504  if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
505  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
506  ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
507 
508  ana->SetCalorimeter(calorimeter);
509 
510  if(calorimeter == "PHOS")
511  {
512  ana->SetNCellCut(2);// At least 3 cells
513  ana->SetMinPt(0.5);
514  ana->SetMinDistanceToBadChannel(2, 4, 5);
515  ana->SetTimeCut(-1e10,1e10); // open cut
516  }
517  else
518  {
519  // EMCAL
520  ana->SetConstantTimeShift(615); // for MC and uncalibrated data, whenever there is time > 400 ns
521  ana->SetNCellCut(1);// At least 2 cells
522  ana->SetMinEnergy(0.5); // avoid mip peak at E = 260 MeV
523  ana->SetMaxEnergy(1000);
524  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
525  // restrict to less than 100 ns when time calibration is on
526  ana->SetMinDistanceToBadChannel(2, 4, 6);
527  // Not useful if M02 cut is already strong
528  ana->SetNLMCut(1, 2) ;
529  }
530 
532  ana->SwitchOnTMHistoFill() ;
533 
535  ana->SetNEBinCuts(2);
536  // Set the acceptance E bins depending on the trigger and their likely values
537  if(containerName.Contains("efault") || containerName.Contains("INT") || containerName.Contains("MB"))
538  {
539  ana->SetEBinCutsAt(0, 0.5);
540  ana->SetEBinCutsAt(1, 3.0);
541  ana->SetEBinCutsAt(2, 100.0);
542  }
543  else if(containerName.Contains("L0"))
544  {
545  ana->SetEBinCutsAt(0, 2.0);
546  ana->SetEBinCutsAt(1, 5.0);
547  ana->SetEBinCutsAt(2, 100.0);
548  }
549  else
550  {
551  ana->SetEBinCutsAt(0, 5.0);
552  ana->SetEBinCutsAt(1, 12.0);
553  ana->SetEBinCutsAt(2, 100.0);
554  }
555 
556  //PID cuts (shower shape)
557  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
558  AliCaloPID* caloPID = ana->GetCaloPID();
559  //Not used in bayesian
560 
561  //EMCAL
562  caloPID->SetEMCALLambda0CutMax(0.4); // Rather open
563  caloPID->SetEMCALLambda0CutMin(0.10);
564 
565  caloPID->SetEMCALDEtaCut(0.025);
566  caloPID->SetEMCALDPhiCut(0.030);
567 
568  //PHOS
569  caloPID->SetPHOSDispersionCut(2.5);
570  caloPID->SetPHOSRCut(2.);
571 
572  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
573  //if(!simulation)ana->SwitchOnFillPileUpHistograms();
574 
575  if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
576 
577  // Input / output delta AOD settings
578  ana->SetOutputAODName(Form("Photon%s_Calo%d",containerName.Data(),caloType));
579  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
580  ana->SetInputAODName (Form("Photon%s_Calo%d",containerName.Data(),caloType));
581 
582  // Set Histograms name tag, bins and ranges
583  ana->AddToHistogramsName(Form("AnaPhoton_Calo%d_",caloType));
584  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
585 
586  // Number of particle type MC histograms
587  ana->FillNOriginHistograms(7);
588  ana->FillNPrimaryHistograms(4);
589 
590  if(simulation) ana->SwitchOnDataMC();
591 
592  if(debugLevel > 0 ) ana->Print("");
593 
594  return ana;
595 }
596 
601  TString containerName, Bool_t simulation, Int_t year,
602  Int_t debugLevel, Int_t minCen)
603 {
604  AliAnaPi0 *ana = new AliAnaPi0();
605 
606  ana->SetDebug(debugLevel);//10 for lots of messages
607 
608  // Input delta AOD settings
609  ana->SetInputAODName(Form("Photon%s_Calo%d",containerName.Data(),caloType));
610 
611  // Calorimeter settings
612  ana->SetCalorimeter(calorimeter);
613 
614  ana->SwitchOnFiducialCut();
615  if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
616  else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
617  ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
618 
620 
621  // Settings for pp collision mixing
622  ana->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
623 
624  // Cuts
625  if(calorimeter=="EMCAL") ana->SetPairTimeCut(100);
626 
627  ana->SetNPIDBits(1);
628  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
629  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
630 
631  if (collision == "pp" )
632  {
633  ana->SetNCentrBin(1);
634  ana->SetNZvertBin(10);
635  ana->SetNRPBin(1);
636  ana->SetNMaxEvMix(100);
637  ana->SetMinPt(0.5);
638  }
639  else if(collision =="PbPb")
640  {
641  ana->SetNCentrBin(10);
642  ana->SetNZvertBin(10);
643  ana->SetNRPBin(4);
644  ana->SetNMaxEvMix(10);
645  if(minCen >= 10) ana->SetNMaxEvMix(50);
646  if(minCen >= 50) ana->SetNMaxEvMix(100);
647  ana->SetMinPt(1.5);
649  }
650  else if(collision =="pPb")
651  {
652  ana->SetNCentrBin(1);
653  ana->SetNZvertBin(10);
654  ana->SetNRPBin(4);
655  ana->SetNMaxEvMix(100);
656  ana->SetMinPt(0.5);
658  }
659 
661  ana->SwitchOnSMCombinations();
664 
665  // Set Histograms name tag, bins and ranges
666 
667  ana->AddToHistogramsName(Form("AnaPi0_Calo%d_",caloType));
668  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
669 
670  if(simulation) ana->SwitchOnDataMC();
671 
672  if(debugLevel > 0) ana->Print("");
673 
674  return ana;
675 }
676 
681  Bool_t simulation, Int_t year, Int_t debugLevel)
682 {
684  ana->SetDebug(debugLevel); //10 for lots of messages
685 
686  // selection cuts
687 
688  ana->SetMinPt(0.5);
689  ana->SwitchOnFiducialCut();
690  Float_t etacut = 0.8;
691  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(etacut, 0, 360) ; //more restrictive cut in reader and after in isolation
692 
693  // histogram switchs
694 
696  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
697 
699 
700  // Input / output delta AOD settings
701 
702  ana->SetOutputAODName(Form("Hadron%s",containerName.Data()));
703  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
704  ana->SetInputAODName(Form("Hadron%s",containerName.Data()));
705 
706  //Set Histograms name tag, bins and ranges
707 
708  ana->AddToHistogramsName("AnaHadrons_");
709  SetHistoRangeAndNBins(ana->GetHistogramRanges(),"",kFALSE,collision,year); // see method below
710 
711  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 120) ;
712  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.*etacut, 1.*etacut, etacut*100) ;
713 
714  if(simulation) ana->SwitchOnDataMC();
715 
716  if(debugLevel > 0) ana->Print("");
717 
718  return ana;
719 }
720 
725  TString collision, TString containerName,
726  Bool_t simulation, Int_t year, Int_t debugLevel)
727 {
729  ana->SetDebug(debugLevel);
730 
731  //if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
732 
733  ana->SetMinPt(5);
734 
737 
739  ana->SwitchOnSSHistoFill();
740 
741  ana->SwitchOffLeadingOnly();
743 
746  ana->SwitchOffTMHistoFill();
747 
748  // MC
751 
753  ana->SwitchOnFiducialCut();
754 
755  if(calorimeter == "EMCAL" && caloType == 0)
756  {
757  // Avoid borders of EMCal
758  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
759  }
760  if(calorimeter == "EMCAL" && caloType == 1)
761  {
762  // Avoid borders of DCal
763  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 264, 316) ;
764  }
765 
766  AliCaloPID* caloPID = ana->GetCaloPID();
767  caloPID->SetEMCALDEtaCut(0.025);
768  caloPID->SetEMCALDPhiCut(0.030);
769 
771  ana->SwitchOffReIsolation();
772 
773  //
774  // Do settings for main isolation cut class
775  //
776  AliIsolationCut * ic = ana->GetIsolationCut();
777  ic->SetDebug(debugLevel);
780  if ( collision == "pp" || collision == "pPb" )
781  {
782  ic->SetPtThreshold(0.5);
783  ic->SetSumPtThreshold(2.0) ;
784  ic->SetConeSize(0.4);
785  }
786  if ( collision == "PbPb" )
787  {
788  ic->SetPtThreshold(3.);
789  ic->SetSumPtThreshold(3.0) ;
790  ic->SetConeSize(0.3);
791  }
792 
793  // Input / output delta AOD settings
794 
795  ana->SetInputAODName(Form("%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
796  ana->SetAODObjArrayName(Form("%sIso_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
797 
798  // Set Histograms name tag, bins and ranges
799 
800  ana->AddToHistogramsName(Form("AnaIsol%s_Calo%d_",particle.Data(),caloType));
801  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
802 
803  if(simulation) ana->SwitchOnDataMC();
804 
805  if(debugLevel > 0) ana->Print("");
806 
807  return ana;
808 }
809 
814  TString collision, TString containerName,
815  Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
816 {
818  ana->SetDebug(debugLevel);
819 
820  ana->SetTriggerPtRange(5,100);
821  ana->SetAssociatedPtRange(0.2,100);
822  //ana->SetDeltaPhiCutRange( TMath::Pi()/2,3*TMath::Pi()/2 ); //[90 deg, 270 deg]
823  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
824  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
826 
827  ana->SetNAssocPtBins(4);
828  ana->SetAssocPtBinLimit(0, 0.5) ;
829  ana->SetAssocPtBinLimit(1, 2) ;
830  ana->SetAssocPtBinLimit(2, 5) ;
831  ana->SetAssocPtBinLimit(3, 10) ;
832  ana->SetAssocPtBinLimit(4, 20) ;
833 
834  ana->SelectIsolated(kFALSE); // do correlation with isolated photons
835 
836  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
837 
838  ana->SwitchOffAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
839  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
840 
841  //ana->SwitchOnLeadHadronSelection();
842  //ana->SetLeadHadronPhiCut(TMath::DegToRad()*100., TMath::DegToRad()*260.);
843  //ana->SetLeadHadronPtCut(0.5, 100);
844 
845  // Mixing with own pool
846  ana->SwitchOffOwnMix();
847 
848  ana->SetNZvertBin(20);
850 
851  //if(collision.Contains("Pb")) ana->SwitchOnFillHighMultiplicityHistograms();
852 
853  if(collision=="pp")
854  {
855  ana->SetNMaxEvMix(100);
856  ana->SwitchOnTrackMultBins();
857  ana->SetNTrackMultBin(10); // same as SetNCentrBin(10);
858  ana->SetNRPBin(1);
859  }
860  else
861  {
862  ana->SetNMaxEvMix(10);
863  if(minCen >= 10) ana->SetNMaxEvMix(50);
864  if(minCen >= 50) ana->SetNMaxEvMix(100);
865  ana->SwitchOffTrackMultBins(); // centrality bins
866  ana->SetNCentrBin(10);
867  ana->SetNRPBin(3);
868  }
869 
870  // Input / output delta AOD settings
871 
872  ana->SetInputAODName(Form("%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
873  ana->SetAODObjArrayName(Form("%sHadronCorr_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
874 
877  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
880 
881  // Underlying event
883  ana->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
884 
885  //Set Histograms name tag, bins and ranges
886 
887  ana->AddToHistogramsName(Form("Ana%sHadronCorr_Calo%d_",particle.Data(),caloType));
888  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,caloType,collision,year); // see method below
889 
890  if(simulation) ana->SwitchOnDataMC();
891 
892  if(debugLevel > 0) ana->Print("");
893 
894  return ana;
895 }
896 
901  Bool_t simulation, Int_t year, Int_t debugLevel)
902 {
904  ana->SetDebug(debugLevel); //10 for lots of messages
905  ana->SetCalorimeter(calorimeter);
906 
907  //printf("QA: calorimeter %s, caloType %d, collision %s, simulation %d, fillCellTime %d, year %d, debugLevel %d\n",
908  // calorimeter.Data(),caloType,collision.Data(),simulation,fillCellTime,year,debugLevel);
909 
910  ana->SetTimeCut(-1e10,1e10); // Open time cut
911  ana->SetConstantTimeShift(615); // for MC and uncalibrated data, whenever there is time > 400 ns
912  ana->SetEMCALCellAmpMin(0.5);
913 
920  ana->SwitchOffStudyWeight();
922  ana->SwitchOffCorrelation();
925 
929 
930  ana->AddToHistogramsName("QA_Cell_"); //Begining of histograms name
931  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, -1, collision,year); // see method below
932 
933 // ana->SwitchOnFiducialCut();
934 // if(caloType==0)ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 80, 187) ; // EMC
935 // else ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.7, 260, 327) ; // DMC
936 //
937 // ana->GetFiducialCut()->DoEMCALFiducialCut(kTRUE);
938 
939  //if(simulation) ana->SwitchOnDataMC();
940 
941  if(debugLevel > 0) ana->Print("");
942 
943  return ana;
944 }
945 
946 
951  TString collision, Int_t year)
952 {
953  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
954 
955  if(calorimeter=="EMCAL")
956  {
957  if ( year == 2010 )
958  {
959  histoRanges->SetHistoPhiRangeAndNBins(79*TMath::DegToRad(), 121*TMath::DegToRad(), 42) ;
960  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
961  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
962  }
963  else if ( year < 2014 )
964  {
965  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
966  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
967  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
968  }
969  else // Run2
970  {
971  if (caloType == 0)
972  histoRanges->SetHistoPhiRangeAndNBins(78 *TMath::DegToRad(), 189*TMath::DegToRad(), 111) ;
973  else if (caloType == 1)
974  histoRanges->SetHistoPhiRangeAndNBins(258*TMath::DegToRad(), 329*TMath::DegToRad(), 71) ;
975  else
976  histoRanges->SetHistoPhiRangeAndNBins(80 *TMath::DegToRad(), 327*TMath::DegToRad(), 247) ;
977 
978  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA
979  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA
980  }
981 
982  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
983  }
984  else
985  {
986  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
987  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
988  }
989 
990  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 2.9, 300);
991 
992  // Invariant mass histoRangeslysis
993  histoRanges->SetHistoMassRangeAndNBins(0., 0.8, 160) ;
994  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
995  histoRanges->SetHistoOpeningAngleRangeAndNBins(0,0.7,50);
996 
997  // check if time calibration is on
998  histoRanges->SetHistoTimeRangeAndNBins(-250.,250,250);
999  histoRanges->SetHistoDiffTimeRangeAndNBins(-150, 150, 150);
1000 
1001  // track-cluster residuals
1002  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.05,0.05,100);
1003  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.05,0.05,100);
1004  histoRanges->SetHistodRRangeAndNBins(0.,0.05,50);//QA
1005 
1006  // QA, electron, charged
1007  histoRanges->SetHistoPOverERangeAndNBins(0, 2. ,100);
1008  histoRanges->SetHistodEdxRangeAndNBins (0.,200.,100);
1009 
1010  // QA
1011  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
1012  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,250);
1013  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
1014  histoRanges->SetHistoRRangeAndNBins(430,460,30);
1015  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,250);
1016  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,250);
1017 
1018  // QA, correlation
1019  if(collision=="PbPb")
1020  {
1021  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
1022  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
1023  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
1024  }
1025  else
1026  {
1027  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
1028  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
1029  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
1030  }
1031 
1032  // xE, zT
1033  histoRanges->SetHistoRatioRangeAndNBins(0.,1.2.,120);
1034  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,100);
1035 
1036  // Isolation
1037  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 100);
1038  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 100);
1039  if(collision.Contains("pPb"))
1040  histoRanges->SetHistoPtSumRangeAndNBins (0, 200, 100);
1041  else if(collision.Contains("PbPb"))
1042  histoRanges->SetHistoPtSumRangeAndNBins (0, 500, 100);
1043 }
1044 
1059 Bool_t CheckAnalysisTrigger(Bool_t simulation, TString trigger, TString period, Int_t year)
1060 {
1061  // Accept directly all MB kind of events
1062  //
1063  if ( trigger.Contains("default") || trigger.Contains("INT") || trigger.Contains("MB") ) return kTRUE;
1064 
1065  // MC analysis has no trigger dependence, execute only for the default case
1066  //
1067  if ( simulation )
1068  {
1069  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : Triggered events not checked in simulation, SKIP trigger %s! \n", trigger.Data());
1070  return kFALSE;
1071  }
1072 
1073  // Triggers introduced in 2011
1074  //
1075  if ( year < 2011 && ( trigger.Contains("EMCAL") || trigger.Contains("DCAL") ) )
1076  {
1077  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No triggered events for year < 2011, SKIP trigger %s! \n", trigger.Data());
1078  return kFALSE;
1079  }
1080 
1081  // DCal Triggers introduced in 2015
1082  //
1083  if ( year < 2014 && trigger.Contains("DCAL") )
1084  {
1085  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No triggered events by DCal for year < 2014, SKIP trigger %s! \n", trigger.Data());
1086  return kFALSE;
1087  }
1088 
1089  // EG2 trigger only activated from 2013
1090  //
1091  if ( year < 2013 && trigger.Contains("L2") )
1092  {
1093  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : EG2 trigger not available for year < 2012, SKIP %s in %s \n", trigger.Data(),period.Data());
1094  return kFALSE;
1095  }
1096 
1097  // Triggers only activated in 2013 from LHC13d for physics (it might be there are in b and c but not taking data)
1098  //
1099  if ( year == 2013 && trigger.Contains("L") && ( period.Contains("b") || period.Contains("c") ) )
1100  {
1101  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : Triggers not available for year 2013 in period %s, SKIP %s in %s \n",period.Data(), trigger.Data());
1102  return kFALSE;
1103  }
1104 
1105  // DCal Triggers introduced in 2015
1106  //
1107  if ( year < 2014 && ( trigger.Contains("DCAL") ) )
1108  {
1109  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No triggered events by DCal for year < 2014, SKIP trigger %s! \n", trigger.Data());
1110  return kFALSE;
1111  }
1112 
1113  // L0 trigger used for periods below LHC11e?
1114  //
1115  if ( period == "LHC11h" && trigger.Contains("EMCAL_L0") )
1116  {
1117  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No EMCAL_L0 triggered events by EMCal for period LHC11h, SKIP trigger %s! \n", trigger.Data());
1118  return kFALSE;
1119  }
1120 
1121  // L1 trigger not used until LHC11e? period, what about LHC11f?
1122  //
1123  if ( period.Contains("LHC11") && period != "LHC11h" && trigger.Contains("EMCAL_L1") )
1124  {
1125  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No %s triggered events by EMCal for period %s, SKIP \n", trigger.Data(),period.Data());
1126  return kFALSE;
1127  }
1128 
1129  // L1 trigger not used again until LHC12c period
1130  //
1131  if ( ( period == "LHC12a" || period == "LHC12b" ) && trigger.Contains("EMCAL_L1") )
1132  {
1133  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No %s triggered events by EMCal for period %s, SKIP \n", trigger.Data(),period.Data());
1134  return kFALSE;
1135  }
1136 
1137  // Run2: No trigger used again until LHC15i period
1138  //
1139  if ( year == 2015 && ( period == "LHC15h" || period == "LHC15g" || period == "LHC15f" || period == "LHC15e" ||
1140  period == "LHC15d" || period == "LHC15c" || period == "LHC15b" || period == "LHC15a" ) )
1141  {
1142  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No %s triggered events by EMCal for period %s, SKIP \n", trigger.Data(),period.Data());
1143  return kFALSE;
1144  }
1145 
1146  // Run2: L1 trigger not used again until LHC15o period
1147  //
1148  if ( year == 2015 && period != "LHC15o" && !trigger.Contains("L0") )
1149  {
1150  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No %s triggered events by EMCal for period %s, SKIP \n", trigger.Data(),period.Data());
1151  return kFALSE;
1152  }
1153 
1154  // Run2: L1 trigger not used again until LHC15o period
1155  //
1156  if ( year == 2015 && period == "LHC15o" && ( trigger.Contains("L0") || trigger.Contains("L2") ) )
1157  {
1158  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : No %s triggered events by EMCal for period %s, SKIP \n", trigger.Data(),period.Data());
1159  return kFALSE;
1160  }
1161 
1162 
1163  return kTRUE;
1164 
1165 }
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:138
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:87
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 ConfigureEventTriggerCaloTrackCorr(AliAnalysisTaskCaloTrackCorrelation *task, TString trigger, Int_t year)
void SetFirstSuperModuleUsed(Int_t first)
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:132
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:94
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)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SetLastSuperModuleUsed(Int_t last)
void SetConeSize(Float_t r)
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:143
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:115
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)
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:123
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)
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString calorimeter, TString collision, Bool_t simulation, Int_t year, Int_t debugLevel)
Bool_t kMC
Definition: ana.C:63
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)
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()
void SwitchOnDataControlHistograms(Int_t lev=1)
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
float Float_t
Definition: External.C:68
void SetTrackStatus(ULong_t bit)
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:33
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnUEBandSubtractionHistoFill(Int_t lev=1)
void SwitchOffFillAllTrackMatchingHistogram()
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetEMCALClusterListName(TString &name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Definition: AliAnaPi0.cxx:2488
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:118
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)
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 SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetPHOSDispersionCut(Float_t dcut)
Definition: AliCaloPID.h:208
void ConfigureEMCALRecoUtils(AliEMCALRecoUtils *reco, 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)
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:74
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:139
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
void SwitchOnAcceptanceHistoPerEBin()
Definition: AliAnaPhoton.h:135
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 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:141
virtual void SetNMaxEvMix(Int_t n=20)
Number of bins in track multiplicity.
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()
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)
Bool_t CheckAnalysisTrigger(Bool_t simulation, TString trigger, TString period, Int_t year)
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:218
void SwitchOffUseParametrizedTimeCut()
void SwitchOffFillOriginHisto()
Definition: AliAnaPi0.h:136
void SetLocalMaximaCutE(Float_t cut)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0IMGammaCorrQA(const TString calorimeter="EMCAL", Bool_t simulation=kFALSE, TString collision="pp", TString period="", const Bool_t qaan=kTRUE, const Bool_t hadronan=kTRUE, const Bool_t calibrate=kFALSE, const Int_t minTime=-1000, const Int_t maxTime=1000, const Int_t minCen=-1, const Int_t maxCen=-1, const Int_t debugLevel=-1, const char *suffix="default")
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:126
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:102
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)