AliPhysics  a8afd6c (a8afd6c)
AddTaskCaloTrackCorrBase.C
Go to the documentation of this file.
1 
12 // Set includes for compilation
13 
14 #if !defined(__CINT__) || defined(__MAKECINT__)
15 
16 // ROOT
17 #include <TString.h>
18 #include <TSystem.h>
19 #include <TROOT.h>
20 
21 // AliPhysics
22 #include "AliAnalysisManager.h"
23 #include "AliInputEventHandler.h"
24 #include "AliVTrack.h"
25 #include "AliAODTrack.h"
26 #include "AliESDtrack.h"
27 #include "AliESDtrackCuts.h"
28 
29 // CaloTrackCorrelations frame
30 #include "AliCaloTrackESDReader.h"
31 #include "AliCaloTrackAODReader.h"
32 #include "AliCalorimeterUtils.h"
35 
36 // Macros
37 R__ADD_INCLUDE_PATH($ALICE_PHYSICS)
38 #include "PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C"
39 #include "PWGJE/macros/CreateTrackCutsPWGJE.C"
41 
42 #endif
43 
58  TString col , Int_t year, Bool_t simulation,
59  Bool_t rejectEMCTrig, TString trigger,
60  Int_t minCen , Int_t maxCen )
61 {
62  //
63  // Vertex criteria
64  //
65  reader->SetZvertexCut(10.);
66  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex is found
67  reader->SwitchOffRejectNoTrackEvents(); // careful if on and productions with no TPC (muon_calo)
68 
71 
72  reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
73  //reader->RejectFastClusterEvents() ;
74 
75  //
76  // Pile-up
77  //
78  if ( cutsString.Contains("SPDPileUp") )
79  {
80  printf("AddTaskCaloTrackCorrBase::ConfigureReader() - Switch on Pile-up event rejection by SPD\n");
81  reader->SwitchOnPileUpEventRejection(); // remove pileup by default off, apply it only for MB not for trigger
82  if ( year > 2013 ) reader->SetPileUpParamForSPD(0,5);
83  }
84 
85  //
86  // Centrality
87  //
88  if ( col == "PbPb" )
89  {
90  reader->SetCentralityClass("V0M");
91  reader->SetCentralityOpt(100); // 10 (c= 0-10, 10-20 ...), 20 (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
92  reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
93 
94  //reader->SwitchOnAcceptOnlyHIJINGLabels();
95 
96  // Event plane (only used in Maker and mixing for AliAnaPi0/AliAnaHadronCorrelation for the moment)
97  reader->SetEventPlaneMethod("V0");
98  }
99 
100  //
101  // In case of Pythia pt Hard bin simulations (jet-jet, gamma-jet)
102  // reject some special events that bother the cross section
103  //
104  if ( simulation )
105  {
106  // Event rejection cuts for jet-jet simulations, do not use in other
107  reader->SetPtHardAndJetPtComparison(kTRUE);
108  reader->SetPtHardAndJetPtFactor(2);
109 
110  // Event rejection more suitable for gamma-jet simulations, do not use in other
111  // reader->SetPtHardAndClusterPtComparison(kTRUE);
112  // reader->SetPtHardAndClusterPtFactor(1.5);
113 
114  // Set here generator name, default pythia
115  //reader->GetMCAnalysisUtils()->SetMCGenerator("");
116  }
117 
118  //
119  // Calorimeter Trigger Selection
120  //
121 
122  //if(!simulation) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
123 
124  // Event triggered by EMCal selection settings
125  // very old ways, not up to date
128 
129  if ( rejectEMCTrig > 0 && !simulation && (trigger.Contains("EMC") || trigger.Contains("L")) )
130  {
131  printf("AddTaskCaloTrackCorrBase::ConfigureReader() === Remove bad triggers === \n");
134 
135  // reader->SetTriggerPatchTimeWindow(8,9); // default values
136  // if (kRunNumber < 146861) reader->SetEventTriggerL0Threshold(3.);
137  // else if(kRunNumber < 154000) reader->SetEventTriggerL0Threshold(4.);
138  // else if(kRunNumber < 165000) reader->SetEventTriggerL0Threshold(5.5);
139  // //redefine for other periods, triggers
140  //
141  // if(kRunNumber < 172000)
142  // {
143  // reader->SetEventTriggerL1Bit(4,5); // current LHC11 data
144  // printf("\t Old L1 Trigger data format!\n");
145  // }
146  // else
147  // {
148  // reader->SetEventTriggerL1Bit(6,8); // LHC12-13 data
149  // printf("\t Current L1 Trigger data format!\n");
150  // }
151 
152  //reader->SwitchOffTriggerClusterTimeRecal() ;
153  }
154 }
155 
167  TString calorimeter, TString cutsString, TString clustersArray,
168  Int_t year, Bool_t simulation )
169 {
170  reader->SetEMCALEMin(0.3);
171  reader->SetEMCALEMax(1000);
172 
173  if ( calorimeter == "EMCAL" ) reader->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.70, 80, 187) ;
174  else if ( calorimeter == "DCAL" ) reader->GetFiducialCut()->SetSimpleEMCALFiducialCut(0.70, 260, 327) ;
175 
176  // Use other cluster array than default:
177  reader->SetEMCALClusterListName(clustersArray);
178 
179  // Time cuts
181  reader->SwitchOffUseEMCALTimeCut();
182  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
183 
184  // For data, check what is the range needed depending on the sample
185  if ( !simulation )
186  {
187  printf("AddTaskCaloTrackCorrBase::ConfigureReader() - Apply time cut:");
188  reader->SwitchOnUseEMCALTimeCut();
189  reader->SetEMCALTimeCut(-25,20);
190  if ( year > 2013 )
191  {
192  reader->SetEMCALTimeCut(-20,15);
193  printf(" -20 ns < t < 15 ns\n");
194  }
195  else printf(" -25 ns < t < 20 ns\n");
196  }
197 
198  if ( calorimeter == "EMCAL" || calorimeter == "DCAL" )
199  {
200  reader->SwitchOnEMCALCells();
201  reader->SwitchOnEMCAL();
202  }
203 
204  // EMCal shower shape smearing
205  // Set it in the train configuration page not here for the moment
206  if ( simulation && cutsString.Contains("Smearing"))
207  {
208  reader->SwitchOnShowerShapeSmearing(); // Active only on MC, off by default
209 
211  reader->SetShowerShapeSmearWidth(0.005);
212 
213  //reader->SetSmearingFunction(AliCaloTrackReader::kSmearingLandauShift);
214  //reader->SetShowerShapeSmearWidth(0.035);
215  }
216 
217  // Energy scale factor for 100 MeV clusterization threshold in MC
218  // and TRD vs no TRD SMs
219  // Factors reported in https://alice-notes.web.cern.ch/node/837
220  if ( cutsString.Contains("MCEnScale") && simulation )
221  {
222  printf("AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Set global energy scale!\n");
224 
225  if ( year == 2011 )
226  {
227  for(Int_t ism = 0; ism < 6; ism++)
228  reader->SetScaleFactorPerSM(ism, 1./1.012);
229  for(Int_t ism = 6; ism < 10; ism++)
230  reader->SetScaleFactorPerSM(ism, 1./0.998);
231  }
232  else if( year == 2012 )
233  {
234  for(Int_t ism = 0; ism < 4; ism++)
235  reader->SetScaleFactorPerSM(ism, 1./1.001);
236  for(Int_t ism = 4; ism < 10; ism++)
237  reader->SetScaleFactorPerSM(ism, 1./0.995);
238  }
239  else if( year == 2013 ) // Needs to be revised
240  {
241  for(Int_t ism = 0; ism < 4; ism++)
242  reader->SetScaleFactorPerSM(ism, 1./0.997);
243  for(Int_t ism = 4; ism < 10; ism++)
244  reader->SetScaleFactorPerSM(ism, 1./0.993);
245  }
246  else
247  printf("AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Global scale not defined for such case\n");
248  }
249 }
250 
259 {
260  reader->SetPHOSEMin(0.3);
261  reader->SetPHOSEMax(1000);
262 
263  reader->GetFiducialCut()->SetSimplePHOSFiducialCut (0.12, 250, 320) ;
264 
265  if ( calorimeter == "PHOS" )
266  { // Should be on if QA is activated with correlation on
267  reader->SwitchOnPHOSCells();
268  reader->SwitchOnPHOS();
269  }
270 }
271 
280  TString inputDataType, TString cutsString)
281 {
282  reader->SwitchOnCTS();
283 
284  reader->SetCTSPtMin(0.2);
285  reader->SetCTSPtMax(1000);
286 
287  reader->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ;
288 
289  reader->SwitchOffUseTrackTimeCut();
290  reader->SetTrackTimeCut(0,50);
291 
292  reader->SwitchOffUseTrackDCACut();
293  //reader->SetTrackDCACut(0,0.0105);
294  //reader->SetTrackDCACut(1,0.035);
295  //reader->SetTrackDCACut(2,1.1);
296 
297  if ( inputDataType == "ESD" )
298  {
299 #if defined(__CINT__)
300  gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
301 #endif
302 
303  //AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10041004);
304  //reader->SetTrackCuts(esdTrackCuts);
305 
306  if ( cutsString.Contains("ITSonly") )
307  {
308  reader->SetTrackStatus(AliESDtrack::kITSpureSA);
309  }
310  // Hybrid TPC+ITS
311  else
312  {
313  AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
314  reader->SetTrackCuts(esdTrackCuts);
315  AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
316  reader->SetTrackComplementaryCuts(esdTrackCuts2);
317 
319  }
320  }
321  else if ( inputDataType == "AOD" )
322  {
323  if ( cutsString.Contains("ITSonly") )
324  {
325  reader->SetTrackStatus(AliAODTrack::kTrkITSsa);
326  }
327  else
328  {
329  reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
331  reader->SetTrackStatus(AliVTrack::kITSrefit);
332  }
333 
334  //reader->SwitchOnAODPrimaryTrackSelection(); // Used in preliminary results of QM from Nicolas and Xiangrong?
335  //reader->SwitchOnTrackHitSPDSelection(); // Check that the track has at least a hit on the SPD, not much sense to use for hybrid or TPC only tracks
336  //reader->SetTrackFilterMask(128); // Filter bit, not mask, use if off hybrid, TPC only
337  }
338 }
339 
360  TString clustersArray, TString calorimeter,
361  TString cutsString,
362  Bool_t nonLinOn, Bool_t calibrate,
363  Int_t year,
364  TString trigger, Bool_t rejectEMCTrig,
365  Int_t minCen, Int_t maxCen,
366  Bool_t printSettings, Int_t debug )
367 {
368  // Get the data type ESD or AOD
369  AliAnalysisManager * mgr = AliAnalysisManager::GetAnalysisManager();
370  TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
371 
372  AliCaloTrackReader * reader = 0;
373  if (inputDataType == "AOD") reader = new AliCaloTrackAODReader();
374  else if(inputDataType == "ESD") reader = new AliCaloTrackESDReader();
375  else printf("AddTaskCaloTrackCorrBase::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
376 
377  reader->SetDebug(debug);//10 for lots of messages
378 
379  //------------------------
380  // Event selection cuts
381  //------------------------
382  ConfigureEventSelection(reader, cutsString, col, year, simulation,
383  rejectEMCTrig, trigger, minCen, maxCen);
384 
385  //------------------------
386  // Detector input filtering
387  //------------------------
388 
389  // Fiducial cuts active, see acceptance in detector methods
390  reader->SwitchOnFiducialCut();
391 
392  ConfigureTrackCuts (reader, inputDataType, cutsString);
393 
394  ConfigurePHOSClusterCuts (reader, calorimeter);
395 
396  ConfigureEMCALClusterCuts(reader, calorimeter, cutsString, clustersArray, year, simulation);
397 
398  // Extra calorimeter stuff:
399  //
400  // In case no external calibrated cluster/cell list or EMCal correction framework applied before
401  if ( calibrate ) reader->SwitchOnClusterRecalculation();
402  else reader->SwitchOffClusterRecalculation();
403 
404  // CAREFUL, make sure not done previously in the tender/clusterizer/EM correction framework
405  if ( nonLinOn ) reader->SwitchOnClusterELinearityCorrection();
407 
408  if(printSettings) reader->Print("");
409 
410  return reader;
411 }
412 
426  TString calorimeter, Bool_t nonLinOn,
427  Bool_t calibrate, Int_t year,
428  Bool_t printSettings, Int_t debug)
429 {
431 
432  cu->SetDebug(debug);
433 
434  // Remove clusters close to borders, at least max energy cell is 1 cell away
437 
439 
440  if ( calorimeter == "PHOS" )
441  {
442  if(year < 2014) cu->SetNumberOfSuperModulesUsed(3);
443  else cu->SetNumberOfSuperModulesUsed(4);
444  }
445  else
446  {
447  Int_t nSM = 20;
448  Int_t lastEMC = 11;
449  if (year == 2010) { nSM = 4; lastEMC = 3; }// EMCAL first year
450  else if (year < 2014) { nSM = 10; lastEMC = 9; }// EMCAL active 2011-2013
451 
453 
454  if (calorimeter.Contains("EMCAL"))
455  {
456  cu->SetFirstSuperModuleUsed( 0);
457  cu->SetLastSuperModuleUsed (lastEMC);
458  }
459  else if (calorimeter.Contains("DCAL"))
460  {
461  cu->SetFirstSuperModuleUsed(12);
462  cu->SetLastSuperModuleUsed (19);
463  }
464  else
465  {
468  }
469 
470  printf("AddTaskCaloTrackCorrBase::CalorimeterUtils() - nSM %d, first %d, last %d\n",
472  }
473 
474  // Search of local maxima in cluster
475  if ( col == "pp" )
476  {
477  cu->SetLocalMaximaCutE(0.1);
478  cu->SetLocalMaximaCutEDiff(0.03);
479  }
480  else
481  {
482  cu->SetLocalMaximaCutE(0.2);
483  cu->SetLocalMaximaCutEDiff(0.03);
484  }
485 
487 
489 
490  // EMCAL settings
491 
492  if ( !simulation )
494 
495  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
496 
497  // Calibrations, do nothing by default
498  Bool_t calibEner = kFALSE;
499  Bool_t calibTime = kFALSE;
502 
503  if ( calibrate )
504  {
505  cu->SwitchOnRecalibration();
507 
508  calibEner = kTRUE;
509  calibTime = kTRUE;
510  }
511 
512  cu->ConfigureEMCALRecoUtils(simulation,
513  kTRUE, // exotic
514  nonLinOn, // Non linearity
515  calibEner, // E calib
516  kTRUE, // bad map
517  calibTime); // time calib
518 
519  //if( calibTime ) recou->SetExoticCellDiffTimeCut(50);
520 
521  //if( nonLinOn ) cu->SwitchOnCorrectClusterLinearity(); // Done in Configure method
522 
523  if ( printSettings )
524  {
525  printf("AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",
526  recou->IsRecalibrationOn(), cu->IsRecalibrationOn());
527  printf("AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",
529  }
530 
531  // PHOS
533 
534  if(printSettings) cu->Print("");
535 
536  return cu;
537 }
538 
539 
564 (
565  TString calorimeter = "EMCAL", // "DCAL", "PHOS"
566  Bool_t simulation = kFALSE,
567  Int_t year = -1, // 2011,
568  TString col = "", // pp
569  TString period = "", // LHC11d
570  Int_t rejectEMCTrig = 0,
571  TString clustersArray = "",
572  TString cutsString = "", // "Smearing","SPDPileUp"
573  Bool_t calibrate = kFALSE,
574  Bool_t nonLinOn = kFALSE,
575  Int_t minCen = -1,
576  Int_t maxCen = -1,
577  Bool_t mixOn = kTRUE,
578  TString outputfile = "",
579  Bool_t printSettings = kFALSE,
580  Int_t debug = 0,
581  const char *trigSuffix = "EMC7"
582 )
583 {
584  // Check the global variables, and reset the provided ones if empty.
585  //
586  TString trigger = trigSuffix;
587 
588  // Get the pointer to the existing analysis manager via the static access method.
589  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
590  if (!mgr)
591  {
592  ::Error("AddTask", "No analysis manager to connect to.");
593  return NULL;
594  }
595 
596  // Check the analysis type using the event handlers connected to the analysis manager.
597 
598  if (!mgr->GetInputEventHandler())
599  {
600  ::Error("AddTask", "This task requires an input event handler");
601  return NULL;
602  }
603 
604  // Name for containers
605 
606  TString anaCaloTrackCorrBase = Form("CTC_%s_Trig_%s",calorimeter.Data(),trigger.Data());
607 
608  if ( col=="PbPb" &&
609  maxCen>=0 ) anaCaloTrackCorrBase+=Form("_Cen%d_%d",minCen,maxCen);
610  if ( clustersArray!="" ) anaCaloTrackCorrBase+=Form("_Cl%s",clustersArray.Data());
611  if ( mixOn ) anaCaloTrackCorrBase+="_MixOn";
612  if ( cutsString!="" ) anaCaloTrackCorrBase+="_"+cutsString;
613 
614  printf("AddTaskCaloTrackCorrBase::Main() <<<< Folder name: %s >>>>>\n",
615  anaCaloTrackCorrBase.Data());
616 
617  //
618  // Create task, pass the maker and add it to the manager
619  //
620  AliAnalysisTaskCaloTrackCorrelation * task = new AliAnalysisTaskCaloTrackCorrelation (Form("%s",anaCaloTrackCorrBase.Data()));
621 
622  // task->SetFirstEvent(1800);
623  // task->SetLastEvent (2000);
624 
625  task->SetDebugLevel(debug);
626 
627  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
628  //task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
629 
631 
632  maker->SetAnaDebug(debug) ;
633 
634  task->SetAnalysisMaker(maker);
635 
636  mgr->AddTask(task);
637 
638  //
639  // Create containers
640  //
641  if ( outputfile.Length() == 0 )
642  outputfile = AliAnalysisManager::GetCommonFileName();
643 
644  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(anaCaloTrackCorrBase, TList::Class(),
645  AliAnalysisManager::kOutputContainer,
646  Form("%s",outputfile.Data()));
647 
648  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",anaCaloTrackCorrBase.Data()), TList::Class(),
649  AliAnalysisManager::kParamContainer,
650  "AnalysisParameters.root");
651 
652  // Create ONLY the output containers for the data produced by the task.
653  // Get and connect other common input/output containers via the manager as below
654  //==============================================================================
655  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
656  //if(!kData.Contains("delta") && outputAOD) mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
657  mgr->ConnectOutput (task, 1, cout_pc);
658  mgr->ConnectOutput (task, 2, cout_cuts);
659  //==============================================================================
660 
661  // Do not configure the wagon for certain analysis combinations
662  // But create the task so that the sub-wagon train can run
663  //
664 #if defined(__CINT__)
665  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
666 #endif
667 
668  Bool_t doAnalysis = CheckActiveEMCalTriggerPerPeriod(simulation,trigger,period,year);
669 
670  if ( doAnalysis && calorimeter == "DCAL" && year < 2015 ) doAnalysis = kFALSE;
671 
672  if ( !doAnalysis )
673  {
674  maker->SwitchOffProcessEvent();
675  return task;
676  }
677 
678  // #### Start analysis configuration ####
679  // Print settings
680  //
681  printf("AddTaskCaloTrackCorrBase::Main() << settings:"
682  "\n calorimeter <%s>, simulation <%d>, year <%d>, col <%s>, "
683  "\n trigger <%s>, reject EMC <%d>, clustersArray <%s>, cuts <%s>"
684  "\n calibrate <%d>, non linearity <%d>, minCen <%d>, maxCen <%d>, "
685  "\n mixOn <%d>, outputfile <%s>, printSettings <%d>, debug <%d> >>\n",
686  calorimeter.Data(), simulation, year, col.Data(),
687  trigger.Data(), rejectEMCTrig, clustersArray.Data(), cutsString.Data(),
688  calibrate, nonLinOn, minCen, maxCen,
689  mixOn, outputfile.Data(), printSettings, debug);
690 
691  // Make sure the B field is enabled for track selection, some cuts need it
692  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
693 
694  //
695  // General frame setting and configuration
696  //
697  maker->SetReader ( ConfigureReader (col,simulation,clustersArray,calorimeter,cutsString,
698  nonLinOn,calibrate,year,trigger,rejectEMCTrig,
699  minCen,maxCen,printSettings,debug) );
700 
701  maker->SetCaloUtils( ConfigureCaloUtils(col,simulation,calorimeter,nonLinOn,calibrate,year,
702  printSettings,debug) );
703 
704  maker->SwitchOnHistogramsMaker() ;
705  maker->SwitchOnAODsMaker() ;
706 
707  if ( simulation || !trigger.Contains("EMC") )
709 
710  if ( simulation )
711  {
712  // Calculate the cross section weights, apply them to all histograms
713  // and fill xsec and trial histo. Sumw2 must be activated.
714  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionCalculation();
715  //maker->SwitchOnSumw2Histograms();
716 
717  // For recent productions where the cross sections and trials are not stored in separate file
718  //maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionFromEventHeader() ;
719 
720  // Just fill cross section and trials histograms.
722 
723  // For productions where the cross sections and trials are not stored in separate file
724  TString prodType = gSystem->Getenv("ALIEN_JDL_LPMPRODUCTIONTYPE");
725  printf("AddTaskCaloTrackCorrBase() - MC production name: %s\n",prodType.Data());
726  if ( prodType.Contains("LHC16c") ) // add here any other affected periods, for the moment jet-jet 8 TeV
727  {
728  printf("\t use the cross section from EventHeader per Event\n");
730  }
731 
732  // Add control histogram with pT hard to control aplication of weights
733  maker->SwitchOnPtHardHistogram();
734  }
735 
736  if ( printSettings ) maker->Print("");
737 
738  // Set the list name for later recovery in macros
739  maker->GetListOfAnalysisContainers()->SetName(anaCaloTrackCorrBase);
740 
741  // Select events trigger depending on trigger
742  //
743  maker->GetReader()->SwitchOnEventTriggerAtSE(); // on is default case
744  if ( !simulation )
745  {
746 #if defined(__CINT__)
747  gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
748 #endif
749 
750  TString caloTriggerString = "";
751  UInt_t mask = ConfigureAndGetEventTriggerMaskAndCaloTriggerString(trigger, year, caloTriggerString);
752 
753  maker->GetReader()->SetFiredTriggerClassName(caloTriggerString);
754 
755  // For mixing with AliAnaParticleHadronCorrelation switch it off
756  if ( mixOn )
757  {
759  maker->GetReader()->SetEventTriggerMask(mask);
760  // what to do with caloTriggerString?
761 
762  // Careful, not all productions work with kMB, try kINT7, kINT1, kAnyINT
763  //reader->SetMixEventTriggerMask(AliVEvent::kMB);
764  maker->GetReader()->SetMixEventTriggerMask(AliVEvent::kINT7);
765 
766  printf("AddTaskCaloTrackCorrBase::Main() << Trigger selection done in AliCaloTrackReader!!! >>> \n");
767  }
768  else
769  {
770  task ->SelectCollisionCandidates( mask );
771  }
772  }
773 
774  printf("AddTaskCaloTrackCorrBase::Main() << End Base Task Configuration for %s >>\n",
775  anaCaloTrackCorrBase.Data());
776 
777  return task;
778 }
779 
780 
virtual void SwitchOnAODTrackSharedClusterSelection()
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SetShowerShapeSmearWidth(Float_t w)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SetFirstSuperModuleUsed(Int_t first)
virtual void SwitchOnFiducialCut()
void SwitchOnLoadOwnEMCALGeometryMatrices()
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
Int_t GetLastSuperModuleUsed() const
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SetLastSuperModuleUsed(Int_t last)
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SetSmearingFunction(Int_t smfu)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
AliCaloTrackReader * ConfigureReader(TString col, Bool_t simulation, TString clustersArray, TString calorimeter, TString cutsString, Bool_t nonLinOn, Bool_t calibrate, Int_t year, TString trigger, Bool_t rejectEMCTrig, Int_t minCen, Int_t maxCen, Bool_t printSettings, Int_t debug)
TSystem * gSystem
void SetEMCALEMin(Float_t en)
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOnClusterEScalePerSMCorrection()
void SetLocalMaximaCutEDiff(Float_t c)
void SwitchOnMCCrossSectionHistoFill()
Definition: AliAnaWeights.h:88
void SetNumberOfCellsFromEMCALBorder(Int_t n)
Bool_t IsBadChannelsRemovalSwitchedOn() const
void SetSimplePHOSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
const TString calorimeter
Definition: anaM.C:36
void ConfigureEMCALClusterCuts(AliCaloTrackReader *reader, TString calorimeter, TString cutsString, TString clustersArray, Int_t year, Bool_t simulation)
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
Bool_t IsRecalibrationOn() const
Some utilities for cluster and cell treatment.
void ConfigurePHOSClusterCuts(AliCaloTrackReader *reader, TString calorimeter)
void SwitchOnMCCrossSectionFromEventHeader()
Definition: AliAnaWeights.h:90
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 SwitchOffRecalculateClusterTrackMatching()
void SetEventTriggerMask(UInt_t evtTrig=AliVEvent::kAny)
void SwitchOffVertexBCEventSelection()
void SetScaleFactorPerSM(Int_t ism, Float_t factor)
Check EMCal trigger availability in period.
virtual void SetDebug(Int_t d)
virtual AliFiducialCut * GetFiducialCut()
virtual void SetCentralityOpt(Int_t opt)
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
void SetTrackStatus(ULong_t bit)
Bool_t IsBadChannelsRemovalSwitchedOn() const
AliCalorimeterUtils * ConfigureCaloUtils(TString col, Bool_t simulation, TString calorimeter, Bool_t nonLinOn, Bool_t calibrate, Int_t year, Bool_t printSettings, Int_t debug)
void SetEMCALClusterListName(TString name)
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SwitchOffBadTriggerEventsRemoval()
Int_t GetNumberOfSuperModulesUsed() const
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)
UInt_t ConfigureAndGetEventTriggerMaskAndCaloTriggerString(TString trigger, Int_t year, TString &triggerString)
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 SetReader(AliCaloTrackReader *re)
virtual void SetTrackCuts(AliESDtrackCuts *)
void SetPileUpParamForSPD(Int_t i, Double_t param)
virtual void SetCentralityClass(TString name)
void SwitchOnBadTriggerEventsRemoval()
void SwitchOnClusterELinearityCorrection()
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void ConfigureEventSelection(AliCaloTrackReader *reader, TString cutsString, TString col, Int_t year, Bool_t simulation, Bool_t rejectEMCTrig, TString trigger, Int_t minCen, Int_t maxCen)
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SetEMCALEMax(Float_t en)
void ConfigureEMCALRecoUtils(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 SetFiredTriggerClassName(TString name)
AliAnalysisTaskCaloTrackCorrelation * AddTaskCaloTrackCorrBase(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=-1, TString col="", TString period="", Int_t rejectEMCTrig=0, TString clustersArray="", TString cutsString="", Bool_t calibrate=kFALSE, Bool_t nonLinOn=kFALSE, Int_t minCen=-1, Int_t maxCen=-1, Bool_t mixOn=kTRUE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0, const char *trigSuffix="EMC7")
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
bool Bool_t
Definition: External.C:53
void SetPHOSEMax(Float_t en)
Class with utils specific to calorimeter clusters/cells.
AliCaloTrackReader * GetReader()
virtual void SwitchOnConstrainTrackToVertex()
Int_t GetFirstSuperModuleUsed() const
void SetMixEventTriggerMask(UInt_t evtTrig=AliVEvent::kAnyINT)
AliAnaWeights * GetWeightUtils()
void ConfigureTrackCuts(AliCaloTrackReader *reader, TString inputDataType, TString cutsString)
void SwitchOffUseParametrizedTimeCut()
void SetLocalMaximaCutE(Float_t cut)
Bool_t CheckActiveEMCalTriggerPerPeriod(Bool_t simulation, TString &trigger, TString period, Int_t year)
void SetCaloUtils(AliCalorimeterUtils *cu)
Steering class of package CaloTrackCorrelartions.