39 Bool_t simulation = kFALSE,
43 Bool_t rejectEMCTrig = kFALSE,
44 Bool_t muonCaloPass = kFALSE,
54 Bool_t printSettings = kFALSE,
61 printf(
"Passed settings:\n calorimeter <%s>, simulation <%d>, year <%d>,\n col <%s>, trigger <%s>, reject EMC <%d> clustersArray <%s>, tender <%d>, non linearity <%d>\n shshMax <%2.2f>, tm %d, minCen %d, maxCen %d, mixOn <%d>,\n outputfile <%s>, printSettings <%d>, debug <%d>\n",
62 calorimeter.Data(),simulation,year,col.Data(),trigger.Data(), rejectEMCTrig, clustersArray.Data(),tender, nonLinOn, shshMax,tm,
63 minCen,maxCen,mixOn,outputfile.Data(),printSettings,
debug);
68 ::Error(
"AddTask",
"No analysis manager to connect to.");
74 if (!mgr->GetInputEventHandler())
76 ::Error(
"AddTask",
"This task requires an input event handler");
81 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
85 kAnaPi0 = Form(
"Pi0_%s_Trig%s_Col_%s_Year%d_Cl%s_Ten%d_TM%d_M02_%1.2f_Mix%d",
86 calorimeter.Data(),trigger.Data(),col.Data(),year,clustersArray.Data(),tender,
89 if(col==
"PbPb" && maxCen>=0) kAnaPi0+=Form(
"Cen%d_%d",minCen,maxCen);
91 printf(
"<<<< NAME: %s >>>>>\n",kAnaPi0.Data());
98 maker->SetReader (
ConfigureReader (col,simulation,clustersArray,tender,
calorimeter,nonLinOn,trigger,rejectEMCTrig,minCen,maxCen,printSettings,
debug) );
99 maker->SetCaloUtils(
ConfigureCaloUtils(col,simulation,clustersArray,tender,nonLinOn,year, printSettings,
debug) );
103 maker->GetReader()->SwitchOffPrimaryVertexSelection();
104 maker->GetReader()->SwitchOffRejectNoTrackEvents();
110 maker->GetReader()->SwitchOffUseEMCALTimeCut();
111 maker->GetReader()->SetEMCALTimeCut(-1000,1000);
112 maker->GetCaloUtils()->SwitchOffRunDepCorrection();
126 printf(
"AliAnaPi0: EMCal-EMCal invariant mass\n");
127 maker->AddAnalysis(
ConfigurePi0Analysis (col, simulation,
"EMCAL", kFALSE, year, tm, mixOn , printSettings,
debug), n++);
138 printf(
"AliAnaPi0: PHOS-PHOS invariant mass\n");
147 printf(
"AliAnaPi0: DCal-PHOS invariant mass\n");
149 printf(
"AliAnaPi0: PHOS-DCal invariant mass\n");
155 maker->SetAnaDebug(
debug) ;
157 maker->SwitchOnHistogramsMaker() ;
158 maker->SwitchOnAODsMaker() ;
160 maker->SwitchOffDataControlHistograms();
161 if(rejectEMCTrig) maker->SwitchOnDataControlHistograms();
174 maker->GetReader()->GetWeightUtils()->SwitchOnMCCrossSectionHistoFill();
177 maker->SwitchOnPtHardHistogram();
180 if(printSettings) maker->Print(
"");
182 printf(
"<< End Configuration of %d analysis for calorimeter %s >>\n",n,
calorimeter.Data());
188 task->SetDebugLevel(
debug);
193 task->SetAnalysisMaker(maker);
199 if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
201 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(kAnaPi0, TList::Class(),
202 AliAnalysisManager::kOutputContainer,
203 Form(
"%s",outputfile.Data()));
205 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",kAnaPi0.Data()), TList::Class(),
206 AliAnalysisManager::kParamContainer,
207 "AnalysisParameters.root");
212 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
214 mgr->ConnectOutput (task, 1, cout_pc);
215 mgr->ConnectOutput (task, 2, cout_cuts);
220 task->SelectCollisionCandidates(mask);
238 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
243 else printf(
"AliCaloTrackReader::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
318 if(inputDataType==
"ESD")
320 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
325 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
327 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
332 else if(inputDataType==
"AOD")
346 if(clustersArray ==
"" && !tender)
348 printf(
"**************** Standard EMCAL clusters branch analysis **************** \n");
354 printf(
"**************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
376 if(calorimeter.Contains(
"EMCAL"))
382 if(calorimeter.Contains(
"PHOS"))
399 if( rejectEMCTrig && !simulation )
401 printf(
"=== Remove bad triggers === \n");
422 if(clustersArray !=
"" || tender)
424 printf(
"Trigger cluster calibration OFF\n");
449 if(printSettings) reader->
Print(
"");
477 if(kAnaPi0.Contains(
"_PHOS_") && !kAnaPi0.Contains(
"EMCAL") && !kAnaPi0.Contains(
"Both"))
509 Bool_t calibEner = kFALSE;
510 Bool_t calibTime = kFALSE;
521 if (year > 2014) calibTime = kFALSE;
533 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
542 if( calibTime ) recou->SetExoticCellDiffTimeCut(200);
546 printf(
"ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->
IsRecalibrationOn());
552 if(printSettings) cu->
Print(
"");
585 if(calorimeter ==
"PHOS")
614 if(calorimeter==
"EMCAL")
630 ana->
SetOutputAODName(Form(
"Photon_%s_%s",calorimeter.Data(), kAnaPi0.Data()));
661 ana->
SetInputAODName(Form(
"Photon_%s_%s",calorimeter.Data(),kAnaPi0.Data()));
686 if (calorimeter ==
"EMCAL" )
705 else if(col ==
"PbPb")
740 if(printSettings) ana->
Print(
"");
763 if(calorimeter==
"EMCAL")
771 else if ( year < 2014 )
786 else if(calorimeter==
"PHOS")
791 else if(calorimeter==
"CTS")
851 else if(year == 2012 ||
870 if(printSettings) ana->
Print(
"");
883 printf(
"CaloTrackCorr trigger EMC7\n");
884 return AliVEvent::kEMC7;
886 else if (trigger==
"INT7")
888 printf(
"CaloTrackCorr trigger INT7\n");
889 return AliVEvent::kINT7;
891 else if(trigger==
"EMC1")
893 printf(
"CaloTrackCorr trigger EMC1\n");
894 return AliVEvent::kEMC1;
896 else if(trigger==
"MB")
898 printf(
"CaloTrackCorr trigger MB\n");
899 return AliVEvent::kMB;
901 else if(trigger==
"PHOS")
903 printf(
"CaloTrackCorr trigger PHOS\n");
904 return AliVEvent::kPHI7;
906 else if(trigger==
"PHOSPb")
908 printf(
"CaloTrackCorr trigger PHOSPb\n");
909 return AliVEvent::kPHOSPb;
911 else if(trigger==
"AnyINT")
913 printf(
"CaloTrackCorr trigger AnyINT\n");
914 return AliVEvent::kAnyINT;
916 else if(trigger==
"INT")
918 printf(
"CaloTrackCorr trigger AnyINT\n");
919 return AliVEvent::kAny;
921 else if(trigger==
"EMCEGA")
923 printf(
"CaloTrackCorr trigger EMC Gamma\n");
924 return AliVEvent::kEMCEGA;
926 else if(trigger==
"EMCEJE")
928 printf(
"CaloTrackCorr trigger EMC Jet\n");
929 return AliVEvent::kEMCEJE;
931 else if(trigger==
"Central")
933 printf(
"CaloTrackCorr trigger Central\n");
934 return AliVEvent::kCentral;
936 else if(trigger==
"CentralEGA")
938 printf(
"CaloTrackCorr trigger Central+EMCEGA\n");
939 return (AliVEvent::kCentral | AliVEvent::kEMCEGA);
941 else if(trigger==
"SemiCentral")
943 printf(
"CaloTrackCorr trigger SemiCentral\n");
944 return AliVEvent::kSemiCentral;
946 else if(trigger==
"SemiOrCentral")
948 printf(
"CaloTrackCorr trigger SemiCentral Or Central\n");
949 return (AliVEvent::kSemiCentral | AliVEvent::kCentral);
951 else return AliVEvent::kAny;
void SwitchOnBadChannelsRemoval()
virtual void SwitchOnAODTrackSharedClusterSelection()
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
AliAnalysisTaskCaloTrackCorrelation * AddTaskPi0(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=2015, TString col="pp", TString trigger="EMC7", Bool_t rejectEMCTrig=kFALSE, Bool_t muonCaloPass=kFALSE, TString clustersArray="", Bool_t tender=kFALSE, Bool_t nonLinOn=kFALSE, Float_t shshMax=0.5, Bool_t tm=kTRUE, Int_t minCen=-1, Int_t maxCen=-1, Bool_t mixOn=kTRUE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0)
virtual void SwitchOffTrackMultBins()
void SetAngleCut(Float_t a)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SwitchOffRunDepCorrection()
void SwitchOnPairWithOtherDetector()
virtual void SetMaxEnergy(Float_t e)
void SwitchOnFillOriginHisto()
void ana(Int_t mode=mGRID)
void SetSimpleCTSFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax)
void SwitchOffUseEMCALTimeCut()
void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void AddToHistogramsName(TString add)
void SwitchOnRejectNoTrackEvents()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnTrackMatchRejection()
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SwitchOnTMHistoFill()
AliAnaPi0 * ConfigurePi0Analysis(TString col, Bool_t simulation, TString calorimeter, Bool_t bothCalo, Int_t year, Int_t tm, Bool_t mixOn, Bool_t printSettings, Int_t debug)
void SetNPIDBits(Int_t s)
virtual void SwitchOnAODHybridTrackSelection()
virtual void SetCentralityBin(Int_t min, Int_t max)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SwitchOffClusterRecalculation()
virtual void SwitchOnDataMC()
void FillNPrimaryHistograms(Int_t n)
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
Selected photon clusters invariant mass analysis.
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual void SetInputAODName(TString name)
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
void SwitchOffUseTrackDCACut()
void SetEMCALEMin(Float_t en)
void SwitchOnSMCombinations()
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
void SwitchOnTriggerPatchMatching()
void SwitchOnAngleSelection()
virtual void SetDebug(Int_t d)
virtual void SetOutputAODClassName(TString name)
void SwitchOffMultipleCutAnalysis()
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnRunDepCorrection()
void SetLocalMaximaCutEDiff(Float_t c)
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SetNCellCut(Int_t n)
void SetAngleMaxCut(Float_t a)
void SwitchOffPileUpEventRejection()
const TString calorimeter
void SwitchOnRecalibration()
void SwitchOffV0ANDSelection()
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
Bool_t IsRecalibrationOn() const
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 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 SwitchOnFillAngleHisto()
void SwitchOffVertexBCEventSelection()
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffTrackMatchRejection()
void SwitchOffRecalibration()
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 SetCentralityOpt(Int_t opt)
void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SwitchOnFillHighMultiplicityHistograms()
virtual AliHistogramRanges * GetHistogramRanges()
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()
TString kAnaPi0
Global name to be composed of the settings, used to set the AOD branch name.
Bool_t IsBadChannelsRemovalSwitchedOn() const
Filter EMCal/PHOS clusters for photon analysis.
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliCaloTrackReader * ConfigureReader(TString col, Bool_t simulation, TString clustersArray, Bool_t tender, TString calorimeter, Bool_t nonLinOn, TString trigger, Bool_t rejectEMCTrig, Int_t minCen, Int_t maxCen, Bool_t printSettings, Int_t debug)
void SetControlHistogramEnergyBinning(Int_t nBins, Float_t emin, Float_t emax)
virtual void SwitchOnOwnMix()
void SwitchOffTriggerClusterTimeRecal()
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 Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Int_t GetNumberOfSuperModulesUsed() const
void SwitchOnCorrectClusterLinearity()
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetTimeCut(Double_t min, Double_t max)
void SetAnalysisCommonParameters(AliAnaCaloTrackCorrBaseClass *ana, TString calorimeter, Int_t year, TString col, Bool_t simulation, Bool_t printSettings, Int_t debug)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffUseTrackTimeCut()
virtual AliCaloPID * GetCaloPID()
void SwitchOffTriggerPatchMatching()
virtual void SetZvertexCut(Float_t zcut=10.)
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOnClusterRecalculation()
Class containing more common histogram axis types.
void SetEMCALLambda0CutMax(Float_t lcut)
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
virtual void SetMinEnergy(Float_t e)
virtual void SetNCentrBin(Int_t n=1)
Number of bins in reaction plain.
virtual void SetPtHardAndJetPtFactor(Float_t factor)
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
AliAnaPhoton * ConfigurePhotonAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Int_t tm, Float_t shshMax, Bool_t printSettings, Int_t debug)
virtual void SetEventPlaneMethod(TString m)
void SetNAsymCuts(Int_t s)
void SetPHOSEMin(Float_t en)
virtual void SetNRPBin(Int_t n=1)
Number of bins for vertex position.
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
void SetPHOSDispersionCut(Float_t dcut)
UInt_t SetTriggerMaskFromName(TString trigger)
virtual void SetTrackCuts(AliESDtrackCuts *)
virtual void SwitchOffFiducialCut()
virtual void SetCentralityClass(TString name)
void SwitchOnFillShowerShapeHistograms()
virtual void SwitchOffFillHighMultiplicityHistograms()
void SwitchOnBadTriggerEventsRemoval()
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 SetFirstSMCoveredByTRD(Int_t n)
void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SwitchOffRecalculateVertexBC()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
AliCalorimeterUtils * ConfigureCaloUtils(TString col, Bool_t simulation, TString clustersArray, Bool_t tender, Bool_t nonLinOn, Int_t year, Bool_t printSettings, Int_t debug)
void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
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 SetOtherDetectorInputName(TString name)
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 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.
virtual void SwitchOnConstrainTrackToVertex()
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)
virtual void SwitchOffFiducialCut()
virtual void SwitchOffOwnMix()
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)
virtual void SetMinPt(Float_t pt)
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetNLMCut(Int_t min, Int_t max)
Int_t GetFirstSMCoveredByTRD() const
Time cut in ns.
Steering class of package CaloTrackCorrelartions.