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