20 #if !defined(__CINT__) || defined(__MAKECINT__) 41 #include "AliAnalysisManager.h" 42 #include "AliInputEventHandler.h" 43 #include "AliVTrack.h" 45 #include "AliESDtrackCuts.h" 46 #include "CreateTrackCutsPWGJE.C" 62 if(calorimeter==
"EMCAL")
70 else if ( year < 2014 )
80 else if (caloType == 1)
126 if(collision==
"PbPb")
146 if(collision.Contains(
"pPb"))
148 else if(collision.Contains(
"PbPb"))
162 if (inputDataType==
"AOD")
164 else if(inputDataType==
"ESD")
167 printf(
"AddTaskPi0IMGammaCorrQA::ConfigureReader() - Data combination not known input Data=%s\n",
168 inputDataType.Data());
208 if(inputDataType==
"ESD")
210 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
214 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
216 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
222 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001006);
224 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
228 else if(inputDataType==
"AOD")
258 if(collision==
"PbPb")
265 if(debugLevel > 0) reader->
Print(
"");
310 if(calibrate && !simulation)
343 if(calorimeter==
"PHOS")
352 if (year == 2010) { nSM = 4; lastEMC = 3; }
353 else if (year < 2014) { nSM = 10; lastEMC = 9; }
357 if (trigger.Contains(
"EMCAL"))
362 else if (trigger.Contains(
"DCAL"))
373 printf(
"AddTaskPi0IMGammaCorrQA::CalorimeterUtils() - nSM %d, first %d, last %d\n",
380 if(debugLevel > 0) cu->
Print(
"");
405 if(calorimeter ==
"PHOS")
432 if(containerName.Contains(
"efault") || containerName.Contains(
"INT") || containerName.Contains(
"MB"))
438 else if(containerName.Contains(
"L0"))
473 ana->
SetOutputAODName(Form(
"Photon%s_Calo%d",containerName.Data(),caloType));
475 ana->
SetInputAODName (Form(
"Photon%s_Calo%d",containerName.Data(),caloType));
487 if(debugLevel > 0 ) ana->
Print(
"");
504 ana->
SetInputAODName(Form(
"Photon%s_Calo%d",containerName.Data(),caloType));
520 if(calorimeter==
"EMCAL")
534 if (collision ==
"pp" )
542 else if(collision ==
"PbPb")
553 else if(collision ==
"pPb")
575 if(debugLevel > 0) ana->
Print(
"");
619 if(debugLevel > 0) ana->
Print(
"");
658 if(calorimeter ==
"EMCAL" && caloType == 0)
663 if(calorimeter ==
"EMCAL" && caloType == 1)
683 if ( collision ==
"pp" || collision ==
"pPb" )
689 if ( collision ==
"PbPb" )
698 ana->
SetInputAODName(Form(
"%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
699 ana->
SetAODObjArrayName(Form(
"%sIso_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
708 if(debugLevel > 0) ana->
Print(
"");
779 ana->
SetInputAODName(Form(
"%s%s_Calo%d",particle.Data(),containerName.Data(),caloType));
780 ana->
SetAODObjArrayName(Form(
"%sHadronCorr_%s_Calo%d",particle.Data(),containerName.Data(),caloType));
799 if(debugLevel > 0) ana->
Print(
"");
847 if(debugLevel > 0) ana->
Print(
"");
873 Bool_t simulation = kFALSE,
876 const Bool_t qaan = kTRUE,
877 const Bool_t hadronan = kTRUE,
878 const Bool_t calibrate = kFALSE,
879 const Int_t minTime = -1000,
880 const Int_t maxTime = 1000,
881 const Int_t minCen = -1,
882 const Int_t maxCen = -1,
883 const Int_t debugLevel = -1,
884 const char *
suffix =
"default" 891 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/GetAlienGlobalProductionVariables.C");
894 Bool_t printGlobal = kFALSE;
895 if ( trigger.Contains(
"default") || trigger.Contains(
"INT") || trigger.Contains(
"MB") ) printGlobal = kTRUE;
904 ::Error(
"AddTaskPi0IMGammaCorrQA",
"No analysis manager to connect to.");
910 if (!mgr->GetInputEventHandler())
912 ::Error(
"AddTaskPi0IMGammaCorrQA",
"This task requires an input event handler");
923 if(collision!=
"pp" && maxCen>=0) containerName+=Form(
"Cen%d_%d",minCen,maxCen);
925 TString taskName =Form(
"Pi0IM_GammaTrackCorr_%s",containerName.Data());
929 task->SetDebugLevel(debugLevel);
936 task->SetAnalysisMaker(maker);
944 TString outputfile = AliAnalysisManager::GetCommonFileName();
946 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(trigger, TList::Class(),
947 AliAnalysisManager::kOutputContainer,
948 Form(
"%s:%s",outputfile.Data(),Form(
"Pi0IM_GammaTrackCorr_%s",
calorimeter.Data())));
950 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",trigger.Data()), TList::Class(),
951 AliAnalysisManager::kParamContainer,
952 Form(
"%s_Parameters.root",Form(
"Pi0IM_GammaTrackCorr_%s",
calorimeter.Data())));
956 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
957 mgr->ConnectOutput (task, 1, cout_pc);
958 mgr->ConnectOutput (task, 2, cout_cuts);
964 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
974 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
978 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
982 printf(
"AddTaskPi0IMGammaCorrQA - Task NAME: %s \n",taskName.Data());
984 printf(
"AddTaskPi0IMGammaCorrQA - Settings: data <%s>, calo <%s>, MC <%d>, collision <%s>, trigger <%s>, period <%s>, year <%d>,\n" 985 "\t \t \t CaloQA on <%d>, Track QA on <%d>, Make corrections <%d>, %d < time < %d, %d < cen < %d, debug level <%d> \n",
986 inputDataType.Data(),
calorimeter.Data(),simulation, collision.Data(),trigger.Data(), period.Data(), year,
987 qaan , hadronan, calibrate, minTime, maxTime, minCen, maxCen, debugLevel);
991 maker->
SetReader (
ConfigureReader (inputDataType,collision,calibrate,minTime,maxTime,minCen,maxCen,simulation,year,debugLevel) );
1002 year,debugLevel),n++);
1005 if ( !trigger.Contains(
"DCAL") )
1021 if(year > 2014 &&
calorimeter==
"EMCAL" && !trigger.Contains(
"EMCAL"))
1062 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
1063 TString caloTriggerString =
"";
1066 task ->SelectCollisionCandidates( mask );
1068 printf(
"AddTaskPi0IMGammaCorrQA - Trigger Mask %d, caloTriggerString <%s>\n", mask, caloTriggerString.Data());
1079 if(debugLevel > 0) maker->
Print(
"");
void SwitchOffDecayTaggedHistoFill()
void SwitchOnBadChannelsRemoval()
void SetPtThreshold(Float_t pt)
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
virtual void SwitchOffTrackMultBins()
void SetNEBinCuts(Int_t nb)
void SetAngleCut(Float_t a)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SwitchOffRunDepCorrection()
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void SwitchOffPtTrigBinHistoFill()
void SwitchOnSSHistoFill()
virtual void SetMaxEnergy(Float_t e)
void SetTimeCut(Double_t min, Double_t max)
void SwitchOffFillEtaGapHistograms()
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString particle, TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void ana(Int_t mode=mGRID)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
void SwitchOffCorrelationVzBin()
void SetFirstSuperModuleUsed(Int_t first)
void SwitchOnTrackMatchRejection()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
void SetAssociatedPtRange(Float_t min, Float_t max)
Class with utils to perform Isolation Cuts.
void SetNPIDBits(Int_t s)
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
Int_t GetLastSuperModuleUsed() const
void SwitchOffCorrectClusterLinearity()
void SwitchOnFillAllCellHistogram()
void SetLastSuperModuleUsed(Int_t last)
void SwitchOffClusterRecalculation()
virtual void SwitchOnDataMC()
void SetConeSize(Float_t r)
void SwitchOffPrimariesInConeSelection()
void FillNPrimaryHistograms(Int_t n)
virtual void SwitchOnTrackMultBins()
void SetCTSPtMax(Float_t pt)
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
Selected photon clusters invariant mass analysis.
virtual void SetInputAODName(TString name)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
virtual AliIsolationCut * GetIsolationCut()
void SwitchOffUseTrackDCACut()
void SwitchOffFillTrackMultiplicityHistograms()
void SetEMCALEMin(Float_t en)
void SwitchOnSMCombinations()
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
void SwitchOnRecalculateClusterPosition()
void SwitchOffPHOSCells()
void AddAnalysis(TObject *ana, Int_t n)
Add analysis depending on AliAnaCaloTrackCorrBaseClass to list.
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOnAngleSelection()
virtual void SetDebug(Int_t d)
virtual void SetOutputAODClassName(TString name)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetSumPtThreshold(Float_t s)
void SwitchOffFillAllClusterHistogram()
void SwitchOffMultipleCutAnalysis()
void SwitchOffFillAllPositionHistogram2()
Class for the Calorimeter QA analysis.
AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision, Bool_t calibrate, Int_t minTime, Int_t maxTime, Int_t minCen, Int_t maxCen, Bool_t simulation, Int_t year, Int_t debugLevel)
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetLocalMaximaCutEDiff(Float_t c)
void SwitchOnMCCrossSectionHistoFill()
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOffSeveralIsolation()
void SwitchOnPtHardHistogram()
void SetNCellCut(Int_t n)
Bool_t CheckActiveEMCalTriggerPerPeriod(Bool_t simulation, TString trigger, TString period, Int_t year)
void SwitchOffNearSideLeading()
void SetAngleMaxCut(Float_t a)
void SwitchOffPileUpEventRejection()
const TString calorimeter
void SwitchOnRecalibration()
void SwitchOffV0ANDSelection()
AliCalorimeterUtils * ConfigureCaloUtils(TString calorimeter, TString trigger, Bool_t simulation, Bool_t calibrate, Int_t year, Int_t debugLevel)
void SetHistoTrackResidualEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
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)
virtual void SetPairTimeCut(Float_t t)
void SetPHOSRCut(Float_t rcut)
void SetEMCALDPhiCut(Float_t dcut)
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SwitchOffLeadingOnly()
void SetICMethod(Int_t i)
void SwitchOffVertexBCEventSelection()
virtual void SetCalorimeter(TString calo)
Set the calorimeter for the analysis. A string.
Correlate trigger particles (photon, pi0, tracks) and charged tracks: Azimuthal correlations, xE distributions.
virtual void SetNTrackMultBin(Int_t n=1)
Number of bins in centrality.
void DoEMCALFiducialCut(Bool_t b)
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SwitchOffRecalibration()
void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
AliAnaPi0 * ConfigurePi0Analysis(TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
void SwitchOffCheckNeutralClustersForLeading()
void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)
Check EMCal trigger availability in period.
virtual void SetDebug(Int_t d)
void SetHistoPOverERangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual AliFiducialCut * GetFiducialCut()
void SwitchOffFillAngleHisto()
virtual void SetCentralityOpt(Int_t opt)
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SwitchOnFillHighMultiplicityHistograms()
virtual AliHistogramRanges * GetHistogramRanges()
void SwitchOffDecayTriggerDecayCorr()
void SwitchOnDataControlHistograms(Int_t lev=1)
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SetNZvertBin(Int_t n=1)
void SetTrackStatus(ULong_t bit)
void SwitchOnUseEMCALTimeCut()
void SwitchOffNeutralCorr()
Filter EMCal/PHOS clusters for photon analysis.
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnUEBandSubtractionHistoFill(Int_t lev=1)
void SetAnaDebug(Int_t d)
void SwitchOffFillAllTrackMatchingHistogram()
void GetAlienGlobalProductionVariables(Bool_t &simulation, TString &col, TString &period, Int_t &year, Bool_t print=kFALSE)
virtual void SwitchOnOwnMix()
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SwitchOnCaloPID()
void SwitchOnHistogramsMaker()
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetTriggerPtBinLimit(Int_t ibin, Float_t pt)
Set the list of pT limits for the of associated charged (neutral) hadrons.
void SwitchOffFillAllCellAbsIdHistogram()
Int_t GetNumberOfSuperModulesUsed() const
void SwitchOffHMPIDCorrelation()
void SwitchOffPrimariesPi0DecayStudy()
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
void SwitchOffFillAllPositionHistogram()
void SwitchOffFillVertexBC0Histograms()
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffUseTrackTimeCut()
void SwitchOffAbsoluteLeading()
virtual AliCaloPID * GetCaloPID()
void SetConstantTimeShift(Float_t shift)
virtual void SwitchOnFiducialCut()
AliAnaParticleHadronCorrelation * ConfigureHadronCorrelationAnalysis(TString particle, TString calorimeter, Bool_t caloType, TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel, Int_t minCen)
virtual void SetZvertexCut(Float_t zcut=10.)
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter, Bool_t caloType, TString collision, Int_t year)
void SwitchOffRejectNoTrackEvents()
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOffCorrelation()
void SwitchOnClusterRecalculation()
void SwitchOffReIsolation()
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
virtual void SwitchOnAliCentrality()
virtual void SetMinEnergy(Float_t e)
virtual void SetNCentrBin(Int_t n=1)
Number of bins in reaction plain.
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
void SetNAsymCuts(Int_t s)
void SetPHOSEMin(Float_t en)
void SetReader(AliCaloTrackReader *re)
virtual void SetNRPBin(Int_t n=1)
Number of bins for vertex position.
void SetPHOSDispersionCut(Float_t dcut)
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetTrackCuts(AliESDtrackCuts *)
void SetEMCALCellAmpMin(Float_t amp)
Track selection for correlation analysis.
void SetHistoOpeningAngleRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SwitchOffFiducialCut()
void SwitchOnFillShowerShapeHistograms()
void SwitchOffFillBradHistograms()
Select clusters/tracks with low particle environment in their vecinity, isolated within a cone...
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEBinCutsAt(Int_t i, Float_t va)
void SwitchOffSeveralUECalculation()
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString calorimeter, TString collision, Int_t year, Int_t debugLevel)
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
void SwitchOnAcceptanceHistoPerEBin()
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetAODObjArrayName(TString name)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SetNTriggerPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SwitchOffStudyBadClusters()
void SwitchOffRecalculateVertexBC()
void SwitchOffFillAllTH3Histogram()
void SwitchOffProcessEvent()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffBackgroundBinHistoFill()
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
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 SetNAssocPtBins(Int_t n)
Set number of associated charged (neutral) hadrons pT bins.
void SwitchOnFillAllCellTimeHisto()
Class for PID selection with calorimeters.
void FillNOriginHistograms(Int_t n)
virtual void SetNMaxEvMix(Int_t n=20)
Number of bins in track multiplicity.
virtual void SwitchOnRealCaloAcceptance()
void SetFiredTriggerClassName(TString name)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SelectIsolated(Bool_t s)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffFillAllPi0Histogram()
void SetPHOSEMax(Float_t en)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
AliCaloTrackReader * GetReader()
Int_t GetFirstSuperModuleUsed() const
AliAnaWeights * GetWeightUtils()
void SwitchOffStudyTracksInCone()
void SetHistoHBPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALLambda0CutMin(Float_t lcut)
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnEventTriggerAtSE()
virtual void SwitchOffOwnMix()
void SetParticleTypeInCone(Int_t i)
void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffPi0TriggerDecayCorr()
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
void SwitchOffUseParametrizedTimeCut()
void SwitchOffFillOriginHisto()
void SetLocalMaximaCutE(Float_t cut)
Get year, collision type, mc/data type and period from alien global variables.
virtual void SetMinPt(Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0IMGammaCorrQA(const TString calorimeter="EMCAL", Bool_t simulation=kFALSE, TString collision="pp", TString period="", const Bool_t qaan=kTRUE, const Bool_t hadronan=kTRUE, const Bool_t calibrate=kFALSE, const Int_t minTime=-1000, const Int_t maxTime=1000, const Int_t minCen=-1, const Int_t maxCen=-1, const Int_t debugLevel=-1, const char *suffix="default")
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetNLMCut(Int_t min, Int_t max)
void SetAssocPtBinLimit(Int_t ibin, Float_t pt)
Set the list of pT limits for the of associated charged (neutral) hadrons.
void SetConstantTimeShift(Float_t shift)
void SwitchOffTMHistoFill()
void SetCaloUtils(AliCalorimeterUtils *cu)
Steering class of package CaloTrackCorrelartions.
AliAnaChargedParticles * ConfigureChargedAnalysis(TString collision, TString containerName, Bool_t simulation, Int_t year, Int_t debugLevel)
void SetTriggerPtRange(Float_t min, Float_t max)