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,
79 const Int_t debug = -1,
80 const Bool_t print = kFALSE,
81 const Bool_t tmInCone = kTRUE,
82 const Int_t SSsmearing = 0,
83 const TString clustListName =
""
90 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",
91 cone, pth, timecut , nlmMax,
calorimeter.Data(),simu, exotic, nonlin, trigger.Data(), tm, qaan, debug, minCen, maxCen );
98 ::Error(
"AddTask",
"No analysis manager to connect to.");
104 if (!mgr->GetInputEventHandler())
106 ::Error(
"AddTask",
"This task requires an input event handler");
111 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
113 Bool_t useKinematics = kFALSE;
114 useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
119 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());
121 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);
123 if(maxCen>=0) kAnaIsoPhotonName+=Form(
"Cen%d_%d",minCen,maxCen);
125 printf(
"<<<< NAME: %s >>>>>\n",kAnaIsoPhotonName.Data());
134 maker->SetReader (
ConfigureReader (mgr->GetInputEventHandler()->GetDataType(),useKinematics,simu,
135 calorimeter,nonlin, timecut, primvtx, notrackcut,tmin,tmax,trackTcut,minCen, maxCen, debug,print,SSsmearing,clustListName));
149 maker->AddAnalysis(
ConfigurePhotonAnalysis(calorimeter,tm,deltaphicut,deltaetacut,disttobad,nlmMax,simu,debug,print), n++);
152 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,
"Photon", partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print,tmInCone), n++);
157 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,Form(
"RandomTrigger%s",kCalorimeter.Data()), partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print,tmInCone), n++);
168 maker->SetAnaDebug(debug) ;
169 maker->SwitchOnHistogramsMaker() ;
170 maker->SwitchOnAODsMaker() ;
172 if(print) maker->Print(
"");
174 maker->SwitchOffDataControlHistograms();
176 printf(
"<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
181 task->SetConfigFileName(
"");
182 task->SetDebugLevel(debug);
183 task->SetBranches(
"ESD:AliESDRun.,AliESDHeader");
184 task->SetAnalysisMaker(maker);
189 TString outputfile = AliAnalysisManager::GetCommonFileName();
191 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaIsoPhotonName, TList::Class(),
192 AliAnalysisManager::kOutputContainer,
193 Form(
"%s",outputfile.Data()));
195 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",kAnaIsoPhotonName.Data()), TList::Class(),
196 AliAnalysisManager::kParamContainer,
197 "AnalysisParameters.root");
202 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
204 mgr->ConnectOutput (task, 1, cout_pc);
205 mgr->ConnectOutput (task, 2, cout_cuts);
209 task->SelectCollisionCandidates(mask);
225 if (!useKinematics && inputDataType==
"AOD") useKinematics = kTRUE;
228 cout<<
"********* ACCESS KINE? "<<useKinematics<< endl;
233 else printf(
"AliCaloTrackReader::ConfigureReader() - Data not known inputData=%s\n",inputDataType.Data());
250 else if(SSsmearing == 2)
259 if(inputDataType ==
"ESD")
264 else if(inputDataType ==
"AOD")
275 if(clustListName!=
"")
299 printf(
"Set time cut \n");
306 printf(
"Off time cuts time cut \n");
335 if(inputDataType==
"ESD")
337 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
345 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
347 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
359 else if(inputDataType==
"AOD")
419 if(print) reader->
Print(
"");
462 printf(
"ConfigureCaloUtils() - Apply non linearity to EMCAL\n");
471 if(print) cu->
Print(
"");
556 if(print) ana->
Print(
"");
591 ana->
SetInputAODName(Form(
"%s%s",particle.Data(),kAnaIsoPhotonName.Data()));
611 printf(
"\t *** Set: R = %2.2f, Threshold %2.2f, Method %d, Neutral/Charged option %d ***\n",cone,pth,thresType,partInCone);
665 if(particle==
"Hadron" || particle.Contains(
"CTS"))
673 if(print) ic ->
Print(
"");
674 if(print) ana->
Print(
"");
711 if(print) ana->
Print(
"");
747 if(debugLevel > 0) ana->
Print(
"");
761 ana->SetDetector(detector);
767 if (detector==
"EMCAL")
773 else if(detector==
"PHOS")
776 ana->
SetPhiCut(260*TMath::DegToRad(), 320*TMath::DegToRad());
778 else if(detector==
"CTS")
785 if(!kData.Contains(
"delta"))
787 ana->
SetOutputAODName(Form(
"RandomTrigger%s%s",detector.Data(),kAnaIsoPhotonName.Data()));
791 ana->
SetInputAODName(Form(
"RandomTrigger%s%s",detector.Data(),kAnaIsoPhotonName.Data()));
793 printf(
"Set RandomTrigger%s%s\n",detector.Data(),kAnaIsoPhotonName.Data());
887 printf(
"CaloTrackCorr trigger EMC7\n");
888 return AliVEvent::kEMC7;
890 else if (trigger==
"INT7")
892 printf(
"CaloTrackCorr trigger INT7\n");
893 return AliVEvent::kINT7;
895 else if(trigger==
"EMC1")
897 printf(
"CaloTrackCorr trigger EMC1\n");
898 return AliVEvent::kEMC1;
900 else if(trigger==
"MB")
902 printf(
"CaloTrackCorr trigger MB\n");
903 return AliVEvent::kMB;
905 else if(trigger==
"PHOS")
907 printf(
"CaloTrackCorr trigger PHOS\n");
908 return AliVEvent::kPHI7;
910 else if(trigger==
"PHOSPb")
912 printf(
"CaloTrackCorr trigger PHOSPb\n");
913 return AliVEvent::kPHOSPb;
915 else if(trigger==
"AnyINT")
917 printf(
"CaloTrackCorr trigger AnyINT\n");
918 return AliVEvent::kAnyINT;
920 else if(trigger==
"INT")
922 printf(
"CaloTrackCorr trigger AnyINT\n");
923 return AliVEvent::kAny;
925 else if(trigger==
"EMCEGA")
927 printf(
"CaloTrackCorr trigger EMC Gamma\n");
928 return AliVEvent::kEMCEGA;
930 else if(trigger==
"EMCEJE")
932 printf(
"CaloTrackCorr trigger EMC Jet\n");
933 return AliVEvent::kEMCEJE;
935 else if(trigger==
"Central")
937 printf(
"CaloTrackCorr trigger Central\n");
938 return (AliVEvent::kCentral | AliVEvent::kMB);
940 else if(trigger==
"CentralEGA")
942 printf(
"CaloTrackCorr trigger Central+EMCEGA\n");
943 return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
945 else if(trigger==
"SemiCentral")
947 printf(
"CaloTrackCorr trigger SemiCentral\n");
948 return (AliVEvent::kSemiCentral | AliVEvent::kMB);
950 else if(trigger==
"SemiOrCentral")
952 printf(
"CaloTrackCorr trigger SemiCentral Or Central\n");
953 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 SwitchOffStudyWeight()
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 SwitchOffStudyClustersAsymmetry()
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)
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
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)
void SwitchOffFillAllPositionHistogram2()
Class for the Calorimeter QA analysis.
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnAODMCParticles()
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 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.
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="")
Global bool for print option.
void SwitchOffAODMCParticles()
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()
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.
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)
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.