14 #if !defined(__CINT__) || defined(__MAKECINT__) 22 #include "AliAnalysisManager.h" 23 #include "AliInputEventHandler.h" 24 #include "AliVTrack.h" 25 #include "AliAODTrack.h" 26 #include "AliESDtrack.h" 27 #include "AliESDtrackCuts.h" 37 R__ADD_INCLUDE_PATH($ALICE_PHYSICS)
38 #include "PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C" 39 #include "PWGJE/macros/CreateTrackCutsPWGJE.C" 78 if ( cutsString.Contains(
"SPDPileUp") )
80 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Switch on Pile-up event rejection by SPD\n");
129 if ( rejectEMCTrig > 0 && !simulation && (trigger.Contains(
"EMC") || trigger.Contains(
"L")) )
131 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() === Remove bad triggers === \n");
187 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Apply time cut:");
193 printf(
" -20 ns < t < 15 ns\n");
195 else printf(
" -25 ns < t < 20 ns\n");
198 if ( calorimeter ==
"EMCAL" || calorimeter ==
"DCAL" )
206 if ( simulation && cutsString.Contains(
"Smearing"))
220 if ( cutsString.Contains(
"MCEnScale") && simulation )
222 printf(
"AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Set global energy scale!\n");
227 for(
Int_t ism = 0; ism < 6; ism++)
229 for(
Int_t ism = 6; ism < 10; ism++)
232 else if( year == 2012 )
234 for(
Int_t ism = 0; ism < 4; ism++)
236 for(
Int_t ism = 4; ism < 10; ism++)
239 else if( year == 2013 )
241 for(
Int_t ism = 0; ism < 4; ism++)
243 for(
Int_t ism = 4; ism < 10; ism++)
247 printf(
"AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Global scale not defined for such case\n");
265 if ( calorimeter ==
"PHOS" )
297 if ( inputDataType ==
"ESD" )
299 #if defined(__CINT__) 300 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
306 if ( cutsString.Contains(
"ITSonly") )
313 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
315 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
321 else if ( inputDataType ==
"AOD" )
323 if ( cutsString.Contains(
"ITSonly") )
370 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
375 else printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
383 rejectEMCTrig, trigger, minCen, maxCen);
408 if(printSettings) reader->
Print(
"");
440 if ( calorimeter ==
"PHOS" )
449 if (year == 2010) { nSM = 4; lastEMC = 3; }
450 else if (year < 2014) { nSM = 10; lastEMC = 9; }
454 if (calorimeter.Contains(
"EMCAL"))
459 else if (calorimeter.Contains(
"DCAL"))
470 printf(
"AddTaskCaloTrackCorrBase::CalorimeterUtils() - nSM %d, first %d, last %d\n",
498 Bool_t calibEner = kFALSE;
499 Bool_t calibTime = kFALSE;
525 printf(
"AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",
527 printf(
"AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",
534 if(printSettings) cu->
Print(
"");
566 Bool_t simulation = kFALSE,
570 Int_t rejectEMCTrig = 0,
573 Bool_t calibrate = kFALSE,
579 Bool_t printSettings = kFALSE,
581 const char *trigSuffix =
"EMC7" 592 ::Error(
"AddTask",
"No analysis manager to connect to.");
598 if (!mgr->GetInputEventHandler())
600 ::Error(
"AddTask",
"This task requires an input event handler");
606 TString anaCaloTrackCorrBase = Form(
"CTC_%s_Trig_%s",
calorimeter.Data(),trigger.Data());
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;
614 printf(
"AddTaskCaloTrackCorrBase::Main() <<<< Folder name: %s >>>>>\n",
615 anaCaloTrackCorrBase.Data());
625 task->SetDebugLevel(debug);
634 task->SetAnalysisMaker(maker);
641 if ( outputfile.Length() == 0 )
642 outputfile = AliAnalysisManager::GetCommonFileName();
644 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(anaCaloTrackCorrBase, TList::Class(),
645 AliAnalysisManager::kOutputContainer,
646 Form(
"%s",outputfile.Data()));
648 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",anaCaloTrackCorrBase.Data()), TList::Class(),
649 AliAnalysisManager::kParamContainer,
650 "AnalysisParameters.root");
655 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
657 mgr->ConnectOutput (task, 1, cout_pc);
658 mgr->ConnectOutput (task, 2, cout_cuts);
664 #if defined(__CINT__) 665 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
670 if ( doAnalysis &&
calorimeter ==
"DCAL" && year < 2015 ) doAnalysis = kFALSE;
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",
687 trigger.Data(), rejectEMCTrig, clustersArray.Data(), cutsString.Data(),
688 calibrate, nonLinOn, minCen, maxCen,
689 mixOn, outputfile.Data(), printSettings, debug);
692 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
698 nonLinOn,calibrate,year,trigger,rejectEMCTrig,
699 minCen,maxCen,printSettings,debug) );
702 printSettings,debug) );
707 if ( simulation || !trigger.Contains(
"EMC") )
724 TString prodType =
gSystem->Getenv(
"ALIEN_JDL_LPMPRODUCTIONTYPE");
725 printf(
"AddTaskCaloTrackCorrBase() - MC production name: %s\n",prodType.Data());
726 if ( prodType.Contains(
"LHC16c") )
728 printf(
"\t use the cross section from EventHeader per Event\n");
736 if ( printSettings ) maker->
Print(
"");
746 #if defined(__CINT__) 747 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
750 TString caloTriggerString =
"";
766 printf(
"AddTaskCaloTrackCorrBase::Main() << Trigger selection done in AliCaloTrackReader!!! >>> \n");
770 task ->SelectCollisionCandidates( mask );
774 printf(
"AddTaskCaloTrackCorrBase::Main() << End Base Task Configuration for %s >>\n",
775 anaCaloTrackCorrBase.Data());
void SwitchOnBadChannelsRemoval()
virtual void SwitchOnAODTrackSharedClusterSelection()
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SwitchOffRunDepCorrection()
void SetShowerShapeSmearWidth(Float_t w)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOffUseEMCALTimeCut()
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 SwitchOffClusterRecalculation()
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SwitchOnPileUpEventRejection()
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)
void SwitchOffUseTrackDCACut()
void SetEMCALEMin(Float_t en)
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOnTriggerPatchMatching()
void SwitchOnClusterEScalePerSMCorrection()
void SwitchOnRunDepCorrection()
void SetLocalMaximaCutEDiff(Float_t c)
void SwitchOnMCCrossSectionHistoFill()
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOnPtHardHistogram()
Bool_t IsBadChannelsRemovalSwitchedOn() const
void SetSimplePHOSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
const TString calorimeter
void SwitchOnRecalibration()
void ConfigureEMCALClusterCuts(AliCaloTrackReader *reader, TString calorimeter, TString cutsString, TString clustersArray, Int_t year, Bool_t simulation)
void SwitchOffV0ANDSelection()
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()
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 SwitchOffEventTriggerAtSE()
void SetCTSPtMin(Float_t pt)
void SwitchOffRecalculateClusterTrackMatching()
void SetEventTriggerMask(UInt_t evtTrig=AliVEvent::kAny)
void SwitchOffVertexBCEventSelection()
void SwitchOffRecalibration()
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)
void SetTrackStatus(ULong_t bit)
void SwitchOnUseEMCALTimeCut()
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 SetAnaDebug(Int_t d)
void SetEMCALClusterListName(TString name)
void SwitchOnHistogramsMaker()
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.
void SwitchOffUseTrackTimeCut()
void SwitchOffTriggerPatchMatching()
virtual void SetZvertexCut(Float_t zcut=10.)
void SwitchOffRejectNoTrackEvents()
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOnClusterRecalculation()
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
virtual void SetPtHardAndJetPtFactor(Float_t factor)
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
void SwitchOffDataControlHistograms()
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)
TList * GetListOfAnalysisContainers()
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 SwitchOffRecalculateVertexBC()
void SwitchOffProcessEvent()
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.
void SetPHOSEMax(Float_t en)
Class with utils specific to calorimeter clusters/cells.
AliCaloTrackReader * GetReader()
void SwitchOnShowerShapeSmearing()
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 SwitchOnEventTriggerAtSE()
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.