AliPhysics  58f3d52 (58f3d52)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AddTaskGammaHadronCorrelation.C
Go to the documentation of this file.
1 
20 //
21 //#if !defined(__CINT__) || defined(__MAKECINT__)
22 //
23 //#include <TString.h>
24 //#include <TROOT.h>
25 //
26 //#include "AliLog.h"
27 //#include "AliAnalysisTaskCaloTrackCorrelation.h"
28 //#include "AliCaloTrackESDReader.h"
29 //#include "AliCaloTrackAODReader.h"
30 //#include "AliCalorimeterUtils.h"
31 //#include "AliAnaPhoton.h"
32 //#include "AliAnaPi0EbE.h"
33 //#include "AliHistogramRanges.h"
34 //#include "AliAnaParticleIsolation.h"
35 //#include "AliAnaParticleHadronCorrelation.h"
36 //#include "AliAnaChargedParticles.h"
37 //#include "AliAnaCalorimeterQA.h"
38 //#include "AliAnaGeneratorKine.h"
39 //#include "AliAnalysisTaskCaloTrackCorrelation.h"
40 //#include "AliAnaCaloTrackCorrMaker.h"
41 //#include "AliAnalysisManager.h"
42 //#include "AliInputEventHandler.h"
43 //#include "AliVTrack.h"
44 //#include "ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C"
45 //#include "AliESDtrackCuts.h"
46 //#include "CreateTrackCutsPWGJE.C"
47 //#include "ConfigureEMCALRecoUtils.C"
48 //#endif
49 //
51 //
52 //AliCaloTrackReader * ConfigureReader (TString col, Bool_t simulation,
53 // TString clustersArray, Bool_t tender,
54 // TString calorimeter, Bool_t nonLinOn,
55 // TString trigger, Bool_t rejectEMCTrig,
56 // Int_t minCen, Int_t maxCen,
57 // Bool_t printSettings, Int_t debug );
58 //AliCalorimeterUtils * ConfigureCaloUtils (TString col, Bool_t simulation,
59 // Bool_t tender,
60 // Bool_t nonLinOn, Int_t year,
61 // Bool_t printSettings, Int_t debug );
62 //AliAnaPhoton * ConfigurePhotonAnalysis(TString col, Bool_t simulation,
63 // TString calorimeter, Int_t year, Int_t tm,
64 // Bool_t printSettings, Int_t debug );
65 //AliAnaPi0EbE * ConfigurePi0EbEAnalysis(TString particle, Int_t analysis,
66 // Bool_t useSSIso, Bool_t useAsy,
67 // TString col, Bool_t simulation,
68 // TString calorimeter, Int_t year, Int_t tm,
69 // Bool_t printSettings, Int_t debug );
70 //AliAnaParticleIsolation* ConfigureIsolationAnalysis
71 // (TString particle, Int_t leading,
72 // Int_t partInCone, Int_t thresType,
73 // Float_t cone, Float_t pth, Bool_t multi,
74 // TString col, Bool_t simulation,
75 // TString calorimeter, Int_t year, Int_t tm,
76 // Bool_t printSettings, Int_t debug );
77 //AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis
78 // (TString particle, Int_t leading,
79 // Bool_t bIsolated, Float_t shshMax,
80 // Int_t partInCone, Int_t thresType,
81 // Float_t cone, Float_t pth, Bool_t mixOn,
82 // TString col, Bool_t simulation,
83 // TString calorimeter, Int_t year, Int_t tm,
84 // Bool_t printSettings, Int_t debug );
85 //AliAnaChargedParticles* ConfigureChargedAnalysis
86 // (Bool_t simulation, Bool_t printSettings, Int_t debug);
87 //AliAnaCalorimeterQA * ConfigureQAAnalysis (TString col, Bool_t simulation,
88 // TString calorimeter, Int_t year,
89 // Bool_t printSettings, Int_t debug );
90 //AliAnaGeneratorKine* ConfigureGenKineAnalysis(Int_t thresType, Float_t cone, Float_t pth,
91 // TString col, Bool_t simulation,
92 // TString calorimeter, Int_t year,
93 // Bool_t printSettings, Int_t debug );
94 //
95 //void SetAnalysisCommonParameters (AliAnaCaloTrackCorrBaseClass* ana,
96 // TString calorimeter , Int_t year,
97 // TString col , Bool_t simulation,
98 // Bool_t printSettings, Int_t debug);
99 
100 
103 
135 (
136  TString calorimeter = "EMCAL",
137  Bool_t simulation = kFALSE,
138  Int_t year = 2011,
139  TString col = "pp",
140  Int_t rejectEMCTrig = 0,
141  TString clustersArray = "",
142  Bool_t tender = kFALSE,
143  Bool_t nonLinOn = kFALSE,
144  Float_t shshMax = 0.27,
145  Float_t isoCone = 0.4,
146  Float_t isoPtTh = 0.5,
149  Int_t leading = 0,
150  Int_t tm = 1,
151  Int_t minCen = -1,
152  Int_t maxCen = -1,
153  Bool_t mixOn = kTRUE,
154  Bool_t qaAn = kFALSE,
155  Bool_t chargedAn = kFALSE,
156  TString outputfile = "",
157  Bool_t printSettings = kFALSE,
158  Int_t debug = 0,
159  const char *trigSuffix = "EMC7"
160 )
161 {
162  TString trigger = trigSuffix;
163 
164  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>, isoCone <%2.2f>, isoPtTh <%2.2f>, isoMethod <%d>,isoContent <%d>,\n leading <%d>, tm <%d>, minCen <%d>, maxCen <%d>, mixOn <%d>,\n qaAn <%d>, chargedAn <%d>, outputfile <%s>, printSettings <%d>, debug <%d>\n",
165  calorimeter.Data(),simulation,year,col.Data(),trigger.Data(), rejectEMCTrig, clustersArray.Data(),tender, nonLinOn, shshMax,
166  isoCone,isoPtTh,isoMethod,isoContent,leading,tm,
167  minCen,maxCen,mixOn,qaAn,chargedAn,outputfile.Data(),printSettings,debug);
168 
169  // Get the pointer to the existing analysis manager via the static access method.
170  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
171  if (!mgr)
172  {
173  ::Error("AddTask", "No analysis manager to connect to.");
174  return NULL;
175  }
176 
177  // Check the analysis type using the event handlers connected to the analysis manager.
178 
179  if (!mgr->GetInputEventHandler())
180  {
181  ::Error("AddTask", "This task requires an input event handler");
182  return NULL;
183  }
184 
185  // Make sure the B field is enabled for track selection, some cuts need it
186  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
187 
188  // Name for containers
189 
190  //kAnaGammaHadronCorr = Form("%s_Trig%s_Cl%s_TM%d_R%1.1f_Pt%1.1f",calorimeter.Data(), trigger.Data(),kClusterArray.Data(),tm,cone,pth);
191  kAnaGammaHadronCorr = Form("GammaHadron_%s_Trig%s_Col_%s_Year%d_Cl%s_Ten%d_TM%d_M02_%1.2f_IsoParam_C%1.2fPt%1.2fM%dPa%d_Lead%d_Mix%d",
192  calorimeter.Data(),trigger.Data(),col.Data(),year,clustersArray.Data(),tender,
193  tm, shshMax,isoCone,isoPtTh,isoMethod,isoContent,leading,mixOn);
194 
195  if(col=="PbPb" && maxCen>=0) kAnaGammaHadronCorr+=Form("Cen%d_%d",minCen,maxCen);
196 
197  printf("<<<< NAME: %s >>>>>\n",kAnaGammaHadronCorr.Data());
198 
199  // #### Configure analysis ####
200 
202 
203  // General frame setting and configuration
204  maker->SetReader ( ConfigureReader (col,simulation,clustersArray,tender,calorimeter,nonLinOn,trigger,rejectEMCTrig,minCen,maxCen,printSettings,debug) );
205  maker->SetCaloUtils( ConfigureCaloUtils(col,simulation,tender,nonLinOn,year,printSettings,debug) );
206 
207  // Analysis tasks setting and configuration
208  Int_t n = 0;//Analysis number, order is important
209 
210  //
211  // Photon analysis
212  //
213  maker->AddAnalysis(ConfigurePhotonAnalysis(col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Photon cluster selection
214 
215 
216  maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
217  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Pi0 event by event selection, invariant mass and photon tagging from decay
218 
219  maker->AddAnalysis(ConfigurePi0EbEAnalysis("Eta" , AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
220  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Eta event by event selection, invariant mass and photon tagging from decay
221 
222  maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0SideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
223  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Pi0 out of peak event by event selection, and photon tagging from decay
224 
225  maker->AddAnalysis(ConfigurePi0EbEAnalysis("EtaSideBand", AliAnaPi0EbE::kIMCalo,kFALSE,kFALSE,
226  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Eta out of peak event by event selection, and photon tagging from decay
227 
228 
229  maker->AddAnalysis(ConfigureIsolationAnalysis("Photon", leading, isoContent,isoMethod,isoCone,isoPtTh, kFALSE,
230  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Photon isolation
231 
232 
233  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoPtTh, mixOn,
234  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Gamma-hadron correlation
235 
236  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoPtTh, mixOn,
237  col,simulation,calorimeter,year,tm,printSettings,debug) , n++); // Isolated gamma hadron correlation
238 
239  //
240  // Merged pi0 analysis
241  //
242  maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0", AliAnaPi0EbE::kSSCalo,kTRUE,kTRUE,
243  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Pi0 event by event selection, cluster splitting
244 
245  maker->AddAnalysis(ConfigureIsolationAnalysis("Pi0SS", leading, isoContent,isoMethod,isoCone,isoPtTh, kFALSE,
246  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Pi0 isolation, cluster splits
247 
248 
249  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0SS", leading, kFALSE, shshMax, isoContent,isoMethod,isoCone,isoPtTh, mixOn,
250  col,simulation,calorimeter,year,tm,printSettings,debug), n++); // Pi0-hadron correlation
251 
252  maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0SS", leading, kTRUE, shshMax, isoContent,isoMethod,isoCone,isoPtTh, mixOn,
253  col,simulation,calorimeter,year,tm,printSettings,debug) , n++); // Isolated pi0-hadron correlation
254 
255  // Check the generated kinematics
256  if(simulation) maker->AddAnalysis(ConfigureGenKineAnalysis(isoMethod,isoCone,isoPtTh,
257  col,simulation,calorimeter,year,printSettings,debug), n++);
258 
259  // Charged analysis
260  if(chargedAn) maker->AddAnalysis(ConfigureChargedAnalysis(simulation,printSettings,debug), n++); // track selection checks
261 
262  // Calo QA
263  if(qaAn) maker->AddAnalysis(ConfigureQAAnalysis(col,simulation,calorimeter,year,printSettings,debug) , n++);
264 
265  maker->SetAnaDebug(debug) ;
266 
267  maker->SwitchOnHistogramsMaker() ;
268  maker->SwitchOnAODsMaker() ;
269 
270  if( simulation || !trigger.Contains("EMC") ) maker->SwitchOffDataControlHistograms();
271 
272  if(simulation)
273  {
274  // Calculate the cross section weights, apply them to all histograms
275  // and fill xsec and trial histo. Sumw2 must be activated.
276  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionCalculation();
277  //maker->SwitchOnSumw2Histograms();
278 
279  // For recent productions where the cross sections and trials are not stored in separate file
280  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionFromEventHeader() ;
281 
282  // Just fill cross section and trials histograms.
283  maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionHistoFill();
284 
285  // Add control histogram with pT hard to control aplication of weights
286  maker->SwitchOnPtHardHistogram();
287  }
288 
289  if(printSettings) maker->Print("");
290 
291  printf("<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
292 
293  //
294  // Create task, pass the maker and add it to the manager
295  //
296  AliAnalysisTaskCaloTrackCorrelation * task = new AliAnalysisTaskCaloTrackCorrelation (Form("%s",kAnaGammaHadronCorr.Data()));
297 
298  task->SetDebugLevel(debug);
299 
300  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
301  //task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
302 
303  task->SetAnalysisMaker(maker);
304 
305  mgr->AddTask(task);
306 
307  //
308  // Select events trigger depending on trigger
309  //
310  maker->GetReader()->SwitchOnEventTriggerAtSE(); // on is default case
311  if(!simulation)
312  {
313  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
314  TString caloTriggerString = "";
315  UInt_t mask = ConfigureAndGetEventTriggerMaskAndCaloTriggerString(trigger, year, caloTriggerString);
316 
317  maker->GetReader()->SetFiredTriggerClassName(caloTriggerString);
318 
319  // For mixing with AliAnaParticleHadronCorrelation switch it off
320  if(mixOn)
321  {
322  maker->GetReader()->SwitchOffEventTriggerAtSE();
323  maker->GetReader()->SetEventTriggerMask(mask);
324  // what to do with caloTriggerString?
325 
326  // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
327  //reader->SetMixEventTriggerMask(AliVEvent::kMB);
328  maker->GetReader()->SetMixEventTriggerMask(AliVEvent::kINT7);
329 
330  printf("---Trigger selection done in AliCaloTrackReader!!!\n");
331  }
332  else
333  {
334  task ->SelectCollisionCandidates( mask );
335  }
336  }
337 
338  //
339  // Create containers
340  //
341  if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
342 
343  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaGammaHadronCorr, TList::Class(),
344  AliAnalysisManager::kOutputContainer,
345  Form("%s",outputfile.Data()));
346 
347  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",kAnaGammaHadronCorr.Data()), TList::Class(),
348  AliAnalysisManager::kParamContainer,
349  "AnalysisParameters.root");
350 
351  // Create ONLY the output containers for the data produced by the task.
352  // Get and connect other common input/output containers via the manager as below
353  //==============================================================================
354  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
355  //if(!kData.Contains("delta") && outputAOD) mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
356  mgr->ConnectOutput (task, 1, cout_pc);
357  mgr->ConnectOutput (task, 2, cout_cuts);
358 
359  return task;
360 }
361 
366  TString clustersArray, Bool_t tender,
367  TString calorimeter, Bool_t nonLinOn,
368  TString trigger, Bool_t rejectEMCTrig,
369  Int_t minCen, Int_t maxCen,
370  Bool_t printSettings, Int_t debug )
371 {
372  // Get the data type ESD or AOD
373  AliAnalysisManager * mgr = AliAnalysisManager::GetAnalysisManager();
374  TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
375 
376  AliCaloTrackReader * reader = 0;
377  if (inputDataType == "AOD") reader = new AliCaloTrackAODReader();
378  else if(inputDataType == "ESD") reader = new AliCaloTrackESDReader();
379  else printf("AliCaloTrackReader::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
380 
381  reader->SetDebug(debug);//10 for lots of messages
382 
383  //
384  // MC settings
385  //
386  // Check if kine stack is available, independent of request of simulation
387 // Bool_t useKinematics = kFALSE;
388 // useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
389 //
390 // if(simulation)
391 // {
392 // if (!useKinematics && inputDataType=="AOD") useKinematics = kTRUE; //AOD primary should be available ...
393 // }
394 
395  // In case of Pythia pt Hard bin simulations (jet-jet, gamma-jet)
396  // reject some special events that bother the cross section
397  if(simulation)
398  {
399  // Event rejection cuts for jet-jet simulations, do not use in other
400  reader->SetPtHardAndJetPtComparison(kTRUE);
401  reader->SetPtHardAndJetPtFactor(4);
402 
403  reader->SetPtHardAndClusterPtComparison(kTRUE);
404  reader->SetPtHardAndClusterPtFactor(1.5);
405  }
406 
407  //------------------------
408  // Detector input filling
409  //------------------------
410 
411  //Min cluster/track E
412  reader->SetEMCALEMin(0.3);
413  reader->SetEMCALEMax(1000);
414  reader->SetPHOSEMin(0.3);
415  reader->SetPHOSEMax(1000);
416  reader->SetCTSPtMin(0.2);
417  reader->SetCTSPtMax(1000);
418 
421 
422  // Shower shape smearing
423  // Set it in the train configuration page not here for the moment
424  // if(simulation)
425  // {
426  // reader->SwitchOffShowerShapeSmearing(); // Active only on MC, off by default
427  // reader->SetShowerShapeSmearWidth(0.005);
428  // }
429 
430  //
431  // Tracks
432  //
433  reader->SwitchOnCTS();
434 
435  reader->SwitchOffUseTrackTimeCut();
436  reader->SetTrackTimeCut(0,50);
437 
438  reader->SwitchOnFiducialCut();
439  reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ;
440 
441  reader->SwitchOffUseTrackDCACut();
442  //reader->SetTrackDCACut(0,0.0105);
443  //reader->SetTrackDCACut(1,0.035);
444  //reader->SetTrackDCACut(2,1.1);
445 
446  if(inputDataType=="ESD")
447  {
448  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
449 
450  //AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10041004);
451  //reader->SetTrackCuts(esdTrackCuts);
452 
453  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
454  reader->SetTrackCuts(esdTrackCuts);
455  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
456  reader->SetTrackComplementaryCuts(esdTrackCuts2);
457 
459  }
460  else if(inputDataType=="AOD")
461  {
462  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
464  reader->SetTrackStatus(AliVTrack::kITSrefit);
465 
466  //reader->SwitchOnAODPrimaryTrackSelection(); // Used in preliminary results of QM from Nicolas and Xiangrong?
467  //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
468  //reader->SetTrackFilterMask(128); // Filter bit, not mask, use if off hybrid, TPC only
469  }
470 
471  //
472  // Calorimeter
473  //
474  if(clustersArray == "" && !tender)
475  {
476  printf("**************** Standard EMCAL clusters branch analysis **************** \n");
478  // Check in ConfigureCaloUtils that the recalibration and bad map are ON
479  }
480  else
481  {
482  printf("**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
483  reader->SetEMCALClusterListName(clustersArray);
485  }
486 
487  // Time cuts
489  if(simulation)
490  {
491  reader->SwitchOffUseEMCALTimeCut();
492  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
493  }
494  else
495  {
496  reader->SwitchOnUseEMCALTimeCut();
497  reader->SetEMCALTimeCut(-25,20);
498  }
499 
500  // CAREFUL
501  if(nonLinOn) reader->SwitchOnClusterELinearityCorrection();
503 
504  if(calorimeter == "EMCAL")
505  {
506  reader->SwitchOnEMCALCells();
507  reader->SwitchOnEMCAL();
508  }
509 
510  if(calorimeter == "PHOS")
511  { // Should be on if QA is activated with correlation on
512  reader->SwitchOnPHOSCells();
513  reader->SwitchOnPHOS();
514  }
515 
516  //-----------------
517  // Event selection
518  //-----------------
519 
520  //if(!simulation) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
521 
522  // Event triggered by EMCal selection settings
525 
526  if( rejectEMCTrig > 0 && !simulation && (trigger.Contains("EMC") || trigger.Contains("L")))
527  {
528  printf("=== Remove bad triggers === \n");
531 
532  // reader->SetTriggerPatchTimeWindow(8,9); // default values
533  // if (kRunNumber < 146861) reader->SetEventTriggerL0Threshold(3.);
534  // else if(kRunNumber < 154000) reader->SetEventTriggerL0Threshold(4.);
535  // else if(kRunNumber < 165000) reader->SetEventTriggerL0Threshold(5.5);
536  // //redefine for other periods, triggers
537  //
538  // if(kRunNumber < 172000)
539  // {
540  // reader->SetEventTriggerL1Bit(4,5); // current LHC11 data
541  // printf("\t Old L1 Trigger data format!\n");
542  // }
543  // else
544  // {
545  // reader->SetEventTriggerL1Bit(6,8); // LHC12-13 data
546  // printf("\t Current L1 Trigger data format!\n");
547  // }
548 
549  if(clustersArray != "" || tender)
550  {
551  printf("Trigger cluster calibration OFF\n");
553  }
554 
555  }
556 
557  //reader->RejectFastClusterEvents() ;
558 
559  reader->SetZvertexCut(10.); // Open cut
560  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
561  reader->SwitchOnRejectNoTrackEvents();
562 
563  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
564  reader->SwitchOffPileUpEventRejection(); // remove pileup by default off, apply it only for MB not for trigger
565 
566  if(col=="PbPb")
567  {
568  // Centrality
569  reader->SetCentralityClass("V0M");
570  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
571  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
572  //reader->SwitchOnAcceptOnlyHIJINGLabels();
573  // Event plane (only used in Maker and mixing for AliAnaPi0/AliAnaHadronCorrelation for the moment)
574  reader->SetEventPlaneMethod("V0");
575  }
576 
577  if(printSettings) reader->Print("");
578 
579  return reader;
580 }
581 
586  Bool_t tender, Bool_t nonLinOn,
587  Int_t year, Bool_t printSettings,
588  Int_t debug)
589 {
591 
592  cu->SetDebug(debug);
593 
594  // Remove clusters close to borders, at least max energy cell is 1 cell away
597 
599 
600  if (year == 2010) cu->SetNumberOfSuperModulesUsed(4);
601  else if(year <= 2013) cu->SetNumberOfSuperModulesUsed(10);
602  else if(year > 2013) cu->SetNumberOfSuperModulesUsed(20);
603  else cu->SetNumberOfSuperModulesUsed(10);
604 
605  printf("xxx Number of SM set to <%d> xxx\n",cu->GetNumberOfSuperModulesUsed());
606 
607  // Search of local maxima in cluster
608  if(col=="pp")
609  {
610  cu->SetLocalMaximaCutE(0.1);
611  cu->SetLocalMaximaCutEDiff(0.03);
612  }
613  else
614  {
615  cu->SetLocalMaximaCutE(0.2);
616  cu->SetLocalMaximaCutEDiff(0.03);
617  }
618 
620 
622 
623  // EMCAL settings
624 
625  if(!simulation)
627 
628  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
629 
630  // calibrations
631  Bool_t calibEner = kFALSE;
632  Bool_t calibTime = kFALSE;
635 
636  if( !tender )
637  {
638  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
640 
641  calibEner = kTRUE;
642  calibTime = kTRUE;
643  }
644 
645  if( simulation )
646  {
647  calibEner = kFALSE;
648  calibTime = kFALSE;
649 
650  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
652  }
653 
654  gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
656  simulation,
657  kTRUE, // exotic
658  nonLinOn, // Non linearity
659  calibEner, // E calib
660  kTRUE, // bad map
661  calibTime); // time calib
662 
663  if( calibTime ) recou->SetExoticCellDiffTimeCut(50);
664 
665  if( nonLinOn ) cu->SwitchOnCorrectClusterLinearity();
666 
667  printf("ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->IsRecalibrationOn());
668  printf("ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->IsBadChannelsRemovalSwitchedOn());
669 
670  // PHOS
672 
673  if(printSettings) cu->Print("");
674 
675  return cu;
676 }
677 
683  TString calorimeter, Int_t year, Int_t tm,
684  Bool_t printSettings, Int_t debug)
685 {
686  AliAnaPhoton *ana = new AliAnaPhoton();
687 
688  // cluster selection cuts
689 
691 
692  ana->SwitchOffFiducialCut();
693 
694  ana->SetCalorimeter(calorimeter);
695 
696  ana->SetFirstSMCoveredByTRD(6);
697 
698  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection
699 
700  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
701 
702  if(tm) ana->SwitchOnTrackMatchRejection() ;
703  else ana->SwitchOffTrackMatchRejection() ;
704 
705  ana->SwitchOnTMHistoFill() ;
706 
707  if(calorimeter == "PHOS")
708  {
709  ana->SetNCellCut(2);// At least 3 cells
710  ana->SetMinPt(0.3);
711  ana->SetMinDistanceToBadChannel(2, 4, 5);
712  ana->SetTimeCut(-1e10,1e10); // open cut
713  }
714  else
715  {//EMCAL
716  ana->SetNCellCut(1);// At least 2 cells
717  ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
718  ana->SetMaxEnergy(100);
719  ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off
720  // restrict to less than 100 ns when time calibration is on
721  ana->SetMinDistanceToBadChannel(2, 4, 6);
722 
723  // NLM cut, used in all, exclude clusters with more than 2 maxima
724  // Not needed if M02 cut is already strong or clusterizer V2
725  ana->SetNLMCut(1, 2) ;
726  }
727 
728  //PID cuts (shower shape)
729  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
730  AliCaloPID* caloPID = ana->GetCaloPID();
731  //Not used in bayesian
732 
733  // EMCAL
734 
735  //caloPID->SetEMCALLambda0CutMax(0.27);
736  caloPID->SetEMCALLambda0CutMax(10); // open, full shower shape needed for isolation studies
737  caloPID->SetEMCALLambda0CutMin(0.10);
738 
739  // Track matching
740  // tm = 1, fixed cuts
741  caloPID->SetEMCALDEtaCut(0.025);
742  caloPID->SetEMCALDPhiCut(0.030);
743 
744  // pT track dependent cuts
745  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
746 
747  // PHOS
748  caloPID->SetPHOSDispersionCut(2.5);
749  caloPID->SetPHOSRCut(2.);
750  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
751 
752  // Branch AOD settings
753  ana->SetOutputAODName(Form("PhotonTrigger_%s",kAnaGammaHadronCorr.Data()));
754  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
755 
756  //Set Histograms name tag, bins and ranges
757  ana->AddToHistogramsName(Form("AnaPhoton_TM%d_",tm));
758 
759  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug) ; // see method below
760 
761  if(ana->GetFirstSMCoveredByTRD() > 0)
762  printf(">>> Set first SM covered by TRD, SM=%d <<< year %d \n", ana->GetFirstSMCoveredByTRD(),year);
763 
764  // Number of particle type MC histograms
765  ana->FillNOriginHistograms (17); // 18 max
766  ana->FillNPrimaryHistograms(6); // 6 max
767 
768  return ana;
769 }
770 
776  Bool_t useSSIso, Bool_t useAsy,
777  TString col, Bool_t simulation,
778  TString calorimeter, Int_t year, Int_t tm,
779  Bool_t printSettings, Int_t debug )
780 {
781  // Configuration of pi0 event by event selection
782 
783  AliAnaPi0EbE *ana = new AliAnaPi0EbE();
784 
785  ana->SetDebug(debug);
786 
787  ana->SetAnalysisType((AliAnaPi0EbE::anaTypes)analysis);
788  TString opt = "";
789  if(analysis==AliAnaPi0EbE::kIMCaloTracks) opt = "Conv";
790  if(analysis==AliAnaPi0EbE::kSSCalo) opt = "SS";
791 
793  ana->SetFirstSMCoveredByTRD(6);
795 
797  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
798  //if(!kTime && !simulation) ana->SwitchOnFillEMCALBCHistograms();
799 
800  if(tm) ana->SwitchOnTrackMatchRejection() ;
801  else ana->SwitchOffTrackMatchRejection() ;
802  ana->SwitchOffTMHistoFill() ;
803 
804  ana->SetCalorimeter(calorimeter);
805 
806  // Branch AOD settings
807  ana->SetOutputAODName(Form("%s%sTrigger_%s",particle.Data(), opt.Data(), kAnaGammaHadronCorr.Data()));
808  printf("***Out branch %s***\n",ana->GetOutputAODName().Data());
809  ana->SetOutputAODClassName("AliCaloTrackParticleCorrelation");
810 
811  if(analysis == AliAnaPi0EbE::kIMCaloTracks) ana->SetInputAODGammaConvName("PhotonsCTS");
812 
813  //Set Histograms name tag, bins and ranges
814 
815  ana->AddToHistogramsName(Form("Ana%s%sEbE_TM%d_",particle.Data(),opt.Data(),tm));
816 
817  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug); // see method below
818 
820  if(analysis!=AliAnaPi0EbE::kSSCalo)
821  {
822  ana->SetInputAODName(Form("PhotonTrigger_%s",kAnaGammaHadronCorr.Data()));
823 
824  ana->SetM02CutForInvMass(0.1,0.35); // Loose SS cut
825 
827  ana->SetR(0.4);
829 
830  if(useSSIso)
831  {
833  ana->AddToHistogramsName(Form("Ana%s%sEbEIsoDecay_TM%d_",particle.Data(),opt.Data(),tm));
834  ana->SetOutputAODName(Form("%s%sIsoDecayTrigger_%s",particle.Data(), opt.Data(), kAnaGammaHadronCorr.Data()));
835  }
836 
837  if(calorimeter=="EMCAL" && !simulation) ana->SetPairTimeCut(100);
838 
840  nms->SetParticle(particle);
841 
842  //****
843  nms->SetInvMassCutMaxParameters(0,0,0); // Overrule the setting in SetParticle for Pi0 option
844  //****
845 
846  // Tighten a bit mass cut with respect to default window
847  if(particle=="Pi0") nms->SetInvMassCutRange(0.110,0.160);
848  if(particle=="Eta") nms->SetInvMassCutRange(0.520,0.580);
849 
850  //if(!particle.Contains("SideBand")) nms->SwitchOnAngleSelection();
851  //else nms->SwitchOnAngleSelection();
852 
854 
855  if(particle.Contains("Pi0SideBand")) // For pi0, do not consider left band
856  nms->SetSideBandCutRanges(-1,0,0.190,0.240);
857 
858  if(particle.Contains("EtaSideBand")) // For pi0, do not consider left band
859  nms->SetSideBandCutRanges(0.410,0.470,0.620,0.680);
860 
862  //nms->SetAngleMaxParam(2,0.2);
863  nms->SetHistoERangeAndNBins(0, 20, 80) ;
864  //nms->SetHistoIMRangeAndNBins(0, 1, 400);
865  }
866  else
867  {
868  // cluster splitting settings
869  ana->SetMinEnergy(6);
870  ana->SetMaxEnergy(100.);
871 
872  ana->SetNLMMinEnergy(0, 10);
873  ana->SetNLMMinEnergy(1, 6);
874  ana->SetNLMMinEnergy(2, 6);
875 
876  // NLM cut, used in all, exclude clusters with more than 2 maxima
877  ana->SetNLMCut(1, 2) ;
878 
879  //
880  ana->SetMinDistanceToBadChannel(2, 4, 6);
882  ana->SetTimeCut(-1e10,1e10); // Open time cut
883 
884  AliCaloPID* caloPID = ana->GetCaloPID();
885 
886  // Track matching
887  // tm = 1, fixed cuts
888  caloPID->SetEMCALDEtaCut(0.025);
889  caloPID->SetEMCALDPhiCut(0.030);
890 
891  // pT track dependent cuts
892  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
893 
894  caloPID->SetSplitWidthSigma(3); // cut at 3 sigma of the mean pi0 peak.
895 
896  if(!useSSIso)
897  {
898  printf("Do not apply SS cut on merged pi0 analysis \n");
899  caloPID->SwitchOffSplitShowerShapeCut() ;
900  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_TM%d_",particle.Data(),opt.Data(),tm));
901  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS",particle.Data(), opt.Data(), kAnaGammaHadronCorr.Data()));
902  caloPID->SetClusterSplittingM02Cut(0.1,10);
903  }
904  else
905  {
906  caloPID->SetClusterSplittingM02Cut(0.3,4); // Do the selection in the analysis class and not in the PID method to fill SS histograms
907  caloPID->SwitchOnSplitShowerShapeCut() ;
908  }
909 
910  if(useAsy)
911  {
912  caloPID->SwitchOnSplitAsymmetryCut() ;
914  ana->GetCaloPID()->SetSubClusterEnergyMinimum(1,0.5);
915  ana->GetCaloPID()->SetSubClusterEnergyMinimum(2,0.5);
916  }
917  else
918  {
919  caloPID->SwitchOffSplitAsymmetryCut() ;
920  if(!useSSIso)
921  {
922  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenSS_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
923  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenSS_OpenAsy",particle.Data(), opt.Data(), kAnaGammaHadronCorr.Data()));
924  }
925  else
926  {
927  ana->AddToHistogramsName(Form("Ana%s%sEbE_OpenAsy_TM%d_",particle.Data(),opt.Data(),tm));
928  ana->SetOutputAODName(Form("%s%sTrigger_%s_OpenAsy",particle.Data(), opt.Data(), kAnaGammaHadronCorr.Data()));
929  }
930  }
931 
932  // For Pi0 only if SwitchOnSimpleSplitMassCut()
933  caloPID->SetPi0MassRange(0.10, 0.18);
934  caloPID->SetEtaMassRange(0.50, 0.60);
935  caloPID->SetPhotonMassRange(0.00, 0.08);
936 
937  caloPID->SetClusterSplittingMinNCells(6);
938 
939  //caloPID->SetSplitEnergyFractionMinimum(0, 0.95);
940  //caloPID->SetSplitEnergyFractionMinimum(1, 0.95);
941  //caloPID->SetSplitEnergyFractionMinimum(2, 0.8);
942 
943  if(col=="PbPb" || kAnaGammaHadronCorr.Contains("150"))
944  {
945  caloPID->SetClusterSplittingMinNCells(4);
946  //caloPID->SetPi0MassShiftHighECell(0.005);
947  }
948  }
950 
951  return ana;
952 }
953 
958  Int_t partInCone, Int_t thresType,
959  Float_t cone, Float_t pth, Bool_t multi,
960  TString col, Bool_t simulation,
961  TString calorimeter, Int_t year, Int_t tm,
962  Bool_t printSettings, Int_t debug )
963 {
965 
966  ana->SetDebug(debug);
967 
968  ana->SetMinPt(5);
969  ana->SetCalorimeter(calorimeter);
970 
972  ana->SwitchOffCellHistoFill() ;
973 
974  ana->SwitchOffLeadingOnly();
976  if( leading > 0 ) ana->SwitchOnLeadingOnly();
977  if( leading == 2 ||
978  leading == 4) ana->SwitchOnCheckNeutralClustersForLeading();
979 
980  // MC
983 
984  if(particle.Contains("Photon"))
985  {
987  ana->SetNDecayBits(5);
988  ana->SwitchOnSSHistoFill();
989  }
990  else
991  {
992  ana->SwitchOffSSHistoFill();
993  }
994 
996  ana->SetNPtTrigBins(6);
997  //ana->SetPtTrigLimits(0,8); ana->SetPtTrigLimits(1,12); ana->SetPtTrigLimits(2,16); ana->SetPtTrigLimits(3,25);
998 
1000  ana->SetNBackgroundBins(11);
1001  //ana->SetBackgroundLimits(0,0); ana->SetBackgroundLimits(1,0.2); ana->SetBackgroundLimits(2,3); ana->SetBackgroundLimits(3,0.4);
1002 
1003  ana->SetFirstSMCoveredByTRD(6);
1004 
1005  if(!tm) ana->SwitchOnTMHistoFill();
1006  else ana->SwitchOffTMHistoFill();
1007 
1008  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
1009 
1011  ana->SwitchOnFiducialCut();
1012 
1013  if(calorimeter=="EMCAL")
1014  {
1015  // Avoid borders of EMCal
1016  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.60, 86, 174) ;
1017 
1018  }
1019 
1020  // Same Eta as EMCal, cut in phi if EMCAL was triggering
1021  if(particle=="Hadron" || particle.Contains("CTS"))
1022  {
1023  //if(trigger.Contains("EMC"))
1024  // ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 260, 360) ;
1025  //else
1026  ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 0, 360) ;
1027  }
1028 
1029  // Branch AOD settings
1030 
1031  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaGammaHadronCorr.Data()));
1032  ana->SetAODObjArrayName(Form("IC%sTrigger_%s_R%1.1f_ThMin%1.1f",particle.Data(),kAnaGammaHadronCorr.Data(),cone,pth));
1033 
1034  //
1035  // Do settings for main isolation cut class
1036  //
1037  AliIsolationCut * ic = ana->GetIsolationCut();
1038  ic->SetDebug(debug);
1039  ic->SetParticleTypeInCone(partInCone);
1040  ic->SetICMethod(thresType);
1041  ic->SetPtFraction(0.1);
1042  ic->SetPtThreshold(0.5); // default, change in next lines
1043  ic->SetSumPtThreshold(1.0); // default, change in next lines
1044 
1045  if(cone > 0 && pth > 0)
1046  {
1047  ic->SetConeSize(cone);
1048  ic->SetPtThresholdMax(10000);
1049 
1050  if(thresType == AliIsolationCut::kPtThresIC)
1051  {
1052  printf("*** Iso *** PtThresMin = %1.1f GeV/c *** R = %1.1f ***\n",pth,cone);
1053  ic->SetPtThreshold(pth);
1054  }
1055 
1056  if(thresType == AliIsolationCut::kSumPtIC)
1057  {
1058  printf("*** Iso *** SumPtMin = %1.1f GeV/c *** R = %1.1f ***\n",pth,cone);
1059  ic->SetSumPtThreshold(pth);
1060  }
1061  }
1062  else
1063  {
1064  if(col=="pp")
1065  {
1066  ic->SetPtThreshold(0.5);
1067  ic->SetSumPtThreshold(1.0) ;
1068  ic->SetConeSize(0.4);
1069  }
1070  if(col=="PbPb")
1071  {
1072  ic->SetPtThreshold(3.);
1073  ic->SetSumPtThreshold(3.0) ;
1074  ic->SetConeSize(0.3);
1075  }
1076  }
1077 
1078 
1079  // Do or not do isolation with previously produced AODs.
1080  // No effect if use of SwitchOnSeveralIsolation()
1081  ana->SwitchOffReIsolation();
1082 
1083  // Multiple IC
1084  if(multi)
1085  {
1086  ic->SetConeSize(1.); // Take all for first iteration
1087  ic->SetPtThreshold(100);// Take all for first iteration
1088  ana->SwitchOnSeveralIsolation() ;
1089  ana->SetAODObjArrayName(Form("MultiIC%sTM%d",particle.Data(),tm));
1090 
1091  ana->SetNCones(3);
1092  ana->SetNPtThresFrac(2);
1093  ana->SetConeSizes(0,0.3); ana->SetConeSizes(1,0.4); ana->SetConeSizes(2,0.5);
1094  ana->SetPtThresholds(0, 0.5); ana->SetPtThresholds(1, 1); ana->SetPtThresholds(2, 1.5); ana->SetPtThresholds(3, 2);
1095  ana->SetPtFractions (0, 0.05) ; ana->SetPtFractions (1, 0.1); ana->SetPtFractions (2, 0.2) ; ana->SetPtFractions (3, 0.3) ;
1096  ana->SetSumPtThresholds(0, 0.5) ; ana->SetSumPtThresholds(1, 1) ; ana->SetSumPtThresholds(2, 1.5); ana->SetSumPtThresholds(3, 2) ;
1097  //ana->SetPtThresholds(0, 0.5);
1098 
1099  ana->SwitchOffTMHistoFill();
1100  ana->SwitchOffSSHistoFill();
1101  }
1102  else
1103  ana->SwitchOffSeveralIsolation() ;
1104 
1105  AliCaloPID* caloPID = ana->GetCaloPID();
1106 
1107  // Track matching
1108  // tm = 1, fixed cuts
1109  caloPID->SetEMCALDEtaCut(0.025);
1110  caloPID->SetEMCALDPhiCut(0.030);
1111 
1112  // pT track dependent cuts
1113  if(tm > 1) caloPID->SwitchOnEMCTrackPtDepResMatching();
1114 
1115  //Set Histograms name tag, bins and ranges
1116 
1117  if(!multi) ana->AddToHistogramsName(Form("AnaIsol%s_TM%d_",particle.Data(),tm));
1118  else ana->AddToHistogramsName(Form("AnaMultiIsol%s_TM%d_",particle.Data(),tm));
1119 
1120  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug); // see method below
1121 
1122  if(particle=="Hadron" || particle.Contains("CTS"))
1123  {
1124  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1125  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1126  }
1127 
1128  if(printSettings) ic ->Print("");
1129 
1130  return ana;
1131 }
1132 
1133 
1138  Bool_t bIsolated, Float_t shshMax,
1139  Int_t partInCone, Int_t thresType,
1140  Float_t cone, Float_t pth, Bool_t mixOn,
1141  TString col, Bool_t simulation,
1142  TString calorimeter, Int_t year, Int_t tm,
1143  Bool_t printSettings, Int_t debug )
1144 {
1146 
1147  ana->SetTriggerPtRange(5,100);
1148  ana->SetAssociatedPtRange(0.2,100);
1149  ana->SetDeltaPhiCutRange (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
1150 
1151  // Underlying event
1152  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
1154 
1155  ana->SwitchOffAbsoluteLeading(); // Select trigger leading particle of all the selected tracks
1156  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
1158 
1159  if(leading > 0 && leading < 3 ) ana->SwitchOnAbsoluteLeading();
1160  if(leading > 2 ) ana->SwitchOnNearSideLeading();
1161  if(leading == 2 || leading == 4 ) ana->SwitchOnCheckNeutralClustersForLeading();
1162 
1164  ana->SwitchOffCorrelationVzBin() ;
1166 
1168 
1170  if(particle.Contains("Photon"))
1171  {
1173  ana->SetNDecayBits(5);
1174  printf("**** SET M02 limits in correlation task *** \n");
1175  ana->SetM02Cut(0.10,shshMax);
1178  }
1179 
1180  ana->SetMCGenType(0,7);
1181 
1182  ana->SwitchOffLeadHadronSelection(); // Open cuts, just fill histograms
1186  ana->SetLeadHadronPhiCut(TMath::DegToRad()*130, TMath::DegToRad()*230.);
1187  ana->SetLeadHadronPtCut(0.5, 1000);
1188 
1189  // if triggering on PHOS and EMCAL is on
1190  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
1191  //ana->SetPi0AODBranchName("Pi0EMCAL_TrigEMC7_Cl_TM1");
1192 
1194 
1196 
1197  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
1198 
1199  ana->SetNAssocPtBins(8);
1200  ana->SetAssocPtBinLimit(0, 1) ;
1201  ana->SetAssocPtBinLimit(1, 2) ;
1202  ana->SetAssocPtBinLimit(2, 3) ;
1203  ana->SetAssocPtBinLimit(3, 4) ;
1204  ana->SetAssocPtBinLimit(4, 5) ;
1205  ana->SetAssocPtBinLimit(5, 8) ;
1206  ana->SetAssocPtBinLimit(6, 10) ;
1207  ana->SetAssocPtBinLimit(7, 100);
1208 
1209  ana->SelectIsolated(bIsolated); // do correlation with isolated photons
1210 
1211  // Mixing with own pool
1212  if(mixOn)
1213  {
1214  ana->SwitchOnOwnMix();
1216 
1217  if(bIsolated)
1218  {
1219  //Do settings for main isolation cut class
1220  AliIsolationCut * ic = ana->GetIsolationCut();
1221  ic->SetDebug(debug);
1222 
1223  if(cone >0 && pth > 0)
1224  {
1225  printf("*** Correl *** PtThres = %1.1f GeV/c *** R = %1.1f ***\n",pth,cone);
1226  ic->SetPtThreshold(pth);
1227  ic->SetConeSize(cone);
1228  }
1229  else
1230  {
1231  if(col=="pp")
1232  {
1233  ic->SetPtThreshold(0.5);
1234  ic->SetConeSize(0.4);
1235  }
1236  if(col=="PbPb")
1237  {
1238  ic->SetPtThreshold(3.);
1239  //ic->SetPtThreshold(1.);
1240  ic->SetConeSize(0.3);
1241  }
1242  }
1243 
1244  ic->SetPtFraction(0.1);
1245  ic->SetSumPtThreshold(1.0) ;
1246  ic->SetParticleTypeInCone(partInCone);
1247  ic->SetICMethod(thresType);
1248  }
1249  }
1250  else
1251  ana->SwitchOffOwnMix();
1252 
1253  ana->SetNZvertBin(20);
1254 
1255  if(col=="pp")
1256  {
1257  ana->SetNMaxEvMix(100);
1258  ana->SwitchOnTrackMultBins();
1259  ana->SetNTrackMultBin(10);
1260  ana->SetNRPBin(1);
1261  }
1262  else
1263  {
1264  ana->SetNMaxEvMix(10);
1265  ana->SwitchOffTrackMultBins(); // centrality bins
1266  ana->SetNCentrBin(12);
1267  ana->SetNRPBin(3);
1268  if(kAnaGammaHadronCorr.Contains("60_90"))
1269  {
1270  printf("*** Set mixing for peripheral\n");
1271  ana->SetNMaxEvMix(50);
1272  ana->SetNCentrBin(2);
1273  }
1274  }
1275 
1276  ana->SwitchOnFiducialCut();
1277 
1278  if(calorimeter=="EMCAL")
1279  {
1280  // Avoid borders of EMCal, same as for isolation
1281  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.6, 86, 174) ;
1282 
1283  }
1284 
1285  // Input / output delta AOD settings
1286 
1287  ana->SetInputAODName(Form("%sTrigger_%s",particle.Data(),kAnaGammaHadronCorr.Data()));
1288  ana->SetAODObjArrayName(Form("%sHadronCorrIso%dTrigger_%s",particle.Data(),bIsolated,kAnaGammaHadronCorr.Data()));
1289  //ana->SetAODNamepTInConeHisto(Form("IC%s_%s_R%1.1f_ThMin%1.1f" ,particle.Data(),kAnaGammaHadronCorr.Data(),cone,pth));
1290 
1291  //Set Histograms name tag, bins and ranges
1292 
1293  ana->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_TM%d_",particle.Data(),bIsolated,tm));
1294 
1295  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug); // see method below
1296 
1297  if(particle=="Hadron" || particle.Contains("CTS"))
1298  {
1299  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1300  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1301  }
1302 
1303  return ana;
1304 }
1305 
1310 {
1312 
1313  ana->SetDebug(debug);
1314 
1315  // selection cuts
1316 
1317  ana->SetMinPt(0.2);
1318  ana->SwitchOnFiducialCut();
1319  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ; //more restrictive cut in reader and after in isolation
1320 
1322 
1325 
1326  // Branch AOD settings
1327 
1328  ana->SetOutputAODName(Form("HadronTrigger_%s",kAnaGammaHadronCorr.Data()));
1329  ana->SetOutputAODClassName("AliCaloTrackParticle"); // use if no correlation done
1330 
1331  //Set Histograms name tag, bins and ranges
1332 
1333  ana->AddToHistogramsName("AnaHadrons_");
1334 
1335  SetAnalysisCommonParameters(ana,"CTS",2012,"pp",simulation,printSettings,debug); // see method below
1336 
1337  return ana;
1338 }
1339 
1344  TString calorimeter, Int_t year,
1345  Bool_t printSettings, Int_t debug )
1346 {
1348 
1349  ana->SetCalorimeter(calorimeter);
1350 
1351  ana->SetTimeCut(-1e10,1e10); // Open time cut
1352 
1353  ana->SwitchOnCorrelation(); // make sure you switch in the reader PHOS and EMCAL cells and clusters if option is ON
1354 
1356 
1357  ana->SwitchOffFiducialCut();
1361  ana->SwitchOffStudyBadClusters() ;
1363 
1365 
1366  ana->AddToHistogramsName("QA_"); // Begining of histograms name
1367 
1368  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug); // see method below
1369 
1370  return ana;
1371 }
1372 
1377  Float_t pth,
1378  TString col, Bool_t simulation,
1379  TString calorimeter, Int_t year,
1380  Bool_t printSettings, Int_t debug )
1381 {
1383 
1384  // Trigger detector, acceptance and pT cut
1385  ana->SetTriggerDetector(calorimeter);
1386  ana->SetMinPt(2); // Trigger photon, pi0 minimum pT
1388 
1389  // Particles associated to trigger or isolation cone acceptance and pT cut
1390  ana->SetCalorimeter(calorimeter);
1391  ana->SetMinChargedPt(0.2);
1392  ana->SetMinNeutralPt(0.3);
1393  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.65, 81, 179);
1394  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.9, 0, 360);
1395 
1396  // Isolation paramters
1397  AliIsolationCut * ic = ana->GetIsolationCut();
1398  ic->SetDebug(debug);
1399  ic->SetPtThreshold(pth);
1400  ic->SetConeSize(cone);
1401  ic->SetSumPtThreshold(1.0) ;
1402  ic->SetICMethod(thresType);
1403 
1404  ana->AddToHistogramsName("AnaGenKine_");
1405 
1406  SetAnalysisCommonParameters(ana,calorimeter,year,col,simulation,printSettings,debug); // see method below
1407 
1408  return ana;
1409 }
1410 
1411 
1419  TString calorimeter, Int_t year,
1420  TString col, Bool_t simulation,
1421  Bool_t printSettings, Int_t debug)
1422 {
1423  //
1424  // Histograms ranges
1425  //
1426  AliHistogramRanges* histoRanges = ana->GetHistogramRanges();
1427 
1428  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
1429 
1430  if(calorimeter=="EMCAL")
1431  {
1432  if ( year == 2010 )
1433  {
1434  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
1435  histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
1436  histoRanges->SetHistoYRangeAndNBins(370,450,40); // QA
1437  }
1438  else if ( year < 2014 )
1439  {
1440  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
1441  histoRanges->SetHistoXRangeAndNBins(-460,90,200); // QA
1442  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
1443  }
1444  else // Run2
1445  {
1446  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 329*TMath::DegToRad(), 250) ;
1447  histoRanges->SetHistoXRangeAndNBins(-460,460,230); // QA
1448  histoRanges->SetHistoYRangeAndNBins(-450,450,225); // QA
1449  }
1450 
1451  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
1452  }
1453  else if(calorimeter=="PHOS")
1454  {
1455  histoRanges->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 320*TMath::DegToRad(), 70) ;
1456  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
1457  }
1458  else if(calorimeter=="CTS")
1459  {
1460  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
1461  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
1462  }
1463 
1464  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
1465 
1466  // Invariant mass histo
1467  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
1468  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
1469 
1470  // check if time calibration is on
1471  //histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
1472  histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
1473  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
1474 
1475  // track-cluster residuals
1476  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
1477  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
1478  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA
1479 
1480  // QA, electron, charged
1481  histoRanges->SetHistoPOverERangeAndNBins(0,2.,200);
1482  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
1483 
1484  // QA
1485  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
1486  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
1487  histoRanges->SetHistoZRangeAndNBins(-350,350,175);
1488  histoRanges->SetHistoRRangeAndNBins(430,460,30);
1489  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
1490  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
1491 
1492  // QA, correlation
1493  if(col=="PbPb")
1494  {
1495  histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
1496  histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
1497  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
1498  }
1499  else
1500  {
1501  histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
1502  histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
1503  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
1504  }
1505 
1506  // xE, zT
1507  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
1508  histoRanges->SetHistoHBPRangeAndNBins (0.,10.,200);
1509 
1510  // Isolation
1511  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
1512  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
1513 
1514  //
1515  // TRD SM
1516  //
1517  if (year == 2011) ana->SetFirstSMCoveredByTRD( 6);
1518  else if(year == 2012 ||
1519  year == 2013) ana->SetFirstSMCoveredByTRD( 4);
1520  else ana->SetFirstSMCoveredByTRD(-1);
1521 
1522  //
1523  // MC histograms?
1524  //
1525  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
1526  else ana->SwitchOffDataMC() ;
1527 
1528  //Set here generator name, default pythia
1529  //ana->GetMCAnalysisUtils()->SetMCGenerator("");
1530 
1531  //
1532  // Debug
1533  //
1534  if(printSettings) ana->Print("");
1535 
1536  ana->SetDebug(debug); // 10 for lots of messages
1537 }
void SetSumPtThresholds(Int_t i, Float_t pt)
void SwitchOffSelectedClusterHistoFill()
Definition: AliAnaPi0EbE.h:112
void SetPtThreshold(Float_t pt)
AliAnalysisTaskCaloTrackCorrelation * AddTaskGammaHadronCorrelation(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=2011, TString col="pp", Int_t rejectEMCTrig=0, TString clustersArray="", Bool_t tender=kFALSE, Bool_t nonLinOn=kFALSE, Float_t shshMax=0.27, Float_t isoCone=0.4, Float_t isoPtTh=0.5, Int_t isoMethod=AliIsolationCut::kPtThresIC, Int_t isoContent=AliIsolationCut::kNeutralAndCharged, Int_t leading=0, Int_t tm=1, Int_t minCen=-1, Int_t maxCen=-1, Bool_t mixOn=kTRUE, Bool_t qaAn=kFALSE, Bool_t chargedAn=kFALSE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0, const char *trigSuffix="EMC7")
virtual void SwitchOnAODTrackSharedClusterSelection()
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:162
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
AliAnaPhoton * ConfigurePhotonAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug)
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
void SwitchOnFillAllTrackMatchingHistogram()
void SetSplitWidthSigma(Float_t s)
Definition: AliCaloPID.h:283
virtual void SwitchOnFiducialCut()
const int debug
Definition: scanAll.C:15
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:131
void SetClusterSplittingM02Cut(Float_t min=0, Float_t max=100)
Definition: AliCaloPID.h:264
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnSplitShowerShapeCut()
Definition: AliCaloPID.h:260
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:93
void SetAssociatedPtRange(Float_t min, Float_t max)
Class with utils to perform Isolation Cuts.
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
AliAnaPi0EbE * ConfigurePi0EbEAnalysis(TString particle, Int_t analysis, Bool_t useSSIso, Bool_t useAsy, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
TString kAnaGammaHadronCorr
Global name to be composed of the settings, used to set the AOD branch name.
void SetConeSize(Float_t r)
void SetPtFraction(Float_t pt)
void SwitchOnSelectPairInIsolationCone()
Definition: AliAnaPi0EbE.h:127
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPi0EbE.h:142
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:142
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SwitchOffSplitShowerShapeCut()
Definition: AliCaloPID.h:261
void SetClusterSplittingMinNCells(Int_t c)
Definition: AliCaloPID.h:267
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetDebug(Int_t d)
void SetMinChargedPt(Float_t pt)
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
AliAnaGeneratorKine * ConfigureGenKineAnalysis(Int_t thresType, Float_t cone, Float_t pth, TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug)
virtual void SetInputAODName(TString name)
void SetM02CutForInvMass(Float_t min=0, Float_t max=10)
Definition: AliAnaPi0EbE.h:117
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
virtual AliIsolationCut * GetIsolationCut()
void SetEMCALEMin(Float_t en)
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPhoton.h:114
void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
void KeepNeutralMesonSelectionHistos(Bool_t keep)
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
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)
virtual void SetOutputAODClassName(TString name)
virtual AliNeutralMesonSelection * GetNeutralMesonSelection()
void SetSumPtThreshold(Float_t s)
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
Definition: AliAnaPi0EbE.h:133
Class for the Calorimeter QA analysis.
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetLocalMaximaCutEDiff(Float_t c)
Get trigger particles/partons/jets and correlations at generator level.
void SwitchOffSplitAsymmetryCut()
Definition: AliCaloPID.h:257
void SetAnalysisType(anaTypes ana)
Definition: AliAnaPi0EbE.h:92
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOffTMHistoFill()
Definition: AliAnaPi0EbE.h:109
void SetNCellCut(Int_t n)
Definition: AliAnaPhoton.h:122
Select cluster pairs or single merged clusters with pi0 or eta invariant mass.
Definition: AliAnaPi0EbE.h:30
void SetPtFractions(Int_t i, Float_t pt)
2 calorimeter clusters invariant mass selection
Definition: AliAnaPi0EbE.h:86
const TString calorimeter
Definition: anaM.C:36
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis(TString particle, Int_t leading, Bool_t bIsolated, Float_t shshMax, Int_t partInCone, Int_t thresType, Float_t cone, Float_t pth, Bool_t mixOn, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug)
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.
void SetIsolationCandidateMinPt(Float_t min)
Definition: AliAnaPi0EbE.h:122
Class for event, clusters and tracks filtering and preparation for the AOD analysis.
void SetCTSPtMin(Float_t pt)
void SetPHOSRCut(Float_t rcut)
Definition: AliCaloPID.h:213
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:221
void SetLeadHadronPtCut(Float_t min, Float_t max)
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SetICMethod(Int_t i)
void SwitchOffVertexBCEventSelection()
void SetR(Float_t r)
Definition: AliAnaPi0EbE.h:121
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
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.
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
Definition: AliAnaPhoton.h:132
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
1 calorimeter cluster and 1 photon conversion pair invariant mass selection
Definition: AliAnaPi0EbE.h:88
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 AliFiducialCut * GetFiducialCut()
virtual void SetCentralityOpt(Int_t opt)
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
int Int_t
Definition: External.C:63
void SetSideBandCutRanges(Double_t lmin, Double_t lmax, Double_t rmin, Double_t rmax)
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug)
virtual AliHistogramRanges * GetHistogramRanges()
unsigned int UInt_t
Definition: External.C:33
void SwitchOnSplitAsymmetryCut()
Definition: AliCaloPID.h:256
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetAnalysisCommonParameters(AliAnaCaloTrackCorrBaseClass *ana, TString calorimeter, Int_t year, TString col, Bool_t simulation, Bool_t printSettings, Int_t debug)
float Float_t
Definition: External.C:68
void SetTrackStatus(ULong_t bit)
Bool_t IsBadChannelsRemovalSwitchedOn() const
Filter EMCal/PHOS clusters for photon analysis.
Definition: AliAnaPhoton.h:33
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetConeSizes(Int_t i, Float_t r)
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString particle, Int_t leading, Int_t partInCone, Int_t thresType, Float_t cone, Float_t pth, Bool_t multi, TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Bool_t printSettings, Int_t debug)
void SwitchOnSelectIsolatedDecay()
Definition: AliAnaPi0EbE.h:124
void SetM02Cut(Float_t min=0, Float_t max=10)
void SwitchOnSplitClusterDistToBad()
Definition: AliAnaPi0EbE.h:160
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
void SwitchOffTriggerClusterTimeRecal()
void SwitchOffTrackMatchRejection()
Definition: AliAnaPi0EbE.h:149
virtual void SetHistoERangeAndNBins(Float_t min, Float_t max, Int_t n)
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SetInputAODGammaConvName(TString name)
Definition: AliAnaPi0EbE.h:98
void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SwitchOffBadTriggerEventsRemoval()
void SetEMCALClusterListName(TString &name)
void SetMinNeutralPt(Float_t pt)
anaTypes
Analysis types.
Definition: AliAnaPi0EbE.h:84
Int_t GetNumberOfSuperModulesUsed() const
void SetParticle(TString particleName)
Set some default parameters for selection of pi0 or eta.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:117
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
AliAnaChargedParticles * ConfigureChargedAnalysis(Bool_t simulation, Bool_t printSettings, Int_t debug)
AliCalorimeterUtils * ConfigureCaloUtils(TString col, Bool_t simulation, Bool_t tender, Bool_t nonLinOn, Int_t year, Bool_t printSettings, Int_t debug)
void SetPtThresholdMax(Float_t pt)
virtual void SetZvertexCut(Float_t zcut=10.)
AliFiducialCut * GetFiducialCutForTrigger()
void SetEtaMassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:305
void SetNumberOfSuperModulesUsed(Int_t nSM)
UInt_t ConfigureAndGetEventTriggerMaskAndCaloTriggerString(TString trigger, Int_t year, TString &triggerString)
void SetPi0MassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:304
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:202
void SwitchOnTrackMatchRejection()
Definition: AliAnaPi0EbE.h:148
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.
virtual void SetEventPlaneMethod(TString m)
void SetPHOSEMin(Float_t en)
virtual void SetNRPBin(Int_t n=1)
Number of bins for vertex position.
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetPHOSDispersionCut(Float_t dcut)
Definition: AliCaloPID.h:208
void ConfigureEMCALRecoUtils(AliEMCALRecoUtils *reco, Bool_t bMC=kFALSE, Bool_t bExotic=kTRUE, Bool_t bNonLin=kFALSE, Bool_t bRecalE=kTRUE, Bool_t bBad=kTRUE, Bool_t bRecalT=kTRUE, Int_t debug=-1)
virtual void SetTrackCuts(AliESDtrackCuts *)
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPi0EbE.h:100
Track selection for correlation analysis.
void SetMCGenType(Int_t min=0, Int_t max=6)
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:73
Select clusters/tracks with low particle environment in their vecinity, isolated within a cone...
void SwitchOnBadTriggerEventsRemoval()
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnClusterELinearityCorrection()
void SwitchOffFillWeightHistograms()
Definition: AliAnaPi0EbE.h:152
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
void SetTriggerDetector(TString &det)
Set the calorimeter for the analysis.
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SwitchOnEMCTrackPtDepResMatching()
Definition: AliCaloPID.h:228
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)
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
Class that contains methods to select candidate cluster pairs to neutral meson.
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALEMax(Float_t en)
void SetNAssocPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:53
1 calorimeter cluster shower shape and split invariatn mass selection
Definition: AliAnaPi0EbE.h:87
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:140
virtual void SetNMaxEvMix(Int_t n=20)
Number of bins in track multiplicity.
void SetNLMMinEnergy(Int_t i, Float_t min)
Definition: AliAnaPi0EbE.h:138
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
bool Bool_t
Definition: External.C:53
void SetLeadHadronPhiCut(Float_t min, Float_t max)
void SetPHOSEMax(Float_t en)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
virtual void SwitchOnConstrainTrackToVertex()
void SetInvMassCutMaxParameters(Float_t a, Float_t b, Float_t c)
void SetHistoHBPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALLambda0CutMin(Float_t lcut)
Definition: AliCaloPID.h:205
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetParticleTypeInCone(Int_t i)
void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetSubClusterEnergyMinimum(Int_t i, Float_t min)
Definition: AliCaloPID.h:273
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:218
void SetPhotonMassRange(Float_t min, Float_t max)
Definition: AliCaloPID.h:306
void SwitchOffUseParametrizedTimeCut()
void SetLocalMaximaCutE(Float_t cut)
void SetPtThresholds(Int_t i, Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffAllNLMHistoFill()
Definition: AliAnaPi0EbE.h:106
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:125
void SetAssocPtBinLimit(Int_t ibin, Float_t pt)
Set the list of pT limits for the of associated charged (neutral) hadrons.
Int_t GetFirstSMCoveredByTRD() const
Time cut in ns.
Steering class of package CaloTrackCorrelartions.
void SetTriggerPtRange(Float_t min, Float_t max)