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