ATLAS Offline Software
|
Tool to correct electron and photon MC variables using the ElectronPhotonVariableCorrectionBase class. More...
#include <ElectronPhotonVariableCorrectionTool.h>
Public Member Functions | |
ElectronPhotonVariableCorrectionTool (const std::string &myname) | |
Declare the interface that the class provides. More... | |
~ElectronPhotonVariableCorrectionTool () | |
Standard destructor. More... | |
virtual StatusCode | initialize () override |
Initialize the tool instance. More... | |
virtual const CP::CorrectionCode | applyCorrection (xAOD::Photon &photon) const override |
Apply the correction given in the conf file to the passed photon. More... | |
virtual const CP::CorrectionCode | applyCorrection (xAOD::Electron &electron) const override |
Apply the correction given in the conf file to the passed electron. More... | |
virtual const CP::CorrectionCode | correctedCopy (const xAOD::Photon &in_photon, xAOD::Photon *&out_photon) const override |
Make a corrected copy of the passed photon according to the given conf file. More... | |
virtual const CP::CorrectionCode | correctedCopy (const xAOD::Electron &in_electron, xAOD::Electron *&out_electron) const override |
Make a corrected copy of the passed electron according to the given conf file. More... | |
virtual void | print () const |
Print the state of the tool. More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysInitialize () override |
Perform system initialization for an algorithm. More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
const StatusCode | initializeCorrectionTools () |
Configure, initialize, and check the base class instances saved in the m_*Tools members. More... | |
const StatusCode | initializeTools (const std::string &name, const std::vector< std::string > &confFiles, std::vector< std::unique_ptr< ElectronPhotonVariableCorrectionBase >> &toolHolder) |
Initialize the base clase instances saved in the m_*Tools members. More... | |
const StatusCode | getCorrectionVariableName (std::string &variableName, const std::string &confFile) const |
Get current name of the variable to be corrected by the current base class instance, in order to coherently name the base class instances. More... | |
const StatusCode | findAllConfigFiles (std::vector< std::string > &confFiles) |
Locate all config files for the base class instances passed to the tool in m_configFile in the ATLAS file system. More... | |
const StatusCode | applyToFlagMatchesToolHolder (const std::vector< std::string > &confFiles, const std::vector< std::unique_ptr< ElectronPhotonVariableCorrectionBase >> &toolHolder, ElectronPhotonVariableCorrectionBase::EGammaObjects toolHolderType) |
Check if the ApplyTo flag from the base class conf file does match with the container type spcified in the tool conf file. More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Private Attributes | |
std::string | m_configFile |
The configuration file for the tool. More... | |
std::vector< std::string > | m_convertedPhotonConfFiles |
The configuration files for the base class - converted photons. More... | |
std::vector< std::string > | m_unconvertedPhotonConfFiles |
The configuration files for the base class - unconverted photons. More... | |
std::vector< std::string > | m_electronConfFiles |
The configuration files for the base class - electrons. More... | |
std::vector< std::unique_ptr< ElectronPhotonVariableCorrectionBase > > | m_convertedPhotonTools |
The base class instances for single variable correction - converted photons. More... | |
std::vector< std::unique_ptr< ElectronPhotonVariableCorrectionBase > > | m_unconvertedPhotonTools |
The base class instances for single variable correction - unconverted photons. More... | |
std::vector< std::unique_ptr< ElectronPhotonVariableCorrectionBase > > | m_electronTools |
The base class instances for single variable correction - electrons. More... | |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Tool to correct electron and photon MC variables using the ElectronPhotonVariableCorrectionBase class.
Tool to correct electron and photon MC variables.
For a detailed documentation, please refer to the gitlab readme
Definition at line 29 of file ElectronPhotonVariableCorrectionTool.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
ElectronPhotonVariableCorrectionTool::ElectronPhotonVariableCorrectionTool | ( | const std::string & | myname | ) |
Declare the interface that the class provides.
Standard constructor
myname | Internal name of the tool instance, so they can be distinguished |
Definition at line 21 of file ElectronPhotonVariableCorrectionTool.cxx.
|
inline |
|
overridevirtual |
Apply the correction given in the conf file to the passed electron.
electron | The electron which should be corrected |
Pass an electron which should be corrected by the tool to this function. The tool gets the original electron variable value, corrects it according to the configuration file given, and overwrites the original value of the variable. The original variable is saved as <variable_name>_original. Note that the variable to be corrected should be an auxiliary variable, and that the electron or electron container, respectively, must not be const if you want to use this function. If you are running on const objects, please make a deep / shallow copy of the container or use the correctedCopy function of this class.
Implements IElectronPhotonShowerShapeFudgeTool.
Definition at line 201 of file ElectronPhotonVariableCorrectionTool.cxx.
|
overridevirtual |
Apply the correction given in the conf file to the passed photon.
photon | The photon which should be corrected |
Pass a photon which should be corrected by the tool to this function. The tool gets the original photon variable value, corrects it according to the configuration file given, and overwrites the original value of the variable. The original variable is saved as <variable_name>_original. Note that the variable to be corrected should be an auxiliary variable, and that the photon or photon container, respectively, must not be const if you want to use this function. If you are running on const objects, please make a deep / shallow copy of the container or use the correctedCopy function of this class.
Implements IElectronPhotonShowerShapeFudgeTool.
Definition at line 166 of file ElectronPhotonVariableCorrectionTool.cxx.
|
private |
Check if the ApplyTo flag from the base class conf file does match with the container type spcified in the tool conf file.
confFiles | The conf files used to initialze the base class instances now stored in the respective toolHolder |
toolHolder | The base class instances which were initialized using the respective confFiles |
toolHolderType | The type of base class instances which should be stored in the respective toolHolder with respect to the tespectif confFiles |
Definition at line 141 of file ElectronPhotonVariableCorrectionTool.cxx.
|
overridevirtual |
Make a corrected copy of the passed electron according to the given conf file.
in_electron | The original electron of which a corrected copy should be made |
out_electron | Empty new electron where the corrected copy will be stored in |
Makes a corrected copy of the passed electron object according to the correction provided in the configuration file. The in_electron is copied to the out_electron, which is then passed to the applyCorrection function.
Implements IElectronPhotonShowerShapeFudgeTool.
Definition at line 228 of file ElectronPhotonVariableCorrectionTool.cxx.
|
overridevirtual |
Make a corrected copy of the passed photon according to the given conf file.
in_photon | The original photon of which a corrected copy should be made |
out_photon | Empty new photon where the corrected copy will be stored in |
Makes a corrected copy of the passed photon object according to the correction provided in the configuration file. The in_photon is copied to the out_photon, which is then passed to the applyCorrection function.
Implements IElectronPhotonShowerShapeFudgeTool.
Definition at line 221 of file ElectronPhotonVariableCorrectionTool.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
private |
Locate all config files for the base class instances passed to the tool in m_configFile in the ATLAS file system.
confFiles | The conf files which shoud be used for the setup and initialization of the base class instances |
Definition at line 102 of file ElectronPhotonVariableCorrectionTool.cxx.
|
private |
Get current name of the variable to be corrected by the current base class instance, in order to coherently name the base class instances.
variableName | The current correction variable name is saved in this parameter |
confFile | The respective conf file of the current base class instance to be read-out |
Definition at line 239 of file ElectronPhotonVariableCorrectionTool.cxx.
|
inherited |
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
ptr | The bare pointer to the object that the event store should know about |
Definition at line 119 of file AsgTool.cxx.
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
ptr | The bare pointer to the object that the event store should know about |
Definition at line 106 of file AsgTool.cxx.
Get one of the tool's properties.
|
overridevirtual |
Initialize the tool instance.
Reads out the configuration file set via the setProperty(ConfigFile, "/path/to/conf/file.conf") function and sets up the tool instance accordingly
Reimplemented from asg::AsgTool.
Definition at line 28 of file ElectronPhotonVariableCorrectionTool.cxx.
|
private |
Configure, initialize, and check the base class instances saved in the m_*Tools members.
Definition at line 87 of file ElectronPhotonVariableCorrectionTool.cxx.
|
private |
Initialize the base clase instances saved in the m_*Tools members.
name | The name of the tool holder which should be included in the base class instances names |
confFiles | The conf files for the base class instances which should be created and initialized |
toolHolder | The tool holder where the base class instances are created |
Definition at line 119 of file ElectronPhotonVariableCorrectionTool.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
Definition at line 101 of file AsgTool.cxx.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
The configuration file for the tool.
Definition at line 87 of file ElectronPhotonVariableCorrectionTool.h.
|
private |
The configuration files for the base class - converted photons.
Definition at line 89 of file ElectronPhotonVariableCorrectionTool.h.
|
private |
The base class instances for single variable correction - converted photons.
Definition at line 95 of file ElectronPhotonVariableCorrectionTool.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
The configuration files for the base class - electrons.
Definition at line 93 of file ElectronPhotonVariableCorrectionTool.h.
|
private |
The base class instances for single variable correction - electrons.
Definition at line 99 of file ElectronPhotonVariableCorrectionTool.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
The configuration files for the base class - unconverted photons.
Definition at line 91 of file ElectronPhotonVariableCorrectionTool.h.
|
private |
The base class instances for single variable correction - unconverted photons.
Definition at line 97 of file ElectronPhotonVariableCorrectionTool.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.