AliPhysics  0e0bd91 (0e0bd91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
AddTaskPi0.C
Go to the documentation of this file.
1 
9 TString kAnaPi0 = "";
10 
35 (
36  TString calorimeter = "EMCAL",
37  Bool_t simulation = kFALSE,
38  Int_t year = 2015,
39  TString col = "pp",
40  TString trigger = "EMC7",
41  Bool_t rejectEMCTrig = kFALSE,
42  Bool_t muonCaloPass = kFALSE,
43  TString clustersArray = "",
44  Bool_t tender = kFALSE,
45  Bool_t nonLinOn = kFALSE,
46  Float_t shshMax = 0.5,
47  Bool_t tm = kTRUE,
48  Int_t minCen = -1,
49  Int_t maxCen = -1,
50  Bool_t mixOn = kTRUE,
51  TString outputfile = "",
52  Bool_t printSettings = kFALSE,
53  Int_t debug = 0 // Debug level
54  )
55 
56 {
57  // Get the pointer to the existing analysis manager via the static access method.
58 
59  printf("Passed settings:\n calorimeter <%s>, simulation <%d>, year <%d>,\n col <%s>, trigger <%s>, reject EMC <%d> clustersArray <%s>, tender <%d>, non linearity <%d>\n shshMax <%2.2f>, tm %d, minCen %d, maxCen %d, mixOn <%d>,\n outputfile <%s>, printSettings <%d>, debug <%d>\n",
60  calorimeter.Data(),simulation,year,col.Data(),trigger.Data(), rejectEMCTrig, clustersArray.Data(),tender, nonLinOn, shshMax,tm,
61  minCen,maxCen,mixOn,outputfile.Data(),printSettings,debug);
62 
63  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
64  if (!mgr)
65  {
66  ::Error("AddTask", "No analysis manager to connect to.");
67  return NULL;
68  }
69 
70  // Check the analysis type using the event handlers connected to the analysis manager.
71 
72  if (!mgr->GetInputEventHandler())
73  {
74  ::Error("AddTask", "This task requires an input event handler");
75  return NULL;
76  }
77 
78  // Make sure the B field is enabled for track selection, some cuts need it
79  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
80 
81  // Name for containers
82 
83  kAnaPi0 = Form("Pi0_%s_Trig%s_Col_%s_Year%d_Cl%s_Ten%d_TM%d_M02_%1.2f_Mix%d",
84  calorimeter.Data(),trigger.Data(),col.Data(),year,clustersArray.Data(),tender,
85  tm, shshMax,mixOn);
86 
87  if(col=="PbPb" && maxCen>=0) kAnaPi0+=Form("Cen%d_%d",minCen,maxCen);
88 
89  printf("<<<< NAME: %s >>>>>\n",kAnaPi0.Data());
90 
91  // #### Configure analysis ####
92 
94 
95  // General frame setting and configuration
96  maker->SetReader ( ConfigureReader (col,simulation,clustersArray,tender,calorimeter,nonLinOn,trigger,rejectEMCTrig,minCen,maxCen,printSettings,debug) );
97  maker->SetCaloUtils( ConfigureCaloUtils(col,simulation,clustersArray,tender,nonLinOn,year, printSettings,debug) );
98 
99  if(muonCaloPass)
100  {
101  maker->GetReader()->SwitchOffPrimaryVertexSelection();
102  maker->GetReader()->SwitchOffRejectNoTrackEvents();
103  }
104 
105  // Remove as soon calibrations are available
106  if(year > 2014)
107  {
108  maker->GetReader()->SwitchOffUseEMCALTimeCut();
109  maker->GetReader()->SetEMCALTimeCut(-1000,1000);
110  maker->GetCaloUtils()->SwitchOffRunDepCorrection();
111  }
112 
113  // Analysis tasks setting and configuration
114  Int_t n = 0;//Analysis number, order is important
115 
116  if(calorimeter.Contains("EMCAL"))
117  {
118  // Photon analysis
119  //
120  maker->AddAnalysis(ConfigurePhotonAnalysis(col, simulation, "EMCAL", year, tm, shshMax, printSettings, debug), n++);
121 
122  // Pi0 analysis
123  //
124  printf("AliAnaPi0: EMCal-EMCal invariant mass\n");
125  maker->AddAnalysis(ConfigurePi0Analysis (col, simulation, "EMCAL", kFALSE, year, tm, mixOn , printSettings, debug), n++);
126 
127  // Temporal addition to study the minimum angle cut
128  maker->AddAnalysis(ConfigurePi0Analysis2 (col, simulation, "EMCAL", kFALSE, year, tm, mixOn , printSettings, debug), n++);
129  maker->AddAnalysis(ConfigurePi0Analysis3 (col, simulation, "EMCAL", kFALSE, year, tm, mixOn , printSettings, debug), n++);
130  }
131 
132  if(calorimeter.Contains("PHOS"))
133  {
134  // Photon analysis
135  //
136  maker->AddAnalysis(ConfigurePhotonAnalysis(col, simulation, "PHOS", year, tm, shshMax, printSettings, debug), n++);
137 
138  // Pi0 analysis
139  //
140  printf("AliAnaPi0: PHOS-PHOS invariant mass\n");
141  maker->AddAnalysis(ConfigurePi0Analysis (col, simulation, "PHOS", kFALSE, year, tm, mixOn , printSettings, debug), n++);
142  }
143 
144  if(calorimeter.Contains("BothCalo"))
145  {
146  // Pi0 analysis
147  //
148  //Do it with PHOS or EMCal in the main loop and EMCal or PHOS in the mixed event, should be equivalent?
149  printf("AliAnaPi0: DCal-PHOS invariant mass\n");
150  maker->AddAnalysis(ConfigurePi0Analysis (col, simulation, "EMCAL", kTRUE, year, tm, mixOn, printSettings, debug), n++);
151  printf("AliAnaPi0: PHOS-DCal invariant mass\n");
152  maker->AddAnalysis(ConfigurePi0Analysis (col, simulation, "PHOS" , kTRUE, year, tm, mixOn, printSettings, debug), n++);
153  }
154 
155  // Maker
156 
157  maker->SetAnaDebug(debug) ;
158 
159  maker->SwitchOnHistogramsMaker() ;
160  maker->SwitchOnAODsMaker() ;
161 
162  maker->SwitchOffDataControlHistograms();
163  if(rejectEMCTrig) maker->SwitchOnDataControlHistograms();
164 
165  if(printSettings) maker->Print("");
166 
167  printf("<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
168 
169  // Create task
170 
172 
173  task->SetDebugLevel(debug);
174 
175  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
176  //task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
177 
178  task->SetAnalysisMaker(maker);
179 
180  mgr->AddTask(task);
181 
182  //Create containers
183 
184  if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
185 
186  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaPi0, TList::Class(),
187  AliAnalysisManager::kOutputContainer,
188  Form("%s",outputfile.Data()));
189 
190  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",kAnaPi0.Data()), TList::Class(),
191  AliAnalysisManager::kParamContainer,
192  "AnalysisParameters.root");
193 
194  // Create ONLY the output containers for the data produced by the task.
195  // Get and connect other common input/output containers via the manager as below
196  //==============================================================================
197  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
198  //if(!kData.Contains("delta") && outputAOD) mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
199  mgr->ConnectOutput (task, 1, cout_pc);
200  mgr->ConnectOutput (task, 2, cout_cuts);
201 
202 // if(!mixOn)
203 // {
204  UInt_t mask = SetTriggerMaskFromName(trigger);
205  task->SelectCollisionCandidates(mask);
206 // }
207 
208  return task;
209 }
210 
214 AliCaloTrackReader * ConfigureReader(TString col, Bool_t simulation,
215  TString clustersArray, Bool_t tender,
216  TString calorimeter, Bool_t nonLinOn,
217  TString trigger, Bool_t rejectEMCTrig,
218  Int_t minCen, Int_t maxCen,
219  Bool_t printSettings, Int_t debug )
220 {
221  // Get the data type ESD or AOD
222  AliAnalysisManager * mgr = AliAnalysisManager::GetAnalysisManager();
223  TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
224 
225  AliCaloTrackReader * reader = 0;
226  if (inputDataType == "AOD") reader = new AliCaloTrackAODReader();
227  else if(inputDataType == "ESD") reader = new AliCaloTrackESDReader();
228  else printf("AliCaloTrackReader::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
229 
230  reader->SetDebug(debug);//10 for lots of messages
231 
232  //
233  // MC settings
234  //
235  // Check if kine stack is available, independent of request of simulation
236  Bool_t useKinematics = kFALSE;
237  useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
238 
239  if(simulation)
240  {
241  if (!useKinematics && inputDataType=="AOD") useKinematics = kTRUE; //AOD primary should be available ...
242  }
243 
244  if(useKinematics)
245  {
246  if(inputDataType == "ESD")
247  {
248  reader->SwitchOnStack();
249  reader->SwitchOffAODMCParticles();
250  }
251  else if(inputDataType == "AOD")
252  {
253  reader->SwitchOffStack();
254  reader->SwitchOnAODMCParticles();
255  }
256  }
257 
258  // In case of Pythia pt Hard bin simulations (jet-jet, gamma-jet)
259  // reject some special events that bother the cross section
260  if(simulation)
261  {
262  // Event rejection cuts for jet-jet simulations, do not use in other
263  reader->SetPtHardAndJetPtComparison(kTRUE);
264  reader->SetPtHardAndJetPtFactor(4);
265 
266  // Gamma-jet
267  //reader->SetPtHardAndClusterPtComparison(kTRUE);
268  //reader->SetPtHardAndClusterPtFactor(1.5);
269  }
270 
271  //------------------------
272  // Detector input filling
273  //------------------------
274 
275  //Min cluster/track E
276  reader->SetEMCALEMin(0.3);
277  reader->SetEMCALEMax(1000);
278  reader->SetPHOSEMin(0.3);
279  reader->SetPHOSEMax(1000);
280  reader->SetCTSPtMin(0.2);
281  reader->SetCTSPtMax(1000);
282 
285 
286  // Shower shape smearing
287  // Set it in the train configuration page not here for the moment
288 // if(simulation)
289 // {
290 // reader->SwitchOffShowerShapeSmearing(); // Active only on MC, off by default
291 // reader->SetShowerShapeSmearWidth(0.005);
292 // }
293 
294  //
295  // Tracks
296  //
297  reader->SwitchOnCTS();
298 
299  reader->SwitchOffUseTrackTimeCut();
300  reader->SetTrackTimeCut(0,50);
301 
302  reader->SwitchOffFiducialCut();
303  reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ;
304 
305  reader->SwitchOffUseTrackDCACut();
306  //reader->SetTrackDCACut(0,0.0105);
307  //reader->SetTrackDCACut(1,0.035);
308  //reader->SetTrackDCACut(2,1.1);
309 
310  if(inputDataType=="ESD")
311  {
312  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
313 
314  //AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10041004);
315  //reader->SetTrackCuts(esdTrackCuts);
316 
317  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
318  reader->SetTrackCuts(esdTrackCuts);
319  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
320  reader->SetTrackComplementaryCuts(esdTrackCuts2);
321 
323  }
324  else if(inputDataType=="AOD")
325  {
326  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
328  reader->SetTrackStatus(AliVTrack::kITSrefit);
329 
330  //reader->SwitchOnAODPrimaryTrackSelection(); // Used in preliminary results of QM from Nicolas and Xiangrong?
331  //reader->SwitchOnTrackHitSPDSelection(); // Check that the track has at least a hit on the SPD, not much sense to use for hybrid or TPC only tracks
332  //reader->SetTrackFilterMask(128); // Filter bit, not mask, use if off hybrid, TPC only
333  }
334 
335  //
336  // Calorimeter
337  //
338  if(clustersArray == "" && !tender)
339  {
340  printf("**************** Standard EMCAL clusters branch analysis **************** \n");
342  // Check in ConfigureCaloUtils that the recalibration and bad map are ON
343  }
344  else
345  {
346  printf("**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
347  reader->SetEMCALClusterListName(clustersArray);
349  }
350 
351  // Time cuts
353  if(simulation)
354  {
355  reader->SwitchOffUseEMCALTimeCut();
356  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
357  }
358  else
359  {
360  reader->SwitchOnUseEMCALTimeCut();
361  reader->SetEMCALTimeCut(-25,20);
362  }
363 
364  // CAREFUL
365  if(nonLinOn) reader->SwitchOnClusterELinearityCorrection();
367 
368  if(calorimeter.Contains("EMCAL"))
369  {
370  reader->SwitchOnEMCALCells();
371  reader->SwitchOnEMCAL();
372  }
373 
374  if(calorimeter.Contains("PHOS"))
375  { // Should be on if QA is activated with correlation on
376  reader->SwitchOnPHOSCells();
377  reader->SwitchOnPHOS();
378  }
379 
380  //-----------------
381  // Event selection
382  //-----------------
383 
384  //if(!simulation) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
385 
386  // Event triggered by EMCal selection settings
389 
390 
391  if( rejectEMCTrig && !simulation )
392  {
393  printf("=== Remove bad triggers === \n");
396 
397 // reader->SetTriggerPatchTimeWindow(8,9); // default values
398 // if (kRunNumber < 146861) reader->SetEventTriggerL0Threshold(3.);
399 // else if(kRunNumber < 154000) reader->SetEventTriggerL0Threshold(4.);
400 // else if(kRunNumber < 165000) reader->SetEventTriggerL0Threshold(5.5);
401 // //redefine for other periods, triggers
402 //
403 // if(kRunNumber < 172000)
404 // {
405 // reader->SetEventTriggerL1Bit(4,5); // current LHC11 data
406 // printf("\t Old L1 Trigger data format!\n");
407 // }
408 // else
409 // {
410 // reader->SetEventTriggerL1Bit(6,8); // LHC12-13 data
411 // printf("\t Current L1 Trigger data format!\n");
412 // }
413 
414  if(clustersArray != "" || tender)
415  {
416  printf("Trigger cluster calibration OFF\n");
418  }
419  }
420 
421  //reader->RejectFastClusterEvents() ;
422 
423  reader->SetZvertexCut(10.); // Open cut
424  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
425  reader->SwitchOnRejectNoTrackEvents();
426 
427  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
428  reader->SwitchOffPileUpEventRejection(); // remove pileup by default off, apply it only for MB not for trigger
429 
430  if(col=="PbPb")
431  {
432  // Centrality
433  reader->SetCentralityClass("V0M");
434  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
435  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
436 
437  // Event plane (only used in Maker and mixing for AliAnaPi0/AliAnaHadronCorrelation for the moment)
438  reader->SetEventPlaneMethod("V0");
439  }
440 
441  if(printSettings) reader->Print("");
442 
443  return reader;
444 }
445 
449 AliCalorimeterUtils* ConfigureCaloUtils(TString col, Bool_t simulation,
450  TString clustersArray, Bool_t tender,
451  Bool_t nonLinOn, Int_t year,
452  Bool_t printSettings, Int_t debug)
453 {
455 
456  cu->SetDebug(debug);
457 
458  // Remove clusters close to borders, at least max energy cell is 1 cell away
461 
463 
464  if (year == 2010) cu->SetNumberOfSuperModulesUsed(4);
465  else if(year <= 2013) cu->SetNumberOfSuperModulesUsed(10);
466  else if(year > 2013) cu->SetNumberOfSuperModulesUsed(20);
467  else cu->SetNumberOfSuperModulesUsed(10);
468 
469  if(kAnaPi0.Contains("_PHOS_") && !kAnaPi0.Contains("EMCAL") && !kAnaPi0.Contains("Both"))
470  {
471  if(year <= 2013) cu->SetNumberOfSuperModulesUsed(3);
472  else cu->SetNumberOfSuperModulesUsed(4);
473  }
474 
475  printf("xxx Number of SM set to <%d> xxx\n",cu->GetNumberOfSuperModulesUsed());
476 
477  // Search of local maxima in cluster
478  if(col=="pp")
479  {
480  cu->SetLocalMaximaCutE(0.1);
481  cu->SetLocalMaximaCutEDiff(0.03);
482  }
483  else
484  {
485  cu->SetLocalMaximaCutE(0.2);
486  cu->SetLocalMaximaCutEDiff(0.03);
487  }
488 
490 
492 
493  // EMCAL settings
494 
495  if(!simulation)
497 
498  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
499 
500  // calibrations
501  Bool_t calibEner = kFALSE;
502  Bool_t calibTime = kFALSE;
503  cu->SwitchOffRecalibration();
505 
506  if( !tender )
507  {
508  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
510 
511  calibEner = kTRUE;
512  calibTime = kTRUE;
513  if (year > 2014) calibTime = kFALSE; // Remove as soon as calib available
514  }
515 
516  if( simulation )
517  {
518  calibEner = kFALSE;
519  calibTime = kFALSE;
520 
521  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
523  }
524 
525  gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
527  simulation,
528  kTRUE, // exotic
529  nonLinOn, // Non linearity
530  calibEner, // E calib
531  kTRUE, // bad map
532  calibTime); // time calib
533 
534  if( calibTime ) recou->SetExoticCellDiffTimeCut(200);
535 
536  if( nonLinOn ) cu->SwitchOnCorrectClusterLinearity();
537 
538  printf("ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->IsRecalibrationOn());
539  printf("ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->IsBadChannelsRemovalSwitchedOn());
540 
541  // PHOS
543 
544  if(printSettings) cu->Print("");
545 
546  return cu;
547 }
548 
553 AliAnaPhoton* ConfigurePhotonAnalysis(TString col, Bool_t simulation,
554  TString calorimeter, Int_t year,
555  Int_t tm, Float_t shshMax,
556  Bool_t printSettings, Int_t debug)
557 {
558  AliAnaPhoton *ana = new AliAnaPhoton();
559 
560  // cluster selection cuts
561 
563 
564  ana->SwitchOffFiducialCut();
565 
566  ana->SetCalorimeter(calorimeter);
567 
568  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
569 
570  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
571 //
572  if(tm) ana->SwitchOnTrackMatchRejection() ;
573  else ana->SwitchOffTrackMatchRejection() ;
574 
575  ana->SwitchOnTMHistoFill() ;
576 
577  if(calorimeter == "PHOS")
578  {
579  ana->SetNCellCut(2);// At least 3 cells
580  ana->SetMinPt(0.5);
581  ana->SetMinDistanceToBadChannel(2, 4, 5);
582  ana->SetTimeCut(-1e10,1e10); // open cut
583  }
584  else
585  {//EMCAL
586  ana->SetNCellCut(1);// At least 2 cells
587  ana->SetMinEnergy(0.5); // avoid mip peak at E = 260 MeV
588  ana->SetMaxEnergy(100);
589  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
590  // restrict to less than 100 ns when time calibration is on
591  ana->SetMinDistanceToBadChannel(2, 4, 6);
592 
593  // NLM cut, used in all, exclude clusters with more than 2 maxima
594  // Not needed if M02 cut is already strong or clusterizer V2
595  ana->SetNLMCut(1, 2) ;
596  }
597 
598  //PID cuts (shower shape)
599  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
600  AliCaloPID* caloPID = ana->GetCaloPID();
601  //Not used in bayesian
602 
603  // EMCAL
604 
605  //caloPID->SetEMCALLambda0CutMax(0.27);
606  if(calorimeter=="EMCAL")
607  {
608  caloPID->SetEMCALLambda0CutMax(shshMax);
609  caloPID->SetEMCALLambda0CutMin(0.10);
610  }
611 
612  // Track matching
613  caloPID->SetEMCALDEtaCut(0.025);
614  caloPID->SetEMCALDPhiCut(0.030);
615 
616  // PHOS
617  caloPID->SetPHOSDispersionCut(2.5);
618  caloPID->SetPHOSRCut(2.);
619  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
620 
621  // Branch AOD settings
622  ana->SetOutputAODName(Form("Photon_%s_%s",calorimeter.Data(), kAnaPi0.Data()));
623  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
624 
625  //Set Histograms name tag, bins and ranges
626  ana->AddToHistogramsName(Form("AnaPhoton_%s_TM%d_",calorimeter.Data(),tm));
627 
628  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
629 
630  if(ana->GetFirstSMCoveredByTRD() > 0)
631  printf(">>> Set first SM covered by TRD, SM=%d <<< year %d \n", ana->GetFirstSMCoveredByTRD(),year);
632 
633  // Number of particle type MC histograms
634  ana->FillNOriginHistograms (14); // 14 max
635  ana->FillNPrimaryHistograms(6); // 6 max
636 
637  return ana;
638 }
639 
643 AliAnaPi0* ConfigurePi0Analysis(TString col, Bool_t simulation,
644  TString calorimeter, Bool_t bothCalo, Int_t year,
645  Int_t tm, Bool_t mixOn,
646  Bool_t printSettings, Int_t debug)
647 {
648  AliAnaPi0 *ana = new AliAnaPi0();
649 
650  ana->SetDebug(debug);
651 
652  // Input delta AOD settings
653  ana->SetInputAODName(Form("Photon_%s_%s",calorimeter.Data(),kAnaPi0.Data()));
654 
655  if(bothCalo)
656  {
658  if ( calorimeter == "EMCAL" ) ana->SetOtherDetectorInputName(Form("Photon_PHOS_%s" ,kAnaPi0.Data()));
659  else ana->SetOtherDetectorInputName(Form("Photon_EMCAL_%s",kAnaPi0.Data()));
660  }
661 
662  // Calorimeter settings
663  ana->SetCalorimeter(calorimeter);
664 
665  // settings for pp collision mixing
666  if(mixOn) ana->SwitchOnOwnMix();
667  else ana->SwitchOffOwnMix();
668 
669  // Cuts
670  if (calorimeter == "EMCAL" )
671  {
672  if(year < 2014) ana->SetPairTimeCut(50);
673  else ana->SetPairTimeCut(200); // REMEMBER to remove this when time calib is on
674  }
675 
676  ana->SetNPIDBits(1);
677  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
678  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
679 
680  if (col == "pp" )
681  {
682  ana->SetNCentrBin(1);
683  ana->SwitchOffTrackMultBins();
684  ana->SetNZvertBin(10);
685  ana->SetNRPBin(1);
686  ana->SetNMaxEvMix(100);
687  ana->SetMinPt(0.5); // 0.5
688  }
689  else if(col == "PbPb")
690  {
691  ana->SetNCentrBin(10);
692  ana->SetNZvertBin(10);
693  ana->SetNRPBin(4);
694  ana->SetNMaxEvMix(10);
695  ana->SetMinPt(1.5);
696  }
697  else if(collision =="pPb")
698  {
699  ana->SetNCentrBin(1);
700  ana->SetNZvertBin(10);
701  ana->SetNRPBin(4);
702  ana->SetNMaxEvMix(100);
703  ana->SetMinPt(0.5);
704  }
705 
706  // Angle cut, avoid pairs with too large angle
707  ana->SwitchOnAngleSelection();
708  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
709  ana->SetAngleCut(0.); // Minimum angle open
710 
711  //if(!bothCalo) ana->SwitchOnSMCombinations();
712  ana->SwitchOnSMCombinations();
714  ana->SwitchOnFillAngleHisto();
715  ana->SwitchOnFillOriginHisto(); // MC
716 
717  // Set Histograms name tag, bins and ranges
718 
719  if(!bothCalo) ana->AddToHistogramsName(Form("AnaPi0_%s_TM%d_",calorimeter.Data(),tm));
720  else ana->AddToHistogramsName(Form("AnaPi0_%sPlusOther_TM%d_",calorimeter.Data(),tm));
721 
722  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
723 
724  if(printSettings) ana->Print("");
725 
726  return ana;
727 }
728 
729 
733 AliAnaPi0* ConfigurePi0Analysis2(TString col, Bool_t simulation,
734  TString calorimeter, Bool_t bothCalo, Int_t year,
735  Int_t tm, Bool_t mixOn,
736  Bool_t printSettings, Int_t debug)
737 {
738  AliAnaPi0 *ana = new AliAnaPi0();
739 
740  ana->SetDebug(debug);
741 
742  // Input delta AOD settings
743  ana->SetInputAODName(Form("Photon_%s_%s",calorimeter.Data(),kAnaPi0.Data()));
744 
745  if(bothCalo)
746  {
748  if ( calorimeter == "EMCAL" ) ana->SetOtherDetectorInputName(Form("Photon_PHOS_%s" ,kAnaPi0.Data()));
749  else ana->SetOtherDetectorInputName(Form("Photon_EMCAL_%s",kAnaPi0.Data()));
750  }
751 
752  // Calorimeter settings
753  ana->SetCalorimeter(calorimeter);
754 
755  // settings for pp collision mixing
756  if(mixOn) ana->SwitchOnOwnMix();
757  else ana->SwitchOffOwnMix();
758 
759  // Cuts
760  if (calorimeter == "EMCAL" )
761  {
762  if(year < 2014) ana->SetPairTimeCut(50);
763  else ana->SetPairTimeCut(200); // REMEMBER to remove this when time calib is on
764  }
765 
766  ana->SetNPIDBits(1);
767  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
768  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
769 
770  if (col == "pp" )
771  {
772  ana->SetNCentrBin(1);
773  ana->SwitchOffTrackMultBins();
774  ana->SetNZvertBin(10);
775  ana->SetNRPBin(1);
776  ana->SetNMaxEvMix(100);
777  ana->SetMinPt(0.5); // 0.5
778  }
779  else if(col == "PbPb")
780  {
781  ana->SetNCentrBin(10);
782  ana->SetNZvertBin(10);
783  ana->SetNRPBin(4);
784  ana->SetNMaxEvMix(10);
785  ana->SetMinPt(1.5);
786  }
787  else if(collision =="pPb")
788  {
789  ana->SetNCentrBin(1);
790  ana->SetNZvertBin(10);
791  ana->SetNRPBin(4);
792  ana->SetNMaxEvMix(100);
793  ana->SetMinPt(0.5);
794  }
795 
796  // Angle cut, avoid pairs with too large angle
797  ana->SwitchOnAngleSelection();
798  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
799  ana->SetAngleCut(0.014); // Minimum angle open
800 
801  //if(!bothCalo) ana->SwitchOnSMCombinations();
802  ana->SwitchOnSMCombinations();
804  ana->SwitchOnFillAngleHisto();
805  ana->SwitchOnFillOriginHisto(); // MC
806 
807  // Set Histograms name tag, bins and ranges
808 
809  if(!bothCalo) ana->AddToHistogramsName(Form("AnaPi02_%s_TM%d_",calorimeter.Data(),tm));
810  else ana->AddToHistogramsName(Form("AnaPi02_%sPlusOther_TM%d_",calorimeter.Data(),tm));
811 
812  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
813 
814  if(printSettings) ana->Print("");
815 
816  return ana;
817 }
818 
822 AliAnaPi0* ConfigurePi0Analysis3(TString col, Bool_t simulation,
823  TString calorimeter, Bool_t bothCalo, Int_t year,
824  Int_t tm, Bool_t mixOn,
825  Bool_t printSettings, Int_t debug)
826 {
827  AliAnaPi0 *ana = new AliAnaPi0();
828 
829  ana->SetDebug(debug);
830 
831  // Input delta AOD settings
832  ana->SetInputAODName(Form("Photon_%s_%s",calorimeter.Data(),kAnaPi0.Data()));
833 
834  if(bothCalo)
835  {
837  if ( calorimeter == "EMCAL" ) ana->SetOtherDetectorInputName(Form("Photon_PHOS_%s" ,kAnaPi0.Data()));
838  else ana->SetOtherDetectorInputName(Form("Photon_EMCAL_%s",kAnaPi0.Data()));
839  }
840 
841  // Calorimeter settings
842  ana->SetCalorimeter(calorimeter);
843 
844  // settings for pp collision mixing
845  if(mixOn) ana->SwitchOnOwnMix();
846  else ana->SwitchOffOwnMix();
847 
848  // Cuts
849  if (calorimeter == "EMCAL" )
850  {
851  if(year < 2014) ana->SetPairTimeCut(50);
852  else ana->SetPairTimeCut(200); // REMEMBER to remove this when time calib is on
853  }
854 
855  ana->SetNPIDBits(1);
856  ana->SetNAsymCuts(1); // no asymmetry cut, previous studies showed small effect.
857  // In EMCAL assymetry cut prevents combination of assymetric decays which is the main source of pi0 at high E.
858 
859  if (col == "pp" )
860  {
861  ana->SetNCentrBin(1);
862  ana->SwitchOffTrackMultBins();
863  ana->SetNZvertBin(10);
864  ana->SetNRPBin(1);
865  ana->SetNMaxEvMix(100);
866  ana->SetMinPt(0.5); // 0.5
867  }
868  else if(col == "PbPb")
869  {
870  ana->SetNCentrBin(10);
871  ana->SetNZvertBin(10);
872  ana->SetNRPBin(4);
873  ana->SetNMaxEvMix(10);
874  ana->SetMinPt(1.5);
875  }
876  else if(collision =="pPb")
877  {
878  ana->SetNCentrBin(1);
879  ana->SetNZvertBin(10);
880  ana->SetNRPBin(4);
881  ana->SetNMaxEvMix(100);
882  ana->SetMinPt(0.5);
883  }
884 
885  // Angle cut, avoid pairs with too large angle
886  ana->SwitchOnAngleSelection();
887  ana->SetAngleMaxCut(TMath::DegToRad()*80.); // EMCal: 4 SM in phi, 2 full SMs in eta
888  ana->SetAngleCut(0.028); // Minimum angle open
889 
890  //if(!bothCalo) ana->SwitchOnSMCombinations();
891  ana->SwitchOnSMCombinations();
893  ana->SwitchOnFillAngleHisto();
894  ana->SwitchOnFillOriginHisto(); // MC
895 
896  // Set Histograms name tag, bins and ranges
897 
898  if(!bothCalo) ana->AddToHistogramsName(Form("AnaPi03_%s_TM%d_",calorimeter.Data(),tm));
899  else ana->AddToHistogramsName(Form("AnaPi03_%sPlusOther_TM%d_",calorimeter.Data(),tm));
900 
901  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
902 
903  if(printSettings) ana->Print("");
904 
905  return ana;
906 }
907 
908 
916  TString calorimeter, Int_t year,
917  TString col, Bool_t simulation,
918  Bool_t printSettings, Int_t debug)
919 {
920  //
921  // Histograms ranges
922  //
923  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
924 
925  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
926 
927  if(calorimeter=="EMCAL")
928  {
929  if(year==2010)
930  {
931  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
932  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
933  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
934  }
935  else if ( year < 2014 )
936  {
937  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
938  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
939  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
940  }
941  else // Run2
942  {
943  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 329*TMath::DegToRad(), 250) ;
944  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA
945  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA
946  }
947 
948  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
949  }
950  else if(calorimeter=="PHOS")
951  {
952  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
953  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
954  }
955  else if(calorimeter=="CTS")
956  {
957  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
958  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
959  }
960 
961  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
962 
963  // Invariant mass histo
964  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
965  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
966 
967  // check if time calibration is on
968  histoRanges->SetHistoTimeRangeAndNBins(0.,1000,1000);
969  //histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
970  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
971 
972  // track-cluster residuals
973  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
974  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
975  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA
976 
977  // QA, electron, charged
978  histoRanges->SetHistoPOverERangeAndNBins(0,2.,200);
979  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
980 
981  // QA
982  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
983  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
984  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
985  histoRanges->SetHistoRRangeAndNBins(430,460,30);
986  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
987  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
988 
989  // QA, correlation
990  if(col=="PbPb")
991  {
992  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
993  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
994  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
995  }
996  else
997  {
998  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
999  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
1000  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
1001  }
1002 
1003  // xE, zT
1004  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
1005  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,200);
1006 
1007  // Isolation
1008  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
1009  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
1010 
1011  //
1012  // TRD SM
1013  //
1014  if (year == 2011) ana->SetFirstSMCoveredByTRD( 6);
1015  else if(year == 2012 ||
1016  year == 2013) ana->SetFirstSMCoveredByTRD( 4);
1017  else ana->SetFirstSMCoveredByTRD(-1);
1018 
1019  //
1020  // MC histograms?
1021  //
1022  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
1023  else ana->SwitchOffDataMC() ;
1024 
1025  if(col.Contains("PbPb")) ana->SwitchOnFillHighMultiplicityHistograms();
1027 
1028  //Set here generator name, default pythia
1029  //ana->GetMCAnalysisUtils()->SetMCGenerator("");
1030 
1031  //
1032  // Debug
1033  //
1034  if(printSettings) ana->Print("");
1035 
1036  ana->SetDebug(debug); // 10 for lots of messages
1037 }
1038 
1043 UInt_t SetTriggerMaskFromName(TString trigger)
1044 {
1045  if(trigger=="EMC7")
1046  {
1047  printf("CaloTrackCorr trigger EMC7\n");
1048  return AliVEvent::kEMC7;
1049  }
1050  else if (trigger=="INT7")
1051  {
1052  printf("CaloTrackCorr trigger INT7\n");
1053  return AliVEvent::kINT7;
1054  }
1055  else if(trigger=="EMC1")
1056  {
1057  printf("CaloTrackCorr trigger EMC1\n");
1058  return AliVEvent::kEMC1;
1059  }
1060  else if(trigger=="MB")
1061  {
1062  printf("CaloTrackCorr trigger MB\n");
1063  return AliVEvent::kMB;
1064  }
1065  else if(trigger=="PHOS")
1066  {
1067  printf("CaloTrackCorr trigger PHOS\n");
1068  return AliVEvent::kPHI7;
1069  }
1070  else if(trigger=="PHOSPb")
1071  {
1072  printf("CaloTrackCorr trigger PHOSPb\n");
1073  return AliVEvent::kPHOSPb;
1074  }
1075  else if(trigger=="AnyINT")
1076  {
1077  printf("CaloTrackCorr trigger AnyINT\n");
1078  return AliVEvent::kAnyINT;
1079  }
1080  else if(trigger=="INT")
1081  {
1082  printf("CaloTrackCorr trigger AnyINT\n");
1083  return AliVEvent::kAny;
1084  }
1085  else if(trigger=="EMCEGA")
1086  {
1087  printf("CaloTrackCorr trigger EMC Gamma\n");
1088  return AliVEvent::kEMCEGA;
1089  }
1090  else if(trigger=="EMCEJE")
1091  {
1092  printf("CaloTrackCorr trigger EMC Jet\n");
1093  return AliVEvent::kEMCEJE;
1094  }
1095  else if(trigger=="Central")
1096  {
1097  printf("CaloTrackCorr trigger Central\n");
1098  return AliVEvent::kCentral;
1099  }
1100  else if(trigger=="CentralEGA")
1101  {
1102  printf("CaloTrackCorr trigger Central+EMCEGA\n");
1103  return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
1104  }
1105  else if(trigger=="SemiCentral")
1106  {
1107  printf("CaloTrackCorr trigger SemiCentral\n");
1108  return AliVEvent::kSemiCentral;
1109  }
1110  else if(trigger=="SemiOrCentral")
1111  {
1112  printf("CaloTrackCorr trigger SemiCentral Or Central\n");
1113  return (AliVEvent::kSemiCentral | AliVEvent::kCentral);
1114  }
1115  else return AliVEvent::kAny;
1116 }
1117 
virtual void SwitchOnAODTrackSharedClusterSelection()
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=2015, TString col="pp", TString trigger="EMC7", Bool_t rejectEMCTrig=kFALSE, Bool_t muonCaloPass=kFALSE, TString clustersArray="", Bool_t tender=kFALSE, Bool_t nonLinOn=kFALSE, Float_t shshMax=0.5, Bool_t tm=kTRUE, Int_t minCen=-1, Int_t maxCen=-1, Bool_t mixOn=kTRUE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0)
Definition: AddTaskPi0.C:35
void SetAngleCut(Float_t a)
Definition: AliAnaPi0.h:76
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SwitchOnPairWithOtherDetector()
Definition: AliAnaPi0.h:139
void SwitchOnFillOriginHisto()
Definition: AliAnaPi0.h:128
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 SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:105
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:79
AliAnaPi0 * ConfigurePi0Analysis(TString col, Bool_t simulation, TString calorimeter, Bool_t bothCalo, Int_t year, Int_t tm, Bool_t mixOn, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:643
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:110
void SwitchOffClusterELinearityCorrection()
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:88
void SwitchOnAngleSelection()
Definition: AliAnaPi0.h:70
virtual void SetOutputAODClassName(TString name)
void SwitchOffMultipleCutAnalysis()
Definition: AliAnaPi0.h:110
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:96
void SetAngleMaxCut(Float_t a)
Definition: AliAnaPi0.h:77
const TString calorimeter
Definition: anaM.C:35
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
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 SwitchOnFillAngleHisto()
Definition: AliAnaPi0.h:79
void SwitchOffVertexBCEventSelection()
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
Definition: AliAnaPhoton.h:106
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()
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)
TString kAnaPi0
Global name to be composed of the settings, used to set the AOD branch name.
Definition: AddTaskPi0.C:9
Bool_t IsBadChannelsRemovalSwitchedOn() const
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:32
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliCaloTrackReader * ConfigureReader(TString col, Bool_t simulation, TString clustersArray, Bool_t tender, TString calorimeter, Bool_t nonLinOn, TString trigger, Bool_t rejectEMCTrig, Int_t minCen, Int_t maxCen, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:214
void SwitchOffTriggerClusterTimeRecal()
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 SwitchOffBadTriggerEventsRemoval()
void SetEMCALClusterListName(TString &name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Definition: AliAnaPi0.cxx:1350
Int_t GetNumberOfSuperModulesUsed() const
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnaPi0 * ConfigurePi0Analysis2(TString col, Bool_t simulation, TString calorimeter, Bool_t bothCalo, Int_t year, Int_t tm, Bool_t mixOn, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:733
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:91
void SetAnalysisCommonParameters(AliAnaCaloTrackCorrBaseClass *ana, TString calorimeter, Int_t year, TString col, Bool_t simulation, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:915
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.
virtual void SetPtHardAndJetPtFactor(Float_t factor)
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
AliAnaPhoton * ConfigurePhotonAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Float_t shshMax, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:553
virtual void SetEventPlaneMethod(TString m)
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
UInt_t SetTriggerMaskFromName(TString trigger)
Definition: AddTaskPi0.C:1043
virtual void SetTrackCuts(AliESDtrackCuts *)
virtual void SwitchOffFiducialCut()
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:68
void SwitchOnBadTriggerEventsRemoval()
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnClusterELinearityCorrection()
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)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliCalorimeterUtils * ConfigureCaloUtils(TString col, Bool_t simulation, TString clustersArray, Bool_t tender, Bool_t nonLinOn, Int_t year, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:449
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnaPi0 * ConfigurePi0Analysis3(TString col, Bool_t simulation, TString calorimeter, Bool_t bothCalo, Int_t year, Int_t tm, Bool_t mixOn, Bool_t printSettings, Int_t debug)
Definition: AddTaskPi0.C:822
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetOtherDetectorInputName(TString name)
Definition: AliAnaPi0.h:141
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:51
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:108
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.
virtual void SwitchOnConstrainTrackToVertex()
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 SetLocalMaximaCutE(Float_t cut)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:99
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 GetFirstSMCoveredByTRD() const
Time cut in ns.
Steering class of package CaloTrackCorrelartions.