57 const Bool_t leading = kFALSE,
58 const Bool_t timecut = kFALSE,
60 const Bool_t simu = kFALSE,
61 const Bool_t exotic = kTRUE,
62 const Bool_t nonlin = kFALSE,
65 const Int_t minCen = -1,
66 const Int_t maxCen = -1,
67 const Float_t deltaphicut = 0.03,
68 const Float_t deltaetacut = 0.02,
71 const Bool_t trackTcut = kFALSE,
72 const Int_t disttobad = 2,
73 const Int_t nlmMax = 20,
74 const Bool_t qaan = kFALSE,
75 const Bool_t primvtx = kTRUE,
76 const Bool_t notrackcut = kTRUE,
77 const Bool_t rdmtrigger = kFALSE,
80 const Bool_t print = kFALSE,
81 const Bool_t tmInCone = kTRUE,
82 const Int_t SSsmearing = 0,
83 const TString clustListName =
"",
84 const Int_t isocut = 1
91 printf(
"AddTaskIsoPhoton() - Settings: cone %2.2f, pth %2.2f, timeCut On %d, NLM max cut %d, calorimeter %s, simu %d, exotic %d, non lin %d, trigger %s, TM %d, qa %d, debug %d, centrality %d-%d\n",
92 cone, pth, timecut , nlmMax,
calorimeter.Data(),simu, exotic, nonlin, trigger.Data(), tm, qaan,
debug, minCen, maxCen );
99 ::Error(
"AddTask",
"No analysis manager to connect to.");
105 if (!mgr->GetInputEventHandler())
107 ::Error(
"AddTask",
"This task requires an input event handler");
112 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
114 Bool_t useKinematics = kFALSE;
115 useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
120 kAnaIsoPhotonName = Form(
"%s_Trig%s_TM%d_%1.3f_dB%d_R%1.1f_Pt%1.1f_%s",
calorimeter.Data(), trigger.Data(),tm,deltaphicut,disttobad,cone,pth,tag.Data());
122 kAnaIsoPhotonName = Form(
"%s_Trig%s_TM%d_%1.3f_dB%d_R%1.1f_Pt%1.1f",
calorimeter.Data(), trigger.Data(),tm,deltaphicut,disttobad,cone,pth);
124 if(maxCen>=0) kAnaIsoPhotonName+=Form(
"Cen%d_%d",minCen,maxCen);
126 printf(
"<<<< NAME: %s >>>>>\n",kAnaIsoPhotonName.Data());
135 maker->SetReader (
ConfigureReader (mgr->GetInputEventHandler()->GetDataType(),useKinematics,simu,
136 calorimeter,nonlin, timecut, primvtx, notrackcut,tmin,tmax,trackTcut,minCen, maxCen,
debug,print,SSsmearing,clustListName));
155 maker->AddAnalysis(
ConfigurePhotonAnalysis(calorimeter,tm,deltaphicut,deltaetacut,disttobad,nlmMax,simu,debug,print), n++);
158 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,
"Photon", partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print,tmInCone), n++);
163 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,Form(
"RandomTrigger%s",kCalorimeter.Data()), partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print,tmInCone), n++);
174 maker->SetAnaDebug(debug) ;
175 maker->SwitchOnHistogramsMaker() ;
176 maker->SwitchOnAODsMaker() ;
178 if(print) maker->Print(
"");
180 maker->SwitchOffDataControlHistograms();
182 printf(
"<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
187 task->SetConfigFileName(
"");
188 task->SetDebugLevel(debug);
189 task->SetBranches(
"ESD:AliESDRun.,AliESDHeader");
190 task->SetAnalysisMaker(maker);
195 TString outputfile = AliAnalysisManager::GetCommonFileName();
197 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaIsoPhotonName, TList::Class(),
198 AliAnalysisManager::kOutputContainer,
199 Form(
"%s",outputfile.Data()));
201 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",kAnaIsoPhotonName.Data()), TList::Class(),
202 AliAnalysisManager::kParamContainer,
203 "AnalysisParameters.root");
208 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
210 mgr->ConnectOutput (task, 1, cout_pc);
211 mgr->ConnectOutput (task, 2, cout_cuts);
215 task->SelectCollisionCandidates(mask);
231 if (!useKinematics && inputDataType==
"AOD") useKinematics = kTRUE;
234 cout<<
"********* ACCESS KINE? "<<useKinematics<< endl;
239 else printf(
"AliCaloTrackReader::ConfigureReader() - Data not known inputData=%s\n",inputDataType.Data());
256 else if(SSsmearing == 2)
267 if(clustListName!=
"")
291 printf(
"Set time cut \n");
298 printf(
"Off time cuts time cut \n");
327 if(inputDataType==
"ESD")
329 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
337 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
339 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
351 else if(inputDataType==
"AOD")
411 if(print) reader->
Print(
"");
454 printf(
"ConfigureCaloUtils() - Apply non linearity to EMCAL\n");
463 if(print) cu->
Print(
"");
548 if(print) ana->
Print(
"");
583 ana->
SetInputAODName(Form(
"%s%s",particle.Data(),kAnaIsoPhotonName.Data()));
603 printf(
"\t *** Set: R = %2.2f, Threshold %2.2f, Method %d, Neutral/Charged option %d ***\n",cone,pth,thresType,partInCone);
657 if(particle==
"Hadron" || particle.Contains(
"CTS"))
665 if(print) ic ->
Print(
"");
666 if(print) ana->
Print(
"");
698 if(print) ana->
Print(
"");
734 if(debugLevel > 0) ana->
Print(
"");
754 if (detector==
"EMCAL")
760 else if(detector==
"PHOS")
763 ana->
SetPhiCut(260*TMath::DegToRad(), 320*TMath::DegToRad());
765 else if(detector==
"CTS")
772 if(!kData.Contains(
"delta"))
774 ana->
SetOutputAODName(Form(
"RandomTrigger%s%s",detector.Data(),kAnaIsoPhotonName.Data()));
778 ana->
SetInputAODName(Form(
"RandomTrigger%s%s",detector.Data(),kAnaIsoPhotonName.Data()));
780 printf(
"Set RandomTrigger%s%s\n",detector.Data(),kAnaIsoPhotonName.Data());
871 printf(
"CaloTrackCorr trigger EMC7\n");
872 return AliVEvent::kEMC7;
874 else if (trigger==
"INT7")
876 printf(
"CaloTrackCorr trigger INT7\n");
877 return AliVEvent::kINT7;
879 else if(trigger==
"EMC1")
881 printf(
"CaloTrackCorr trigger EMC1\n");
882 return AliVEvent::kEMC1;
884 else if(trigger==
"MB")
886 printf(
"CaloTrackCorr trigger MB\n");
887 return AliVEvent::kMB;
889 else if(trigger==
"PHOS")
891 printf(
"CaloTrackCorr trigger PHOS\n");
892 return AliVEvent::kPHI7;
894 else if(trigger==
"PHOSPb")
896 printf(
"CaloTrackCorr trigger PHOSPb\n");
897 return AliVEvent::kPHOSPb;
899 else if(trigger==
"AnyINT")
901 printf(
"CaloTrackCorr trigger AnyINT\n");
902 return AliVEvent::kAnyINT;
904 else if(trigger==
"INT")
906 printf(
"CaloTrackCorr trigger AnyINT\n");
907 return AliVEvent::kAny;
909 else if(trigger==
"EMCEGA")
911 printf(
"CaloTrackCorr trigger EMC Gamma\n");
912 return AliVEvent::kEMCEGA;
914 else if(trigger==
"EMCEJE")
916 printf(
"CaloTrackCorr trigger EMC Jet\n");
917 return AliVEvent::kEMCEJE;
919 else if(trigger==
"Central")
921 printf(
"CaloTrackCorr trigger Central\n");
922 return (AliVEvent::kCentral | AliVEvent::kMB);
924 else if(trigger==
"CentralEGA")
926 printf(
"CaloTrackCorr trigger Central+EMCEGA\n");
927 return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
929 else if(trigger==
"SemiCentral")
931 printf(
"CaloTrackCorr trigger SemiCentral\n");
932 return (AliVEvent::kSemiCentral | AliVEvent::kMB);
934 else if(trigger==
"SemiOrCentral")
936 printf(
"CaloTrackCorr trigger SemiCentral Or Central\n");
937 return (AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kMB);
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)
void SetPhiCut(Float_t min, Float_t max)
void SwitchOnSSHistoFill()
virtual void SetMaxEnergy(Float_t e)
void SetShowerShapeSmearWidth(Float_t w)
void SetTimeCut(Double_t min, Double_t max)
AliAnaPhoton * ConfigurePhotonAnalysis(TString calorimeter="EMCAL", Bool_t tm=kFALSE, Float_t deltaphicut=0.02, Float_t deltaetacut=0.03, Int_t disttobad=0, Int_t nlmMax=2, Bool_t simu=kFALSE, Int_t debug=-1, Bool_t print=kFALSE)
void ana(Int_t mode=mGRID)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOffUseEMCALTimeCut()
void SwitchOffSSHistoFill()
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
void SwitchOnFillAllTrackMatchingHistogram()
void SwitchOnTMHistoFill()
void SwitchOnRejectNoTrackEvents()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
Class with utils to perform Isolation Cuts.
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
void SwitchOffClusterRecalculation()
virtual void SwitchOnDataMC()
void SetConeSize(Float_t r)
void SetPtFraction(Float_t pt)
void FillNPrimaryHistograms(Int_t n)
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetSmearingFunction(Int_t smfu)
virtual void SetInputAODName(TString name)
AliAnaChargedParticles * ConfigureChargedAnalysis(Bool_t simulation, Int_t debugLevel)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
virtual AliIsolationCut * GetIsolationCut()
void SetHistoRangeAndNBins(AliHistogramRanges *histoRanges, TString calorimeter="EMCAL")
void SwitchOffUseTrackDCACut()
void SetEMCALEMin(Float_t en)
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
void SwitchOffPHOSCells()
TString kCalorimeter
Global debug level.
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 SetNCones(Int_t ncs)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetSumPtThreshold(Float_t s)
AliAnalysisTaskCaloTrackCorrelation * AddTaskIsoPhoton(const Float_t cone=0.4, const Float_t pth=2., const Bool_t leading=kFALSE, const Bool_t timecut=kFALSE, const TString calorimeter="EMCAL", const Bool_t simu=kFALSE, const Bool_t exotic=kTRUE, const Bool_t nonlin=kFALSE, const TString trigger="EMC7", const Bool_t tm=kTRUE, const Int_t minCen=-1, const Int_t maxCen=-1, const Float_t deltaphicut=0.03, const Float_t deltaetacut=0.02, const Float_t tmin=-30., const Float_t tmax=30., const Bool_t trackTcut=kFALSE, const Int_t disttobad=2, const Int_t nlmMax=20, const Bool_t qaan=kFALSE, const Bool_t primvtx=kTRUE, const Bool_t notrackcut=kTRUE, const Bool_t rdmtrigger=kFALSE, const TString tag="", const Int_t debug=-1, const Bool_t print=kFALSE, const Bool_t tmInCone=kTRUE, const Int_t SSsmearing=0, const TString clustListName="", const Int_t isocut=1)
Global bool for print option.
void SwitchOffFillAllPositionHistogram2()
Class for the Calorimeter QA analysis.
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOffSeveralIsolation()
virtual void SwitchOnFillPileUpHistograms()
void SetNCellCut(Int_t n)
AliCaloTrackReader * ConfigureReader(TString inputDataType="AOD", Bool_t useKinematics=kFALSE, Bool_t simu=kFALSE, TString calorimeter="EMCAL", Bool_t nonlin=kTRUE, Bool_t timecut=kFALSE, Bool_t primvtx=kFALSE, Bool_t notrackcut=kFALSE, Float_t tmin, Float_t tmax, Bool_t trackTcut=kFALSE, Float_t minCen=-1, Float_t maxCen=-1, Int_t debug=-1, Bool_t print=kFALSE, Int_t SSsmearing=0, TString clustListName="")
void SetTriggerDetector(TString det)
Set the detrimeter for the analysis.
void SetPtFractions(Int_t i, Float_t pt)
void SwitchOffPileUpEventRejection()
const TString calorimeter
void SwitchOffV0ANDSelection()
void SetNPtThresFrac(Int_t npt)
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.
virtual void SwitchOffDataMC()
void SwitchOnSeveralIsolation()
void SetCTSPtMin(Float_t pt)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetEMCALDPhiCut(Float_t dcut)
virtual void SetOutputAODName(TString name)
void SwitchOffRecalculateClusterTrackMatching()
AliCalorimeterUtils * ConfigureCaloUtils(Bool_t nonlin=kTRUE, Bool_t exotic=kTRUE, Bool_t simu=kFALSE, Bool_t timecut=kFALSE, Int_t debug=-1, Bool_t print=kFALSE)
void SwitchOffLeadingOnly()
void SetICMethod(Int_t i)
void SwitchOffVertexBCEventSelection()
virtual void SetCalorimeter(TString calo)
Set the calorimeter for the analysis. A string.
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
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 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()
TString kData
Global setting of calorimeter of photon.
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTrackStatus(ULong_t bit)
void SwitchOnUseEMCALTimeCut()
UInt_t SetTriggerMaskFromName(TString trigger)
Filter EMCal/PHOS clusters for photon analysis.
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliAnaParticleIsolation * ConfigureIsolationAnalysis(TString calorimeter="EMCAL", 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 leading=kTRUE, Bool_t multi=kFALSE, Bool_t simu=kFALSE, Int_t debug=-1, Bool_t print=kFALSE, Bool_t tmInCone=kTRUE)
void SetConeSizes(Int_t i, Float_t r)
void SetEtaCut(Float_t min, Float_t max)
AliAnaRandomTrigger * ConfigureRandomTriggerAnalysis(TString detector="")
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetEMCALClusterListName(TString name)
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 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)
void SwitchOffFillAllPositionHistogram()
void SwitchOffFillVertexBC0Histograms()
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffUseTrackTimeCut()
virtual AliCaloPID * GetCaloPID()
virtual void SwitchOnFiducialCut()
void SwitchOffTriggerPatchMatching()
virtual void SetZvertexCut(Float_t zcut=10.)
void SwitchOffRejectNoTrackEvents()
void SwitchOffBadChannelsRemoval()
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOffCorrelation()
void SwitchOffReIsolation()
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
virtual void SetMinEnergy(Float_t e)
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
virtual void SetEventPlaneMethod(TString m)
void SetPHOSEMin(Float_t en)
void SwitchOnLeadingOnly()
virtual void SetTrackCuts(AliESDtrackCuts *)
Track selection for correlation analysis.
void SetTrackMatchedClusterRejectionInCone(Bool_t tm)
virtual void SwitchOffFiducialCut()
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
void SwitchOffWriteDeltaAOD()
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 SwitchOnClusterELinearityCorrection()
void SetTrackTimeCut(Double_t a, Double_t b)
void SetEMCALTimeCut(Double_t a, Double_t b)
Gerenate a random trigger.
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.
Int_t kDebug
Global name to be composed of the settings, used to set the AOD branch name.
void SwitchOffStudyBadClusters()
void SwitchOffRecalculateVertexBC()
void SwitchOffFillAllTH3Histogram()
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)
void SwitchOnUseTrackTimeCut()
void SwitchOnFillAllCellTimeHisto()
Class for PID selection with calorimeters.
void FillNOriginHistograms(Int_t n)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetPHOSEMax(Float_t en)
Bool_t kPrint
Global string for data type.
void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class with utils specific to calorimeter clusters/cells.
void SwitchOnShowerShapeSmearing()
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString calorimeter="EMCAL", Bool_t simu=kFALSE, Int_t debug=-1, Bool_t print=kFALSE)
void SwitchOffPrimaryVertexSelection()
virtual void SetMaxPt(Float_t pt)
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 ConfigureMC(AliAnaCaloTrackCorrBaseClass *ana, Bool_t simu=kFALSE)
void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALDEtaCut(Float_t dcut)
void SwitchOffUseParametrizedTimeCut()
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)
TString kAnaIsoPhotonName
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetNLMCut(Int_t min, Int_t max)
void SwitchOffTMHistoFill()
Steering class of package CaloTrackCorrelartions.