1 #ifndef ALIEMCALCORRECTIONTASK_H
2 #define ALIEMCALCORRECTIONTASK_H
5 #if !(defined(__CINT__) || defined(__MAKECINT__))
6 #include <yaml-cpp/yaml.h>
11 class AliEMCALGeometry;
14 #include "AliAnalysisTaskSE.h"
19 #include "AliVCluster.h"
69 #if !(defined(__CINT__) || defined(__MAKECINT__))
71 {
"kNonLinCorr", AliVCluster::kNonLinCorr },
72 {
"kHadCorr", AliVCluster::kHadCorr },
73 {
"kUserDefEnergy1", AliVCluster::kUserDefEnergy1 },
74 {
"kUserDefEnergy2", AliVCluster::kUserDefEnergy2 }
145 static AliVEvent *
GetEvent(AliVEvent * inputEvent,
bool isEmbedding =
false);
164 #if !(defined(__CINT__) || defined(__MAKECINT__))
166 void GetNodeForInputObjects(YAML::Node & inputNode, YAML::Node & nodeToRetrieveFrom, std::string & inputObjectName,
bool requiredProperty);
168 void SetupCellsInfo(std::string containerName, YAML::Node & userNode, YAML::Node & defaultNode);
171 AliEmcalContainer *
AddContainer(
InputObject_t contType, std::string & containerName, YAML::Node & userNode, YAML::Node & defaultNode);
180 #if !(defined(__CINT__) || defined(__MAKECINT__))
Int_t fNcentBins
how many centrality bins
void SetBranchName(std::string branchName)
Steering task for the EMCal correction frameworkThis class is the steering class for the cell and clu...
bool fIsEmbedding
Whether the cells should be taken from an external file (embedded)
AliEMCALGeometry * fGeom
!emcal geometry
std::map< std::string, AliVCluster::VCluUserDefEnergy_t > clusterEnergyTypeMap
static bool DoesFileExist(const std::string &filename)
std::string GetName() const
void InitializeConfiguration()
AliTrackContainer * AddTrackContainer(const char *n)
AliTrackContainer * GetTrackContainer(const char *name) const
AliVCaloCells * fCells
! The actual cells object associated with this infomration
std::string GetInputFieldNameFromInputObjectType(InputObject_t inputObjectType)
AliClusterContainer * GetClusterContainer(Int_t i=0) const
std::vector< AliEmcalCorrectionComponent * > fCorrectionComponents
Contains the correction components.
Container with name, TClonesArray and cuts for particles.
void RetrieveExecutionOrder(std::vector< std::string > &componentsToAdd)
virtual ~AliEmcalCorrectionCellContainer()
void AdoptClusterContainer(AliClusterContainer *cont)
void SetupConfigurationFilePath(std::string &filename, bool userFile=false)
AliEmcalCorrectionCellContainer()
void UserExec(Option_t *option)
void UserCreateOutputObjectsComponents()
YAML::Node fUserConfiguration
void SetDefaultConfigurationFilename(std::string name)
Double_t fMaxCent
max centrality for event selection
Double_t fVertex[3]
!event vertex
AliEmcalCorrectionTask & operator=(const AliEmcalCorrectionTask &)
TList * fOutput
! Output for histograms
bool fConfigurationInitialized
True if the YAML files are initialized.
void RemoveClusterContainer(Int_t i=0)
Container for particles within the EMCAL framework.
void SetUserConfigurationFilename(std::string name)
AliEmcalContainer * AddContainer(InputObject_t contType, std::string &containerName, YAML::Node &userNode, YAML::Node &defaultNode)
AliTrackContainer * GetTrackContainer(Int_t i=0) const
void AddContainersToComponent(AliEmcalCorrectionComponent *component, InputObject_t inputObjectType)
AliMCParticleContainer * GetMCParticleContainer(const char *name) const
AliVCaloCells * GetCells() const
bool fEventInitialized
If the event is initialized properly.
TString fCentEst
name of V0 centrality estimator
std::string fUserConfigurationFilename
! User YAML configruation filename
std::string fBranchName
Name of the cells branch.
const std::vector< AliEmcalCorrectionComponent * > & CorrectionComponents()
std::string fDefaultConfigurationString
Store the default YAML configuration as a string so that it can be streamed.
TString fRunPeriod
Run period (passed by user)
void SetCells(AliVCaloCells *cells)
Double_t fCent
! Event centrality
void ExecOnceComponents()
Base class for correction components in the EMCal correction framework.
void SetUseNewCentralityEstimation(Bool_t b)
BeamType
Switch for the beam type.
AliMCParticleContainer * AddMCParticleContainer(const char *n)
AliEmcalCorrectionCellContainer(std::string branchName, std::string name, std::string branchToCopyName, bool isEmbedded)
void InitializeComponents()
std::map< std::string, AliEmcalTrackSelection::ETrackFilterType_t > trackFilterTypeMap
void SetupContainersFromInputNodes(InputObject_t inputObjectType, YAML::Node &userInputObjectNode, YAML::Node &defaultInputObjectNode, std::set< std::string > &requestedContainers)
static std::string DetermineUseDefaultName(InputObject_t contType, bool esdMode, bool returnObjectType=false)
void SetupContainer(InputObject_t inputObjectType, std::string containerName, YAML::Node &userNode, YAML::Node &defaultNode)
bool WriteConfigurationFile(std::string filename, bool userConfig=false)
Bool_t fNeedEmcalGeom
whether or not the task needs the emcal geometry
std::string GetBranchName() const
void SetCellsObjectInCellContainerBasedOnProperties(AliEmcalCorrectionCellContainer *cellContainer)
Bool_t fUseNewCentralityEstimation
Use new centrality estimation (for 2015 data)
bool GetIsEmbedding() const
void CheckForContainerArray(AliEmcalContainer *cont, InputObject_t objectType)
AliEmcalCorrectionCellContainer * GetCellContainer(const std::string &cellsContainerName) const
std::string fDefaultConfigurationFilename
! Default YAML configuration filename
void UserCreateOutputObjects()
void GetNodeForInputObjects(YAML::Node &inputNode, YAML::Node &nodeToRetrieveFrom, std::string &inputObjectName, bool requiredProperty)
TObjArray fParticleCollArray
particle/track collection array
TObjArray fClusterCollArray
cluster collection array
static AliVEvent * GetEvent(AliVEvent *inputEvent, bool isEmbedding=false)
AliMCParticleContainer * GetMCParticleContainer(Int_t i=0) const
void SetForceBeamType(BeamType f)
const TString & GetRunPeriod() const
virtual ~AliEmcalCorrectionTask()
void AdoptTrackContainer(AliTrackContainer *cont)
AliParticleContainer * GetParticleContainer(Int_t i=0) const
void AdoptParticleContainer(AliParticleContainer *cont)
std::string fName
Name of the cells object.
void SetIsEmbedding(bool isEmbedded)
BeamType fBeamType
!event beam type
YAML::Node fDefaultConfiguration
User YAML Configuration.
void SetupCellsInfo(std::string containerName, YAML::Node &userNode, YAML::Node &defaultNode)
Int_t fNVertCont
!event vertex number of contributors
void RemoveParticleContainer(Int_t i=0)
void SetName(std::string name)
Int_t fCentBin
! Event centrality bin
void AdoptMCParticleContainer(AliMCParticleContainer *cont)
Double_t fMinCent
min centrality for event selection
void SetRunPeriod(const char *runPeriod)
AliClusterContainer * AddClusterContainer(const char *n)
std::vector< AliEmcalCorrectionCellContainer * > fCellCollArray
Cells collection array.
Bool_t RetrieveEventObjects()
AliParticleContainer * AddParticleContainer(const char *n)
Container structure for EMCAL clusters.
Container for MC-true particles within the EMCAL framework.
std::string fUserConfigurationString
Default YAML Configuration.
InputObject_t
Type of input object to be created.
BeamType fForceBeamType
forced beam type
void CreateInputObjects(InputObject_t inputObjectType)