52 const Float_t pth = 2.,
53 const Bool_t leading = kFALSE,
54 const Bool_t timecut = kFALSE,
56 const Bool_t simu = kFALSE,
57 const Bool_t exotic = kTRUE,
58 const Bool_t nonlin = kFALSE,
59 const TString trigger =
"EMC7",
60 const Bool_t tm = kTRUE,
61 const Int_t minCen = -1,
62 const Int_t maxCen = -1,
63 const Float_t deltaphicut = 0.03,
64 const Float_t deltaetacut = 0.02,
65 const Float_t tmin = -30.,
66 const Float_t tmax = 30.,
67 const Bool_t trackTcut = kFALSE,
68 const Int_t disttobad = 2,
69 const Int_t nlmMax = 20,
70 const Bool_t qaan = kFALSE,
71 const Bool_t primvtx = kTRUE,
72 const Bool_t notrackcut = kTRUE,
73 const Bool_t rdmtrigger = kFALSE,
74 const TString tag =
"",
75 const Int_t debug = -1,
76 const Bool_t print = kFALSE
83 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",
84 cone, pth, timecut , nlmMax,
calorimeter.Data(),simu, exotic, nonlin, trigger.Data(), tm, qaan, debug, minCen, maxCen );
88 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
91 ::Error(
"AddTask",
"No analysis manager to connect to.");
97 if (!mgr->GetInputEventHandler())
99 ::Error(
"AddTask",
"This task requires an input event handler");
104 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
106 Bool_t useKinematics = kFALSE;
107 useKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
112 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());
114 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);
116 if(maxCen>=0) kAnaIsoPhotonName+=Form(
"Cen%d_%d",minCen,maxCen);
118 printf(
"<<<< NAME: %s >>>>>\n",kAnaIsoPhotonName.Data());
127 maker->SetReader (
ConfigureReader (mgr->GetInputEventHandler()->GetDataType(),useKinematics,simu,
128 calorimeter,nonlin, timecut, primvtx, notrackcut,tmin,tmax,trackTcut,minCen, maxCen, debug,print));
142 maker->AddAnalysis(
ConfigurePhotonAnalysis(calorimeter,tm,deltaphicut,deltaetacut,disttobad,nlmMax,simu,debug,print), n++);
145 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,
"Photon", partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print), n++);
150 maker->AddAnalysis(
ConfigureIsolationAnalysis(calorimeter,Form(
"RandomTrigger%s",
kCalorimeter.Data()), partInCone,thresType,cone, pth,tm,leading,kFALSE,simu,debug,print), n++);
161 maker->SetAnaDebug(debug) ;
162 maker->SwitchOnHistogramsMaker() ;
163 maker->SwitchOnAODsMaker() ;
165 if(print) maker->Print(
"");
167 maker->SwitchOffDataControlHistograms();
169 printf(
"<< End Configuration of %d analysis for calorimeter %s >>\n",n, calorimeter.Data());
174 task->SetConfigFileName(
"");
175 task->SetDebugLevel(debug);
176 task->SetBranches(
"ESD:AliESDRun.,AliESDHeader");
177 task->SetAnalysisMaker(maker);
182 TString outputfile = AliAnalysisManager::GetCommonFileName();
184 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaIsoPhotonName, TList::Class(),
185 AliAnalysisManager::kOutputContainer,
186 Form(
"%s",outputfile.Data()));
188 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",kAnaIsoPhotonName.Data()), TList::Class(),
189 AliAnalysisManager::kParamContainer,
190 "AnalysisParameters.root");
195 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
197 mgr->ConnectOutput (task, 1, cout_pc);
198 mgr->ConnectOutput (task, 2, cout_cuts);
202 task->SelectCollisionCandidates(mask);
211 TString
calorimeter =
"EMCAL", Bool_t nonlin = kTRUE, Bool_t timecut = kFALSE,
212 Bool_t primvtx = kFALSE, Bool_t notrackcut = kFALSE, Float_t tmin, Float_t tmax,
213 Bool_t trackTcut = kFALSE, Float_t minCen = -1, Float_t maxCen = -1,
214 Int_t debug = -1, Bool_t print = kFALSE)
218 if (!useKinematics && inputDataType==
"AOD") useKinematics = kTRUE;
221 cout<<
"********* ACCESS KINE? "<<useKinematics<< endl;
226 else printf(
"AliCaloTrackReader::ConfigureReader() - Data not known inputData=%s\n",inputDataType.Data());
238 if(inputDataType ==
"ESD")
243 else if(inputDataType ==
"AOD")
276 printf(
"Set time cut \n");
283 printf(
"Off time cuts time cut \n");
312 if(inputDataType==
"ESD")
314 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
322 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
324 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
336 else if(inputDataType==
"AOD")
396 if(print) reader->
Print(
"");
439 printf(
"ConfigureCaloUtils() - Apply non linearity to EMCAL\n");
448 if(print) cu->
Print(
"");
457 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)
533 if(print) ana->
Print(
"");
542 TString particle=
"Photon",
548 Bool_t leading = kTRUE,
549 Bool_t multi = kFALSE, Bool_t simu = kFALSE,
550 Int_t debug = -1, Bool_t print = kFALSE)
587 printf(
"\t *** Set: R = %2.2f, Threshold %2.2f, Method %d, Neutral/Charged option %d ***\n",cone,pth,thresType,partInCone);
639 if(particle==
"Hadron" || particle.Contains(
"CTS"))
647 if(print) ic ->
Print(
"");
648 if(print) ana->
Print(
"");
685 if(print) ana->
Print(
"");
721 if(debugLevel > 0) ana->
Print(
"");
735 ana->SetDetector(detector);
741 if (detector==
"EMCAL")
744 ana->
SetPhiCut(103*TMath::DegToRad(), 157*TMath::DegToRad());
746 else if(detector==
"PHOS")
749 ana->
SetPhiCut(260*TMath::DegToRad(), 320*TMath::DegToRad());
751 else if(detector==
"CTS")
758 if(!
kData.Contains(
"delta"))
860 printf(
"CaloTrackCorr trigger EMC7\n");
861 return AliVEvent::kEMC7;
863 else if (trigger==
"INT7")
865 printf(
"CaloTrackCorr trigger INT7\n");
866 return AliVEvent::kINT7;
868 else if(trigger==
"EMC1")
870 printf(
"CaloTrackCorr trigger EMC1\n");
871 return AliVEvent::kEMC1;
873 else if(trigger==
"MB")
875 printf(
"CaloTrackCorr trigger MB\n");
876 return AliVEvent::kMB;
878 else if(trigger==
"PHOS")
880 printf(
"CaloTrackCorr trigger PHOS\n");
881 return AliVEvent::kPHI7;
883 else if(trigger==
"PHOSPb")
885 printf(
"CaloTrackCorr trigger PHOSPb\n");
886 return AliVEvent::kPHOSPb;
888 else if(trigger==
"AnyINT")
890 printf(
"CaloTrackCorr trigger AnyINT\n");
891 return AliVEvent::kAnyINT;
893 else if(trigger==
"INT")
895 printf(
"CaloTrackCorr trigger AnyINT\n");
896 return AliVEvent::kAny;
898 else if(trigger==
"EMCEGA")
900 printf(
"CaloTrackCorr trigger EMC Gamma\n");
901 return AliVEvent::kEMCEGA;
903 else if(trigger==
"EMCEJE")
905 printf(
"CaloTrackCorr trigger EMC Jet\n");
906 return AliVEvent::kEMCEJE;
908 else if(trigger==
"Central")
910 printf(
"CaloTrackCorr trigger Central\n");
911 return (AliVEvent::kCentral | AliVEvent::kMB);
913 else if(trigger==
"CentralEGA")
915 printf(
"CaloTrackCorr trigger Central+EMCEGA\n");
916 return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
918 else if(trigger==
"SemiCentral")
920 printf(
"CaloTrackCorr trigger SemiCentral\n");
921 return (AliVEvent::kSemiCentral | AliVEvent::kMB);
923 else if(trigger==
"SemiOrCentral")
925 printf(
"CaloTrackCorr trigger SemiCentral Or Central\n");
926 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 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)
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)
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
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 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 SetPHOSEMax(Float_t e)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SetEMCALEMin(Float_t e)
void SwitchOffSeveralIsolation()
virtual void SwitchOnFillPileUpHistograms()
void SetNCellCut(Int_t n)
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.
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()
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)
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)
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 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 SwitchOnLeadingOnly()
virtual void SetTrackCuts(AliESDtrackCuts *)
Track selection for correlation analysis.
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 SwitchOnUseTrackTimeCut()
void SwitchOnFillAllCellTimeHisto()
Class for PID selection with calorimeters.
void FillNOriginHistograms(Int_t n)
void SetPHOSEMin(Float_t e)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
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.
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 SetEMCALEMax(Float_t e)
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)
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)
Global bool for print option.
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.