ATLAS Offline Software
|
Electron selector tool to select signal electrons using the ElectronDNNCalculator retrieve a score based on a DNN. This includes preprocessing/transformations of the input variables and the actual calculation of the score using lwtnn. More...
#include <AsgElectronSelectorTool.h>
Public Member Functions | |
AsgElectronSelectorTool (const std::string &myname) | |
Standard constructor. More... | |
virtual | ~AsgElectronSelectorTool () |
Standard destructor. More... | |
virtual StatusCode | initialize () override |
Gaudi Service Interface method implementations. More... | |
virtual const asg::AcceptInfo & | getAcceptInfo () const override |
Method to get the plain AcceptInfo. More... | |
asg::AcceptData | accept (const xAOD::IParticle *part) const override |
The main accept method: using the generic interface. More... | |
asg::AcceptData | accept (const EventContext &ctx, const xAOD::IParticle *part) const override |
asg::AcceptData | accept (const EventContext &ctx, const xAOD::Electron *eg) const override |
The main accept method: the actual cuts are applied here. More... | |
asg::AcceptData | accept (const EventContext &ctx, const xAOD::Egamma *eg) const override |
The main accept method: the actual cuts are applied here. More... | |
asg::AcceptData | accept (const EventContext &ctx, const xAOD::Electron *eg, double mu) const override |
The main accept method: in case mu not in EventInfo online. More... | |
asg::AcceptData | accept (const EventContext &ctx, const xAOD::Egamma *eg, double mu) const override |
The main accept method: in case mu not in EventInfo online. More... | |
double | calculate (const xAOD::IParticle *part) const |
The main result method: the actual mva score is calculated here. More... | |
double | calculate (const EventContext &ctx, const xAOD::IParticle *part) const override |
calculate method: for pointer to IParticle More... | |
double | calculate (const EventContext &ctx, const xAOD::Electron *eg) const override |
The main result method: the actual mva score is calculated here. More... | |
double | calculate (const EventContext &ctx, const xAOD::Egamma *eg) const override |
The main result method: the actual mva score is calculated here. More... | |
double | calculate (const EventContext &ctx, const xAOD::Electron *eg, double mu) const override |
The main result method: the actual mva score is calculated here. More... | |
double | calculate (const EventContext &ctx, const xAOD::Egamma *eg, double mu) const override |
The main result method: the actual mva score is calculated here. More... | |
double | getDiscriminant (std::vector< float > &mvaOutputs, const xAOD::Electron *egu) const |
Computes discrimiant value from mva output based on whether multiclass is true or false. More... | |
std::vector< float > | calculateMultipleOutputs (const EventContext &ctx, const xAOD::Electron *eg, double mu=-99) const override |
The result method for multiple outputs: can return multiple outputs of the MVA. More... | |
virtual std::string | getOperatingPointName () const override |
Get the name of the current operating point. 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 | |
bool | isForwardElectron (const xAOD::Egamma *eg, const float eta) const |
check for FwdElectron More... | |
double | transformMLOutput (float score) const |
Applies a logit transformation to the score returned by the underlying MVA tool. More... | |
double | combineOutputs (const std::vector< float > &mvaScores, double eta) const |
Combines the six output nodes of a multiclass model into one discriminant. 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... | |
Static Private Member Functions | |
static double | combineOutputsCF (const std::vector< float > &mvaScores) |
static unsigned int | getDiscEtaBin (double eta) |
Gets the Discriminant Eta bin [0,s_fnDiscEtaBins-1] given the eta. More... | |
static unsigned int | getDiscEtBin (double et) |
Gets the Descriminant Et bin the et (MeV) [0,s_fnDiscEtBins-1]. More... | |
static double | interpolateCuts (const std::vector< double > &cuts, double et, double eta) |
Interpolates cut values along pt. More... | |
Private Attributes | |
asg::AcceptInfo | m_acceptMVA |
Accept info. More... | |
std::string | m_workingPoint |
Working Point. More... | |
std::string | m_configFile |
The input config file. More... | |
std::unique_ptr< const ElectronDNNCalculator > | m_mvaTool |
Pointer to the class that calculates the MVA score. More... | |
std::string | m_modelFileName |
The input file name that holds the model. More... | |
std::string | m_quantileFileName |
The input file name that holds the QuantileTransformer. More... | |
std::vector< std::string > | m_variables |
Variables used in the MVA Tool. More... | |
std::vector< int > | m_enum_variables |
Enum version of used variables. More... | |
bool | m_skipDeltaPoverP |
Flag for skip the use of deltaPoverP in dnn calculation (like at HLT) More... | |
bool | m_skipAmbiguityCut |
bool | m_multiClass {} |
Multiclass model or not. More... | |
bool | m_CFReject {} |
Run CF rejection or not. More... | |
bool | m_cfSignal {} |
Use the CF output node in the numerator or the denominator. More... | |
std::vector< double > | m_fractions |
Fractions to combine the output nodes of a multiclass model into one discriminant. More... | |
std::vector< int > | m_cutAmbiguity |
do cut on ambiguity bit More... | |
std::vector< int > | m_cutBL |
cut min on b-layer hits More... | |
std::vector< int > | m_cutPi |
cut min on pixel hits More... | |
std::vector< int > | m_cutSCT |
cut min on precision hits More... | |
bool | m_doSmoothBinInterpolation {} |
do smooth interpolation between bins More... | |
std::vector< double > | m_cutSelector |
cut on mva output More... | |
std::vector< double > | m_cutSelectorCF |
int | m_cutPosition_kinematic {} |
The position of the kinematic cut bit in the AcceptInfo return object. More... | |
int | m_cutPosition_NSilicon {} |
The position of the NSilicon cut bit in the AcceptInfo return object. More... | |
int | m_cutPosition_NPixel {} |
The position of the NPixel cut bit in the AcceptInfo return object. More... | |
int | m_cutPosition_NBlayer {} |
The position of the NBlayer cut bit in the AcceptInfo return object. More... | |
int | m_cutPosition_ambiguity {} |
The position of the ambiguity cut bit in the AcceptInfo return object. More... | |
int | m_cutPosition_MVA {} |
The position of the MVA cut bit in the AcceptInfo return object. More... | |
std::vector< float > | m_defaultVector |
Default vector to return if calculation fails. 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 |
Static Private Attributes | |
static const unsigned int | s_fnDiscEtBins = 10 |
number of discrimintants vs Et More... | |
static const unsigned int | s_fnDiscEtaBins = 10 |
number of discriminants vs |eta| More... | |
Electron selector tool to select signal electrons using the ElectronDNNCalculator retrieve a score based on a DNN. This includes preprocessing/transformations of the input variables and the actual calculation of the score using lwtnn.
Definition at line 25 of file AsgElectronSelectorTool.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
AsgElectronSelectorTool::AsgElectronSelectorTool | ( | const std::string & | myname | ) |
Standard constructor.
Definition at line 91 of file AsgElectronSelectorTool.cxx.
|
virtualdefault |
Standard destructor.
|
inlineoverridevirtual |
The main accept method: the actual cuts are applied here.
Implements IAsgElectronLikelihoodTool.
Definition at line 58 of file AsgElectronSelectorTool.h.
|
overridevirtual |
The main accept method: in case mu not in EventInfo online.
Implements IAsgElectronLikelihoodTool.
Definition at line 913 of file AsgElectronSelectorTool.cxx.
|
inlineoverridevirtual |
The main accept method: the actual cuts are applied here.
Implements IAsgElectronLikelihoodTool.
Definition at line 53 of file AsgElectronSelectorTool.h.
|
overridevirtual |
The main accept method: in case mu not in EventInfo online.
Implements IAsgElectronLikelihoodTool.
Definition at line 354 of file AsgElectronSelectorTool.cxx.
|
overridevirtual |
|
overridevirtual |
The main accept method: using the generic interface.
Implements IAsgElectronLikelihoodTool.
Definition at line 875 of file AsgElectronSelectorTool.cxx.
|
inlineoverridevirtual |
The main result method: the actual mva score is calculated here.
Implements IAsgElectronLikelihoodTool.
Definition at line 80 of file AsgElectronSelectorTool.h.
|
overridevirtual |
The main result method: the actual mva score is calculated here.
Implements IAsgElectronLikelihoodTool.
Definition at line 928 of file AsgElectronSelectorTool.cxx.
|
inlineoverridevirtual |
The main result method: the actual mva score is calculated here.
Implements IAsgElectronLikelihoodTool.
Definition at line 75 of file AsgElectronSelectorTool.h.
|
overridevirtual |
The main result method: the actual mva score is calculated here.
Implements IAsgElectronLikelihoodTool.
Definition at line 556 of file AsgElectronSelectorTool.cxx.
|
overridevirtual |
calculate method: for pointer to IParticle
Implements IAsgElectronLikelihoodTool.
Definition at line 899 of file AsgElectronSelectorTool.cxx.
double AsgElectronSelectorTool::calculate | ( | const xAOD::IParticle * | part | ) | const |
The main result method: the actual mva score is calculated here.
Definition at line 894 of file AsgElectronSelectorTool.cxx.
|
overridevirtual |
The result method for multiple outputs: can return multiple outputs of the MVA.
Implements IAsgElectronLikelihoodTool.
Definition at line 582 of file AsgElectronSelectorTool.cxx.
|
private |
Combines the six output nodes of a multiclass model into one discriminant.
Definition at line 978 of file AsgElectronSelectorTool.cxx.
|
staticprivate |
Definition at line 1007 of file AsgElectronSelectorTool.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
|
overridevirtual |
Method to get the plain AcceptInfo.
This is needed so that one can already get the AcceptInfo and query what cuts are defined before the first object is passed to the tool.
Implements IAsgSelectionTool.
Definition at line 346 of file AsgElectronSelectorTool.cxx.
|
staticprivate |
Gets the Discriminant Eta bin [0,s_fnDiscEtaBins-1] given the eta.
Definition at line 1017 of file AsgElectronSelectorTool.cxx.
|
staticprivate |
double AsgElectronSelectorTool::getDiscriminant | ( | std::vector< float > & | mvaOutputs, |
const xAOD::Electron * | egu | ||
) | const |
Computes discrimiant value from mva output based on whether multiclass is true or false.
Definition at line 564 of file AsgElectronSelectorTool.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.
|
overridevirtual |
Get the name of the current operating point.
Implements IAsgElectronLikelihoodTool.
Definition at line 869 of file AsgElectronSelectorTool.cxx.
Get one of the tool's properties.
|
overridevirtual |
Gaudi Service Interface method implementations.
--------—End of text config-------------------------—
Reimplemented from asg::AsgTool.
Definition at line 122 of file AsgElectronSelectorTool.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.
|
staticprivate |
|
private |
check for FwdElectron
Definition at line 941 of file AsgElectronSelectorTool.cxx.
|
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.
|
private |
Applies a logit transformation to the score returned by the underlying MVA tool.
Definition at line 965 of file AsgElectronSelectorTool.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Accept info.
Definition at line 101 of file AsgElectronSelectorTool.h.
|
private |
Run CF rejection or not.
Definition at line 158 of file AsgElectronSelectorTool.h.
|
private |
Use the CF output node in the numerator or the denominator.
Definition at line 160 of file AsgElectronSelectorTool.h.
|
private |
The input config file.
Definition at line 133 of file AsgElectronSelectorTool.h.
|
private |
do cut on ambiguity bit
Definition at line 165 of file AsgElectronSelectorTool.h.
|
private |
cut min on b-layer hits
Definition at line 167 of file AsgElectronSelectorTool.h.
|
private |
cut min on pixel hits
Definition at line 169 of file AsgElectronSelectorTool.h.
|
private |
The position of the ambiguity cut bit in the AcceptInfo return object.
Definition at line 188 of file AsgElectronSelectorTool.h.
|
private |
The position of the kinematic cut bit in the AcceptInfo return object.
Definition at line 180 of file AsgElectronSelectorTool.h.
|
private |
The position of the MVA cut bit in the AcceptInfo return object.
Definition at line 190 of file AsgElectronSelectorTool.h.
|
private |
The position of the NBlayer cut bit in the AcceptInfo return object.
Definition at line 186 of file AsgElectronSelectorTool.h.
|
private |
The position of the NPixel cut bit in the AcceptInfo return object.
Definition at line 184 of file AsgElectronSelectorTool.h.
|
private |
The position of the NSilicon cut bit in the AcceptInfo return object.
Definition at line 182 of file AsgElectronSelectorTool.h.
|
private |
cut min on precision hits
Definition at line 171 of file AsgElectronSelectorTool.h.
|
private |
cut on mva output
Definition at line 175 of file AsgElectronSelectorTool.h.
|
private |
Definition at line 176 of file AsgElectronSelectorTool.h.
|
private |
Default vector to return if calculation fails.
Definition at line 193 of file AsgElectronSelectorTool.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
do smooth interpolation between bins
Definition at line 173 of file AsgElectronSelectorTool.h.
|
private |
Enum version of used variables.
Definition at line 148 of file AsgElectronSelectorTool.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Fractions to combine the output nodes of a multiclass model into one discriminant.
Definition at line 162 of file AsgElectronSelectorTool.h.
|
private |
The input file name that holds the model.
Definition at line 139 of file AsgElectronSelectorTool.h.
|
private |
Multiclass model or not.
Definition at line 156 of file AsgElectronSelectorTool.h.
|
private |
Pointer to the class that calculates the MVA score.
const for thread safety
Definition at line 136 of file AsgElectronSelectorTool.h.
|
private |
The input file name that holds the QuantileTransformer.
Definition at line 142 of file AsgElectronSelectorTool.h.
|
private |
Definition at line 153 of file AsgElectronSelectorTool.h.
|
private |
Flag for skip the use of deltaPoverP in dnn calculation (like at HLT)
Definition at line 151 of file AsgElectronSelectorTool.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
private |
Variables used in the MVA Tool.
Definition at line 145 of file AsgElectronSelectorTool.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.
|
private |
Working Point.
Definition at line 130 of file AsgElectronSelectorTool.h.
|
staticprivate |
number of discriminants vs |eta|
Definition at line 198 of file AsgElectronSelectorTool.h.
|
staticprivate |
number of discrimintants vs Et
Definition at line 196 of file AsgElectronSelectorTool.h.