![]() |
AliPhysics
008a5da (008a5da)
|
Steering task for the EMCal correction framework. More...
#include <AliEmcalCorrectionTask.h>
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... | |
Static Public Member Functions | |
static std::string | DetermineUseDefaultName (InputObject_t contType, bool esdMode, bool returnObjectType=false) |
static AliVEvent * | GetEvent (AliVEvent *inputEvent, bool isEmbedding=false) |
static AliEmcalCorrectionTask * | AddTaskEmcalCorrectionTask (TString suffix="") |
Static Public Attributes | |
static const std::map < std::string, AliVCluster::VCluUserDefEnergy_t > | fgkClusterEnergyTypeMap |
Relates string to the cluster energy enumeration for YAML configuration. More... | |
static const std::map < std::string, AliEmcalTrackSelection::ETrackFilterType_t > | fgkTrackFilterTypeMap |
Relates string to the track filter enumeration for YAML configuration. More... | |
Private Member Functions | |
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 () const |
void | PrintRequestedContainersInformation (InputObject_t inputObjectType, std::ostream &stream) const |
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 |
! User YAML Configuration More... | |
YAML::Node | fDefaultConfiguration |
! Default YAML Configuration More... | |
std::string | fSuffix |
Suffix of the Correction Task (used to select components) 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... | |
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... | |
TList * | fOutput |
! Output for histograms More... | |
Friends | |
void | swap (AliEmcalCorrectionTask &first, AliEmcalCorrectionTask &second) |
std::ostream & | operator<< (std::ostream &in, const AliEmcalCorrectionTask &myTask) |
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.
Definition at line 49 of file AliEmcalCorrectionTask.h.
Switch for the beam type.
Enumerator | |
---|---|
kNA |
! Undefined |
kpp |
! Proton-Proton |
kAA |
! Nucleus-Nucleus |
kpA |
! Proton-Nucleus |
Definition at line 55 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 66 of file AliEmcalCorrectionTask.h.
AliEmcalCorrectionTask::AliEmcalCorrectionTask | ( | ) |
Default constructor.
Definition at line 57 of file AliEmcalCorrectionTask.cxx.
Referenced by AddTaskEmcalCorrectionTask().
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.
[in] | name | Name of the correction task. |
Definition at line 105 of file AliEmcalCorrectionTask.cxx.
AliEmcalCorrectionTask::AliEmcalCorrectionTask | ( | const AliEmcalCorrectionTask & | task | ) |
Copy constructor.
Note that it currently takes just the pointer to the correction components and their output. More care including copy constructors for the components would be required for this to be more fully copied!
Definition at line 154 of file AliEmcalCorrectionTask.cxx.
AliEmcalCorrectionTask::AliEmcalCorrectionTask | ( | AliEmcalCorrectionTask && | other | ) |
Move constructor
Definition at line 197 of file AliEmcalCorrectionTask.cxx.
|
virtual |
Destructor
Definition at line 256 of file AliEmcalCorrectionTask.cxx.
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.
[in] | n | Name of the container and the array the container points to |
Definition at line 1782 of file AliEmcalCorrectionTask.cxx.
|
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.
[in] | contType | Type of the input object to add |
[in] | containerName | Name of the container to create (as defined in the YAML configuration) |
[in] | userNode | YAML Node corresponding to the user input object's configuration |
[in] | defaultNode | YAML Node corresponding to the default input object's configuration |
Definition at line 941 of file AliEmcalCorrectionTask.cxx.
Referenced by SetupContainer().
|
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.
[in] | component | The correction component to which the input objects will be added |
[in] | inputObjectType | The type of input object to add to the component |
Definition at line 663 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.
[in] | n | Name of the container and the array the container points to |
Definition at line 1728 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.
[in] | n | Name of the container and the array the container points to |
Definition at line 1764 of file AliEmcalCorrectionTask.cxx.
|
static |
Definition at line 1858 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.
[in] | n | Name of the container and the array the container points to |
Definition at line 1746 of file AliEmcalCorrectionTask.cxx.
|
inline |
Definition at line 132 of file AliEmcalCorrectionTask.h.
Referenced by AddContainer().
|
inline |
Definition at line 131 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 129 of file AliEmcalCorrectionTask.h.
Referenced by AddContainer(), AdoptMCParticleContainer(), and AdoptTrackContainer().
|
inline |
Definition at line 130 of file AliEmcalCorrectionTask.h.
|
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.
cont | The container which is requesting the branch |
objectType | The type of the input object |
Definition at line 1548 of file AliEmcalCorrectionTask.cxx.
Referenced by ExecOnce().
|
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.
NOTE: This only checks settings in components. NOT variables defined at the root level, such as the pass or name! It also leaves the input objects unchecked, due to lacking a definitive list of possible settings.
Utilizes the stored ordered correction component names.
Definition at line 500 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize().
|
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
name | Name to search for in the possible names |
possibleComponents | Possible names of components that have been retrieved from the YAML file |
Definition at line 1601 of file AliEmcalCorrectionTask.cxx.
Referenced by DetermineComponentsToExecute().
|
inline |
Direct access to the correction components.
Definition at line 122 of file AliEmcalCorrectionTask.h.
|
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.
inputObjectType | Type of the input object(s) to create |
Definition at line 616 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize().
|
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.
[out] | correctionComponents | Names of the selected correction components in the order in which they should be executed. |
Definition at line 410 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize().
|
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!
[in] | objType | Type of the input object |
[in] | esdMode | True if running with an ESD |
[in] | returnObjectType | Returns the "default" type of the object rather than the branch name |
Definition at line 1381 of file AliEmcalCorrectionTask.cxx.
Referenced by AddContainer(), CheckForContainerArray(), AliEmcalCopyCollection::CreateNewObjectBranch(), AliEmcalCopyCollection::NewBranch(), and SetupCellsInfo().
|
inlinestaticprivate |
Checks if a file exists. This is done inline to make it efficient. See: https://stackoverflow.com/a/19841704
filename | String containing the filename of the file to check. |
Definition at line 1480 of file AliEmcalCorrectionTask.cxx.
Referenced by InitializeConfiguration().
|
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 1112 of file AliEmcalCorrectionTask.cxx.
Referenced by UserExec().
|
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 1169 of file AliEmcalCorrectionTask.cxx.
Referenced by ExecOnce().
|
private |
Get beam type : pp-AA-pA ESDs have it directly, AODs get it from hardcoded run number ranges
Definition at line 1621 of file AliEmcalCorrectionTask.cxx.
Referenced by RetrieveEventObjects().
AliEmcalCorrectionCellContainer * AliEmcalCorrectionTask::GetCellContainer | ( | const std::string & | cellsContainerName | ) | const |
Finds the desired cell container by name.
cellsContainerName | Name of the desired cells container |
Definition at line 1846 of file AliEmcalCorrectionTask.cxx.
Referenced by AddContainersToComponent().
AliClusterContainer * AliEmcalCorrectionTask::GetClusterContainer | ( | Int_t | i = 0 | ) | const |
Get \( i^{th} \) cluster container attached to this task
[in] | i | Index of the cluster container |
Definition at line 1810 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
[in] | name | Name of the cluster container |
Definition at line 1833 of file AliEmcalCorrectionTask.cxx.
|
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.
[in] | inputEvent | The input event of the analysis. Will be returned if nothing else is requested |
[in] | isEmbedding | True if the event from embedding should be used. |
Definition at line 1455 of file AliEmcalCorrectionTask.cxx.
Referenced by CheckForContainerArray(), AliEmcalCopyCollection::CreateNewObjectBranch(), and SetCellsObjectInCellContainerBasedOnProperties().
|
private |
Given the input object type, it return the name of the field in the YAML configuration where information about it should be located.
inputObjectType | The type of the input object |
Definition at line 1570 of file AliEmcalCorrectionTask.cxx.
Referenced by AddContainersToComponent(), and CreateInputObjects().
|
inline |
Definition at line 137 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 138 of file AliEmcalCorrectionTask.h.
|
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.
[out] | inputNode | The node that will contain the requested properties |
[in] | nodeToRetrieveFrom | The node from which the input object properties should be retrieved. Usually the user or default configuration |
[in] | inputObjectName | Name of the input object node to be retrieved |
[in] | requiredProperty | True if the input object node is required to exist. It may not if it was not defined in the user configuration. |
Definition at line 1690 of file AliEmcalCorrectionTask.cxx.
Referenced by CreateInputObjects().
AliParticleContainer * AliEmcalCorrectionTask::GetParticleContainer | ( | Int_t | i = 0 | ) | const |
Get \( i^{th} \) particle container attached to this task
[in] | i | Index of the particle container |
Definition at line 1798 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
[in] | name | Name of the particle container |
Definition at line 1822 of file AliEmcalCorrectionTask.cxx.
|
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.
[in] | componentName | Name of the node from which properties are extracted |
[in] | node | YAML Node of either the user or default configuration |
[out] | propertyNames | Names of all of the properties that were in the desired node |
[in] | nodeRequired | True if the node is required to exist |
Definition at line 1711 of file AliEmcalCorrectionTask.cxx.
Referenced by CheckForUnmatchedUserSettings().
|
inline |
Definition at line 139 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 140 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 269 of file AliEmcalCorrectionTask.cxx.
|
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 562 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize().
|
private |
Initializes and sets up the user and default configuration files. This includes opening the files 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 341 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize().
AliEmcalCorrectionTask & AliEmcalCorrectionTask::operator= | ( | AliEmcalCorrectionTask | other | ) |
Assignment operator. Note that we pass by value, so a copy is created and it is fine to swap the values with the created object!
Definition at line 207 of file AliEmcalCorrectionTask.cxx.
void AliEmcalCorrectionTask::Print | ( | Option_t * | opt = "" | ) | const |
Print basic correction task information using the string representation provided by AliEmcalCorrectionTask::toString
opt | If "YAML" is passed, then the YAML configuration is also printed |
Definition at line 1975 of file AliEmcalCorrectionTask.cxx.
Referenced by operator<<().
std::ostream & AliEmcalCorrectionTask::Print | ( | std::ostream & | in | ) | const |
Print correction task information on an output stream using the string representation provided by AliEmcalCorrectionTask::toString. Used by operator<<
in | output stream stream |
Definition at line 1951 of file AliEmcalCorrectionTask.cxx.
std::ostream & AliEmcalCorrectionTask::PrintConfigurationString | ( | std::ostream & | in, |
bool | userConfig = false |
||
) | const |
Print configuration string
in | Stream to which the configuration string should be added |
userConfig | True if the user configuration should be printed |
Definition at line 1322 of file AliEmcalCorrectionTask.cxx.
Referenced by toString(), and WriteConfigurationFile().
|
private |
Definition at line 1658 of file AliEmcalCorrectionTask.cxx.
Referenced by Initialize(), and toString().
|
inline |
Definition at line 142 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 141 of file AliEmcalCorrectionTask.h.
|
private |
Retrieve objects from event.
Definition at line 1191 of file AliEmcalCorrectionTask.cxx.
Referenced by UserExec().
|
virtual |
Executed each event. It sets run-by-run properties in the correction components and calls Run() for each component.
Definition at line 1284 of file AliEmcalCorrectionTask.cxx.
Referenced by UserExec().
|
private |
Uses the information in the cell container to properly set the pointer to the CaloCells object in the cell container.
[in,out] | cellContainer | Cell container to set the pointer in |
Definition at line 1530 of file AliEmcalCorrectionTask.cxx.
Referenced by ExecOnce().
Definition at line 113 of file AliEmcalCorrectionTask.h.
|
inline |
Set the path to the default configuration filename (Expert use only! The user should set the user configuration!)
Definition at line 94 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 107 of file AliEmcalCorrectionTask.h.
|
inlinevirtual |
Definition at line 112 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 109 of file AliEmcalCorrectionTask.h.
|
inline |
Definition at line 108 of file AliEmcalCorrectionTask.h.
|
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.
[in] | containerName | Name of the container to create (as defined in the YAML configuration) |
[in] | userNode | YAML Node corresponding to the user input object's configuration |
[in] | defaultNode | YAML Node corresponding to the default input object's configuration |
Definition at line 746 of file AliEmcalCorrectionTask.cxx.
Referenced by SetupContainersFromInputNodes().
|
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.
[in] | filename | Name of the file to be open |
[in] | userFile | True if the file to be open is a user YAML file |
Definition at line 1494 of file AliEmcalCorrectionTask.cxx.
Referenced by InitializeConfiguration().
|
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.
[in] | inputObjectType | Type of the input object to configure |
[in] | containerName | Name of the container to create (as defined in the YAML configuration) |
[in] | userNode | YAML Node corresponding to the user input object's configuration |
[in] | defaultNode | YAML Node corresponding to the default input object's configuration |
Definition at line 790 of file AliEmcalCorrectionTask.cxx.
Referenced by SetupContainersFromInputNodes().
|
private |
Creates the input objects containers requested by the components.
[in] | inputObjectType | Type of the input objects to create |
[in] | userInputObjectNode | YAML Node corresponding to the user input objects configuration |
[in] | defaultInputObjectNode | YAML Node corresponding to the default input objects configuration |
[in] | requestedContainers | Containers to be created |
Definition at line 714 of file AliEmcalCorrectionTask.cxx.
Referenced by CreateInputObjects().
|
inline |
Definition at line 111 of file AliEmcalCorrectionTask.h.
|
inline |
Set the path to the user configuration filename.
Definition at line 92 of file AliEmcalCorrectionTask.h.
std::string AliEmcalCorrectionTask::toString | ( | bool | includeYAMLConfigurationInfo = false | ) | const |
Prints information about the correction task.
Definition at line 1919 of file AliEmcalCorrectionTask.cxx.
Referenced by Print().
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 995 of file AliEmcalCorrectionTask.cxx.
|
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 1047 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 1083 of file AliEmcalCorrectionTask.cxx.
Bool_t AliEmcalCorrectionTask::UserNotify | ( | ) |
Executed when the file is changed. Also calls UserNotify() for each component.
Definition at line 1305 of file AliEmcalCorrectionTask.cxx.
bool AliEmcalCorrectionTask::WriteConfigurationFile | ( | std::string | filename, |
bool | userConfig = false |
||
) | const |
Write the desired YAML configuration to a file.
filename | The name of the file to write |
userConfig | True to write the user configuration |
Definition at line 1340 of file AliEmcalCorrectionTask.cxx.
|
friend |
Implementation of the output stream operator for AliEmcalCorrectionTask. Printing basic correction task information provided by function toString
in | output stream |
myTask | Task which will be printed |
Definition at line 1963 of file AliEmcalCorrectionTask.cxx.
|
friend |
Swap function. Created using guide described here: https://stackoverflow.com/a/3279550
Definition at line 217 of file AliEmcalCorrectionTask.cxx.
Referenced by AliEmcalCorrectionTask(), and operator=().
|
private |
! Event beam type
Definition at line 240 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), and swap().
|
private |
Cells collection array.
Definition at line 247 of file AliEmcalCorrectionTask.h.
Referenced by ExecOnce(), GetCellContainer(), PrintRequestedContainersInformation(), SetupCellsInfo(), and swap().
|
private |
! Event centrality
Definition at line 231 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), Run(), and swap().
|
private |
! Event centrality bin
Definition at line 232 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), Run(), and swap().
|
private |
name of V0 centrality estimator
Definition at line 236 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), and swap().
|
private |
Cluster collection array.
Definition at line 246 of file AliEmcalCorrectionTask.h.
Referenced by AddClusterContainer(), AdoptClusterContainer(), ExecOnce(), GetClusterContainer(), PrintRequestedContainersInformation(), RemoveClusterContainer(), RetrieveEventObjects(), and swap().
|
private |
True if the YAML configuration files are initialized.
Definition at line 227 of file AliEmcalCorrectionTask.h.
Referenced by Initialize(), InitializeConfiguration(), swap(), UserCreateOutputObjects(), and WriteConfigurationFile().
|
private |
Contains the correction components.
Definition at line 226 of file AliEmcalCorrectionTask.h.
Referenced by CorrectionComponents(), ExecOnceComponents(), InitializeComponents(), Run(), swap(), UserCreateOutputObjectsComponents(), and UserNotify().
|
private |
! Default YAML Configuration
Definition at line 215 of file AliEmcalCorrectionTask.h.
Referenced by AddContainersToComponent(), CheckForUnmatchedUserSettings(), CreateInputObjects(), DetermineComponentsToExecute(), InitializeComponents(), InitializeConfiguration(), swap(), and UserCreateOutputObjects().
|
private |
! Default YAML configuration filename
Definition at line 223 of file AliEmcalCorrectionTask.h.
Referenced by InitializeConfiguration(), SetDefaultConfigurationFilename(), and swap().
|
private |
Store the default YAML configuration as a string so that it can be streamed.
Definition at line 220 of file AliEmcalCorrectionTask.h.
Referenced by InitializeConfiguration(), PrintConfigurationString(), swap(), and UserCreateOutputObjects().
|
private |
If the event is initialized properly.
Definition at line 230 of file AliEmcalCorrectionTask.h.
Referenced by ExecOnce(), swap(), and UserExec().
|
private |
forced beam type
Definition at line 241 of file AliEmcalCorrectionTask.h.
Referenced by GetBeamType(), SetForceBeamType(), swap(), and UserCreateOutputObjects().
|
private |
! Emcal geometry
Definition at line 243 of file AliEmcalCorrectionTask.h.
Referenced by ExecOnce(), ExecOnceComponents(), and swap().
|
static |
Relates string to the cluster energy enumeration for YAML configuration.
!
Definition at line 74 of file AliEmcalCorrectionTask.h.
|
static |
Relates string to the track filter enumeration for YAML configuration.
!
Definition at line 77 of file AliEmcalCorrectionTask.h.
Referenced by SetupContainer().
|
private |
File type.
Definition at line 229 of file AliEmcalCorrectionTask.h.
Referenced by AddContainer(), CheckForContainerArray(), Initialize(), InitializeComponents(), SetupCellsInfo(), and swap().
|
private |
max centrality for event selection
Definition at line 234 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), SetCentRange(), and swap().
|
private |
min centrality for event selection
Definition at line 233 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), SetCentRange(), and swap().
|
private |
how many centrality bins
Definition at line 235 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), SetNCentBins(), swap(), UserCreateOutputObjects(), and UserCreateOutputObjectsComponents().
|
private |
whether or not the task needs the emcal geometry
Definition at line 242 of file AliEmcalCorrectionTask.h.
Referenced by ExecOnce(), SetNeedEmcalGeometry(), and swap().
|
private |
! Event vertex number of contributors
Definition at line 239 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), and swap().
|
private |
Ordered set of components to execute.
Definition at line 225 of file AliEmcalCorrectionTask.h.
Referenced by CheckForUnmatchedUserSettings(), CreateInputObjects(), Initialize(), InitializeComponents(), swap(), and toString().
|
private |
! Output for histograms
Definition at line 249 of file AliEmcalCorrectionTask.h.
Referenced by Run(), swap(), UserCreateOutputObjects(), and UserCreateOutputObjectsComponents().
|
private |
Particle/track collection array.
Definition at line 245 of file AliEmcalCorrectionTask.h.
Referenced by AddMCParticleContainer(), AddParticleContainer(), AddTrackContainer(), AdoptParticleContainer(), ExecOnce(), GetParticleContainer(), PrintRequestedContainersInformation(), RemoveParticleContainer(), RetrieveEventObjects(), and swap().
|
private |
Suffix of the Correction Task (used to select components)
Definition at line 218 of file AliEmcalCorrectionTask.h.
Referenced by DetermineComponentsToExecute(), Initialize(), InitializeComponents(), and swap().
|
private |
Use new centrality estimation (for 2015 data)
Definition at line 237 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), SetUseNewCentralityEstimation(), and swap().
|
private |
! User YAML Configuration
Definition at line 214 of file AliEmcalCorrectionTask.h.
Referenced by AddContainersToComponent(), CheckForUnmatchedUserSettings(), CreateInputObjects(), DetermineComponentsToExecute(), InitializeComponents(), InitializeConfiguration(), swap(), and UserCreateOutputObjects().
|
private |
! User YAML configruation filename
Definition at line 222 of file AliEmcalCorrectionTask.h.
Referenced by InitializeConfiguration(), SetUserConfigurationFilename(), and swap().
|
private |
Store the user YAML configuration as a string so that it can be streamed.
Definition at line 219 of file AliEmcalCorrectionTask.h.
Referenced by InitializeConfiguration(), PrintConfigurationString(), swap(), and UserCreateOutputObjects().
|
private |
! Event vertex
Definition at line 238 of file AliEmcalCorrectionTask.h.
Referenced by RetrieveEventObjects(), and swap().