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"
103 Bool_t simulation = kFALSE,
106 Int_t rejectEMCTrig = 0,
113 Bool_t printSettings = kFALSE,
115 const char *trigSuffix =
"EMC7"
124 if (!strcmp(kColType,
"PbPb")) collision =
"PbPb";
125 else if (!strcmp(kColType,
"AA" )) collision =
"PbPb";
126 else if (!strcmp(kColType,
"pA" )) collision =
"pPb";
127 else if (!strcmp(kColType,
"Ap" )) collision =
"pPb";
128 else if (!strcmp(kColType,
"pPb" )) collision =
"pPb";
129 else if (!strcmp(kColType,
"Pbp" )) collision =
"pPb";
130 else if (!strcmp(kColType,
"pp" )) collision =
"pp" ;
136 if(trigger.Contains(
"default") ||trigger.Contains(
"INT") || trigger.Contains(
"MB") )
137 printf(
"AddTaskClusterShape() - Get the data features from global parameters: collision <%s>, period <%s>, mc <%d> \n",
138 kColType,kPeriod,
kMC);
144 if (period.Contains(
"16")) year = 2016;
145 else if(period.Contains(
"15")) year = 2015;
146 else if(period.Contains(
"13")) year = 2013;
147 else if(period.Contains(
"12")) year = 2012;
148 else if(period.Contains(
"11")) year = 2011;
149 else if(period.Contains(
"10")) year = 2010;
157 ::Error(
"AddTaskClusterShape",
"No analysis manager to connect to.");
163 if (!mgr->GetInputEventHandler())
165 ::Error(
"AddTaskClusterShape",
"This task requires an input event handler");
174 kAnaClusterShape = Form(
"ShapeAna%s_%s",trigger.Data(),clustersArray.Data());
176 Int_t minCen = -1, maxCen = -1;
178 if(collision==
"PbPb" && maxCen>=0) kAnaClusterShape+=Form(
"Cen%d_%d",minCen,maxCen);
184 task->SetDebugLevel(
debug);
198 if(outputfile.Length()==0) outputfile = AliAnalysisManager::GetCommonFileName();
201 if(clustersArray.Length()>0) containerName = Form(
"%s_%s",containerName.Data(),clustersArray.Data());
203 TString subcontainerName = Form(
"%s",trigger.Data());
204 if(clustersArray.Length()>0) subcontainerName = Form(
"%s_%s",subcontainerName.Data(),clustersArray.Data());
206 AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(subcontainerName, TList::Class(),
207 AliAnalysisManager::kOutputContainer,
208 Form(
"%s:%s",outputfile.Data(),containerName.Data()));
210 AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form(
"Param_%s",subcontainerName.Data()), TList::Class(),
211 AliAnalysisManager::kParamContainer,
212 Form(
"%s_Parameters.root",containerName.Data()));
217 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
218 mgr->ConnectOutput (task, 1, cout_pc);
219 mgr->ConnectOutput (task, 2, cout_cuts);
225 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/CheckActiveEMCalTriggerPerPeriod.C");
235 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
239 ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
243 printf(
"AddTaskClusterShape() - Task NAME: %s; Passed settings\n",kAnaClusterShape.Data());
245 printf(
"\t calorimeter <%s>, simulation <%d>, year <%d>, collision <%s>, trigger <%s>, reject EMC <%d>,\n"
246 "\t clustersArray <%s>, tender <%d>, non linearity <%d>, TM dep <%d>, QA on <%d>,\n"
247 "\t outputfile <%s>, printSettings <%d>, debug <%d>\n",
248 calorimeter.Data(),simulation,year,collision.Data(),trigger.Data(), rejectEMCTrig,
249 clustersArray.Data(),tender, nonLinOn, tmDep, qaAn, outputfile.Data(),printSettings,
debug);
253 maker->
SetReader (
ConfigureReader (collision,simulation,clustersArray,tender,
calorimeter,nonLinOn,trigger,rejectEMCTrig,minCen,maxCen,printSettings,
debug) );
286 printf(
"AddTaskClusterShape() - MC production name: %s\n",prodName.Data());
287 if ( prodName.Contains(
"LHC16c") )
289 printf(
"\t use the cross section from EventHeader per Event\n");
297 if(printSettings) maker->
Print(
"");
299 printf(
"AddTaskClusterShape() - << End Configuration of %d analysis for calorimeter %s >>\n",n,
calorimeter.Data());
307 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/ConfigureAndGetEventTriggerMaskAndCaloTriggerString.C");
308 TString caloTriggerString =
"";
313 task ->SelectCollisionCandidates( mask );
331 TString inputDataType = mgr->GetInputEventHandler()->GetDataType();
336 else printf(
"AddTaskClusterShape::ConfigureReader() - Data not known InputData=%s\n",inputDataType.Data());
407 if(inputDataType==
"ESD")
409 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGJE/macros/CreateTrackCutsPWGJE.C");
414 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10001008);
416 AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
421 else if(inputDataType==
"AOD")
435 if(clustersArray ==
"" && !tender)
437 printf(
"AddTaskClusterShape::ConfigureReader() - **************** Standard EMCAL clusters branch analysis **************** \n");
443 printf(
"AddTaskClusterShape::ConfigureReader() - **************** Input for analysis is Clusterizer %s **************** \n", clustersArray.Data());
465 if(calorimeter ==
"EMCAL")
471 if(calorimeter ==
"PHOS")
487 if( rejectEMCTrig > 0 && !simulation && (trigger.Contains(
"EMC") || trigger.Contains(
"L")))
489 printf(
"AddTaskClusterShape::ConfigureReader() === Remove bad triggers === \n");
510 if(clustersArray !=
"" || tender)
512 printf(
"AddTaskClusterShape::ConfigureReader() - Trigger cluster calibration OFF\n");
542 if(printSettings) reader->
Print(
"");
570 printf(
"AddTaskClusterShape::ConfigureCaloUtils() xxx Number of SM set to <%d> xxx\n",
597 Bool_t calibEner = kFALSE;
598 Bool_t calibTime = kFALSE;
620 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/ConfigureEMCALRecoUtils.C");
633 printf(
"AddTaskClusterShape::ConfigureCaloUtils() - EMCAL Recalibration ON? %d %d\n",recou->IsRecalibrationOn(), cu->
IsRecalibrationOn());
634 printf(
"AddTaskClusterShape::ConfigureCaloUtils() - EMCAL BadMap ON? %d %d\n",recou->IsBadChannelsRemovalSwitchedOn(), cu->
IsBadChannelsRemovalSwitchedOn());
639 if(printSettings) cu->
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 ||
867 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)
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.