52 const Int_t maxNLMcut = 2,
53 const Bool_t timecut = kFALSE,
55 const Bool_t simulation = kFALSE,
56 const Bool_t eventsel = kFALSE,
57 const Bool_t exotic = kTRUE,
58 const Bool_t nonlin = kFALSE,
61 const TString firedTrigger =
"EG1",
62 const TString clustersArray =
"V1",
65 const Int_t minCen = -1,
66 const Int_t maxCen = -1,
67 const TString jetBranchName =
"clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00",
68 const TString jetBkgBranchName =
"jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00",
70 const Float_t minDeltaPhi = 1.5,
71 const Float_t maxDeltaPhi = 4.5,
74 const Int_t debug = -1,
75 const Bool_t printSettings = kFALSE,
83 ::Error(
"AddTask",
"No analysis manager to connect to.");
89 if (!mgr->GetInputEventHandler())
91 ::Error(
"AddTask",
"This task requires an input event handler");
96 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
99 TString deltaAODJetName =
"AliAOD.Jets.root";
100 if(deltaAODJetName.Length()!=0)
104 mgr->RegisterExtraFile(deltaAODJetName.Data());
105 cout<<
"Jet file registered "<<endl;
106 cout<<
"Extra files: "<<mgr->GetExtraFiles()<<endl;
109 Bool_t useKinematics = kFALSE;
110 useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
116 kGammaJetCorrelationName = Form(
"%s_Trig%s_Fired%s_Cl%s_TM%d_l02%1.2f",
calorimeter.Data(), trigger.Data(),firedTrigger.Data(),clustersArray.Data(),tm,maxLambda0Cut);
118 if(collision==
"PbPb" && maxCen>=0) kGammaJetCorrelationName+=Form(
"Cen%d_%d",minCen,maxCen);
120 printf(
"<<<< NAME: %s >>>>>\n",kGammaJetCorrelationName.Data());
125 printf(
"SCALE FACTOR %e\n",scaleFactor);
126 maker->SetScaleFactor(scaleFactor);
129 maker->SetReader (
ConfigureReader(mgr->GetInputEventHandler()->GetDataType(),
calorimeter,useKinematics,simulation,eventsel,nonlin,timecut,collision,trigger,firedTrigger,clustersArray,jetBranchName,jetBkgBranchName,mix,minCen,maxCen,debug,printSettings) );
130 maker->SetCaloUtils(
ConfigureCaloUtils(clustersArray,collision,nonlin,exotic,simulation,timecut,debug,printSettings));
142 maker->AddAnalysis(
ConfigureIsolationAnalysis(
calorimeter,collision,
"Photon", partInCone,thresType, isoCone, isoPth,tm,kFALSE,simulation,debug,printSettings), n++);
143 maker->AddAnalysis(
ConfigurePhotonJetAnalysis(
calorimeter,isoCone,jetMinPt,minDeltaPhi,maxDeltaPhi,minPtRatio,maxPtRatio,simulation,debug,printSettings), n++);
145 maker->SetAnaDebug(debug) ;
146 maker->SwitchOnHistogramsMaker() ;
150 if(printSettings) maker->Print(
"");
152 printf(
"<< End Configuration of %d analysis for calorimeter %s >>\n",n,
calorimeter.Data());
156 task->SetConfigFileName(
"");
157 task->SetDebugLevel(debug);
158 task->SetBranches(
"ESD:AliESDRun.,AliESDHeader");
159 task->SetAnalysisMaker(maker);
165 TString outputfile = AliAnalysisManager::GetCommonFileName();
167 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kGammaJetCorrelationName, TList::Class(),
168 AliAnalysisManager::kOutputContainer,
169 Form(
"%s",outputfile.Data()));
171 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",kGammaJetCorrelationName.Data()), TList::Class(),
172 AliAnalysisManager::kParamContainer,
173 "AnalysisParameters.root");
178 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
181 mgr->ConnectOutput (task, 1, cout_pc);
182 mgr->ConnectOutput (task, 2, cout_cuts);
187 task->SelectCollisionCandidates(mask);
208 if (!useKinematics && inputDataType==
"AOD") useKinematics = kTRUE;
211 cout<<
"********* ACCESS KINE? "<<useKinematics<< endl;
218 else printf(
"AliCaloTrackReader::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
243 if(inputDataType ==
"ESD"){
247 else if(inputDataType ==
"AOD"){
277 if(jetBkgBranchName.Length()!=0) {
299 printf(
"Set time cut \n");
306 printf(
"Off time cuts time cut \n");
361 if(inputDataType==
"ESD")
363 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
365 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
367 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
376 else if(inputDataType==
"AOD")
386 if(clustersArray ==
"" && !useTender)
388 printf(
"**************** Standard EMCAL clusters branch analysis **************** \n");
394 printf(
"**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
425 if(collision ==
"pPb" && trigger==
"EMCEGA") {
435 reader->SetEventTriggerMaks(mask);
437 reader->SetMixEventTriggerMaks(AliVEvent::kAnyINT);
439 printf(
"---Trigger selection done in AliCaloTrackReader!!!\n");
459 if(collision==
"PbPb")
470 if(printSettings) reader->
Print(
"");
491 if(collision==
"pp" || collision==
"pPb")
529 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
540 recou->SetExoticCellDiffTimeCut(1e10);
541 if(timecut) recou->SetExoticCellDiffTimeCut(50.);
557 printf(
"*** SET cluster non linearity correction ***\n");
562 printf(
"ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->
IsRecalibrationOn());
570 if(printSettings) cu->
Print(
"");
653 ana->
SetInputAODName(Form(
"Photon%s",kGammaJetCorrelationName.Data()));
666 if(printSettings) ana->
Print(
"");
684 Bool_t printSettings = kFALSE)
695 if(particle==
"Hadron" || particle.Contains(
"CTS"))
707 ana->
SetInputAODName(Form(
"%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
708 ana->
SetAODObjArrayName(Form(
"IC%s_%s",particle.Data(),kGammaJetCorrelationName.Data()));
725 if(cone >0 && pth > 0)
743 if(collision==
"PbPb")
793 if(particle==
"Hadron" || particle.Contains(
"CTS"))
801 if(printSettings) ic ->
Print(
"");
802 if(printSettings) ana->
Print(
"");
885 printf(
"CaloTrackCorr trigger EMC7\n");
886 return AliVEvent::kEMC7;
888 else if (trigger==
"INT7")
890 printf(
"CaloTrackCorr trigger INT7\n");
891 return AliVEvent::kINT7;
893 else if(trigger==
"EMC1")
895 printf(
"CaloTrackCorr trigger EMC1\n");
896 return AliVEvent::kEMC1;
898 else if(trigger==
"MB")
900 printf(
"CaloTrackCorr trigger MB\n");
901 return AliVEvent::kMB;
903 else if(trigger==
"PHOS")
905 printf(
"CaloTrackCorr trigger PHOS\n");
906 return AliVEvent::kPHI7;
908 else if(trigger==
"PHOSPb")
910 printf(
"CaloTrackCorr trigger PHOSPb\n");
911 return AliVEvent::kPHOSPb;
913 else if(trigger==
"AnyINT")
915 printf(
"CaloTrackCorr trigger AnyINT\n");
916 return AliVEvent::kAnyINT;
918 else if(trigger==
"INT")
920 printf(
"CaloTrackCorr trigger AnyINT\n");
921 return AliVEvent::kAny;
923 else if(trigger==
"EMCEGA")
925 printf(
"CaloTrackCorr trigger EMC Gamma\n");
926 return AliVEvent::kEMCEGA;
928 else if(trigger==
"EMCEJE")
930 printf(
"CaloTrackCorr trigger EMC Jet\n");
931 return AliVEvent::kEMCEJE;
933 else if(trigger==
"Central")
935 printf(
"CaloTrackCorr trigger Central\n");
936 return AliVEvent::kCentral;
938 else if(trigger==
"CentralEGA")
940 printf(
"CaloTrackCorr trigger Central+EMCEGA\n");
941 return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
943 else if(trigger==
"SemiCentral")
945 printf(
"CaloTrackCorr trigger SemiCentral\n");
946 return AliVEvent::kSemiCentral;
948 else if(trigger==
"SemiOrCentral")
950 printf(
"CaloTrackCorr trigger SemiCentral Or Central\n");
951 return (AliVEvent::kSemiCentral | AliVEvent::kCentral);
953 else if(trigger==
"SemiOrCentralOrAnyINT")
955 printf(
"CaloTrackCorr trigger SemiCentral Or Central Or AnyINT\n");
956 return (AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kAnyINT);
972 ana->
SetInputAODName(Form(
"%s%s",particle.Data(),kGammaJetCorrelationName.Data()));
void SwitchOnBadChannelsRemoval()
void SetSumPtThresholds(Int_t i, Float_t pt)
void SetPtThreshold(Float_t pt)
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
virtual void SetMaxEnergy(Float_t e)
void ana(Int_t mode=mGRID)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOffUseEMCALTimeCut()
void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
virtual void SetInputBackgroundJetBranchName(TString name)
void SwitchOffSSHistoFill()
void SwitchOnMostOpposite()
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
void SwitchOffBackgroundJets()
void SwitchOnTMHistoFill()
virtual void SwitchOnFiducialCut()
void SwitchOnRejectNoTrackEvents()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
AliCaloTrackReader * ConfigureReader(TString inputDataType="AOD", TString calorimeter="EMCAL", Bool_t useKinematics=kFALSE, Bool_t simulation=kFALSE, Bool_t eventsel=kFALSE, Bool_t nonlin=kTRUE, Bool_t timecut=kFALSE, TString collision="pp", TString trigger="MB", TString firedTrigger="EG1", TString clustersArray="V1", TString jetBranchName="jets", TString jetBkgBranchName="jets", Bool_t mix=kFALSE, Float_t minCen=-1, Float_t maxCen=-1, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Class with utils to perform Isolation Cuts.
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
void SwitchOnV0ANDSelection()
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SwitchOffClusterRecalculation()
virtual void SwitchOnDataMC()
void SetConeSize(Float_t r)
void SwitchOffBackgroundSubtractionGamma()
void SetPtFraction(Float_t pt)
void FillNPrimaryHistograms(Int_t n)
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter="EMCAL")
void SwitchOffClusterPlot()
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnPileUpEventRejection()
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual void SetInputAODName(TString name)
AliAnalysisTaskCaloTrackCorrelation * AddTaskGammaJetCorrelation(const Float_t isoCone=0.4, const Float_t isoPth=0.5, const Double_t maxLambda0Cut=0.5, const Int_t maxNLMcut=2, const Bool_t timecut=kFALSE, const TString calorimeter="EMCAL", const Bool_t simulation=kFALSE, const Bool_t eventsel=kFALSE, const Bool_t exotic=kTRUE, const Bool_t nonlin=kFALSE, const TString collision="pp", const TString trigger="MB", const TString firedTrigger="EG1", const TString clustersArray="V1", const Bool_t mix=kTRUE, const Bool_t tm=kTRUE, const Int_t minCen=-1, const Int_t maxCen=-1, const TString jetBranchName="clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00", const TString jetBkgBranchName="jeteventbackground_clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00", const Float_t jetMinPt=0, const Float_t minDeltaPhi=1.5, const Float_t maxDeltaPhi=4.5, const Float_t minPtRatio=0, const Float_t maxPtRatio=5, const Int_t debug=-1, const Bool_t printSettings=kFALSE, const Double_t scaleFactor=-1)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
virtual AliIsolationCut * GetIsolationCut()
void SetEMCALEMin(Float_t en)
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
void SwitchOffTMHistoFill()
void SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
virtual void SetDebug(Int_t d)
virtual void SetOutputAODClassName(TString name)
void SwitchOnNonStandardJets()
void SetNCones(Int_t ncs)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetSumPtThreshold(Float_t s)
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnAODMCParticles()
void SwitchOnRunDepCorrection()
void SetLocalMaximaCutEDiff(Float_t c)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOffSeveralIsolation()
void SetNCellCut(Int_t n)
void SetMakeCorrelationInHistoMaker(Bool_t make)
void SetConeSize(Float_t cone)
void SetPtFractions(Int_t i, Float_t pt)
void SwitchOffPileUpEventRejection()
const TString calorimeter
void SwitchOnRecalibration()
void SwitchOffV0ANDSelection()
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
void SetNPtThresFrac(Int_t npt)
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString calorimeter="EMCAL", TString collision="pp", TString particle="Photon", Int_t partInCone=AliIsolationCut::kOnlyCharged, Int_t thresType=AliIsolationCut::kSumPtFracIC, Float_t cone=0.3, Float_t pth=0.3, Bool_t tm=kFALSE, Bool_t multi=kFALSE, Bool_t simulation=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
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 SwitchOffAODMCParticles()
virtual void SwitchOffDataMC()
void SwitchOffEventTriggerAtSE()
void SwitchOnSeveralIsolation()
void SetCTSPtMin(Float_t pt)
void SetPHOSRCut(Float_t rcut)
void SetEMCALDPhiCut(Float_t dcut)
void SetJetMinPt(Double_t minpt)
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
void SetICMethod(Int_t i)
void SetJetConeSize(Double_t cone)
void SwitchOffVertexBCEventSelection()
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
Base class for CaloTrackCorr analysis algorithms.
void SetGammaConeSize(Float_t cone)
void SwitchOffTrackMatchRejection()
void SwitchOnSaveGJTree()
void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetHistoPOverERangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual AliFiducialCut * GetFiducialCut()
virtual void SwitchOffFillPileUpHistograms()
virtual AliFiducialCut * GetFiducialCut()
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 AliHistogramRanges * GetHistogramRanges()
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTrackStatus(ULong_t bit)
void SwitchOnUseEMCALTimeCut()
AliCalorimeterUtils * ConfigureCaloUtils(TString clustersArray="V1", TString collision="pp", Bool_t nonlin=kTRUE, Bool_t exotic=kTRUE, Bool_t simulation=kFALSE, Bool_t timecut=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
Bool_t IsBadChannelsRemovalSwitchedOn() const
Filter EMCal/PHOS clusters for photon analysis.
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetConeSizes(Int_t i, Float_t r)
void SetPtThresholdInCone(Float_t pt)
void SetJetAreaFraction(Double_t areafr)
AliAnaParticleJetFinderCorrelation * ConfigurePhotonJetAnalysis(TString calorimeter="EMCAL", Float_t gammaConeSize=0.3, Float_t jetMinPt=0, Float_t minDeltaPhi=1.5, Float_t maxDeltaPhi=4.5, Float_t minPtRatio=0, Float_t maxPtRatio=5, Bool_t simulation=kFALSE, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SwitchOnBackgroundJetFromReader()
TString kGammaJetCorrelationName
Global name to be composed of the settings, used to set the AOD branch name.
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
virtual void SwitchOnCaloPID()
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 SwitchOffBadTriggerEventsRemoval()
void SetEMCALClusterListName(TString &name)
void SwitchOnCorrectClusterLinearity()
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffUseTrackTimeCut()
virtual AliCaloPID * GetCaloPID()
void SelectIsolated(Bool_t select)
virtual void SwitchOnFiducialCut()
void SwitchOffTriggerPatchMatching()
virtual void SetZvertexCut(Float_t zcut=10.)
void SwitchOffBadChannelsRemoval()
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOnClusterRecalculation()
void SwitchOffReIsolation()
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
virtual void SetMinEnergy(Float_t e)
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 SetPHOSDispersionCut(Float_t dcut)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SetTrackCuts(AliESDtrackCuts *)
void SwitchOnBackgroundJets()
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
Select clusters/tracks with low particle environment in their vecinity, isolated within a cone...
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter="EMCAL", Bool_t tm=kFALSE, Bool_t simulation=kFALSE, Double_t maxLambda0Cut=0.5, Int_t maxNLMcut=2, Int_t debug=-1, Bool_t printSettings=kFALSE)
void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnClusterELinearityCorrection()
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
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 SwitchOffLoadOwnPHOSGeometryMatrices()
void SwitchOffRecalculateVertexBC()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
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)
Class for PID selection with calorimeters.
void FillNOriginHistograms(Int_t n)
void SetFiredTriggerClassName(TString name)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetPHOSEMax(Float_t en)
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
void UseJetRefTracks(Bool_t use)
virtual void SetInputNonStandardJetBranchName(TString name)
void SetEMCALLambda0CutMin(Float_t lcut)
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SwitchOffFiducialCut()
void SwitchOnEventTriggerAtSE()
void SetParticleTypeInCone(Int_t i)
void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
void SwitchOffUseParametrizedTimeCut()
void SetLocalMaximaCutE(Float_t cut)
void SetPtThresholds(Int_t i, Float_t pt)
virtual void SetMinPt(Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
UInt_t SetTriggerMaskFromName(TString trigger)
void ConfigureMC(AliAnaCaloTrackCorrBaseClass *ana, Bool_t simulation=kFALSE)
void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
void SetNLMCut(Int_t min, Int_t max)
void SwitchOffTMHistoFill()
Steering class of package CaloTrackCorrelartions.