AliPhysics  cda3415 (cda3415)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliEmcalCorrectionTask Class Reference

Steering task for the EMCal correction framework. More...

#include <AliEmcalCorrectionTask.h>

Inheritance diagram for AliEmcalCorrectionTask:

Public Types

enum  BeamType { kNA = -1, kpp = 0, kAA = 1, kpA = 2 }
 Switch for the beam type. More...
 
enum  InputObject_t { kNoDefinedInputObject = -1, kCaloCells = 0, kCluster = 1, kTrack = 2 }
 Type of input object to be created More...
 

Public Member Functions

 AliEmcalCorrectionTask ()
 
 AliEmcalCorrectionTask (const char *name)
 
virtual ~AliEmcalCorrectionTask ()
 
void Initialize ()
 
void SetUserConfigurationFilename (std::string name)
 Set the path to the user configuration filename. More...
 
void SetDefaultConfigurationFilename (std::string name)
 Set the path to the default configuration filename (Expert use only! The user should set the user configuration!) More...
 
bool WriteConfigurationFile (std::string filename, bool userConfig=false)
 
const TStringGetRunPeriod () const
 
void SetForceBeamType (BeamType f)
 
void SetRunPeriod (const char *runPeriod)
 
void SetUseNewCentralityEstimation (Bool_t b)
 
virtual void SetNCentBins (Int_t n)
 
void SetCentRange (Double_t min, Double_t max)
 
const std::vector
< AliEmcalCorrectionComponent * > & 
CorrectionComponents ()
 
AliParticleContainerAddParticleContainer (const char *n)
 
AliTrackContainerAddTrackContainer (const char *n)
 
AliMCParticleContainerAddMCParticleContainer (const char *n)
 
AliClusterContainerAddClusterContainer (const char *n)
 
void AdoptParticleContainer (AliParticleContainer *cont)
 
void AdoptTrackContainer (AliTrackContainer *cont)
 
void AdoptMCParticleContainer (AliMCParticleContainer *cont)
 
void AdoptClusterContainer (AliClusterContainer *cont)
 
AliParticleContainerGetParticleContainer (Int_t i=0) const
 
AliParticleContainerGetParticleContainer (const char *name) const
 
AliClusterContainerGetClusterContainer (Int_t i=0) const
 
AliClusterContainerGetClusterContainer (const char *name) const
 
AliMCParticleContainerGetMCParticleContainer (Int_t i=0) const
 
AliMCParticleContainerGetMCParticleContainer (const char *name) const
 
AliTrackContainerGetTrackContainer (Int_t i=0) const
 
AliTrackContainerGetTrackContainer (const char *name) const
 
void RemoveParticleContainer (Int_t i=0)
 
void RemoveClusterContainer (Int_t i=0)
 
AliEmcalCorrectionCellContainerGetCellContainer (const std::string &cellsContainerName) const
 
void UserCreateOutputObjects ()
 
void UserExec (Option_t *option)
 
Bool_t UserNotify ()
 
virtual void ExecOnce ()
 
virtual Bool_t Run ()
 

Static Public Member Functions

static std::string DetermineUseDefaultName (InputObject_t contType, bool esdMode, bool returnObjectType=false)
 
static AliVEvent * GetEvent (AliVEvent *inputEvent, bool isEmbedding=false)
 

Public Attributes

std::map< std::string,
AliVCluster::VCluUserDefEnergy_t > 
clusterEnergyTypeMap
 Relates string to the cluster energy enumeration for YAML configuration. More...
 
std::map< std::string,
AliEmcalTrackSelection::ETrackFilterType_t
trackFilterTypeMap
 Relates string to the track filter enumeration for YAML configuration. More...
 

Private Member Functions

 AliEmcalCorrectionTask (const AliEmcalCorrectionTask &)
 
AliEmcalCorrectionTaskoperator= (const AliEmcalCorrectionTask &)
 
void SetupConfigurationFilePath (std::string &filename, bool userFile=false)
 
void SetCellsObjectInCellContainerBasedOnProperties (AliEmcalCorrectionCellContainer *cellContainer)
 
void CheckForContainerArray (AliEmcalContainer *cont, InputObject_t objectType)
 
std::string GetInputFieldNameFromInputObjectType (InputObject_t inputObjectType)
 
bool CheckPossibleNamesForComponentName (std::string &name, std::set< std::string > &possibleComponents)
 
BeamType GetBeamType ()
 
Bool_t RetrieveEventObjects ()
 
void UserCreateOutputObjectsComponents ()
 
void ExecOnceComponents ()
 
void InitializeConfiguration ()
 
void DetermineComponentsToExecute (std::vector< std::string > &componentsToExecute)
 
void CheckForUnmatchedUserSettings ()
 
void InitializeComponents ()
 
void CreateInputObjects (InputObject_t inputObjectType)
 
void AddContainersToComponent (AliEmcalCorrectionComponent *component, InputObject_t inputObjectType)
 
void SetupContainersFromInputNodes (InputObject_t inputObjectType, YAML::Node &userInputObjectNode, YAML::Node &defaultInputObjectNode, std::set< std::string > &requestedContainers)
 
void SetupCellsInfo (std::string containerName, YAML::Node &userNode, YAML::Node &defaultNode)
 
void SetupContainer (InputObject_t inputObjectType, std::string containerName, YAML::Node &userNode, YAML::Node &defaultNode)
 
AliEmcalContainer * AddContainer (InputObject_t contType, std::string &containerName, YAML::Node &userNode, YAML::Node &defaultNode)
 
void GetNodeForInputObjects (YAML::Node &inputNode, YAML::Node &nodeToRetrieveFrom, std::string &inputObjectName, bool requiredProperty)
 
void GetPropertyNamesFromNode (const std::string &componentName, const YAML::Node &node, std::set< std::string > &propertyNames, const bool nodeRequired)
 

Static Private Member Functions

static bool DoesFileExist (const std::string &filename)
 

Private Attributes

YAML::Node fUserConfiguration
 
YAML::Node fDefaultConfiguration
 User YAML Configuration. More...
 
std::string fSuffix
 Default YAML Configuration. More...
 
std::string fUserConfigurationString
 Store the user YAML configuration as a string so that it can be streamed. More...
 
std::string fDefaultConfigurationString
 Store the default YAML configuration as a string so that it can be streamed. More...
 
std::string fUserConfigurationFilename
 ! User YAML configruation filename More...
 
std::string fDefaultConfigurationFilename
 ! Default YAML configuration filename More...
 
std::vector< std::string > fOrderedComponentsToExecute
 Ordered set of components to execute. More...
 
std::vector
< AliEmcalCorrectionComponent * > 
fCorrectionComponents
 Contains the correction components. More...
 
bool fConfigurationInitialized
 True if the YAML configuration files are initialized. More...
 
bool fIsEsd
 File type. More...
 
TString fRunPeriod
 Run period (passed by user) More...
 
bool fEventInitialized
 If the event is initialized properly. More...
 
Double_t fCent
 ! Event centrality More...
 
Int_t fCentBin
 ! Event centrality bin More...
 
Double_t fMinCent
 min centrality for event selection More...
 
Double_t fMaxCent
 max centrality for event selection More...
 
Int_t fNcentBins
 how many centrality bins More...
 
TString fCentEst
 name of V0 centrality estimator More...
 
Bool_t fUseNewCentralityEstimation
 Use new centrality estimation (for 2015 data) More...
 
Double_t fVertex [3]
 ! Event vertex More...
 
Int_t fNVertCont
 ! Event vertex number of contributors More...
 
BeamType fBeamType
 ! Event beam type More...
 
BeamType fForceBeamType
 forced beam type More...
 
Bool_t fNeedEmcalGeom
 whether or not the task needs the emcal geometry More...
 
AliEMCALGeometry * fGeom
 ! Emcal geometry More...
 
TObjArray fParticleCollArray
 Particle/track collection array. More...
 
TObjArray fClusterCollArray
 Cluster collection array. More...
 
std::vector
< AliEmcalCorrectionCellContainer * > 
fCellCollArray
 Cells collection array. More...
 
TListfOutput
 ! Output for histograms More...
 

Detailed Description

Steering task for the EMCal correction framework.

This class is the steering class for the cell and cluster level corrections for the EMCal. A YAML configuration file is utilized to determine which corrections should be run and how they should be configured. The corrections are initialized by calling their Initialize() function. Similar to AliAnalysisTaskEmcal, the relevant event information is loaded, and then the Run() function of each correction is called.

In general, this steering class handles all of the configuration of the corrections, including passing the relevant EMCal containers and event objects.

Note: YAML does not play nicely with CINT and dictionary generation, so it is hidden using conditional inclusion.

Author
Raymond Ehlers raymo.nosp@m.nd.e.nosp@m.hlers.nosp@m.@yal.nosp@m.e.edu, Yale University
James Mulligan james.nosp@m..mul.nosp@m.ligan.nosp@m.@yal.nosp@m.e.edu, Yale University
Date
Jul 8, 2016

Definition at line 45 of file AliEmcalCorrectionTask.h.

Member Enumeration Documentation

Switch for the beam type.

Enumerator
kNA 

! Undefined

kpp 

! Proton-Proton

kAA 

! Nucleus-Nucleus

kpA 

! Proton-Nucleus

Definition at line 51 of file AliEmcalCorrectionTask.h.

Type of input object to be created

Enumerator
kNoDefinedInputObject 

Not initialied type.

kCaloCells 

Calo cells.

kCluster 

Cluster container.

kTrack 

Track container.

Definition at line 62 of file AliEmcalCorrectionTask.h.

Constructor & Destructor Documentation

AliEmcalCorrectionTask::AliEmcalCorrectionTask ( )

Default constructor.

Definition at line 42 of file AliEmcalCorrectionTask.cxx.

AliEmcalCorrectionTask::AliEmcalCorrectionTask ( const char *  name)

Standard constructor.

If "_" is included in the name, then all characters after the underscore will be taken as the task suffix (sometimes described as a "specialization") and used to select settings in the YAML configuration file.

Parameters
[in]nameName of the correction task.

Definition at line 94 of file AliEmcalCorrectionTask.cxx.

AliEmcalCorrectionTask::~AliEmcalCorrectionTask ( )
virtual

Destructor

Definition at line 144 of file AliEmcalCorrectionTask.cxx.

AliEmcalCorrectionTask::AliEmcalCorrectionTask ( const AliEmcalCorrectionTask )
private

Member Function Documentation

AliClusterContainer * AliEmcalCorrectionTask::AddClusterContainer ( const char *  n)

Create new cluster container and attach it to the task. The name provided to this function must match the name of the array attached to the new container inside the input event.

Parameters
[in]nName of the container and the array the container points to
Returns
Pointer to the new cluster container

Definition at line 1664 of file AliEmcalCorrectionTask.cxx.

AliEmcalContainer * AliEmcalCorrectionTask::AddContainer ( InputObject_t  contType,
std::string &  containerName,
YAML::Node &  userNode,
YAML::Node &  defaultNode 
)
private

Creates a new AliEmcalContainer derived container based on the requested type and the branch name set in the user and default YAML configuration and requested by a particular correction component. Supports the "usedefault" pattern to simplify setting the proper branch name. Any track input objects are created as track containers unless the branch is named "mcparticles". If this is problematic for your analysis, the track selection behavior of the track container can be disabled by setting the track selection to "kNoTrackFilter".

Note that the created container is adopted and managed by the Correction Task.

Parameters
[in]contTypeType of the input object to add
[in]containerNameName of the container to create (as defined in the YAML configuration)
[in]userNodeYAML Node corresponding to the user input object's configuration
[in]defaultNodeYAML Node corresponding to the default input object's configuration
Returns
The created container

Definition at line 866 of file AliEmcalCorrectionTask.cxx.

Referenced by SetupContainer().

void AliEmcalCorrectionTask::AddContainersToComponent ( AliEmcalCorrectionComponent component,
InputObject_t  inputObjectType 
)
private

Adds the previously created input objects that are managed by the Correction Task into a correction component based on which input objects are requested in the YAML configuration by the component.

Parameters
[in]componentThe correction component to which the input objects will be added
[in]inputObjectTypeThe type of input object to add to the component

Definition at line 587 of file AliEmcalCorrectionTask.cxx.

Referenced by ExecOnceComponents(), and InitializeComponents().

AliMCParticleContainer * AliEmcalCorrectionTask::AddMCParticleContainer ( const char *  n)

Create new container for MC particles and attach it to the task. The name provided to this function must match the name of the array attached to the new container inside the input event.

Parameters
[in]nName of the container and the array the container points to
Returns
Pointer to the new container for MC particles

Definition at line 1610 of file AliEmcalCorrectionTask.cxx.

AliParticleContainer * AliEmcalCorrectionTask::AddParticleContainer ( const char *  n)

Create new particle container and attach it to the task. The name provided to this function must match the name of the array attached to the new container inside the input event.

Parameters
[in]nName of the container and the array the container points to
Returns
Pointer to the new particle container

Definition at line 1646 of file AliEmcalCorrectionTask.cxx.

AliTrackContainer * AliEmcalCorrectionTask::AddTrackContainer ( const char *  n)

Create new track container and attach it to the task. The name provided to this function must match the name of the array attached to the new container inside the input event.

Parameters
[in]nName of the container and the array the container points to
Returns
Pointer to the new track container

Definition at line 1628 of file AliEmcalCorrectionTask.cxx.

void AliEmcalCorrectionTask::AdoptClusterContainer ( AliClusterContainer cont)
inline

Definition at line 130 of file AliEmcalCorrectionTask.h.

Referenced by AddContainer().

void AliEmcalCorrectionTask::AdoptMCParticleContainer ( AliMCParticleContainer cont)
inline

Definition at line 129 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::AdoptParticleContainer ( AliParticleContainer cont)
inline
void AliEmcalCorrectionTask::AdoptTrackContainer ( AliTrackContainer cont)
inline

Definition at line 128 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::CheckForContainerArray ( AliEmcalContainer *  cont,
InputObject_t  objectType 
)
private

Checks whether a container branch exists in the event. If it doesn't exist, then the branch is created automatically. Which this approach requires some care since no fatal error will be thrown when a nonexistent branch is requested, it also allows the creation of output branches just by selecting an unused branch name. For instance, this allows the clusterizer to easily create a new output branch.

Parameters
contThe container which is requesting the branch
objectTypeThe type of the input object

Definition at line 1459 of file AliEmcalCorrectionTask.cxx.

Referenced by ExecOnce().

void AliEmcalCorrectionTask::CheckForUnmatchedUserSettings ( )
private

Check each property defined in the user configuration file for a match to the properties in the default configuration file. The default configuration file should have all possible properties defined, so it can be treated as a reference. Thus, if there is a property that is defined in the user configuration that cannot be found in the default configuration, then it must be a typo and we should alert the user.

Utilizes the stored ordered correction component names.

Definition at line 424 of file AliEmcalCorrectionTask.cxx.

Referenced by Initialize().

bool AliEmcalCorrectionTask::CheckPossibleNamesForComponentName ( std::string &  name,
std::set< std::string > &  possibleComponents 
)
private

Checks for a component name in a list of possible component names. This is necessary to search for the components that are associated with a given correction task and it's associated suffix. The comparison is done between strings, so some care is needed not to execute this function too often, especially for a large number of possible components

Parameters
nameName to search for in the possible names
possibleComponentsPossible names of components that have been retrieved from the YAML file
Returns
True name in possible components name

Definition at line 1512 of file AliEmcalCorrectionTask.cxx.

Referenced by DetermineComponentsToExecute().

const std::vector<AliEmcalCorrectionComponent *>& AliEmcalCorrectionTask::CorrectionComponents ( )
inline

Direct access to the correction components.

Returns
std::vector of the correction components. Using this vector, the components and their settings can be modified as desired. However, keep in mind that whatever changes are made here will NOT be reflected in the stored YAML configuration.

Definition at line 120 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::CreateInputObjects ( InputObject_t  inputObjectType)
private

Steers the creation of all input objects of a selected type. In the case of clusters and tracks, AliEmcalContainer can be used, and a container is created for each requested object of the specified input object type. In the case of cells, an EMCal Correction Cell Container is created to handle the relevant information.

Normally, when properties are retrieved from the YAML configuration, the entire configuration is considered. However, here we only consider a subset in both the user and default configurations. In particular, the "inputObjects" section is selected and then all properties are drawn from this subset (the shared parameters are also retained so they can be used). Thus, it takes a bit more care to use this task, but it should be entirely transparent to the users - no functionality or expected flexibility is lost.

Parameters
inputObjectTypeType of the input object(s) to create

Definition at line 540 of file AliEmcalCorrectionTask.cxx.

Referenced by Initialize().

void AliEmcalCorrectionTask::DetermineComponentsToExecute ( std::vector< std::string > &  correctionComponents)
private

Determines which components to execute based on which are selected via specialization (ie suffix), as well as which are enabled and in what order they should be executed. The returned components in order of which they should be executed.

It is recommended to store the result, as it requires a large number of string comparisons and lookups in the YAML configuration, whose associated methods also utilize a number of string comparisons.

Parameters
[out]correctionComponentsNames of the selected correction components in the order in which they should be executed.

Definition at line 338 of file AliEmcalCorrectionTask.cxx.

Referenced by Initialize().

std::string AliEmcalCorrectionTask::DetermineUseDefaultName ( InputObject_t  objType,
bool  esdMode,
bool  returnObjectType = false 
)
static

Given a container type, it returns the proper default branch name based on the "usedefault" pattern. This is useful to properly handle creating input objects such as AliEmcalContainer derived objects. If returnObjectType is true, it returns the "default" (unlikely to change) object type instead of the branch name. This is useful to properly determine the type of an object for a TClonesArray.

This function can also be very useful in places such as an AddTask(). Using it can significantly reduce code duplication!

Parameters
[in]objTypeType of the input object
[in]esdModeTrue if running with an ESD
[in]returnObjectTypeReturns the "default" type of the object rather than the branch name
Returns
The name corresponding to the request branch name or object type.

Definition at line 1292 of file AliEmcalCorrectionTask.cxx.

Referenced by AddContainer(), CheckForContainerArray(), AliEmcalCopyCollection::CreateNewObjectBranch(), AliEmcalCopyCollection::NewBranch(), and SetupCellsInfo().

bool AliEmcalCorrectionTask::DoesFileExist ( const std::string &  filename)
inlinestaticprivate

Checks if a file exists. This is done inline to make it efficient. See: https://stackoverflow.com/a/19841704

Parameters
filenameString containing the filename of the file to check.
Returns
True if the file exists.

Definition at line 1391 of file AliEmcalCorrectionTask.cxx.

Referenced by InitializeConfiguration().

void AliEmcalCorrectionTask::ExecOnce ( )
virtual

Perform steps needed to initialize the analysis. This function relies on the presence of an input event (ESD or AOD event). Consequently it is called internally by UserExec for the first event.

This function connects all containers attached to this task to the corresponding arrays in the input event. Furthermore it initializes the geometry.

Definition at line 1044 of file AliEmcalCorrectionTask.cxx.

Referenced by UserExec().

void AliEmcalCorrectionTask::ExecOnceComponents ( )
private

Calls ExecOnce() for each component. Additionally, the cells container is added to each component, as this is the first time the pointer to the CaloCells object is available.

Definition at line 1089 of file AliEmcalCorrectionTask.cxx.

Referenced by ExecOnce().

AliEmcalCorrectionTask::BeamType AliEmcalCorrectionTask::GetBeamType ( )
private

Get beam type : pp-AA-pA ESDs have it directly, AODs get it from hardcoded run number ranges

Returns
Beam type of the run.

Definition at line 1532 of file AliEmcalCorrectionTask.cxx.

Referenced by RetrieveEventObjects().

AliEmcalCorrectionCellContainer * AliEmcalCorrectionTask::GetCellContainer ( const std::string &  cellsContainerName) const

Finds the desired cell container by name.

Parameters
cellsContainerNameName of the desired cells container
Returns
Pointer to the found cell container, or 0 if not found

Definition at line 1728 of file AliEmcalCorrectionTask.cxx.

Referenced by AddContainersToComponent().

AliClusterContainer * AliEmcalCorrectionTask::GetClusterContainer ( Int_t  i = 0) const

Get \( i^{th} \) cluster container attached to this task

Parameters
[in]iIndex of the cluster container
Returns
Cluster container found for the given index (NULL if no cluster container exists for that index)

Definition at line 1692 of file AliEmcalCorrectionTask.cxx.

Referenced by AddContainersToComponent(), and SetupContainersFromInputNodes().

AliClusterContainer * AliEmcalCorrectionTask::GetClusterContainer ( const char *  name) const

Find cluster container attached to this task according to its name

Parameters
[in]nameName of the cluster container
Returns
Cluster container found under the given name

Definition at line 1715 of file AliEmcalCorrectionTask.cxx.

AliVEvent * AliEmcalCorrectionTask::GetEvent ( AliVEvent *  inputEvent,
bool  isEmbedding = false 
)
static

Get the proper event based on whether embedding is enabled or not. Useful when determining from which event an input object should be retrieved. It could either be the current input event or an embedded event.

Parameters
[in]inputEventThe input event of the analysis. Will be returned if nothing else is requested
[in]isEmbeddingTrue if the event from embedding should be used.
Returns
The input event to be used

Definition at line 1366 of file AliEmcalCorrectionTask.cxx.

Referenced by CheckForContainerArray(), AliEmcalCopyCollection::CreateNewObjectBranch(), and SetCellsObjectInCellContainerBasedOnProperties().

std::string AliEmcalCorrectionTask::GetInputFieldNameFromInputObjectType ( InputObject_t  inputObjectType)
private

Given the input object type, it return the name of the field in the YAML configuration where information about it should be located.

Parameters
inputObjectTypeThe type of the input object
Returns
The name of the field of the requested input object in the YAML configuration file

Definition at line 1481 of file AliEmcalCorrectionTask.cxx.

Referenced by AddContainersToComponent(), and CreateInputObjects().

AliMCParticleContainer* AliEmcalCorrectionTask::GetMCParticleContainer ( Int_t  i = 0) const
inline

Definition at line 135 of file AliEmcalCorrectionTask.h.

AliMCParticleContainer* AliEmcalCorrectionTask::GetMCParticleContainer ( const char *  name) const
inline

Definition at line 136 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::GetNodeForInputObjects ( YAML::Node &  inputNode,
YAML::Node &  nodeToRetrieveFrom,
std::string &  inputObjectName,
bool  requiredProperty 
)
private

Get the YAML node associated with the named input object. The shared parameters of the passed YAML file is also retrieved and attached to the returned YAML node so that it can be used when retrieving properties.

Parameters
[out]inputNodeThe node that will contain the requested properties
[in]nodeToRetrieveFromThe node from which the input object properties should be retrieved. Usually the user or default configuration
[in]inputObjectNameName of the input object node to be retrieved
[in]requiredPropertyTrue if the input object node is required to exist. It may not if it was not defined in the user configuration.

Definition at line 1572 of file AliEmcalCorrectionTask.cxx.

Referenced by CreateInputObjects().

AliParticleContainer * AliEmcalCorrectionTask::GetParticleContainer ( Int_t  i = 0) const

Get \( i^{th} \) particle container attached to this task

Parameters
[in]iIndex of the particle container
Returns
Particle container found for the given index (NULL if no particle container exists for that index)

Definition at line 1680 of file AliEmcalCorrectionTask.cxx.

Referenced by AddContainersToComponent(), GetMCParticleContainer(), GetTrackContainer(), and SetupContainersFromInputNodes().

AliParticleContainer * AliEmcalCorrectionTask::GetParticleContainer ( const char *  name) const

Find particle container attached to this task according to its name

Parameters
[in]nameName of the particle container
Returns
Particle container found under the given name

Definition at line 1704 of file AliEmcalCorrectionTask.cxx.

void AliEmcalCorrectionTask::GetPropertyNamesFromNode ( const std::string &  componentName,
const YAML::Node &  node,
std::set< std::string > &  propertyNames,
const bool  nodeRequired 
)
private

Utility function for CheckForUnmatchedUserSettings() which returns the names of all of the properties defined in a YAML node. This can then be used to check for consistency in how properties are defined in the user and default configurations.

Parameters
[in]componentNameName of the node from which properties are extracted
[in]nodeYAML Node of either the user or default configuration
[out]propertyNamesNames of all of the properties that were in the desired node
[in]nodeRequiredTrue if the node is required to exist

Definition at line 1593 of file AliEmcalCorrectionTask.cxx.

Referenced by CheckForUnmatchedUserSettings().

const TString& AliEmcalCorrectionTask::GetRunPeriod ( ) const
inline

Definition at line 104 of file AliEmcalCorrectionTask.h.

AliTrackContainer* AliEmcalCorrectionTask::GetTrackContainer ( Int_t  i = 0) const
inline

Definition at line 137 of file AliEmcalCorrectionTask.h.

AliTrackContainer* AliEmcalCorrectionTask::GetTrackContainer ( const char *  name) const
inline

Definition at line 138 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::Initialize ( )

Initializes the Correction Task by initializing the YAML configuration and selected correction components, including setting up the input objects (cells, clusters, and tracks).

This function is the main function for initialization and should be called from a run macro! Once called, most of the configuration of the correction task and the correction components is locked in, so be certain to change any additional configuration before that!

Definition at line 157 of file AliEmcalCorrectionTask.cxx.

void AliEmcalCorrectionTask::InitializeComponents ( )
private

Creates, configures, and initializes components based on the configuration described in the YAML files. Configuration includes making the user and default configuration available to each component, as well as setting up the input clusters and tracks (cells have to be handled during ExecOnce()). Each component's individual initialization is also called.

Definition at line 486 of file AliEmcalCorrectionTask.cxx.

Referenced by Initialize().

void AliEmcalCorrectionTask::InitializeConfiguration ( )
private

Initializes and sets up the user and default configuration files. This includes opening the files, checking to ensure that the run period is valid, and storing the contents of the user and default YAML files into strings so that they can be streamed to the grid. (yaml-cpp objects do not work properly with ROOT streamers).

NOTE: fConfigurationInitialized is set to true if the function is successful.

Definition at line 234 of file AliEmcalCorrectionTask.cxx.

Referenced by Initialize().

AliEmcalCorrectionTask& AliEmcalCorrectionTask::operator= ( const AliEmcalCorrectionTask )
private
void AliEmcalCorrectionTask::RemoveClusterContainer ( Int_t  i = 0)
inline

Definition at line 140 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::RemoveParticleContainer ( Int_t  i = 0)
inline

Definition at line 139 of file AliEmcalCorrectionTask.h.

Bool_t AliEmcalCorrectionTask::RetrieveEventObjects ( )
private

Retrieve objects from event.

Returns

Definition at line 1112 of file AliEmcalCorrectionTask.cxx.

Referenced by UserExec().

Bool_t AliEmcalCorrectionTask::Run ( )
virtual

Executed each event. It sets run-by-run properties in the correction components and calls Run() for each component.

Definition at line 1205 of file AliEmcalCorrectionTask.cxx.

Referenced by UserExec().

void AliEmcalCorrectionTask::SetCellsObjectInCellContainerBasedOnProperties ( AliEmcalCorrectionCellContainer cellContainer)
private

Uses the information in the cell container to properly set the pointer to the CaloCells object in the cell container.

Parameters
[in,out]cellContainerCell container to set the pointer in

Definition at line 1441 of file AliEmcalCorrectionTask.cxx.

Referenced by ExecOnce().

void AliEmcalCorrectionTask::SetCentRange ( Double_t  min,
Double_t  max 
)
inline

Definition at line 111 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::SetDefaultConfigurationFilename ( std::string  name)
inline

Set the path to the default configuration filename (Expert use only! The user should set the user configuration!)

Definition at line 98 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::SetForceBeamType ( BeamType  f)
inline

Definition at line 106 of file AliEmcalCorrectionTask.h.

virtual void AliEmcalCorrectionTask::SetNCentBins ( Int_t  n)
inlinevirtual

Definition at line 110 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::SetRunPeriod ( const char *  runPeriod)
inline

Definition at line 107 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::SetupCellsInfo ( std::string  containerName,
YAML::Node &  userNode,
YAML::Node &  defaultNode 
)
private

Setup cell container with information from the YAML configuration nodes corresponding to the selected input object.

The created cell containers is stored by in the correction task.

Parameters
[in]containerNameName of the container to create (as defined in the YAML configuration)
[in]userNodeYAML Node corresponding to the user input object's configuration
[in]defaultNodeYAML Node corresponding to the default input object's configuration

Definition at line 671 of file AliEmcalCorrectionTask.cxx.

Referenced by SetupContainersFromInputNodes().

void AliEmcalCorrectionTask::SetupConfigurationFilePath ( std::string &  filename,
bool  userFile = false 
)
private

Handles setting up the configuration file to be opened, including in AliPhysics and on the grid. Cannot just use TFile::Open() because the YAML file is just text as opposed to a root file. In the case of a file on the grid, it is copied locally.

Parameters
[in]filenameName of the file to be open
[in]userFileTrue if the file to be open is a user YAML file

Definition at line 1405 of file AliEmcalCorrectionTask.cxx.

Referenced by InitializeConfiguration().

void AliEmcalCorrectionTask::SetupContainer ( InputObject_t  inputObjectType,
std::string  containerName,
YAML::Node &  userNode,
YAML::Node &  defaultNode 
)
private

Configures AliEmcalContainer derived tasks. Sets both general properties (such as min energy, etc), as well as container type specific properties (such as Non-linearity energy cut for a cluster container). Available options are enumerated in the general documentation related to the Correction Framework, available here.

Note for experts: This implementation explicitly calls particular functions, which is much more straightforward to understand and work with, but is less flexible. This means that any new options need to be implemented here by hand. An idea for a better implementation is mentioned in comments in the function for those who are interested. Once it is implemented, AliEmcalContainer derived classes could be entirely configured through YAML.

Parameters
[in]inputObjectTypeType of the input object to configure
[in]containerNameName of the container to create (as defined in the YAML configuration)
[in]userNodeYAML Node corresponding to the user input object's configuration
[in]defaultNodeYAML Node corresponding to the default input object's configuration

Definition at line 715 of file AliEmcalCorrectionTask.cxx.

Referenced by SetupContainersFromInputNodes().

void AliEmcalCorrectionTask::SetupContainersFromInputNodes ( InputObject_t  inputObjectType,
YAML::Node &  userInputObjectNode,
YAML::Node &  defaultInputObjectNode,
std::set< std::string > &  requestedContainers 
)
private

Creates the input objects containers requested by the components.

Parameters
[in]inputObjectTypeType of the input objects to create
[in]userInputObjectNodeYAML Node corresponding to the user input objects configuration
[in]defaultInputObjectNodeYAML Node corresponding to the default input objects configuration
[in]requestedContainersContainers to be created

Definition at line 639 of file AliEmcalCorrectionTask.cxx.

Referenced by CreateInputObjects().

void AliEmcalCorrectionTask::SetUseNewCentralityEstimation ( Bool_t  b)
inline

Definition at line 109 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::SetUserConfigurationFilename ( std::string  name)
inline

Set the path to the user configuration filename.

Definition at line 96 of file AliEmcalCorrectionTask.h.

void AliEmcalCorrectionTask::UserCreateOutputObjects ( )

Reinitializes the YAML configurations if necessary and sets up for output from the correction components. The reinitialization is necessary if the object is streamed because yaml-cpp objects cannot be streamed. Instead, the YAML configuration is stored in strings and the nodes are recreated here from the string.

Note that the number of centrality bins is also set here in the case of a forced beam-type since this is how it was done in AliAnalysisTaskEmcal.

Definition at line 920 of file AliEmcalCorrectionTask.cxx.

void AliEmcalCorrectionTask::UserCreateOutputObjectsComponents ( )
private

Calls UserCreateOutputObjects() for each component and ensures that the output from the correction components is eventually output by the correction task.

It also sets the number of centrality bins.

Definition at line 974 of file AliEmcalCorrectionTask.cxx.

Referenced by UserCreateOutputObjects().

void AliEmcalCorrectionTask::UserExec ( Option_t option)

Steers each event. It enforces that the event is initialized before executing the main analysis of the event.

Definition at line 1011 of file AliEmcalCorrectionTask.cxx.

Bool_t AliEmcalCorrectionTask::UserNotify ( )

Executed when the file is changed. Also calls UserNotify() for each component.

Definition at line 1228 of file AliEmcalCorrectionTask.cxx.

bool AliEmcalCorrectionTask::WriteConfigurationFile ( std::string  filename,
bool  userConfig = false 
)

Write the desired YAML configuration to a file.

Parameters
filenameThe name of the file to write
userConfigTrue to write the user configuration
Returns
True when writing the configuration to the file was successful

Definition at line 1247 of file AliEmcalCorrectionTask.cxx.

Member Data Documentation

std::map<std::string, AliVCluster::VCluUserDefEnergy_t> AliEmcalCorrectionTask::clusterEnergyTypeMap
Initial value:
= {
{"kNonLinCorr", AliVCluster::kNonLinCorr },
{"kHadCorr", AliVCluster::kHadCorr },
{"kUserDefEnergy1", AliVCluster::kUserDefEnergy1 },
{"kUserDefEnergy2", AliVCluster::kUserDefEnergy2 }
}

Relates string to the cluster energy enumeration for YAML configuration.

Definition at line 72 of file AliEmcalCorrectionTask.h.

BeamType AliEmcalCorrectionTask::fBeamType
private

! Event beam type

Definition at line 238 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects().

std::vector<AliEmcalCorrectionCellContainer *> AliEmcalCorrectionTask::fCellCollArray
private

Cells collection array.

Definition at line 245 of file AliEmcalCorrectionTask.h.

Referenced by ExecOnce(), GetCellContainer(), Initialize(), and SetupCellsInfo().

Double_t AliEmcalCorrectionTask::fCent
private

! Event centrality

Definition at line 229 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), and Run().

Int_t AliEmcalCorrectionTask::fCentBin
private

! Event centrality bin

Definition at line 230 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), and Run().

TString AliEmcalCorrectionTask::fCentEst
private

name of V0 centrality estimator

Definition at line 234 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects().

TObjArray AliEmcalCorrectionTask::fClusterCollArray
private
bool AliEmcalCorrectionTask::fConfigurationInitialized
private

True if the YAML configuration files are initialized.

Definition at line 224 of file AliEmcalCorrectionTask.h.

Referenced by Initialize(), InitializeConfiguration(), UserCreateOutputObjects(), and WriteConfigurationFile().

std::vector<AliEmcalCorrectionComponent *> AliEmcalCorrectionTask::fCorrectionComponents
private

Contains the correction components.

Definition at line 223 of file AliEmcalCorrectionTask.h.

Referenced by CorrectionComponents(), ExecOnceComponents(), InitializeComponents(), Run(), UserCreateOutputObjectsComponents(), and UserNotify().

YAML::Node AliEmcalCorrectionTask::fDefaultConfiguration
private
std::string AliEmcalCorrectionTask::fDefaultConfigurationFilename
private

! Default YAML configuration filename

Definition at line 220 of file AliEmcalCorrectionTask.h.

Referenced by InitializeConfiguration(), and SetDefaultConfigurationFilename().

std::string AliEmcalCorrectionTask::fDefaultConfigurationString
private

Store the default YAML configuration as a string so that it can be streamed.

Definition at line 217 of file AliEmcalCorrectionTask.h.

Referenced by InitializeConfiguration(), UserCreateOutputObjects(), and WriteConfigurationFile().

bool AliEmcalCorrectionTask::fEventInitialized
private

If the event is initialized properly.

Definition at line 228 of file AliEmcalCorrectionTask.h.

Referenced by ExecOnce(), and UserExec().

BeamType AliEmcalCorrectionTask::fForceBeamType
private

forced beam type

Definition at line 239 of file AliEmcalCorrectionTask.h.

Referenced by GetBeamType(), SetForceBeamType(), and UserCreateOutputObjects().

AliEMCALGeometry* AliEmcalCorrectionTask::fGeom
private

! Emcal geometry

Definition at line 241 of file AliEmcalCorrectionTask.h.

Referenced by ExecOnce(), and ExecOnceComponents().

bool AliEmcalCorrectionTask::fIsEsd
private
Double_t AliEmcalCorrectionTask::fMaxCent
private

max centrality for event selection

Definition at line 232 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), and SetCentRange().

Double_t AliEmcalCorrectionTask::fMinCent
private

min centrality for event selection

Definition at line 231 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), and SetCentRange().

Int_t AliEmcalCorrectionTask::fNcentBins
private

how many centrality bins

Definition at line 233 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), SetNCentBins(), UserCreateOutputObjects(), and UserCreateOutputObjectsComponents().

Bool_t AliEmcalCorrectionTask::fNeedEmcalGeom
private

whether or not the task needs the emcal geometry

Definition at line 240 of file AliEmcalCorrectionTask.h.

Referenced by ExecOnce().

Int_t AliEmcalCorrectionTask::fNVertCont
private

! Event vertex number of contributors

Definition at line 237 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects().

std::vector<std::string> AliEmcalCorrectionTask::fOrderedComponentsToExecute
private

Ordered set of components to execute.

Definition at line 222 of file AliEmcalCorrectionTask.h.

Referenced by CheckForUnmatchedUserSettings(), CreateInputObjects(), Initialize(), and InitializeComponents().

TList* AliEmcalCorrectionTask::fOutput
private

! Output for histograms

Definition at line 247 of file AliEmcalCorrectionTask.h.

Referenced by Run(), UserCreateOutputObjects(), and UserCreateOutputObjectsComponents().

TString AliEmcalCorrectionTask::fRunPeriod
private

Run period (passed by user)

Definition at line 227 of file AliEmcalCorrectionTask.h.

Referenced by GetRunPeriod(), InitializeConfiguration(), and SetRunPeriod().

std::string AliEmcalCorrectionTask::fSuffix
private

Default YAML Configuration.

Suffix of the Correction Task (used to select components)

Definition at line 215 of file AliEmcalCorrectionTask.h.

Referenced by DetermineComponentsToExecute(), Initialize(), and InitializeComponents().

Bool_t AliEmcalCorrectionTask::fUseNewCentralityEstimation
private

Use new centrality estimation (for 2015 data)

Definition at line 235 of file AliEmcalCorrectionTask.h.

Referenced by RetrieveEventObjects(), and SetUseNewCentralityEstimation().

std::string AliEmcalCorrectionTask::fUserConfigurationFilename
private

! User YAML configruation filename

Definition at line 219 of file AliEmcalCorrectionTask.h.

Referenced by InitializeConfiguration(), and SetUserConfigurationFilename().

std::string AliEmcalCorrectionTask::fUserConfigurationString
private

Store the user YAML configuration as a string so that it can be streamed.

Definition at line 216 of file AliEmcalCorrectionTask.h.

Referenced by InitializeConfiguration(), UserCreateOutputObjects(), and WriteConfigurationFile().

Double_t AliEmcalCorrectionTask::fVertex[3]
private

! Event vertex

Definition at line 236 of file AliEmcalCorrectionTask.h.

Referenced by AliEmcalCorrectionTask(), and RetrieveEventObjects().

std::map<std::string, AliEmcalTrackSelection::ETrackFilterType_t> AliEmcalCorrectionTask::trackFilterTypeMap
Initial value:

Relates string to the track filter enumeration for YAML configuration.

Definition at line 80 of file AliEmcalCorrectionTask.h.

Referenced by SetupContainer().


The documentation for this class was generated from the following files: