14 #if !defined(__CINT__) || defined(__MAKECINT__) 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" 72 if ( cutsString.Contains(
"SPDPileUp") )
74 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Switch on Pile-up event rejection by SPD\n");
123 if ( rejectEMCTrig > 0 && !simulation && (trigger.Contains(
"EMC") || trigger.Contains(
"L")) )
125 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() === Remove bad triggers === \n");
181 printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Apply time cut:");
187 printf(
" -20 ns < t < 15 ns\n");
189 else printf(
" -25 ns < t < 20 ns\n");
192 if ( calorimeter ==
"EMCAL" || calorimeter ==
"DCAL" )
200 if ( simulation && cutsString.Contains(
"Smearing"))
214 if ( cutsString.Contains(
"MCEnScale") && simulation )
216 printf(
"AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Set global energy scale!\n");
221 for(
Int_t ism = 0; ism < 6; ism++)
223 for(
Int_t ism = 6; ism < 10; ism++)
226 else if( year == 2012 )
228 for(
Int_t ism = 0; ism < 4; ism++)
230 for(
Int_t ism = 4; ism < 10; ism++)
233 else if( year == 2013 )
235 for(
Int_t ism = 0; ism < 4; ism++)
237 for(
Int_t ism = 4; ism < 10; ism++)
241 printf(
"AddTaskCaloTrackCorrBase::ConfigureEMCALClusterCuts() - Global scale not defined for such case\n");
259 if ( calorimeter ==
"PHOS" )
291 if ( inputDataType ==
"ESD" )
293 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
298 if ( cutsString.Contains(
"ITSonly") )
305 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
307 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
313 else if ( inputDataType ==
"AOD" )
315 if ( cutsString.Contains(
"ITSonly") )
362 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
367 else printf(
"AddTaskCaloTrackCorrBase::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
375 rejectEMCTrig, trigger, minCen, maxCen);
400 if(printSettings) reader->
Print(
"");
432 if ( calorimeter ==
"PHOS" )
441 if (year == 2010) { nSM = 4; lastEMC = 3; }
442 else if (year < 2014) { nSM = 10; lastEMC = 9; }
446 if (calorimeter.Contains(
"EMCAL"))
451 else if (calorimeter.Contains(
"DCAL"))
462 printf(
"AddTaskCaloTrackCorrBase::CalorimeterUtils() - nSM %d, first %d, last %d\n",
490 Bool_t calibEner = kFALSE;
491 Bool_t calibTime = kFALSE;
517 printf(
"AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",
519 printf(
"AddTaskCaloTrackCorrBase::ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",
526 if(printSettings) cu->
Print(
"");
558 Bool_t simulation = kFALSE,
562 Int_t rejectEMCTrig = 0,
565 Bool_t calibrate = kFALSE,
571 Bool_t printSettings = kFALSE,
573 const char *trigSuffix =
"EMC7" 584 ::Error(
"AddTask",
"No analysis manager to connect to.");
590 if (!mgr->GetInputEventHandler())
592 ::Error(
"AddTask",
"This task requires an input event handler");
598 TString anaCaloTrackCorrBase = Form(
"CTC_%s_Trig_%s",
calorimeter.Data(),trigger.Data());
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;
606 printf(
"AddTaskCaloTrackCorrBase::Main() <<<< Folder name: %s >>>>>\n",
607 anaCaloTrackCorrBase.Data());
617 task->SetDebugLevel(debug);
626 task->SetAnalysisMaker(maker);
633 if ( outputfile.Length() == 0 )
634 outputfile = AliAnalysisManager::GetCommonFileName();
636 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(anaCaloTrackCorrBase, TList::Class(),
637 AliAnalysisManager::kOutputContainer,
638 Form(
"%s",outputfile.Data()));
640 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",anaCaloTrackCorrBase.Data()), TList::Class(),
641 AliAnalysisManager::kParamContainer,
642 "AnalysisParameters.root");
647 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
649 mgr->ConnectOutput (task, 1, cout_pc);
650 mgr->ConnectOutput (task, 2, cout_cuts);
656 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
659 if ( doAnalysis &&
calorimeter ==
"DCAL" && year < 2015 ) doAnalysis = kFALSE;
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",
676 trigger.Data(), rejectEMCTrig, clustersArray.Data(), cutsString.Data(),
677 calibrate, nonLinOn, minCen, maxCen,
678 mixOn, outputfile.Data(), printSettings, debug);
681 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
687 nonLinOn,calibrate,year,trigger,rejectEMCTrig,
688 minCen,maxCen,printSettings,debug) );
691 printSettings,debug) );
696 if ( simulation || !trigger.Contains(
"EMC") )
713 TString prodType =
gSystem->Getenv(
"ALIEN_JDL_LPMPRODUCTIONTYPE");
714 printf(
"AddTaskCaloTrackCorrBase() - MC production name: %s\n",prodType.Data());
715 if ( prodType.Contains(
"LHC16c") )
717 printf(
"\t use the cross section from EventHeader per Event\n");
725 if ( printSettings ) maker->
Print(
"");
735 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
736 TString caloTriggerString =
"";
752 printf(
"AddTaskCaloTrackCorrBase::Main() << Trigger selection done in AliCaloTrackReader!!! >>> \n");
756 task ->SelectCollisionCandidates( mask );
760 printf(
"AddTaskCaloTrackCorrBase::Main() << End Base Task Configuration for %s >>\n",
761 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 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
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)
Get year, collision type, mc/data type and period from alien global variables.
void SetCaloUtils(AliCalorimeterUtils *cu)
Steering class of package CaloTrackCorrelartions.