AliPhysics  ec7afe5 (ec7afe5)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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  // MC settings
242  if(useKinematics){
243  if(inputDataType == "ESD"){
244  reader->SwitchOnStack();
245  reader->SwitchOffAODMCParticles();
246  }
247  else if(inputDataType == "AOD"){
248  reader->SwitchOffStack();
249  reader->SwitchOnAODMCParticles();
250  }
251  }
252 
253  //------------------------
254  // Detector input filling
255  //------------------------
256 
257  //Min cluster/track E
258  reader->SetEMCALEMin(0.3);
259  //reader->SetEMCALEMin(0.);// <<<----changed here
260  reader->SetEMCALEMax(1000);
261  reader->SetPHOSEMin(0.3);
262  reader->SetPHOSEMax(1000);
263  // reader->SetCTSPtMin(0.2);
264  reader->SetCTSPtMin(0.15);// <<<----changed here
265  reader->SetCTSPtMax(1000);
266 
267  //-----------------------------------------------------------------
268  // Jet part
269  //-----------------------------------------------------------------
270  reader->SwitchOnNonStandardJets();
271  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00768_Cut00150_Skip00");
272  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B1_Filter00768_Cut00150_Skip00");//in PbPb
273  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00");//in pp 2.76 LHC11a,7 LHC11c
274  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00768_Cut00150_Skip02");//in pp 7 LHC13e4 MC
275  //reader->SetInputNonStandardJetBranchName("clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00");//in pp 7 LHC12a15f MC
276  reader->SetInputNonStandardJetBranchName(jetBranchName.Data());
277  if(jetBkgBranchName.Length()!=0) {
278  reader->SwitchOnBackgroundJets();
279  reader->SetInputBackgroundJetBranchName(jetBkgBranchName.Data());
280  } else {
281  reader->SwitchOffBackgroundJets();
282  }
283  //reader->SetInputBackgroundJetBranchName("jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00");//in pp 7 LHC13e4 MC
284 
285 
286  // Time cuts
287  if(simulation)
288  {
289  reader->SwitchOffUseTrackTimeCut();
290  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
291  reader->SwitchOffUseEMCALTimeCut() ;
293  }
294  else
295  {
297  if(timecut)
298  {
299  printf("Set time cut \n");
300  reader->SwitchOnUseEMCALTimeCut();
301  //Absolute window
302  reader->SetEMCALTimeCut(-30.,30.); // default is -25ns-20ns
303  }
304  else
305  {
306  printf("Off time cuts time cut \n");
307  reader->SwitchOffUseEMCALTimeCut();
308  //Absolute window
309  reader->SetEMCALTimeCut(-1.e6,1.e6);
310  }
311 
312  //if(kCalibT)
313  //{
314  //printf("Set time cut parameters for run %d\n",kRunNumber);
315  //reader->SetEMCALTimeCut(-20,20);
316  //reader->SwitchOnUseParametrizedTimeCut();
317  //if (kRunNumber >= 151636 && kRunNumber <= 155384 )
318  //{
319  // printf("Set time parameters for LHC11c\n");
320  // reader->SetEMCALParametrizedMinTimeCut(0,-5 ); reader->SetEMCALParametrizedMinTimeCut(1,-1 ); reader->SetEMCALParametrizedMinTimeCut(2, 1.87); reader->SetEMCALParametrizedMinTimeCut(3, 0.4);
321  // reader->SetEMCALParametrizedMaxTimeCut(0, 3.5); reader->SetEMCALParametrizedMaxTimeCut(1, 50); reader->SetEMCALParametrizedMaxTimeCut(2, 0.15); reader->SetEMCALParametrizedMaxTimeCut(3, 1.6);
322  //}
323  //else if(kRunNumber >= 156447 && kRunNumber <= 159635 )
324  //{
325  // printf("Set time parameters for LHC11d\n");
326  // reader->SetEMCALParametrizedMinTimeCut(0,-5); reader->SetEMCALParametrizedMinTimeCut(1,-1 ); reader->SetEMCALParametrizedMinTimeCut(2, 3.5 ); reader->SetEMCALParametrizedMinTimeCut(3, 1. );
327  // reader->SetEMCALParametrizedMaxTimeCut(0, 5); reader->SetEMCALParametrizedMaxTimeCut(1, 50); reader->SetEMCALParametrizedMaxTimeCut(2, 0.45); reader->SetEMCALParametrizedMaxTimeCut(3, 1.25);
328  //}
329  //else
330  //{
331  // printf("*** Fixed time cut 20 ns *** \n");
332  // reader->SetEMCALTimeCut(-20,20);
333  //}
334 //
335 // }
336 // else
337 // {
338 // reader->SwitchOffUseEMCALTimeCut();
339 // reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
340 // reader->SwitchOffUseParametrizedTimeCut();
341 // }
342 
343  }
344 
345  reader->SwitchOnFiducialCut();
346  //reader->SwitchOffFiducialCut();// <<<----changed here
347  //reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ;
348  reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.9, 0, 360) ;// <<<--- changed here
349 
350  // Tracks
351 
352  // reader->SwitchOffCTS();//here changed 0n->off
353  reader->SwitchOnCTS();//here changed 0n->off
354 
357 
358  reader->SwitchOffUseTrackTimeCut();
359  reader->SetTrackTimeCut(0,50);
360 
361  if(inputDataType=="ESD")
362  {
363  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
364  //Hybrids 2011
365  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
366  reader->SetTrackCuts(esdTrackCuts);
367  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
368  reader->SetTrackComplementaryCuts(esdTrackCuts2);
369 
370  //Hybrids 2010
371  //AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
372  //reader->SetTrackCuts(esdTrackCuts);
373  //AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
374  //reader->SetTrackComplementaryCuts(esdTrackCuts2);
375  }
376  else if(inputDataType=="AOD")
377  {
378  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
379  reader->SetTrackStatus(AliVTrack::kITSrefit);
380  //reader->SetTrackFilterMask(128); // Filter bit, not mask, use if off hybrid
381  }
382 
383  // Calorimeter
384 
385  reader->SetEMCALClusterListName(clustersArray);
386  if(clustersArray == "" && !useTender)
387  {
388  printf("**************** Standard EMCAL clusters branch analysis **************** \n");
390  // Check in ConfigureCaloUtils that the recalibration and bad map are ON
391  }
392  else
393  {
394  printf("**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
396  }
397 
398  if(!nonlin) reader->SwitchOffClusterELinearityCorrection();
400 
401  if(calorimeter == "EMCAL") {
402  reader->SwitchOnEMCALCells();
403  reader->SwitchOnEMCAL();
404  }
405  if(calorimeter == "PHOS") {
406  reader->SwitchOnPHOSCells();
407  reader->SwitchOnPHOS();
408  }
409 
410  // for case data="deltaAOD", no need to fill the EMCAL/PHOS cluster lists
411  //if(kData.Contains("delta"))
412  //{
413  // reader->SwitchOffEMCAL();
414  // reader->SwitchOffPHOS();
415  // reader->SwitchOffEMCALCells();
416  // reader->SwitchOffPHOSCells();
417  //}
418 
419  //-----------------
420  // Event selection
421  //-----------------
422 
423  //if(!useKinematics) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
424  if(!useKinematics) {
425  if(collision =="pPb" && trigger=="EMCEGA") {
426  reader->SetFiredTriggerClassName(firedTrigger);
427  }
428  }
429 
430  // For mixing with AliAnaParticleHadronCorrelation switch it off
431  if(mix)
432  {
433  reader->SwitchOffEventTriggerAtSE();
434  UInt_t mask = SetTriggerMaskFromName(trigger);
435  reader->SetEventTriggerMaks(mask); // Only for mixing and SwitchOffEventTriggerAtSE();
436  //reader->SetMixEventTriggerMaks(AliVEvent::kMB); // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
437  reader->SetMixEventTriggerMaks(AliVEvent::kAnyINT); // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
438 
439  printf("---Trigger selection done in AliCaloTrackReader!!!\n");
440  }
441  else
442  reader->SwitchOnEventTriggerAtSE();
443 
444  reader->SetZvertexCut(10.); // Open cut
445  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
446  reader->SwitchOnRejectNoTrackEvents();//<<<--- changed here, new added
447 
448  if(eventsel)
449  {
450  reader->SwitchOnPileUpEventRejection(); // remove pileup by default
451  reader->SwitchOnV0ANDSelection() ; // and besides v0 AND
452  }
453  else
454  {
455  reader->SwitchOffPileUpEventRejection(); // remove pileup by default
456  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
457  }
458 
459  if(collision=="PbPb")
460  {
461  // Centrality
462  reader->SetCentralityClass("V0M");
463  reader->SetCentralityOpt(10); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
464  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
465 
466  // Event plane (only used in Maker and mixing for AliAnaPi0/AliAnaHadronCorrelation for the moment)
467  reader->SetEventPlaneMethod("V0");
468  }
469 
470  if(printSettings) reader->Print("");
471 
472  return reader;
473 }
474 
478 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)
479 {
480  Bool_t useTender=kTRUE;
481 
483  cu->SetDebug(debug);
484 
485  // Remove clusters close to borders, at least max energy cell is 1 cell away
486  //cu->SetNumberOfCellsFromEMCALBorder(0);// <<<----changed here
489 
490  // Search of local maxima in cluster
491  if(collision=="pp" || collision=="pPb")
492  {
493  cu->SetLocalMaximaCutE(0.1);
494  cu->SetLocalMaximaCutEDiff(0.03);
495  }
496  else
497  {
498  cu->SetLocalMaximaCutE(0.2);
499  cu->SetLocalMaximaCutEDiff(0.03);
500  }
501 
502  cu->SwitchOffClusterPlot();
503 
504  //if(kRecalTM) cu->SwitchOnRecalculateClusterTrackMatching(); // Done in clusterization
505  //else
507 
508  if(useTender)
510  else
512 
513  //EMCAL settings
514  if(!simulation)
516 
517  if(!useTender){
518  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
519 
520  if(!simulation)
521  {
522  cu->SwitchOnRecalibration(); // Check the reader if it is taken into account during filtering
523  //if(clustersArray == "" && !kTender) cu->SwitchOnRunDepCorrection();
524  if(clustersArray == "") cu->SwitchOnRunDepCorrection();
525  }
526 
527  cu->SwitchOnEMCALOADB();//FIX ME!!!
528 
529  gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
531  simulation,
532  exotic,
533  nonlin,
534  kFALSE, // e calib
535  kFALSE, // bad map
536  kFALSE); // time calib
537  //kCalibE,
538  //kBadMap,
539  //kCalibT);
540  recou->SetExoticCellDiffTimeCut(1e10);
541  if(timecut) recou->SetExoticCellDiffTimeCut(50.);
542  }//end tender
543 
544 
545  if( nonlin )
546  {
547 // printf("ConfigureCaloUtils() - Apply non linearity to EMCAL\n");
548 // //CAREFUL only for the latest simulation
549 // recou->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
550 // recou->SetNonLinearityParam(0,9.81039e-01);
551 // recou->SetNonLinearityParam(1,1.13508e-01);
552 // recou->SetNonLinearityParam(2,1.00173e+00);
553 // recou->SetNonLinearityParam(3,9.67998e-02);
554 // recou->SetNonLinearityParam(4,2.19381e+02);
555 // recou->SetNonLinearityParam(5,6.31604e+01);
556 // recou->SetNonLinearityParam(6,1);
557  printf("*** SET cluster non linearity correction ***\n");
559  }
560 
561  if(!useTender){
562  printf("ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->IsRecalibrationOn());
563  printf("ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->IsBadChannelsRemovalSwitchedOn());
564  }
565 
567  // PHOS
569 
570  if(printSettings) cu->Print("");
571 
572  return cu;
573 }
574 
579 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)
580 {
581  AliAnaPhoton *ana = new AliAnaPhoton();
582  ana->SetDebug(debug); //10 for lots of messages
583 
584  // cluster selection cuts
585 
586  ana->SwitchOffFiducialCut();
587 
589 
590  if(calorimeter == "PHOS")
591  {
592  ana->SetNCellCut(2);// At least 3 cells
593  ana->SetMinPt(0.3);
594  ana->SetMinDistanceToBadChannel(2, 4, 5);
595  ana->SetTimeCut(-1e10,1e10); // open cut
596  }
597  else
598  {//EMCAL
599  ana->SetNCellCut(1);// At least 2 cells
600  ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
601  ana->SetMaxEnergy(1000);
602  //ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off //<<<---modified here
603  // restrict to less than 100 ns when time calibration is on
604  ana->SetMinDistanceToBadChannel(2, 4, 6);
605  // Not useful if M02 cut is already strong
606  ana->SetNLMCut(1, maxNLMcut) ;//[1,2]
607  //ana->SetNLMCut(1, 10) ;//<<<----changed here
608  //ana->SetNLMCut(1, 1) ;//<<<----changed here
609  }
610 
611  if(tm)
612  {
614  ana->SwitchOffTMHistoFill() ;
615  }
616  else
617  {
619  ana->SwitchOnTMHistoFill() ;
620  }
621 
622 
623  //PID cuts (shower shape)
624  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
625  AliCaloPID* caloPID = ana->GetCaloPID();
626  //Not used in bayesian
627 
628  //EMCAL
629  caloPID->SetEMCALLambda0CutMax(maxLambda0Cut);//0.27 was before//0.50//<<<----changed here
630  caloPID->SetEMCALLambda0CutMin(0.10);
631 
632  caloPID->SetEMCALDEtaCut(0.025);
633  caloPID->SetEMCALDPhiCut(0.030);
634 
635  //PHOS
636  caloPID->SetPHOSDispersionCut(2.5);
637  caloPID->SetPHOSRCut(2.);
638  //if(kInputData=="AOD") caloPID->SetPHOSRCut(2000.); // Open cut since dX, dZ not stored
639 
640  ana->SwitchOnFillShowerShapeHistograms(); // Filled before photon shower shape selection <<<--- changed here
641  //ana->SwitchOffFillShowerShapeHistograms(); // Filled before photon shower shape selection
643 
644  // Input / output delta AOD settings
645 
646  //if(!kData.Contains("delta"))
647  //{
648  ana->SetOutputAODName(Form("Photon%s",kGammaJetCorrelationName.Data()));
649  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
650  // //ana->SetOutputAODClassName("AliAODPWG4Particle"); // use if no correlation done
651  //}
652  //else
653  ana->SetInputAODName(Form("Photon%s",kGammaJetCorrelationName.Data()));
654 
655  //Set Histograms name tag, bins and ranges
656 
657  ana->AddToHistogramsName(Form("AnaPhoton_TM%d_",tm));
658  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below
659 
660  // Number of particle type MC histograms
661  ana->FillNOriginHistograms(20);
662  ana->FillNPrimaryHistograms(20);
663 
664  ConfigureMC(ana,simulation);
665 
666  if(printSettings) ana->Print("");
667 
668  return ana;
669 }
670 
675  TString collision = "pp",
676  TString particle="Photon",
679  Float_t cone = 0.3,
680  Float_t pth = 0.3,
681  Bool_t tm = kFALSE,
682  Bool_t multi = kFALSE,Bool_t simulation = kFALSE,
683  Int_t debug = -1,
684  Bool_t printSettings = kFALSE)
685 {
687  ana->SetDebug(debug);
688 
689  ana->SwitchOnFiducialCut();
690  //Avoid borders of EMCal
691  if(calorimeter=="EMCAL")
692  ana->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.6, 86, 174) ;
693 
694  // Same Eta as EMCal, cut in phi if EMCAL was triggering
695  if(particle=="Hadron" || particle.Contains("CTS"))
696  {
697  //if(trigger.Contains("EMC"))
698  // ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 260, 360) ;
699  //else
700  ana->GetFiducialCut()->SetSimpleCTSFiducialCut (0.6, 0, 360) ;
701  }
702 
703  ana->SetMinPt(10);//<<---changed here
704 
705  // Input / output delta AOD settings
706 
707  ana->SetInputAODName(Form("%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
708  ana->SetAODObjArrayName(Form("IC%s_%s",particle.Data(),kGammaJetCorrelationName.Data()));
709 
711 
712  if(!tm) ana->SwitchOnTMHistoFill();
713  else ana->SwitchOffTMHistoFill();
714 
715  //if(particle=="Photon")ana->SwitchOnSSHistoFill();
716  //else ana->SwitchOffSSHistoFill();
717 
718  ana->SwitchOffSSHistoFill();
720 
721  //Do settings for main isolation cut class
722  AliIsolationCut * ic = ana->GetIsolationCut();
723  ic->SetDebug(debug);
724 
725  if(cone >0 && pth > 0)
726  {
727  ic->SetPtThreshold(pth);
728  ic->SetConeSize(cone);
729  }
730  else
731  {
732  if(collision=="pp")
733  {
734  ic->SetPtThreshold(1.);//<<---changed here was 0.5,1
735  ic->SetConeSize(0.3);//<<---changed here was 0.4
736  }
737  if(collision=="pPb")
738  {
739  ic->SetPtThreshold(1.0);
740  ic->SetConeSize(0.3);
741  }
742 
743  if(collision=="PbPb")
744  {
745  ic->SetPtThreshold(3.);
746  //ic->SetPtThreshold(1.);
747  ic->SetConeSize(0.3);
748  }
749  }
750 
751  ic->SetPtFraction(0.1);
752  ic->SetSumPtThreshold(1.0) ;
753  ic->SetParticleTypeInCone(partInCone);
754  ic->SetICMethod(thresType);
755 
756  //Do or not do isolation with previously produced AODs.
757  //No effect if use of SwitchOnSeveralIsolation()
758  ana->SwitchOffReIsolation();
759 
760  //Multiple IC
761  if(multi)
762  {
763  ic->SetConeSize(1.); // Take all for first iteration
764  ic->SetPtThreshold(100);// Take all for first iteration
765  ana->SwitchOnSeveralIsolation() ;
766  ana->SetAODObjArrayName(Form("MultiIC%sTM%d",particle.Data(),tm));
767 
768  ana->SetNCones(4);
769  ana->SetNPtThresFrac(4);
770  ana->SetConeSizes(0,0.3); ana->SetConeSizes(1,0.4);
771  ana->SetConeSizes(2,0.5); ana->SetConeSizes(3,0.6);
772  ana->SetPtThresholds(0, 0.5); ana->SetPtThresholds(1, 1); ana->SetPtThresholds(2, 2);
773  ana->SetPtFractions (0, 0.05) ; ana->SetPtFractions (1, 0.1); ana->SetPtFractions (2, 0.2) ; ana->SetPtFractions (3, 0.3) ;
774  ana->SetSumPtThresholds(0, 1) ; ana->SetSumPtThresholds(1, 3) ; ana->SetSumPtThresholds(2, 5); ana->SetSumPtThresholds(3, 7) ;
775 
776  ana->SwitchOffTMHistoFill();
777  ana->SwitchOffSSHistoFill();
778  }
779  else
781 
782  AliCaloPID* caloPID = ana->GetCaloPID();
783  caloPID->SetEMCALDEtaCut(0.025);
784  caloPID->SetEMCALDPhiCut(0.030);
785 
786  //Set Histograms name tag, bins and ranges
787 
788  if(!multi)ana->AddToHistogramsName(Form("AnaIsol%s_TM%d_",particle.Data(),tm));
789  else ana->AddToHistogramsName(Form("AnaMultiIsol%s_TM%d_",particle.Data(),tm));
790 
791  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below
792 
793  if(particle=="Hadron" || particle.Contains("CTS"))
794  {
795  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
796  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
797  }
798 
799  ConfigureMC(ana,simulation);
800 
801  if(printSettings) ic ->Print("");
802  if(printSettings) ana->Print("");
803 
804  return ana;
805 
806 }
807 
812 {
813  if(simulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
814  else ana->SwitchOffDataMC() ;
815 
816  //Set here generator name, default pythia
817  //ana->GetMCAnalysisUtils()->SetMCGenerator("");
818 }
819 
824 {
825  histoRanges->SetHistoPtRangeAndNBins(-0.25, 99.75, 200) ; // Energy and pt histograms
826 
827  if(calorimeter=="EMCAL")
828  {
829  histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
830  histoRanges->SetHistoXRangeAndNBins(-600,90,200); // QA
831  histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
832 
833  histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
834  }
835  else
836  {
837  histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 320*TMath::DegToRad(), 60) ;
838  histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
839  }
840 
841  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
842 
843  // Invariant mass histoRangeslysis
844  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
845  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
846 
847  // check if time calibration is on
848  //histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
849  histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
850  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
851 
852  // track-cluster residuals
853  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
854  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
855  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA
856 
857  // QA, electron, charged
858  histoRanges->SetHistoPOverERangeAndNBins(0,10.,100);
859  histoRanges->SetHistodEdxRangeAndNBins(0.,200.,200);
860 
861  // QA
862  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
863  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,100);
864  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
865  histoRanges->SetHistoNClusterCellRangeAndNBins(0,500,500);
866  histoRanges->SetHistoZRangeAndNBins(-400,400,200);
867  histoRanges->SetHistoRRangeAndNBins(400,450,25);
868  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
869  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
870  histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,5000,500);
871 
872  // Isolation
873  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
874  histoRanges->SetHistoPtSumRangeAndNBins (0, 100, 250);
875 }
876 
882 {
883  if(trigger=="EMC7")
884  {
885  printf("CaloTrackCorr trigger EMC7\n");
886  return AliVEvent::kEMC7;
887  }
888  else if (trigger=="INT7")
889  {
890  printf("CaloTrackCorr trigger INT7\n");
891  return AliVEvent::kINT7;
892  }
893  else if(trigger=="EMC1")
894  {
895  printf("CaloTrackCorr trigger EMC1\n");
896  return AliVEvent::kEMC1;
897  }
898  else if(trigger=="MB")
899  {
900  printf("CaloTrackCorr trigger MB\n");
901  return AliVEvent::kMB;
902  }
903  else if(trigger=="PHOS")
904  {
905  printf("CaloTrackCorr trigger PHOS\n");
906  return AliVEvent::kPHI7;
907  }
908  else if(trigger=="PHOSPb")
909  {
910  printf("CaloTrackCorr trigger PHOSPb\n");
911  return AliVEvent::kPHOSPb;
912  }
913  else if(trigger=="AnyINT")
914  {
915  printf("CaloTrackCorr trigger AnyINT\n");
916  return AliVEvent::kAnyINT;
917  }
918  else if(trigger=="INT")
919  {
920  printf("CaloTrackCorr trigger AnyINT\n");
921  return AliVEvent::kAny;
922  }
923  else if(trigger=="EMCEGA")
924  {
925  printf("CaloTrackCorr trigger EMC Gamma\n");
926  return AliVEvent::kEMCEGA;
927  }
928  else if(trigger=="EMCEJE")
929  {
930  printf("CaloTrackCorr trigger EMC Jet\n");
931  return AliVEvent::kEMCEJE;
932  }
933  else if(trigger=="Central")
934  {
935  printf("CaloTrackCorr trigger Central\n");
936  return AliVEvent::kCentral;
937  }
938  else if(trigger=="CentralEGA")
939  {
940  printf("CaloTrackCorr trigger Central+EMCEGA\n");
941  return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
942  }
943  else if(trigger=="SemiCentral")
944  {
945  printf("CaloTrackCorr trigger SemiCentral\n");
946  return AliVEvent::kSemiCentral;
947  }
948  else if(trigger=="SemiOrCentral")
949  {
950  printf("CaloTrackCorr trigger SemiCentral Or Central\n");
951  return (AliVEvent::kSemiCentral | AliVEvent::kCentral);
952  }
953  else if(trigger=="SemiOrCentralOrAnyINT")
954  {
955  printf("CaloTrackCorr trigger SemiCentral Or Central Or AnyINT\n");
956  return (AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kAnyINT);
957  }
958 
959 }
960 
965  Float_t minDeltaPhi = 1.5,Float_t maxDeltaPhi = 4.5,
966  Float_t minPtRatio = 0,Float_t maxPtRatio = 5,
967  Bool_t simulation = kFALSE,Int_t debug = -1,Bool_t printSettings = kFALSE)
968 {
970  ana->SetDebug(debug);
971  TString particle="Photon";
972  ana->SetInputAODName(Form("%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
973 
974  ana->SwitchOffFiducialCut();
975 
976  ana->SetConeSize(0.4); //was 1 - cone to calculate FF
977  ana->SelectIsolated(kTRUE); // do correlation with isolated photons <<---changed here
978  ana->SetMakeCorrelationInHistoMaker(kFALSE);
979  ana->SetPtThresholdInCone(0.150);//<<---- change here
980  //ana->SetDeltaPhiCutRange(TMath::Pi()/2.,TMath::Pi()*3./2.);//Mostly Open Cuts
981  ana->SetDeltaPhiCutRange(minDeltaPhi,maxDeltaPhi); // Delta phi cut for correlation
982  ana->SetJetConeSize(0.4);//jet cone size / check the reco jet name
983  ana->SetJetMinPt(jetMinPt);//min jet pt
984  ana->SetJetAreaFraction(0.8);//min area fraction was 0.6
985  ana->SetMinPt(0.3);//min cluster pt repeated from reader
986  ana->SetGammaConeSize(gammaConeSize);//isolation cone repeated from isolation ana
987  //ana->SetRatioCutRange(0.01,5.); //Mostly Open Cuts //0.01-5//<<---- change here
988  ana->SetRatioCutRange(minPtRatio,maxPtRatio); // Delta pt cut for correlation
989 
990  ana->UseJetRefTracks(kTRUE); //Working now
991  //Set Histograms bins and ranges
992  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter); // see method below 0,100,200
993  //ana->SetHistoPtRangeAndNBins(0, 50, 200) ;
994  // ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
995  // ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
996 
997  // ana->SwitchOnNonStandardJetFromReader();
999  //background subtraction for photons
1000  //ana->SwitchOnBackgroundSubtractionGamma();
1002 
1003  ana->SwitchOnSaveGJTree();
1004  ana->SwitchOnMostOpposite();
1005  //ana->SwitchOnMostEnergetic();
1006 
1007 
1008  //if(useKinematics) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms
1009  if(printSettings)
1010  ana->Print("");
1011 
1012  return ana;
1013 
1014 }
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:87
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()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
Definition: AliAnaPhoton.h:129
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:94
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:140
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:112
void SwitchOffTMHistoFill()
Definition: AliAnaPhoton.h:95
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:120
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
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)
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
Definition: AliAnaPhoton.h:130
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)
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:115
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:74
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:138
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:123
Steering class of package CaloTrackCorrelartions.