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