AliPhysics  vAN-20150427 (e6e7aad)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AddTaskPi0IMGammaCorrQA.C
Go to the documentation of this file.
1 
16 
33  const Bool_t simulation = kFALSE,
34  const TString collision = "pp",
35  const TString suffix = "default",
36  const Bool_t qaan = kFALSE,
37  const Bool_t hadronan = kFALSE,
38  const Int_t minCen = -1,
39  const Int_t maxCen = -1,
40  const Int_t debugLevel = -1
41  )
42 {
43  if(simulation && !suffix.Contains("default"))
44  {
45  printf("AddTaskPi0IMGammaCorrQA - CAREFUL : Triggered events not checked in simulation!! \n");
46  return 0x0;
47  }
48 
49  // Get the pointer to the existing analysis manager via the static access method.
50 
51  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
52  if (!mgr)
53  {
54  ::Error("AddTaskPi0IMGammaCorrQA", "No analysis manager to connect to.");
55  return NULL;
56  }
57 
58  // Check the analysis type using the event handlers connected to the analysis manager.
59 
60  if (!mgr->GetInputEventHandler())
61  {
62  ::Error("AddTaskPi0IMGammaCorrQA", "This task requires an input event handler");
63  return NULL;
64  }
65 
66  // Make sure the B field is enabled for track selection, some cuts need it
67  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
68 
69  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
70 
71  // Name for containers
72 
73  TString containerName = Form("%s_%s",calorimeter.Data(), suffix.Data());
74 
75  if(collision!="pp" && maxCen>=0) containerName+=Form("Cen%d_%d",minCen,maxCen);
76 
77  printf("AddTaskPi0IMGammaCorrQA - Container NAME: %s \n",containerName.Data());
78 
79  // #### Configure analysis ####
80 
82 
83  // General frame setting and configuration
84  maker->SetReader ( ConfigureReader (inputDataType,collision,minCen,maxCen,simulation,debugLevel) );
85  maker->SetCaloUtils( ConfigureCaloUtils(calorimeter,simulation,debugLevel) );
86 
87  // Analysis tasks setting and configuration
88  Int_t n = 0;//Analysis number, order is important
89 
90  // Photon analysis
91  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,collision,containerName,simulation ,debugLevel), n++); // Photon cluster selection
92  maker->AddAnalysis(ConfigurePi0Analysis (calorimeter,collision,containerName,simulation,qaan,debugLevel) ,n++); // Previous photon invariant mass
93 
94  if(hadronan)
95  {
96  maker->GetReader()->SwitchOnCTS();
97  maker->AddAnalysis(ConfigureChargedAnalysis(collision,containerName,simulation,debugLevel), n++); // charged tracks plots
98  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,collision,containerName,simulation,debugLevel), n++); // Gamma hadron correlation
99  }
100 
101  if(qaan) maker->AddAnalysis(ConfigureQAAnalysis(calorimeter,collision,simulation,debugLevel),n++);
102 
103  maker->SetAnaDebug(debugLevel) ;
104  maker->SwitchOnHistogramsMaker() ;
105  maker->SwitchOnAODsMaker() ;
106  maker->SwitchOffDataControlHistograms();
107  if(suffix.Contains("EMC"))
108  maker->SwitchOnDataControlHistograms();
109 
110  if(debugLevel > 0) maker->Print("");
111 
112  // Create task
113 
114  TString taskName =Form("Pi0IM_GammaTrackCorr_%s",containerName.Data());
115 
117  task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
118  task->SetDebugLevel(debugLevel);
119  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
120  //task->SetBranches("AOD:header,tracks,vertices,emcalCells,caloClusters");
121  task->SetAnalysisMaker(maker);
122  mgr->AddTask(task);
123 
124  //Create containers
125 
126  TString outputfile = AliAnalysisManager::GetCommonFileName();
127 
128  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(taskName, TList::Class(),
129  AliAnalysisManager::kOutputContainer,
130  Form("%s:%s",outputfile.Data(),taskName.Data()));
131 
132  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",taskName.Data()), TList::Class(),
133  AliAnalysisManager::kParamContainer,
134  Form("%s_Parameters.root",taskName.Data()));
135 
136  // Create ONLY the output containers for the data produced by the task.
137  // Get and connect other common input/output containers via the manager as below
138  //==============================================================================
139  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
140  mgr->ConnectOutput (task, 1, cout_pc);
141  mgr->ConnectOutput (task, 2, cout_cuts);
142 
143  return task;
144 }
145 
149 AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision,
150  Int_t minCen, Int_t maxCen,
151  Bool_t simulation, Int_t debugLevel)
152 {
153  AliCaloTrackReader * reader = 0;
154  if (inputDataType=="AOD")
155  reader = new AliCaloTrackAODReader();
156  else if(inputDataType=="ESD")
157  reader = new AliCaloTrackESDReader();
158  else
159  printf("AliCaloTrackReader::ConfigureReader() - Data combination not known input Data=%s\n",
160  inputDataType.Data());
161 
162  reader->SetDebug(debugLevel);//10 for lots of messages
163 
164  // MC settings
165  if(simulation)
166  {
167  if(inputDataType == "ESD")
168  {
169  reader->SwitchOnStack();
170  reader->SwitchOffAODMCParticles();
171  }
172  else if(inputDataType == "AOD")
173  {
174  reader->SwitchOffStack();
175  reader->SwitchOnAODMCParticles();
176  }
177  }
178 
179  //------------------------
180  // Detector input filling
181  //------------------------
182 
183  //Min cluster/track E
184  reader->SetEMCALEMin(0.3);
185  reader->SetEMCALEMax(1000);
186  reader->SetPHOSEMin(0.3);
187  reader->SetPHOSEMax(1000);
188  reader->SetCTSPtMin(0.2);
189  reader->SetCTSPtMax(1000);
190 
191  // Time cut off
192  reader->SwitchOffUseTrackTimeCut();
194  reader->SwitchOffUseEMCALTimeCut() ;
195  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
196  reader->SetTrackTimeCut(-1e10,1e10);
197 
198  reader->SwitchOnFiducialCut();
199 
200  // Tracks
201  reader->SwitchOffCTS();
205  reader->SwitchOffUseTrackDCACut();
206  //reader->SetTrackDCACut(0,0.0105);
207  //reader->SetTrackDCACut(1,0.035);
208  //reader->SetTrackDCACut(2,1.1);
209 
210  if(inputDataType=="ESD")
211  {
212  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
213 // if(year > 2010)
214 // {
215  //Hybrids 2011
216  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
217  reader->SetTrackCuts(esdTrackCuts);
218  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
219  reader->SetTrackComplementaryCuts(esdTrackCuts2);
220 // }
221 // else
222 // {
223 // //Hybrids 2010
224 // AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
225 // reader->SetTrackCuts(esdTrackCuts);
226 // AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
227 // reader->SetTrackComplementaryCuts(esdTrackCuts2);
228 // }
229  }
230  else if(inputDataType=="AOD")
231  {
232  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
233  reader->SetTrackStatus(AliVTrack::kITSrefit);
234  }
235 
236  // Calorimeter
237 
238  reader->SetEMCALClusterListName("");
240 
241  reader->SwitchOnEMCALCells();
242  reader->SwitchOnEMCAL();
243 
244  reader->SwitchOnPHOSCells();
245  reader->SwitchOnPHOS();
246 
247  //-----------------
248  // Event selection
249  //-----------------
250 
251  reader->SwitchOnEventTriggerAtSE();
252 
253  reader->SetZvertexCut(10.);
254  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
255  reader->SwitchOffPileUpEventRejection(); // remove pileup
256  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
257 
258  if(collision=="PbPb")
259  {
260  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
261  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
262  }
263 
264  if(debugLevel > 0) reader->Print("");
265 
266  return reader;
267 }
268 
272 AliCalorimeterUtils* ConfigureCaloUtils(TString calorimeter, Bool_t simulation, Int_t debugLevel)
273 {
275  cu->SetDebug(debugLevel);
276 
277  // Remove clusters close to borders, at least max energy cell is 1 cell away
280 
281  // Search of local maxima in cluster
282  cu->SetLocalMaximaCutE(0.1);
283  cu->SetLocalMaximaCutEDiff(0.03);
284 
285  cu->SwitchOffClusterPlot();
287 
289 
290  //EMCAL settings
291 
292  if(!simulation)
294 
295  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
296  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
298 
299  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/EMCALTasks/macros/ConfigureEMCALRecoUtils.C");
300  ConfigureEMCALRecoUtils(recou,
301  simulation,
302  kTRUE,//kExotic,
303  kTRUE,//kNonLinearity,
304  kFALSE,//kCalibE,
305  kTRUE,//kBadMap,
306  kFALSE);//kCalibT
307  recou->SetExoticCellDiffTimeCut(50.);
308 
310 
311  if(calorimeter=="PHOS")
313  else
315 
316  // PHOS
318 
319  if(debugLevel > 0) cu->Print("");
320 
321  return cu;
322 }
323 
329  TString containerName,
330  Bool_t simulation, Int_t debugLevel)
331 {
332  AliAnaPhoton *ana = new AliAnaPhoton();
333  ana->SetDebug(debugLevel); //10 for lots of messages
334 
335  // cluster selection cuts
336 
337  ana->SwitchOffFiducialCut();
338 
339  ana->SetCalorimeter(calorimeter);
340 
341  if(calorimeter == "PHOS")
342  {
343  ana->SetNCellCut(2);// At least 3 cells
344  ana->SetMinPt(0.3);
345  ana->SetMinDistanceToBadChannel(2, 4, 5);
346  ana->SetTimeCut(-1e10,1e10); // open cut
347  }
348  else
349  {//EMCAL
350  ana->SetNCellCut(1);// At least 2 cells
351  ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
352  ana->SetMaxEnergy(1000);
353  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
354  // restrict to less than 100 ns when time calibration is on
355  ana->SetMinDistanceToBadChannel(2, 4, 6);
356  // Not useful if M02 cut is already strong
357  ana->SetNLMCut(1, 2) ;
358  }
359 
361  ana->SwitchOffTMHistoFill() ;
362 
363 
364  //PID cuts (shower shape)
365  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
366  AliCaloPID* caloPID = ana->GetCaloPID();
367  //Not used in bayesian
368 
369  //EMCAL
370  caloPID->SetEMCALLambda0CutMax(0.4); // Rather open
371  caloPID->SetEMCALLambda0CutMin(0.10);
372 
373  caloPID->SetEMCALDEtaCut(0.025);
374  caloPID->SetEMCALDPhiCut(0.030);
375 
376  //PHOS
377  caloPID->SetPHOSDispersionCut(2.5);
378  caloPID->SetPHOSRCut(2.);
379 
380  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
381  //if(!simulation)ana->SwitchOnFillPileUpHistograms();
382 
383  // Input / output delta AOD settings
384  ana->SetOutputAODName(Form("Photon%s",containerName.Data()));
385  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
386  ana->SetInputAODName (Form("Photon%s",containerName.Data()));
387 
388  //Set Histograms name tag, bins and ranges
389 
390  ana->AddToHistogramsName("AnaPhoton_");
391  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,collision); // see method below
392 
393  // Number of particle type MC histograms
394  ana->FillNOriginHistograms(7);
395  ana->FillNPrimaryHistograms(4);
396 
397  if(simulation) ana->SwitchOnDataMC();
398 
399  if(debugLevel > 0 ) ana->Print("");
400 
401  return ana;
402 
403 }
404 
408 AliAnaPi0* ConfigurePi0Analysis(TString calorimeter, TString collision,
409  TString containerName, Bool_t simulation,
410  Bool_t qaan, Int_t debugLevel)
411 {
412  AliAnaPi0 *ana = new AliAnaPi0();
413 
414  ana->SetDebug(debugLevel);//10 for lots of messages
415 
416  // Input delta AOD settings
417  ana->SetInputAODName(Form("Photon%s",containerName.Data()));
418 
419  // Calorimeter settings
420  ana->SetCalorimeter(calorimeter);
421 
422  //settings for pp collision mixing
423  ana->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
424 
425  // Cuts
426  if(calorimeter=="EMCAL") ana->SetPairTimeCut(70);
427 
428  ana->SetNPIDBits(1);
429  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
430  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
431 
432  if (collision == "pp" )
433  {
434  ana->SetNCentrBin(1);
435  ana->SetNZvertBin(10);
436  ana->SetNRPBin(1);
437  ana->SetNMaxEvMix(100);
438  ana->SetMinPt(0.5);
439  }
440  else if(collision =="PbPb")
441  {
442  ana->SetNCentrBin(10);
443  ana->SetNZvertBin(10);
444  ana->SetNRPBin(4);
445  ana->SetNMaxEvMix(10);
446  ana->SetMinPt(1.5);
447  }
448  else if(collision =="pPb")
449  {
450  ana->SetNCentrBin(1);
451  ana->SetNZvertBin(10);
452  ana->SetNRPBin(4);
453  ana->SetNMaxEvMix(100);
454  ana->SetMinPt(0.5);
455  }
456 
458  ana->SwitchOnSMCombinations();
461 
462  //Set Histograms name tag, bins and ranges
463 
464  ana->AddToHistogramsName("AnaPi0_");
465  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,collision); // see method below
466 
467  if(simulation) ana->SwitchOnDataMC();
468 
469  if(debugLevel > 0) ana->Print("");
470 
471  return ana;
472 }
473 
477 AliAnaChargedParticles* ConfigureChargedAnalysis(TString collision,TString containerName,
478  Bool_t simulation, Int_t debugLevel)
479 {
481  ana->SetDebug(debugLevel); //10 for lots of messages
482 
483  // selection cuts
484 
485  ana->SetMinPt(0.5);
486  ana->SwitchOnFiducialCut();
487  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ; //more restrictive cut in reader and after in isolation
488 
490  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
491 
492  // Input / output delta AOD settings
493 
494  ana->SetOutputAODName(Form("Hadron%s",containerName.Data()));
495  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
496  ana->SetInputAODName(Form("Hadron%s",containerName.Data()));
497 
498  //Set Histograms name tag, bins and ranges
499 
500  ana->AddToHistogramsName("AnaHadrons_");
501  SetHistoRangeAndNBins(ana->GetHistogramRanges(),"",collision); // see method below
502 
503  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
504  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
505 
506  if(debugLevel > 0) ana->Print("");
507 
508  return ana;
509 
510 }
511 
516  TString collision, TString containerName,
517  Bool_t simulation, Int_t debugLevel)
518 {
519 
521  ana->SetDebug(debugLevel);
522 
523  ana->SetTriggerPtRange(5,100);
524  ana->SetAssociatedPtRange(0.2,100);
525  //ana->SetDeltaPhiCutRange( TMath::Pi()/2,3*TMath::Pi()/2 ); //[90 deg, 270 deg]
526  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
527  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
529 
530  ana->SetNAssocPtBins(4);
531  ana->SetAssocPtBinLimit(0, 0.5) ;
532  ana->SetAssocPtBinLimit(1, 2) ;
533  ana->SetAssocPtBinLimit(2, 5) ;
534  ana->SetAssocPtBinLimit(3, 10) ;
535  ana->SetAssocPtBinLimit(4, 20) ;
536 
537  ana->SelectIsolated(kFALSE); // do correlation with isolated photons
538 
539  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
540 
541  ana->SwitchOnAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
542  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
543 
544  //ana->SwitchOnLeadHadronSelection();
545  //ana->SetLeadHadronPhiCut(TMath::DegToRad()*100., TMath::DegToRad()*260.);
546  //ana->SetLeadHadronPtCut(0.5, 100);
547 
548 
549  // Mixing with own pool
550  ana->SwitchOffOwnMix();
551 
552  ana->SetNZvertBin(20);
555 
556  if(collision=="pp")
557  {
558  ana->SetNMaxEvMix(100);
559  ana->SwitchOnTrackMultBins();
560  ana->SetNTrackMultBin(10); // same as SetNCentrBin(10);
561  ana->SetNRPBin(1);
562  }
563  else
564  {
565  ana->SetNMaxEvMix(10);
566  ana->SwitchOffTrackMultBins(); // centrality bins
567  ana->SetNCentrBin(10);
568  ana->SetNRPBin(3);
569  }
570 
571  // Input / output delta AOD settings
572 
573  ana->SetInputAODName(Form("%s%s",particle.Data(),containerName.Data()));
574  ana->SetAODObjArrayName(Form("%sHadronCorr_%s",particle.Data(),containerName.Data()));
575 
578  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
581 
582  // Underlying event
584  ana->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
585 
586  //Set Histograms name tag, bins and ranges
587 
588  ana->AddToHistogramsName(Form("Ana%sHadronCorr_",particle.Data()));
589  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, collision); // see method below
590 
591  if(simulation) ana->SwitchOnDataMC();
592 
593  if(debugLevel > 0) ana->Print("");
594 
595  return ana;
596 
597 }
598 
603  Bool_t simulation, Int_t debugLevel)
604 {
606  ana->SetDebug(debugLevel); //10 for lots of messages
607  ana->SetCalorimeter(calorimeter);
608 
609  ana->SetTimeCut(-1e10,1e10); // Open time cut
610  ana->SwitchOnCorrelation();
612  ana->SwitchOffFiducialCut();
618  ana->SwitchOffStudyWeight();
621 
622  ana->AddToHistogramsName("QA_"); //Begining of histograms name
623  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, collision); // see method below
624 
625  if(simulation) ana->SwitchOnDataMC();
626 
627  if(debugLevel > 0) ana->Print("");
628 
629  return ana;
630 }
631 
632 
637  TString calorimeter, TString collision)
638 {
639  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
640 
641  if(calorimeter=="EMCAL")
642  {
643 // if(year==2010)
644 // {
645 // histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
646 // histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
647 // histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
648 // }
649 // else if(year==2011)
650 // {
651 // histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
652 // histoRanges->SetHistoXRangeAndNBins(-600,90,200); // QA
653 // histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
654 // }
655 // else
656  {
657  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 190*TMath::DegToRad(), 122) ;
658  histoRanges->SetHistoXRangeAndNBins(-100,90,200); // QA
659  histoRanges->SetHistoYRangeAndNBins(50,450,100); // QA
660  }
661 
662  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
663  }
664  else
665  {
666  histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 320*TMath::DegToRad(), 60) ;
667  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
668  }
669 
670  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
671 
672  // Invariant mass histoRangeslysis
673  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
674  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
675 
676  // check if time calibration is on
677  histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,500);
678  //histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
679  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
680 
681  // track-cluster residuals
682  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
683  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
684  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA
685 
686  // QA, electron, charged
687  histoRanges->SetHistoPOverERangeAndNBins(0, 2. ,200);
688  histoRanges->SetHistodEdxRangeAndNBins (0.,200.0,200);
689 
690  // QA
691  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
692  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
693  histoRanges->SetHistoZRangeAndNBins(-400,400,200);
694  histoRanges->SetHistoRRangeAndNBins(400,450,25);
695  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
696  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
697 
698  // QA, correlation
699  if(collision=="PbPb")
700  {
701  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
702  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
703  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
704  }
705  else
706  {
707  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
708  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
709  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
710  }
711 
712  // xE, zT
713  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
714  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,200);
715 
716  // Isolation
717  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
718  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
719 
720 }
721 
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SetTimeCut(Double_t min, Double_t max)
void ana(Int_t mode=mGRID)
Definition: ana.C:86
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 SwitchOnFillAllTrackMatchingHistogram()
virtual void SwitchOnFiducialCut()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:102
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SetAssociatedPtRange(Float_t min, Float_t max)
void SetNPIDBits(Int_t s)
Definition: AliAnaPi0.h:115
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:107
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:38
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual void SetInputAODName(TString name)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
void SwitchOnSMCombinations()
Definition: AliAnaPi0.h:89
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPhoton.h:85
void SwitchOffTMHistoFill()
Definition: AliAnaPhoton.h:77
virtual void SetOutputAODClassName(TString name)
AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision, Int_t minCen, Int_t maxCen, Bool_t simulation, Int_t debugLevel)
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 debugLevel)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffMultipleCutAnalysis()
Definition: AliAnaPi0.h:110
Class for the Calorimeter QA analysis.
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetLocalMaximaCutEDiff(Float_t c)
void SetPHOSEMax(Float_t e)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SetEMCALEMin(Float_t e)
void SetNCellCut(Int_t n)
Definition: AliAnaPhoton.h:93
AliAnaPi0 * ConfigurePi0Analysis(TString calorimeter, TString collision, TString containerName, Bool_t simulation, Bool_t qaan, Int_t debugLevel)
const TString calorimeter
Definition: anaM.C:35
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:207
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:201
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SwitchOffVertexBCEventSelection()
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter, TString collision)
Correlate trigger particles (photon, pi0, tracks) and charged tracks: Azimuthal correlations, xE distributions.
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)
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:80
virtual void SetCentralityOpt(Int_t opt)
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual AliHistogramRanges * GetHistogramRanges()
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTrackStatus(ULong_t bit)
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:32
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
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:1268
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:88
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis(TString particle, TString calorimeter, TString collision, TString containerName, Bool_t simulation, Int_t debugLevel)
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString calorimeter, TString collision, Bool_t simulation, Int_t debugLevel)
virtual void SetZvertexCut(Float_t zcut=10.)
void SetNumberOfSuperModulesUsed(Int_t nSM)
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:192
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter, TString collision, TString containerName, Bool_t simulation, Int_t debugLevel)
void SetNAsymCuts(Int_t s)
Definition: AliAnaPi0.h:113
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetPHOSDispersionCut(Float_t dcut)
Definition: AliCaloPID.h:210
virtual void SetTrackCuts(AliESDtrackCuts *)
Track selection for correlation analysis.
void SwitchOnFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:68
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
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()
AliCalorimeterUtils * ConfigureCaloUtils(TString calorimeter, Bool_t simulation, Int_t debugLevel)
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 SetNAssocPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:51
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:105
void SetPHOSEMin(Float_t e)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
void SetHistoHBPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALLambda0CutMin(Float_t lcut)
Definition: AliCaloPID.h:195
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0IMGammaCorrQA(const TString calorimeter="EMCAL", const Bool_t simulation=kFALSE, const TString collision="pp", const TString suffix="default", const Bool_t qaan=kFALSE, const Bool_t hadronan=kFALSE, const Int_t minCen=-1, const Int_t maxCen=-1, const Int_t debugLevel=-1)
void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALEMax(Float_t e)
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:198
void SwitchOffUseParametrizedTimeCut()
void SwitchOffFillOriginHisto()
Definition: AliAnaPi0.h:129
void SetLocalMaximaCutE(Float_t cut)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
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:96
void SetAssocPtBinLimit(Int_t ibin, Float_t pt)
Set the list of pT limits for the of associated charged (neutral) hadrons.
Steering class of package CaloTrackCorrelartions.
void SetTriggerPtRange(Float_t min, Float_t max)