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