12 #if !defined(__CINT__) || defined(__MAKECINT__)
27 #include "AliAnalysisManager.h"
28 #include "AliInputEventHandler.h"
29 #include "AliVTrack.h"
31 #include "AliESDtrackCuts.h"
32 #include "CreateTrackCutsPWGJE.C"
96 Bool_t simulation = kFALSE,
99 Int_t rejectEMCTrig = 0,
106 Bool_t printSettings = kFALSE,
108 const char *trigSuffix =
"EMC7"
115 TString colType =
gSystem->Getenv(
"ALIEN_JDL_LPMINTERACTIONTYPE");
117 TString prodType =
gSystem->Getenv(
"ALIEN_JDL_LPMPRODUCTIONTYPE");
121 if (colType.Contains(
"PbPb")) collision =
"PbPb";
122 else if (colType.Contains(
"XeXe")) collision =
"PbPb";
123 else if (colType.Contains(
"AA" )) collision =
"PbPb";
124 else if (colType.Contains(
"pA" )) collision =
"pPb";
125 else if (colType.Contains(
"Ap" )) collision =
"pPb";
126 else if (colType.Contains(
"pPb" )) collision =
"pPb";
127 else if (colType.Contains(
"Pbp" )) collision =
"pPb";
128 else if (colType.Contains(
"pp" )) collision =
"pp" ;
131 if ( prodType.Contains(
"MC") ) simulation = kTRUE;
132 else simulation = kFALSE;
134 if ( !simulation && period!=
"" ) period = prodTag;
137 if ( trigger.Contains(
"default") || trigger.Contains(
"INT") || trigger.Contains(
"MB") )
138 printf(
"AddTaskClusterShape() - Get the data features from global parameters: collision <%s> (<%s>), "
139 "period <%s>, tag <%s>, type <%s>, MC bool <%d> \n",
140 colType.Data(),collision.Data(),
141 period.Data(),prodType.Data(),prodTag.Data(),simulation);
147 if (period.Contains(
"16")) year = 2016;
148 else if(period.Contains(
"15")) year = 2015;
149 else if(period.Contains(
"13")) year = 2013;
150 else if(period.Contains(
"12")) year = 2012;
151 else if(period.Contains(
"11")) year = 2011;
152 else if(period.Contains(
"10")) year = 2010;
160 ::Error(
"AddTaskClusterShape",
"No analysis manager to connect to.");
166 if (!mgr->GetInputEventHandler())
168 ::Error(
"AddTaskClusterShape",
"This task requires an input event handler");
177 kAnaClusterShape = Form(
"ShapeAna%s_%s",trigger.Data(),clustersArray.Data());
179 Int_t minCen = -1, maxCen = -1;
181 if(collision==
"PbPb" && maxCen>=0) kAnaClusterShape+=Form(
"Cen%d_%d",minCen,maxCen);
187 task->SetDebugLevel(
debug);
201 if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
204 if(clustersArray.Length()>0) containerName = Form(
"%s_%s",containerName.Data(),clustersArray.Data());
206 TString subcontainerName = Form(
"%s",trigger.Data());
207 if(clustersArray.Length()>0) subcontainerName = Form(
"%s_%s",subcontainerName.Data(),clustersArray.Data());
209 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(subcontainerName, TList::Class(),
210 AliAnalysisManager::kOutputContainer,
211 Form(
"%s:%s",outputfile.Data(),containerName.Data()));
213 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",subcontainerName.Data()), TList::Class(),
214 AliAnalysisManager::kParamContainer,
215 Form(
"%s_Parameters.root",containerName.Data()));
220 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
221 mgr->ConnectOutput (task, 1, cout_pc);
222 mgr->ConnectOutput (task, 2, cout_cuts);
228 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
238 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
242 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
246 printf(
"AddTaskClusterShape() - Task NAME: %s; Passed settings\n",kAnaClusterShape.Data());
248 printf(
"\t calorimeter <%s>, simulation <%d>, year <%d>, collision <%s>, trigger <%s>, reject EMC <%d>,\n"
249 "\t clustersArray <%s>, tender <%d>, non linearity <%d>, TM dep <%d>, QA on <%d>,\n"
250 "\t outputfile <%s>, printSettings <%d>, debug <%d>\n",
251 calorimeter.Data(),simulation,year,collision.Data(),trigger.Data(), rejectEMCTrig,
252 clustersArray.Data(),tender, nonLinOn, tmDep, qaAn, outputfile.Data(),printSettings,
debug);
256 maker->
SetReader (
ConfigureReader (collision,simulation,clustersArray,tender,
calorimeter,nonLinOn,trigger,rejectEMCTrig,minCen,maxCen,printSettings,
debug) );
288 printf(
"AddTaskClusterShape() - MC production name: %s\n",prodType.Data());
289 if ( prodType.Contains(
"LHC16c") )
291 printf(
"\t use the cross section from EventHeader per Event\n");
299 if(printSettings) maker->
Print(
"");
301 printf(
"AddTaskClusterShape() - << End Configuration of %d analysis for calorimeter %s >>\n",n,
calorimeter.Data());
309 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
310 TString caloTriggerString =
"";
315 task ->SelectCollisionCandidates( mask );
333 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
338 else printf(
"AddTaskClusterShape::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
409 if(inputDataType==
"ESD")
411 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
416 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
418 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
423 else if(inputDataType==
"AOD")
437 if(clustersArray ==
"" && !tender)
439 printf(
"AddTaskClusterShape::ConfigureReader() - **************** Standard EMCAL clusters branch analysis **************** \n");
445 printf(
"AddTaskClusterShape::ConfigureReader() - **************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
467 if(calorimeter ==
"EMCAL")
473 if(calorimeter ==
"PHOS")
489 if( rejectEMCTrig > 0 && !simulation && (trigger.Contains(
"EMC") || trigger.Contains(
"L")))
491 printf(
"AddTaskClusterShape::ConfigureReader() === Remove bad triggers === \n");
512 if(clustersArray !=
"" || tender)
514 printf(
"AddTaskClusterShape::ConfigureReader() - Trigger cluster calibration OFF\n");
544 if(printSettings) reader->
Print(
"");
572 printf(
"AddTaskClusterShape::ConfigureCaloUtils() xxx Number of SM set to <%d> xxx\n",
597 Bool_t calibEner = kFALSE;
598 Bool_t calibTime = kFALSE;
642 printf(
"AddTaskClusterShape::ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->
IsRecalibrationOn());
643 printf(
"AddTaskClusterShape::ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->
IsBadChannelsRemovalSwitchedOn());
648 if(printSettings) cu->
Print(
"");
772 if(calorimeter==
"EMCAL")
780 else if ( year < 2014 )
795 else if(calorimeter==
"PHOS")
800 else if(calorimeter==
"CTS")
860 else if(year == 2012 ||
876 if(printSettings) ana->
Print(
"");
void SetEMCALNCellsPerClusterMin(Int_t n)
void SwitchOnBadChannelsRemoval()
virtual void SwitchOnAODTrackSharedClusterSelection()
void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetDebug(Int_t d)
void SetNumberOfCellsFromPHOSBorder(Int_t n)
void SwitchOffRunDepCorrection()
void SetTimeCut(Double_t min, Double_t max)
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 SwitchOnFillAllTrackMatchingHistogram()
virtual void SwitchOnFiducialCut()
void SwitchOnRejectNoTrackEvents()
void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnLoadOwnEMCALGeometryMatrices()
void SetEMCALM02Min(Float_t m02)
virtual void SwitchOnAODHybridTrackSelection()
AliAnaClusterShapeCorrelStudies * ConfigureClusterShape(Bool_t tmPtDep, TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug)
virtual void SetCentralityBin(Int_t min, Int_t max)
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void SwitchOnFillAllCellHistogram()
void SwitchOffClusterRecalculation()
virtual void SwitchOnDataMC()
void SwitchOffClusterELinearityCorrection()
void SetCTSPtMax(Float_t pt)
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 SetTrackComplementaryCuts(AliESDtrackCuts *)
void SwitchOffUseTrackDCACut()
void SetEMCALEMin(Float_t en)
void AddAnalysis(TObject *ana, Int_t n)
Add analysis depending on AliAnaCaloTrackCorrBaseClass to list.
void SwitchOnTriggerPatchMatching()
void SwitchOffStudyExotic()
virtual void SetDebug(Int_t d)
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 SwitchOffFillAllPositionHistogram2()
Class for the Calorimeter QA analysis.
void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOnRunDepCorrection()
void SetLocalMaximaCutEDiff(Float_t c)
void SwitchOnMCCrossSectionHistoFill()
void SetNumberOfCellsFromEMCALBorder(Int_t n)
void SwitchOnPtHardHistogram()
Bool_t CheckActiveEMCalTriggerPerPeriod(Bool_t simulation, TString trigger, TString period, Int_t year)
void SwitchOffStudyTCardCorrelation()
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)
void SwitchOnMCCrossSectionFromEventHeader()
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetAnalysisCommonParameters(AliAnaCaloTrackCorrBaseClass *ana, TString calorimeter, Int_t year, TString col, Bool_t simulation, Bool_t printSettings, Int_t debug)
Class for event, clusters and tracks filtering and preparation for the AOD analysis.
virtual void SwitchOffDataMC()
AliAnaCalorimeterQA * ConfigureQAAnalysis(TString col, Bool_t simulation, TString calorimeter, Int_t year, Bool_t printSettings, Int_t debug)
void SetCTSPtMin(Float_t pt)
void SetEMCALDPhiCut(Float_t dcut)
void SwitchOffRecalculateClusterTrackMatching()
void SwitchOffVertexBCEventSelection()
AliAnalysisTaskCaloTrackCorrelation * AddTaskClusterShape(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, TString collision="pp", TString period="", Int_t rejectEMCTrig=0, TString clustersArray="", Bool_t tender=kFALSE, Bool_t nonLinOn=kFALSE, Bool_t tmDep=kTRUE, Bool_t qaAn=kFALSE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0, const char *trigSuffix="EMC7")
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
Base class for CaloTrackCorr analysis algorithms.
void SwitchOffRecalibration()
void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)
Check EMCal trigger availability in period.
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)
void SwitchOnStudyClusterShapeParam()
virtual AliHistogramRanges * GetHistogramRanges()
void SwitchOnDataControlHistograms(Int_t lev=1)
TString kAnaClusterShape
Global name to be composed of the settings, used to set the AOD branch name.
void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffShowerShapeSmearing()
void SetTrackStatus(ULong_t bit)
void SwitchOnUseEMCALTimeCut()
Bool_t IsBadChannelsRemovalSwitchedOn() const
void SetHistoTrackResidualPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
Class for cluster shape, cell T-Card correlation and exoticity.
void SetAnaDebug(Int_t d)
void SetNCellsPerClusterMin(Int_t n)
void SetEMCALBadChannelMinDist(Float_t di)
void SwitchOnStudyClusterShape()
void SetEMCALNCellsCut(Int_t nc)
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
void SwitchOffTriggerClusterTimeRecal()
virtual void SwitchOnCaloPID()
void SwitchOnHistogramsMaker()
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)
Int_t GetNumberOfSuperModulesUsed() const
void SwitchOnCorrectClusterLinearity()
void SetAnalysisMaker(AliAnaCaloTrackCorrMaker *const maker)
void SetTrackMultiplicityEtaCut(Float_t eta)
void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SwitchOffFillAllPositionHistogram()
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SwitchOffUseTrackTimeCut()
virtual AliCaloPID * GetCaloPID()
void SetConstantTimeShift(Float_t shift)
void SwitchOffTriggerPatchMatching()
virtual void SetZvertexCut(Float_t zcut=10.)
void SetNumberOfSuperModulesUsed(Int_t nSM)
void SwitchOffCorrelation()
void SwitchOnClusterRecalculation()
Class containing more common histogram axis types.
void SwitchOnPrimaryVertexSelection()
void SwitchOnEMCALCells()
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 SetReader(AliCaloTrackReader *re)
void SetHistoNClustersRangeAndNBins(Int_t min, Int_t max, Int_t n)
virtual void SetTrackCuts(AliESDtrackCuts *)
void SetEMCALCellAmpMin(Float_t amp)
void SwitchOffFillAllCellTimeHisto()
virtual void SetCentralityClass(TString name)
void SwitchOnBadTriggerEventsRemoval()
AliCalorimeterUtils * ConfigureCaloUtils(TString col, Bool_t simulation, Bool_t tender, Bool_t nonLinOn, Int_t year, Bool_t printSettings, Int_t debug)
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)
void SwitchOnEMCTrackPtDepResMatching()
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
void SwitchOffLoadOwnPHOSGeometryMatrices()
void SwitchOffStudyBadClusters()
void SwitchOffRecalculateVertexBC()
void SwitchOffFillAllTH3Histogram()
void SwitchOffProcessEvent()
void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n)
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 SetM02Min(Float_t m02)
void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetEMCALEMax(Float_t en)
void ConfigureEMCALRecoUtils(Bool_t bMC=kFALSE, Bool_t bExotic=kTRUE, Bool_t bNonLin=kFALSE, Bool_t bRecalE=kTRUE, Bool_t bBad=kTRUE, Bool_t bRecalT=kTRUE, Int_t debug=-1)
Class for PID selection with calorimeters.
void SetConstantTimeShift(Float_t shift)
virtual void SwitchOnRealCaloAcceptance()
void SetFiredTriggerClassName(TString name)
void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
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 SwitchOffEMCTrackPtDepResMatching()
AliCaloTrackReader * GetReader()
virtual void SwitchOnConstrainTrackToVertex()
AliAnaWeights * GetWeightUtils()
void SetHistoHBPRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n)
virtual void SwitchOffFiducialCut()
void SwitchOnEventTriggerAtSE()
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 SwitchOffStudyWeight()
void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n)
void SetCaloUtils(AliCalorimeterUtils *cu)
Steering class of package CaloTrackCorrelartions.