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