AliPhysics  8417398 (8417398)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AddTaskGammaJetCorrelation.C
Go to the documentation of this file.
1 
12 
48  const Float_t isoCone = 0.4,
49  const Float_t isoPth = 0.5,
50  const Double_t maxLambda0Cut = 0.5,
51  const Int_t maxNLMcut = 2,
52  const Bool_t timecut = kFALSE,
53  const TString calorimeter = "EMCAL",
54  const Bool_t simulation = kFALSE,
55  const Bool_t eventsel = kFALSE,
56  const Bool_t exotic = kTRUE,
57  const Bool_t nonlin = kFALSE,
58  const TString collision = "pp",
59  const TString trigger = "MB",
60  const TString firedTrigger = "EG1",
61  const TString clustersArray = "V1",
62  const Bool_t mix = kTRUE,
63  const Bool_t tm = kTRUE,
64  const Int_t minCen = -1,
65  const Int_t maxCen = -1,
66  const TString jetBranchName = "clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00",
67  const TString jetBkgBranchName = "jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00",
68  const Float_t jetMinPt = 0,
69  const Float_t minDeltaPhi = 1.5,
70  const Float_t maxDeltaPhi = 4.5,
71  const Float_t minPtRatio = 0,
72  const Float_t maxPtRatio = 5,
73  const Int_t debug = -1,
74  const Bool_t printSettings = kFALSE,
75  const Double_t scaleFactor = -1 )
76 {
77  // Get the pointer to the existing analysis manager via the static access method.
78 
79  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
80  if (!mgr)
81  {
82  ::Error("AddTask", "No analysis manager to connect to.");
83  return NULL;
84  }
85 
86  // Check the analysis type using the event handlers connected to the analysis manager.
87 
88  if (!mgr->GetInputEventHandler())
89  {
90  ::Error("AddTask", "This task requires an input event handler");
91  return NULL;
92  }
93 
94  // Make sure the B field is enabled for track selection, some cuts need it
95  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
96 
97  // input jets
98  TString deltaAODJetName = "AliAOD.Jets.root"; //Jet input AOD name
99  if(deltaAODJetName.Length()!=0)
100  {
101  // External file with Jets
102  // aodHandler->AddFriend(deltaAODJetName.Data());
103  mgr->RegisterExtraFile(deltaAODJetName.Data());
104  cout<<"Jet file registered "<<endl;
105  cout<<"Extra files: "<<mgr->GetExtraFiles()<<endl;
106  }
107 
108  Bool_t useKinematics = kFALSE;
109  useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
110 
111  // Name for containers
112 
113  //kGammaJetCorrelationName = Form("%s_Trig%s_Cl%s_TM%d_R%1.1f_Pt%1.1f",calorimeter.Data(), trigger.Data(),clustersArray.Data(),tm,cone,pth);
114  // kGammaJetCorrelationName = Form("%s_Trig%s_Cl%s_TM%d",calorimeter.Data(), trigger.Data(),clustersArray.Data(),tm);
115  kGammaJetCorrelationName = Form("%s_Trig%s_Fired%s_Cl%s_TM%d_l02%1.2f",calorimeter.Data(), trigger.Data(),firedTrigger.Data(),clustersArray.Data(),tm,maxLambda0Cut);//<<<---changed here
116 
117  if(collision=="PbPb" && maxCen>=0) kGammaJetCorrelationName+=Form("Cen%d_%d",minCen,maxCen);
118 
119  printf("<<<< NAME: %s >>>>>\n",kGammaJetCorrelationName.Data());
120 
121  // #### Configure analysis ####
122 
124  printf("SCALE FACTOR %e\n",scaleFactor);
125  maker->SetScaleFactor(scaleFactor); // for MC, negative (not scaled) by default
126 
127  // General frame setting and configuration
128  maker->SetReader (ConfigureReader(mgr->GetInputEventHandler()->GetDataType(),calorimeter,useKinematics,simulation,eventsel,nonlin,timecut,collision,trigger,firedTrigger,clustersArray,jetBranchName,jetBkgBranchName,mix,minCen,maxCen,debug,printSettings) );
129  maker->SetCaloUtils(ConfigureCaloUtils(clustersArray,collision,nonlin,exotic,simulation,timecut,debug,printSettings));
130 
131  // Analysis tasks setting and configuration
132  Int_t n = 0;//Analysis number, order is important
133 
134  // Isolation settings
135  Int_t partInCone = AliIsolationCut::kNeutralAndCharged; // kOnlyCharged;
136  Int_t thresType = AliIsolationCut::kPtThresIC;// AliIsolationCut::kSumPtFracIC ;
137  //Float_t isoCone = -1;
138  //Float_t isoPth = -1;
139 
140  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,tm,simulation,maxLambda0Cut,maxNLMcut,debug,printSettings), n++); // Photon cluster selection
141  maker->AddAnalysis(ConfigureIsolationAnalysis(calorimeter,collision,"Photon", partInCone,thresType, isoCone, isoPth,tm,kFALSE,simulation,debug,printSettings), n++); // Photon isolation
142  maker->AddAnalysis(ConfigurePhotonJetAnalysis(calorimeter,isoCone,jetMinPt,minDeltaPhi,maxDeltaPhi,minPtRatio,maxPtRatio,simulation,debug,printSettings), n++);// photon-jet correlation analysis
143 
144  maker->SetAnaDebug(debug) ;
145  maker->SwitchOnHistogramsMaker() ;
146  //if(kData.Contains("delta")) maker->SwitchOffAODsMaker() ;
147  //else maker->SwitchOnAODsMaker() ;
148 
149  if(printSettings) maker->Print("");
150 
151  printf("<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
152  // Create task
153 
155  task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
156  task->SetDebugLevel(debug);
157  task->SetBranches("ESD:AliESDRun.,AliESDHeader");
158  task->SetAnalysisMaker(maker);
159  mgr->AddTask(task);
160 
161  //Create containers
162 
163  //if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
164  TString outputfile = AliAnalysisManager::GetCommonFileName();
165 
166  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kGammaJetCorrelationName, TList::Class(),
167  AliAnalysisManager::kOutputContainer,
168  Form("%s",outputfile.Data()));
169 
170  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",kGammaJetCorrelationName.Data()), TList::Class(),
171  AliAnalysisManager::kParamContainer,
172  "AnalysisParameters.root");
173 
174  // Create ONLY the output containers for the data produced by the task.
175  // Get and connect other common input/output containers via the manager as below
176  //==============================================================================
177  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
178  // AOD output slot will be used in a different way in future
179  //if(!kData.Contains("delta") && outputAOD) mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
180  mgr->ConnectOutput (task, 1, cout_pc);
181  mgr->ConnectOutput (task, 2, cout_cuts);
182 
183  if(!mix)
184  {
185  UInt_t mask = SetTriggerMaskFromName(trigger);
186  task->SelectCollisionCandidates(mask);
187  }
188 
189  return task;
190 }
191 
195 AliCaloTrackReader * ConfigureReader(TString inputDataType = "AOD",TString calorimeter = "EMCAL",Bool_t useKinematics = kFALSE,
196  Bool_t simulation = kFALSE,Bool_t eventsel = kFALSE,Bool_t nonlin = kTRUE, Bool_t timecut = kFALSE,
197  TString collision = "pp",TString trigger="MB",TString firedTrigger="EG1",
198  TString clustersArray = "V1", TString jetBranchName = "jets", TString jetBkgBranchName = "jets",
199  Bool_t mix = kFALSE,
200  Float_t minCen = -1, Float_t maxCen = -1,
201  Int_t debug = -1,Bool_t printSettings = kFALSE)
202 {
203  Bool_t useTender=kTRUE;
204 
205  if(simulation)
206  {
207  if (!useKinematics && inputDataType=="AOD") useKinematics = kTRUE; //AOD primary should be available ...
208  }
209 
210  cout<<"********* ACCESS KINE? "<<useKinematics<< endl;
211 
212 
213 
214  AliCaloTrackReader * reader = 0;
215  if (inputDataType == "AOD") reader = new AliCaloTrackAODReader();
216  else if(inputDataType == "ESD") reader = new AliCaloTrackESDReader();
217  else printf("AliCaloTrackReader::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
218 
219  reader->SetDebug(debug);//10 for lots of messages
220 
221  if(useTender){
224  }
225 
226  if(simulation)
227  {
228  // Event rejection cuts for jet-jet simulations, do not use in other
229  reader->SetPtHardAndJetPtComparison(kTRUE);
230  reader->SetPtHardAndJetPtFactor(4);
231 
232  reader->SetPtHardAndClusterPtComparison(kTRUE);
233  reader->SetPtHardAndClusterPtFactor(1.5);
234  }
235 
236  //Delta AOD?
237  //reader->SetDeltaAODFileName("");
238  //if(kOutputAOD) reader->SwitchOnWriteDeltaAOD() ;
239 
240  // MC settings
241  if(useKinematics){
242  if(inputDataType == "ESD"){
243  reader->SwitchOnStack();
244  reader->SwitchOffAODMCParticles();
245  }
246  else if(inputDataType == "AOD"){
247  reader->SwitchOffStack();
248  reader->SwitchOnAODMCParticles();
249  }
250  }
251 
252  //------------------------
253  // Detector input filling
254  //------------------------
255 
256  //Min cluster/track E
257  reader->SetEMCALEMin(0.3);
258  //reader->SetEMCALEMin(0.);// <<<----changed here
259  reader->SetEMCALEMax(1000);
260  reader->SetPHOSEMin(0.3);
261  reader->SetPHOSEMax(1000);
262  // reader->SetCTSPtMin(0.2);
263  reader->SetCTSPtMin(0.15);// <<<----changed here
264  reader->SetCTSPtMax(1000);
265 
266  //-----------------------------------------------------------------
267  // Jet part
268  //-----------------------------------------------------------------
269  reader->SwitchOnNonStandardJets();
270  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00768_Cut00150_Skip00");
271  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B1_Filter00768_Cut00150_Skip00");//in PbPb
272  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00");//in pp 2.76 LHC11a,7 LHC11c
273  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00768_Cut00150_Skip02");//in pp 7 LHC13e4 MC
274  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00");//in pp 7 LHC12a15f MC
275  reader->SetInputNonStandardJetBranchName(jetBranchName.Data());
276  if(jetBkgBranchName.Length()!=0) {
277  reader->SwitchOnBackgroundJets();
278  reader->SetInputBackgroundJetBranchName(jetBkgBranchName.Data());
279  } else {
280  reader->SwitchOffBackgroundJets();
281  }
282  //reader->SetInputBackgroundJetBranchName("jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00");//in pp 7 LHC13e4 MC
283 
284 
285  // Time cuts
286  if(simulation)
287  {
288  reader->SwitchOffUseTrackTimeCut();
289  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
290  reader->SwitchOffUseEMCALTimeCut() ;
292  }
293  else
294  {
296  if(timecut)
297  {
298  printf("Set time cut \n");
299  reader->SwitchOnUseEMCALTimeCut();
300  //Absolute window
301  reader->SetEMCALTimeCut(-30.,30.); // default is -25ns-20ns
302  }
303  else
304  {
305  printf("Off time cuts time cut \n");
306  reader->SwitchOffUseEMCALTimeCut();
307  //Absolute window
308  reader->SetEMCALTimeCut(-1.e6,1.e6);
309  }
310 
311  //if(kCalibT)
312  //{
313  //printf("Set time cut parameters for run %d\n",kRunNumber);
314  //reader->SetEMCALTimeCut(-20,20);
315  //reader->SwitchOnUseParametrizedTimeCut();
316  //if (kRunNumber >= 151636 && kRunNumber <= 155384 )
317  //{
318  // printf("Set time parameters for LHC11c\n");
319  // reader->SetEMCALParametrizedMinTimeCut(0,-5 ); reader->SetEMCALParametrizedMinTimeCut(1,-1 ); reader->SetEMCALParametrizedMinTimeCut(2, 1.87); reader->SetEMCALParametrizedMinTimeCut(3, 0.4);
320  // reader->SetEMCALParametrizedMaxTimeCut(0, 3.5); reader->SetEMCALParametrizedMaxTimeCut(1, 50); reader->SetEMCALParametrizedMaxTimeCut(2, 0.15); reader->SetEMCALParametrizedMaxTimeCut(3, 1.6);
321  //}
322  //else if(kRunNumber >= 156447 && kRunNumber <= 159635 )
323  //{
324  // printf("Set time parameters for LHC11d\n");
325  // reader->SetEMCALParametrizedMinTimeCut(0,-5); reader->SetEMCALParametrizedMinTimeCut(1,-1 ); reader->SetEMCALParametrizedMinTimeCut(2, 3.5 ); reader->SetEMCALParametrizedMinTimeCut(3, 1. );
326  // reader->SetEMCALParametrizedMaxTimeCut(0, 5); reader->SetEMCALParametrizedMaxTimeCut(1, 50); reader->SetEMCALParametrizedMaxTimeCut(2, 0.45); reader->SetEMCALParametrizedMaxTimeCut(3, 1.25);
327  //}
328  //else
329  //{
330  // printf("*** Fixed time cut 20 ns *** \n");
331  // reader->SetEMCALTimeCut(-20,20);
332  //}
333 //
334 // }
335 // else
336 // {
337 // reader->SwitchOffUseEMCALTimeCut();
338 // reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
339 // reader->SwitchOffUseParametrizedTimeCut();
340 // }
341 
342  }
343 
344  reader->SwitchOnFiducialCut();
345  //reader->SwitchOffFiducialCut();// <<<----changed here
346  //reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ;
347  reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.9, 0, 360) ;// <<<--- changed here
348 
349  // Tracks
350 
351  // reader->SwitchOffCTS();//here changed 0n->off
352  reader->SwitchOnCTS();//here changed 0n->off
353 
356 
357  reader->SwitchOffUseTrackTimeCut();
358  reader->SetTrackTimeCut(0,50);
359 
360  if(inputDataType=="ESD")
361  {
362  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
363  //Hybrids 2011
364  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
365  reader->SetTrackCuts(esdTrackCuts);
366  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
367  reader->SetTrackComplementaryCuts(esdTrackCuts2);
368 
369  //Hybrids 2010
370  //AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
371  //reader->SetTrackCuts(esdTrackCuts);
372  //AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
373  //reader->SetTrackComplementaryCuts(esdTrackCuts2);
374  }
375  else if(inputDataType=="AOD")
376  {
377  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
378  reader->SetTrackStatus(AliVTrack::kITSrefit);
379  //reader->SetTrackFilterMask(128); // Filter bit, not mask, use if off hybrid
380  }
381 
382  // Calorimeter
383 
384  reader->SetEMCALClusterListName(clustersArray);
385  if(clustersArray == "" && !useTender)
386  {
387  printf("**************** Standard EMCAL clusters branch analysis **************** \n");
389  // Check in ConfigureCaloUtils that the recalibration and bad map are ON
390  }
391  else
392  {
393  printf("**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
395  }
396 
397  if(!nonlin) reader->SwitchOffClusterELinearityCorrection();
399 
400  if(calorimeter == "EMCAL") {
401  reader->SwitchOnEMCALCells();
402  reader->SwitchOnEMCAL();
403  }
404  if(calorimeter == "PHOS") {
405  reader->SwitchOnPHOSCells();
406  reader->SwitchOnPHOS();
407  }
408 
409  // for case data="deltaAOD", no need to fill the EMCAL/PHOS cluster lists
410  //if(kData.Contains("delta"))
411  //{
412  // reader->SwitchOffEMCAL();
413  // reader->SwitchOffPHOS();
414  // reader->SwitchOffEMCALCells();
415  // reader->SwitchOffPHOSCells();
416  //}
417 
418  //-----------------
419  // Event selection
420  //-----------------
421 
422  //if(!useKinematics) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
423  if(!useKinematics) {
424  if(collision =="pPb" && trigger=="EMCEGA") {
425  reader->SetFiredTriggerClassName(firedTrigger);
426  }
427  }
428 
429  // For mixing with AliAnaParticleHadronCorrelation switch it off
430  if(mix)
431  {
432  reader->SwitchOffEventTriggerAtSE();
433  UInt_t mask = SetTriggerMaskFromName(trigger);
434  reader->SetEventTriggerMaks(mask); // Only for mixing and SwitchOffEventTriggerAtSE();
435  //reader->SetMixEventTriggerMaks(AliVEvent::kMB); // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
436  reader->SetMixEventTriggerMaks(AliVEvent::kAnyINT); // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
437 
438  printf("---Trigger selection done in AliCaloTrackReader!!!\n");
439  }
440  else
441  reader->SwitchOnEventTriggerAtSE();
442 
443  reader->SetZvertexCut(10.); // Open cut
444  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
445  reader->SwitchOnRejectNoTrackEvents();//<<<--- changed here, new added
446 
447  if(eventsel)
448  {
449  reader->SwitchOnPileUpEventRejection(); // remove pileup by default
450  reader->SwitchOnV0ANDSelection() ; // and besides v0 AND
451  }
452  else
453  {
454  reader->SwitchOffPileUpEventRejection(); // remove pileup by default
455  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
456  }
457 
458  if(collision=="PbPb")
459  {
460  // Centrality
461  reader->SetCentralityClass("V0M");
462  reader->SetCentralityOpt(10); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
463  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
464 
465  // Event plane (only used in Maker and mixing for AliAnaPi0/AliAnaHadronCorrelation for the moment)
466  reader->SetEventPlaneMethod("V0");
467  }
468 
469  if(printSettings) reader->Print("");
470 
471  return reader;
472 }
473 
477 AliCalorimeterUtils* ConfigureCaloUtils( TString clustersArray = "V1",TString collision = "pp",Bool_t nonlin = kTRUE,Bool_t exotic = kTRUE ,Bool_t simulation = kFALSE,Bool_t timecut = kFALSE,Int_t debug = -1,Bool_t printSettings = kFALSE)
478 {
479  Bool_t useTender=kTRUE;
480 
482  cu->SetDebug(debug);
483 
484  // Remove clusters close to borders, at least max energy cell is 1 cell away
485  //cu->SetNumberOfCellsFromEMCALBorder(0);// <<<----changed here
488 
489  // Search of local maxima in cluster
490  if(collision=="pp" || collision=="pPb")
491  {
492  cu->SetLocalMaximaCutE(0.1);
493  cu->SetLocalMaximaCutEDiff(0.03);
494  }
495  else
496  {
497  cu->SetLocalMaximaCutE(0.2);
498  cu->SetLocalMaximaCutEDiff(0.03);
499  }
500 
501  cu->SwitchOffClusterPlot();
502 
503  //if(kRecalTM) cu->SwitchOnRecalculateClusterTrackMatching(); // Done in clusterization
504  //else
506 
507  if(useTender)
509  else
511 
512  //EMCAL settings
513  if(!simulation)
515 
516  if(!useTender){
517  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
518 
519  if(!simulation)
520  {
521  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
522  //if(clustersArray == "" && !kTender) cu->SwitchOnRunDepCorrection();
523  if(clustersArray == "") cu->SwitchOnRunDepCorrection();
524  }
525 
526  cu->SwitchOnEMCALOADB();//FIX ME!!!
527 
528  gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
530  simulation,
531  exotic,
532  nonlin,
533  kFALSE, // e calib
534  kFALSE, // bad map
535  kFALSE); // time calib
536  //kCalibE,
537  //kBadMap,
538  //kCalibT);
539  recou->SetExoticCellDiffTimeCut(1e10);
540  if(timecut) recou->SetExoticCellDiffTimeCut(50.);
541  }//end tender
542 
543 
544  if( nonlin )
545  {
546 // printf("ConfigureCaloUtils() - Apply non linearity to EMCAL\n");
547 // //CAREFUL only for the latest simulation
548 // recou->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
549 // recou->SetNonLinearityParam(0,9.81039e-01);
550 // recou->SetNonLinearityParam(1,1.13508e-01);
551 // recou->SetNonLinearityParam(2,1.00173e+00);
552 // recou->SetNonLinearityParam(3,9.67998e-02);
553 // recou->SetNonLinearityParam(4,2.19381e+02);
554 // recou->SetNonLinearityParam(5,6.31604e+01);
555 // recou->SetNonLinearityParam(6,1);
556  printf("*** SET cluster non linearity correction ***\n");
558  }
559 
560  if(!useTender){
561  printf("ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->IsRecalibrationOn());
562  printf("ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->IsBadChannelsRemovalSwitchedOn());
563  }
564 
566  // PHOS
568 
569  if(printSettings) cu->Print("");
570 
571  return cu;
572 }
573 
578 AliAnaPhoton* ConfigurePhotonAnalysis(TString calorimeter = "EMCAL",Bool_t tm = kFALSE,Bool_t simulation = kFALSE,Double_t maxLambda0Cut=0.5,Int_t maxNLMcut=2,Int_t debug = -1,Bool_t printSettings = kFALSE)
579 {
580  AliAnaPhoton *ana = new AliAnaPhoton();
581  ana->SetDebug(debug); //10 for lots of messages
582 
583  // cluster selection cuts
584 
585  ana->SwitchOffFiducialCut();
586 
588 
589  if(calorimeter == "PHOS")
590  {
591  ana->SetNCellCut(2);// At least 3 cells
592  ana->SetMinPt(0.3);
593  ana->SetMinDistanceToBadChannel(2, 4, 5);
594  ana->SetTimeCut(-1e10,1e10); // open cut
595  }
596  else
597  {//EMCAL
598  ana->SetNCellCut(1);// At least 2 cells
599  ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
600  ana->SetMaxEnergy(1000);
601  //ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off //<<<---modified here
602  // restrict to less than 100 ns when time calibration is on
603  ana->SetMinDistanceToBadChannel(2, 4, 6);
604  // Not useful if M02 cut is already strong
605  ana->SetNLMCut(1, maxNLMcut) ;//[1,2]
606  //ana->SetNLMCut(1, 10) ;//<<<----changed here
607  //ana->SetNLMCut(1, 1) ;//<<<----changed here
608  }
609 
610  if(tm)
611  {
613  ana->SwitchOffTMHistoFill() ;
614  }
615  else
616  {
618  ana->SwitchOnTMHistoFill() ;
619  }
620 
621 
622  //PID cuts (shower shape)
623  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
624  AliCaloPID* caloPID = ana->GetCaloPID();
625  //Not used in bayesian
626 
627  //EMCAL
628  caloPID->SetEMCALLambda0CutMax(maxLambda0Cut);//0.27 was before//0.50//<<<----changed here
629  caloPID->SetEMCALLambda0CutMin(0.10);
630 
631  caloPID->SetEMCALDEtaCut(0.025);
632  caloPID->SetEMCALDPhiCut(0.030);
633 
634  //PHOS
635  caloPID->SetPHOSDispersionCut(2.5);
636  caloPID->SetPHOSRCut(2.);
637  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
638 
639  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection <<<--- changed here
640  //ana->SwitchOffFillShowerShapeHistograms(); // Filled before photon shower shape selection
642 
643  // Input / output delta AOD settings
644 
645  //if(!kData.Contains("delta"))
646  //{
647  ana->SetOutputAODName(Form("Photon%s",kGammaJetCorrelationName.Data()));
648  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
649  // //ana->SetOutputAODClassName("AliAODPWG4Particle"); // use if no correlation done
650  //}
651  //else
652  ana->SetInputAODName(Form("Photon%s",kGammaJetCorrelationName.Data()));
653 
654  //Set Histograms name tag, bins and ranges
655 
656  ana->AddToHistogramsName(Form("AnaPhoton_TM%d_",tm));
657  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below
658 
659  // Number of particle type MC histograms
660  ana->FillNOriginHistograms(20);
661  ana->FillNPrimaryHistograms(20);
662 
663  ConfigureMC(ana,simulation);
664 
665  if(printSettings) ana->Print("");
666 
667  return ana;
668 }
669 
674  TString collision = "pp",
675  TString particle="Photon",
676  Int_t partInCone = AliIsolationCut::kOnlyCharged,
677  Int_t thresType = AliIsolationCut::kSumPtFracIC,
678  Float_t cone = 0.3,
679  Float_t pth = 0.3,
680  Bool_t tm = kFALSE,
681  Bool_t multi = kFALSE,Bool_t simulation = kFALSE,
682  Int_t debug = -1,
683  Bool_t printSettings = kFALSE)
684 {
686  ana->SetDebug(debug);
687 
688  ana->SwitchOnFiducialCut();
689  //Avoid borders of EMCal
690  if(calorimeter=="EMCAL")
691  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.6, 86, 174) ;
692 
693  // Same Eta as EMCal, cut in phi if EMCAL was triggering
694  if(particle=="Hadron" || particle.Contains("CTS"))
695  {
696  //if(trigger.Contains("EMC"))
697  // ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 260, 360) ;
698  //else
699  ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 0, 360) ;
700  }
701 
702  ana->SetMinPt(10);//<<---changed here
703 
704  // Input / output delta AOD settings
705 
706  ana->SetInputAODName(Form("%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
707  ana->SetAODObjArrayName(Form("IC%s_%s",particle.Data(),kGammaJetCorrelationName.Data()));
708 
710 
711  if(!tm) ana->SwitchOnTMHistoFill();
712  else ana->SwitchOffTMHistoFill();
713 
714  //if(particle=="Photon")ana->SwitchOnSSHistoFill();
715  //else ana->SwitchOffSSHistoFill();
716 
717  ana->SwitchOffSSHistoFill();
719 
720  //Do settings for main isolation cut class
721  AliIsolationCut * ic = ana->GetIsolationCut();
722  ic->SetDebug(debug);
723 
724  if(cone >0 && pth > 0)
725  {
726  ic->SetPtThreshold(pth);
727  ic->SetConeSize(cone);
728  }
729  else
730  {
731  if(collision=="pp")
732  {
733  ic->SetPtThreshold(1.);//<<---changed here was 0.5,1
734  ic->SetConeSize(0.3);//<<---changed here was 0.4
735  }
736  if(collision=="pPb")
737  {
738  ic->SetPtThreshold(1.0);
739  ic->SetConeSize(0.3);
740  }
741 
742  if(collision=="PbPb")
743  {
744  ic->SetPtThreshold(3.);
745  //ic->SetPtThreshold(1.);
746  ic->SetConeSize(0.3);
747  }
748  }
749 
750  ic->SetPtFraction(0.1);
751  ic->SetSumPtThreshold(1.0) ;
752  ic->SetParticleTypeInCone(partInCone);
753  ic->SetICMethod(thresType);
754 
755  //Do or not do isolation with previously produced AODs.
756  //No effect if use of SwitchOnSeveralIsolation()
757  ana->SwitchOffReIsolation();
758 
759  //Multiple IC
760  if(multi)
761  {
762  ic->SetConeSize(1.); // Take all for first iteration
763  ic->SetPtThreshold(100);// Take all for first iteration
764  ana->SwitchOnSeveralIsolation() ;
765  ana->SetAODObjArrayName(Form("MultiIC%sTM%d",particle.Data(),tm));
766 
767  ana->SetNCones(4);
768  ana->SetNPtThresFrac(4);
769  ana->SetConeSizes(0,0.3); ana->SetConeSizes(1,0.4);
770  ana->SetConeSizes(2,0.5); ana->SetConeSizes(3,0.6);
771  ana->SetPtThresholds(0, 0.5); ana->SetPtThresholds(1, 1); ana->SetPtThresholds(2, 2);
772  ana->SetPtFractions (0, 0.05) ; ana->SetPtFractions (1, 0.1); ana->SetPtFractions (2, 0.2) ; ana->SetPtFractions (3, 0.3) ;
773  ana->SetSumPtThresholds(0, 1) ; ana->SetSumPtThresholds(1, 3) ; ana->SetSumPtThresholds(2, 5); ana->SetSumPtThresholds(3, 7) ;
774 
775  ana->SwitchOffTMHistoFill();
776  ana->SwitchOffSSHistoFill();
777  }
778  else
780 
781  AliCaloPID* caloPID = ana->GetCaloPID();
782  caloPID->SetEMCALDEtaCut(0.025);
783  caloPID->SetEMCALDPhiCut(0.030);
784 
785  //Set Histograms name tag, bins and ranges
786 
787  if(!multi)ana->AddToHistogramsName(Form("AnaIsol%s_TM%d_",particle.Data(),tm));
788  else ana->AddToHistogramsName(Form("AnaMultiIsol%s_TM%d_",particle.Data(),tm));
789 
790  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below
791 
792  if(particle=="Hadron" || particle.Contains("CTS"))
793  {
794  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
795  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
796  }
797 
798  ConfigureMC(ana,simulation);
799 
800  if(printSettings) ic ->Print("");
801  if(printSettings) ana->Print("");
802 
803  return ana;
804 
805 }
806 
810 void ConfigureMC(AliAnaCaloTrackCorrBaseClass* ana,Bool_t simulation = kFALSE)
811 {
812  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
813  else ana->SwitchOffDataMC() ;
814 
815  //Set here generator name, default pythia
816  //ana->GetMCAnalysisUtils()->SetMCGenerator("");
817 }
818 
822 void SetHistoRangeAndNBins (AliHistogramRanges* histoRanges,TString calorimeter = "EMCAL")
823 {
824  histoRanges->SetHistoPtRangeAndNBins(-0.25, 99.75, 200) ; // Energy and pt histograms
825 
826  if(calorimeter=="EMCAL")
827  {
828  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
829  histoRanges->SetHistoXRangeAndNBins(-600,90,200); // QA
830  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
831 
832  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
833  }
834  else
835  {
836  histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 320*TMath::DegToRad(), 60) ;
837  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
838  }
839 
840  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
841 
842  // Invariant mass histoRangeslysis
843  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
844  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
845 
846  // check if time calibration is on
847  //histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
848  histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
849  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
850 
851  // track-cluster residuals
852  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
853  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
854  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA
855 
856  // QA, electron, charged
857  histoRanges->SetHistoPOverERangeAndNBins(0,10.,100);
858  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
859 
860  // QA
861  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
862  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,100);
863  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
864  histoRanges->SetHistoNClusterCellRangeAndNBins(0,500,500);
865  histoRanges->SetHistoZRangeAndNBins(-400,400,200);
866  histoRanges->SetHistoRRangeAndNBins(400,450,25);
867  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
868  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
869  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,5000,500);
870 
871  // Isolation
872  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
873  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
874 }
875 
880 UInt_t SetTriggerMaskFromName(TString trigger)
881 {
882  if(trigger=="EMC7")
883  {
884  printf("CaloTrackCorr trigger EMC7\n");
885  return AliVEvent::kEMC7;
886  }
887  else if (trigger=="INT7")
888  {
889  printf("CaloTrackCorr trigger INT7\n");
890  return AliVEvent::kINT7;
891  }
892  else if(trigger=="EMC1")
893  {
894  printf("CaloTrackCorr trigger EMC1\n");
895  return AliVEvent::kEMC1;
896  }
897  else if(trigger=="MB")
898  {
899  printf("CaloTrackCorr trigger MB\n");
900  return AliVEvent::kMB;
901  }
902  else if(trigger=="PHOS")
903  {
904  printf("CaloTrackCorr trigger PHOS\n");
905  return AliVEvent::kPHI7;
906  }
907  else if(trigger=="PHOSPb")
908  {
909  printf("CaloTrackCorr trigger PHOSPb\n");
910  return AliVEvent::kPHOSPb;
911  }
912  else if(trigger=="AnyINT")
913  {
914  printf("CaloTrackCorr trigger AnyINT\n");
915  return AliVEvent::kAnyINT;
916  }
917  else if(trigger=="INT")
918  {
919  printf("CaloTrackCorr trigger AnyINT\n");
920  return AliVEvent::kAny;
921  }
922  else if(trigger=="EMCEGA")
923  {
924  printf("CaloTrackCorr trigger EMC Gamma\n");
925  return AliVEvent::kEMCEGA;
926  }
927  else if(trigger=="EMCEJE")
928  {
929  printf("CaloTrackCorr trigger EMC Jet\n");
930  return AliVEvent::kEMCEJE;
931  }
932  else if(trigger=="Central")
933  {
934  printf("CaloTrackCorr trigger Central\n");
935  return AliVEvent::kCentral;
936  }
937  else if(trigger=="CentralEGA")
938  {
939  printf("CaloTrackCorr trigger Central+EMCEGA\n");
940  return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
941  }
942  else if(trigger=="SemiCentral")
943  {
944  printf("CaloTrackCorr trigger SemiCentral\n");
945  return AliVEvent::kSemiCentral;
946  }
947  else if(trigger=="SemiOrCentral")
948  {
949  printf("CaloTrackCorr trigger SemiCentral Or Central\n");
950  return (AliVEvent::kSemiCentral | AliVEvent::kCentral);
951  }
952  else if(trigger=="SemiOrCentralOrAnyINT")
953  {
954  printf("CaloTrackCorr trigger SemiCentral Or Central Or AnyINT\n");
955  return (AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kAnyINT);
956  }
957 
958 }
959 
963 AliAnaParticleJetFinderCorrelation* ConfigurePhotonJetAnalysis(TString calorimeter = "EMCAL",Float_t gammaConeSize = 0.3, Float_t jetMinPt = 0,
964  Float_t minDeltaPhi = 1.5,Float_t maxDeltaPhi = 4.5,
965  Float_t minPtRatio = 0,Float_t maxPtRatio = 5,
966  Bool_t simulation = kFALSE,Int_t debug = -1,Bool_t printSettings = kFALSE)
967 {
969  ana->SetDebug(debug);
970  TString particle="Photon";
971  ana->SetInputAODName(Form("%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
972 
973  ana->SwitchOffFiducialCut();
974 
975  ana->SetConeSize(0.4); //was 1 - cone to calculate FF
976  ana->SelectIsolated(kTRUE); // do correlation with isolated photons <<---changed here
977  ana->SetMakeCorrelationInHistoMaker(kFALSE);
978  ana->SetPtThresholdInCone(0.150);//<<---- change here
979  //ana->SetDeltaPhiCutRange(TMath::Pi()/2.,TMath::Pi()*3./2.);//Mostly Open Cuts
980  ana->SetDeltaPhiCutRange(minDeltaPhi,maxDeltaPhi); // Delta phi cut for correlation
981  ana->SetJetConeSize(0.4);//jet cone size / check the reco jet name
982  ana->SetJetMinPt(jetMinPt);//min jet pt
983  ana->SetJetAreaFraction(0.8);//min area fraction was 0.6
984  ana->SetMinPt(0.3);//min cluster pt repeated from reader
985  ana->SetGammaConeSize(gammaConeSize);//isolation cone repeated from isolation ana
986  //ana->SetRatioCutRange(0.01,5.); //Mostly Open Cuts //0.01-5//<<---- change here
987  ana->SetRatioCutRange(minPtRatio,maxPtRatio); // Delta pt cut for correlation
988 
989  ana->UseJetRefTracks(kTRUE); //Working now
990  //Set Histograms bins and ranges
991  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below 0,100,200
992  //ana->SetHistoPtRangeAndNBins(0, 50, 200) ;
993  // ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
994  // ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
995 
996  // ana->SwitchOnNonStandardJetFromReader();
998  //background subtraction for photons
999  //ana->SwitchOnBackgroundSubtractionGamma();
1001 
1002  ana->SwitchOnSaveGJTree();
1003  ana->SwitchOnMostOpposite();
1004  //ana->SwitchOnMostEnergetic();
1005 
1006 
1007  //if(useKinematics) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms
1008  if(printSettings)
1009  ana->Print("");
1010 
1011  return ana;
1012 
1013 }
void SetSumPtThresholds(Int_t i, Float_t pt)
void SetPtThreshold(Float_t pt)
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void ana(Int_t mode=mGRID)
Definition: ana.C:86
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
virtual void SetInputBackgroundJetBranchName(TString name)
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
virtual void SwitchOnFiducialCut()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:111
AliCaloTrackReader * ConfigureReader(TString inputDataType="AOD", TString calorimeter="EMCAL", Bool_t useKinematics=kFALSE, Bool_t simulation=kFALSE, Bool_t eventsel=kFALSE, Bool_t nonlin=kTRUE, Bool_t timecut=kFALSE, TString collision="pp", TString trigger="MB", TString firedTrigger="EG1", TString clustersArray="V1", TString jetBranchName="jets", TString jetBkgBranchName="jets", Bool_t mix=kFALSE, Float_t minCen=-1, Float_t maxCen=-1, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Definition: AliAnaPhoton.h:83
Class with utils to perform Isolation Cuts.
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SetConeSize(Float_t r)
void SetPtFraction(Float_t pt)
void FillNPrimaryHistograms(Int_t n)
Definition: AliAnaPhoton.h:116
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter="EMCAL")
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetDebug(Int_t d)
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual void SetInputAODName(TString name)
AliAnalysisTaskCaloTrackCorrelation * AddTaskGammaJetCorrelation(const Float_t isoCone=0.4, const Float_t isoPth=0.5, const Double_t maxLambda0Cut=0.5, const Int_t maxNLMcut=2, const Bool_t timecut=kFALSE, const TString calorimeter="EMCAL", const Bool_t simulation=kFALSE, const Bool_t eventsel=kFALSE, const Bool_t exotic=kTRUE, const Bool_t nonlin=kFALSE, const TString collision="pp", const TString trigger="MB", const TString firedTrigger="EG1", const TString clustersArray="V1", const Bool_t mix=kTRUE, const Bool_t tm=kTRUE, const Int_t minCen=-1, const Int_t maxCen=-1, const TString jetBranchName="clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00", const TString jetBkgBranchName="jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00", const Float_t jetMinPt=0, const Float_t minDeltaPhi=1.5, const Float_t maxDeltaPhi=4.5, const Float_t minPtRatio=0, const Float_t maxPtRatio=5, const Int_t debug=-1, const Bool_t printSettings=kFALSE, const Double_t scaleFactor=-1)
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:94
void SwitchOffTMHistoFill()
Definition: AliAnaPhoton.h:84
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
virtual void SetOutputAODClassName(TString name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetSumPtThreshold(Float_t s)
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetLocalMaximaCutEDiff(Float_t c)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SetNCellCut(Int_t n)
Definition: AliAnaPhoton.h:102
void SetPtFractions(Int_t i, Float_t pt)
const TString calorimeter
Definition: anaM.C:35
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString calorimeter="EMCAL", TString collision="pp", TString particle="Photon", Int_t partInCone=AliIsolationCut::kOnlyCharged, Int_t thresType=AliIsolationCut::kSumPtFracIC, Float_t cone=0.3, Float_t pth=0.3, Bool_t tm=kFALSE, Bool_t multi=kFALSE, Bool_t simulation=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SetHistoTrackResidualEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Class for event, clusters and tracks filtering and preparation for the AOD analysis.
void SetCTSPtMin(Float_t pt)
void SetPHOSRCut(Float_t rcut)
Definition: AliCaloPID.h:207
void SetEMCALDPhiCut(Float_t dcut)
Definition: AliCaloPID.h:201
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SetICMethod(Int_t i)
void SwitchOffVertexBCEventSelection()
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
Definition: AliAnaPhoton.h:112
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 Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual AliHistogramRanges * GetHistogramRanges()
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTrackStatus(ULong_t bit)
AliCalorimeterUtils * ConfigureCaloUtils(TString clustersArray="V1", TString collision="pp", Bool_t nonlin=kTRUE, Bool_t exotic=kTRUE, Bool_t simulation=kFALSE, Bool_t timecut=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
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)
AliAnaParticleJetFinderCorrelation * ConfigurePhotonJetAnalysis(TString calorimeter="EMCAL", Float_t gammaConeSize=0.3, Float_t jetMinPt=0, Float_t minDeltaPhi=1.5, Float_t maxDeltaPhi=4.5, Float_t minPtRatio=0, Float_t maxPtRatio=5, Bool_t simulation=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
TString kGammaJetCorrelationName
Global name to be composed of the settings, used to set the AOD branch name.
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SwitchOffBadTriggerEventsRemoval()
void SetEMCALClusterListName(TString &name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
Definition: AliAnaPhoton.h:97
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SetZvertexCut(Float_t zcut=10.)
void SetNumberOfSuperModulesUsed(Int_t nSM)
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
Definition: AliCaloPID.h:192
virtual void 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)
void SetPHOSDispersionCut(Float_t dcut)
Definition: AliCaloPID.h:210
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SetTrackCuts(AliESDtrackCuts *)
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
Definition: AliAnaPhoton.h:69
Select clusters/tracks with low particle environment in their vecinity, isolated within a cone...
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter="EMCAL", Bool_t tm=kFALSE, Bool_t simulation=kFALSE, Double_t maxLambda0Cut=0.5, Int_t maxNLMcut=2, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnClusterELinearityCorrection()
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetAODObjArrayName(TString name)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALEMax(Float_t en)
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:51
void FillNOriginHistograms(Int_t n)
Definition: AliAnaPhoton.h:114
void SetFiredTriggerClassName(TString name)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
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 SetInputNonStandardJetBranchName(TString name)
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 SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
Definition: AliCaloPID.h:198
void SwitchOffUseParametrizedTimeCut()
void SetLocalMaximaCutE(Float_t cut)
void SetPtThresholds(Int_t i, Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
UInt_t SetTriggerMaskFromName(TString trigger)
void ConfigureMC(AliAnaCaloTrackCorrBaseClass *ana, Bool_t simulation=kFALSE)
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetNLMCut(Int_t min, Int_t max)
Definition: AliAnaPhoton.h:105
void ConfigureEMCALRecoUtils(AliEMCALRecoUtils *reco, Bool_t bMC=kFALSE, Bool_t bExotic=kTRUE, Bool_t bNonLin=kFALSE, Bool_t bRecalE=kTRUE, Bool_t bBad=kTRUE, Bool_t bRecalT=kTRUE)
Steering class of package CaloTrackCorrelartions.