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