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