ATLAS Offline Software
Loading...
Searching...
No Matches
met::METNetSig Class Referencefinal

METNetSig tool class used to create a missing transverse momentum estimate using a pre-trained neural network. More...

#include <METNetSig.h>

Inheritance diagram for met::METNetSig:
Collaboration diagram for met::METNetSig:

Public Member Functions

 METNetSig (const std::string &name)
 Constructor.
virtual ~METNetSig () override
 Destructor.
virtual StatusCode initialize () override
 Athena algtool's initialize.
virtual StatusCode rebuildMET (const std::string &metKey, xAOD::Type::ObjectType metType, xAOD::MissingETContainer *metCont, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override
 Adds a collection of objects to the core MET container, must be done for photons, elections and muons.
virtual StatusCode rebuildJetMET (const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT=false) const override
 Adds multiple jet definitions to seperate MET containers and creates the collection of input features for the neural network.
virtual StatusCode evaluateNNMETSig (xAOD::MissingETContainer *metCont, float &met_x, float &met_y, float &sigma_x, float &sigma_y) const
 Uses ONNX runtime to propagate the input features created in rebuildJetMET through the trained network.
virtual StatusCode rebuildMET (xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildMET (xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy p, bool removeOverlap, MissingETBase::UsageHandler::Policy objScale) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildJetMET (const std::string &metJetKey, const std::string &softClusKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildJetMET (xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftClus, const xAOD::MissingET *coreSoftClus, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT, bool tracksForHardJets=false, std::vector< const xAOD::IParticle * > *softConst=0) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildTrackMET (const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildTrackMET (xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode markInvisible (const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override
 Unsuported method inherited from METMaker. Please do not use.
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
virtual StatusCode evaluateNNMET (const std::string &, xAOD::MissingETContainer *) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

 METNetSig ()
StatusCode addMETFinal (const std::string &WP_name, xAOD::MissingETContainer *met_container, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
StatusCode addMETTerm (const std::string &WP_name, xAOD::MissingET *met, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
StatusCode addInputValue (const std::string &var_name, float value, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
StatusCode copyMETContainer (xAOD::MissingETContainer *new_container, const xAOD::MissingETContainer *old_container) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< std::string > m_netSigLocation {this, "NetworkLocation", "", "Location of NN file to use for METNetSig"}
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this, "EventInfoKey", "EventInfo", "Event info key"}
SG::ReadHandleKey< xAOD::VertexContainerm_pvContainerKey {this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"}
SG::ReadHandleKey< xAOD::JetContainerm_jetContainerKey {this, "JetContainer", "", "Name of input jet container"}
std::unique_ptr< METNetSigHandlerm_metnetsighandler
ToolHandle< IMETMakerm_metmaker_loose {this, "METMakerLoose", "", "METMaker for Loose WP. Do not configure manually except for expert usage." }
ToolHandle< IMETMakerm_metmaker_tight {this, "METMakerTight", "", "METMaker for Tight WP. Do not configure manually except for expert usage." }
ToolHandle< IMETMakerm_metmaker_tghtr {this, "METMakerTighter", "", "METMaker for Tighter WP. Do not configure manually except for expert usage." }
ToolHandle< IMETMakerm_metmaker_tenac {this, "METMakerTenacious", "", "METMaker for Tenacious WP. Do not configure manually except for expert usage." }
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

METNetSig tool class used to create a missing transverse momentum estimate using a pre-trained neural network.

The tool inherits from the same interface as METMaker and so it should be largely interchangable. However, it does not use every public method as METMaker, as it must ensure that the exact variables are constructed for the network's inputs. Uses an ONNX runtime environment for inference.

Definition at line 47 of file METNetSig.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ METNetSig() [1/2]

met::METNetSig::METNetSig ( const std::string & name)

Constructor.

Definition at line 48 of file METNetSig.cxx.

48 :
49 AsgTool(name){}
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58

◆ ~METNetSig()

met::METNetSig::~METNetSig ( )
overridevirtual

Destructor.

Definition at line 53 of file METNetSig.cxx.

53{ }

◆ METNetSig() [2/2]

met::METNetSig::METNetSig ( )
private

Member Function Documentation

◆ addInputValue()

StatusCode met::METNetSig::addInputValue ( const std::string & var_name,
float value,
std::vector< std::string > & name_vec,
std::vector< float > & val_vec ) const
private

Definition at line 329 of file METNetSig.cxx.

333 {
334 // This is the only place we push_back to either vector
335 // Ensuring that they are always consistant with each other!!
336 ATH_MSG_VERBOSE( "Adding variable: " << var_name << " = " << value << " to the network input vector" );
337 name_vec.push_back( var_name );
338 val_vec.push_back( value );
339 return StatusCode::SUCCESS;
340 }
#define ATH_MSG_VERBOSE(x)

◆ addMETFinal()

StatusCode met::METNetSig::addMETFinal ( const std::string & WP_name,
xAOD::MissingETContainer * met_container,
std::vector< std::string > & name_vec,
std::vector< float > & val_vec ) const
private

Definition at line 299 of file METNetSig.cxx.

303 {
304 // Add the jet, soft, and final terms to the vector
305 ATH_CHECK( addMETTerm( WP_name, (*met_container)["RefJet"], name_vec, val_vec ) );
306 ATH_CHECK( addMETTerm( WP_name, (*met_container)["PVSoftTrk"], name_vec, val_vec ) );
307 ATH_CHECK( addMETTerm( WP_name, (*met_container)["FinalTrk"], name_vec, val_vec ) );
308 ATH_CHECK( addMETTerm( WP_name, (*met_container)["SoftClus"], name_vec, val_vec ) );
309 ATH_CHECK( addMETTerm( WP_name, (*met_container)["FinalClus"], name_vec, val_vec ) );
310 return StatusCode::SUCCESS;
311 }
#define ATH_CHECK
Evaluate an expression and check for errors.
StatusCode addMETTerm(const std::string &WP_name, xAOD::MissingET *met, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const

◆ addMETTerm()

StatusCode met::METNetSig::addMETTerm ( const std::string & WP_name,
xAOD::MissingET * met,
std::vector< std::string > & name_vec,
std::vector< float > & val_vec ) const
private

Definition at line 313 of file METNetSig.cxx.

317 {
318 // Build the name of the term from the WP and the Object type from the container
319 std::string tname = WP_name + "_" + acc_name(*met);
320
321 // Add the MET components and SumET
322 ATH_CHECK( addInputValue( tname+"_mpx", met->mpx()/1000., name_vec, val_vec ) );
323 ATH_CHECK( addInputValue( tname+"_mpy", met->mpy()/1000., name_vec, val_vec ) );
324 ATH_CHECK( addInputValue( tname+"_sumet", met->sumet()/1000., name_vec, val_vec ) );
325
326 return StatusCode::SUCCESS;
327 }
StatusCode addInputValue(const std::string &var_name, float value, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
float sumet() const
Returns.
float mpx() const
Returns .
float mpy() const
Returns .
static const SG::AuxElement::ConstAccessor< std::string > acc_name("name")

◆ copyMETContainer()

StatusCode met::METNetSig::copyMETContainer ( xAOD::MissingETContainer * new_container,
const xAOD::MissingETContainer * old_container ) const
private

Definition at line 342 of file METNetSig.cxx.

344 {
345
346 // Initiase variables used in the loop
347 std::string name;
348 xAOD::MissingET* blank_met;
350
351 for ( const auto& old_met : *old_container ) {
352 blank_met = nullptr; // Resetting the null pointer
353 name = acc_name(*old_met); // Getting the name from the original container
354 source = acc_source(*old_met); // Getting the particle type from the original container
355 ATH_CHECK( fillMET( blank_met, new_container, name, source ) ); // Initialising the blank met with the new name in the new container
356 *(*new_container)[name] = *(*old_container)[name]; // Copying over the contents from one container to another
357
358 // Also need to copy the original object links
359 dec_constitObjLinks(*(*new_container)[name]) = acc_constitObjLinks(*(*old_container)[name]);
360 }
361
362 return StatusCode::SUCCESS;
363 }
uint64_t bitmask_t
Type for status word bit mask.
static const SG::AuxElement::ConstAccessor< MissingETBase::Types::bitmask_t > acc_source("source")
static const SG::AuxElement::Accessor< std::vector< iplink_t > > dec_constitObjLinks("ConstitObjectLinks")
static const SG::AuxElement::ConstAccessor< std::vector< iplink_t > > acc_constitObjLinks("ConstitObjectLinks")
StatusCode fillMET(xAOD::MissingET *&met, xAOD::MissingETContainer *metCont, const std::string &metKey, const MissingETBase::Types::bitmask_t metSource)
MissingET_v1 MissingET
Version control by type defintion.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evaluateNNMET()

virtual StatusCode IMETMaker::evaluateNNMET ( const std::string & ,
xAOD::MissingETContainer *  ) const
inlinevirtualinherited

Reimplemented in met::METNet.

Definition at line 115 of file IMETMaker.h.

115 {
116 return StatusCode::FAILURE;
117 }

◆ evaluateNNMETSig()

StatusCode met::METNetSig::evaluateNNMETSig ( xAOD::MissingETContainer * metCont,
float & met_x,
float & met_y,
float & sigma_x,
float & sigma_y ) const
virtual

Uses ONNX runtime to propagate the input features created in rebuildJetMET through the trained network.

Definition at line 257 of file METNetSig.cxx.

259 {
260
261 // First we check that the container has the correct decorations
262 ATH_MSG_VERBOSE( "Checking MET container for network inputs" );
263 if ( (*metCont)["NetInputDummy"] == NULL ) {
264 ATH_MSG_ERROR( "Could not find the NetInputDummy MET object in the container. Did you run rebuildJetMET?" );
265 return StatusCode::FAILURE;
266 }
267
268
269 // Pull out the vector from the met containter
270 std::vector<float> tmp_inputs = acc_inputvalues(*(*metCont)["NetInputDummy"]);
271 ATH_MSG_VERBOSE( "Loaded " << tmp_inputs.size() << " network inputs" );
272
273 // Check that the list of inputs matches the network size
274 if ( (int)tmp_inputs.size() != m_metnetsighandler->getReqSize() ) {
275 ATH_MSG_ERROR( "The MET container provided " << tmp_inputs.size()
276 << " elements, but the ONNX network needs exactly " << m_metnetsighandler->getReqSize() << "!" );
277 return StatusCode::FAILURE;
278 }
279
280 // Passing the inputs through the network
281 std::vector<float> net_met = m_metnetsighandler->predict( tmp_inputs );
282
283 // // Adding the network output to the Final Met container
284 // xAOD::MissingET* metFinal = nullptr;
285 // ATH_CHECK( fillMET( metFinal, metCont, totalName, MissingETBase::Source::total() ) );
286
287 met_x = net_met[0];
288 met_y = net_met[1];
289 sigma_x = net_met[2];
290 sigma_y = net_met[3];
291
292 ATH_MSG_DEBUG( "Writing the Final Network MET: (" << met_x << ", " << met_y << ", " << sigma_x << ", " << sigma_y << ")" );
293
294 return StatusCode::SUCCESS;
295 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
std::unique_ptr< METNetSigHandler > m_metnetsighandler
Definition METNetSig.h:155
static const SG::AuxElement::ConstAccessor< std::vector< float > > acc_inputvalues("input_values")

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
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

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
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.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

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.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode met::METNetSig::initialize ( void )
overridevirtual

Athena algtool's initialize.

Reimplemented from asg::AsgTool.

Definition at line 57 of file METNetSig.cxx.

57 {
58 ATH_MSG_INFO( "Initializing " << name() << "..." );
59
60 if (m_netSigLocation.value().find("dummy") != std::string::npos ) {
61 ATH_MSG_WARNING( "You are loading a dummy/untrained METNetSig network! This should only be done when testing the code!\n"
62 " -- If you wish to load a trained network please specify a path to an onnx file using the 'NetworkLocation' argument.\n"
63 " -- A list of supported networks can be found at atlas-groupdata.web.cern.ch/atlas-groupdata/METUtilities/run2_13TeV/METNet/" );
64 }
65
66 ATH_CHECK(m_eventInfoKey.initialize());
67 ATH_CHECK(m_pvContainerKey.initialize());
68 ATH_CHECK(m_jetContainerKey.initialize());
69
70 // Tool initialisations
71 ATH_MSG_INFO("Initialising the METNet ONNX environment using the file " + m_netSigLocation);
72 m_metnetsighandler = std::make_unique<METNetSigHandler>( m_netSigLocation );
73 if( m_metnetsighandler->initialize() != 0){
74 ATH_MSG_ERROR("METNetSig model file not found!");
75 return StatusCode::FAILURE;
76 }
77
78 if(m_metmaker_loose.empty()){
79 asg::AsgToolConfig toolConfig("met::METMaker/metmaker_loose");
80 ATH_CHECK( toolConfig.setProperty("JetContainer", m_jetContainerKey.key()) );
81 ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
82 ATH_CHECK( toolConfig.setProperty("JetSelection", "Loose") );
83 ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_loose) );
84 }
85 ATH_CHECK( m_metmaker_loose.retrieve() );
86
87 if(m_metmaker_tight.empty()){
88 asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tight");
89 ATH_CHECK( toolConfig.setProperty("JetContainer", m_jetContainerKey.key()) );
90 ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
91 ATH_CHECK( toolConfig.setProperty("JetSelection", "Tight") );
92 ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tight) );
93 }
94 ATH_CHECK( m_metmaker_tight.retrieve() );
95
96 if(m_metmaker_tghtr.empty()){
97 asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tghtr");
98 ATH_CHECK( toolConfig.setProperty("JetContainer", m_jetContainerKey.key()) );
99 ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
100 ATH_CHECK( toolConfig.setProperty("JetSelection", "Tighter") );
101 ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tghtr) );
102 }
103 ATH_CHECK( m_metmaker_tghtr.retrieve() );
104
105 if(m_metmaker_tenac.empty()){
106 asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tenac");
107 ATH_CHECK( toolConfig.setProperty("JetContainer", m_jetContainerKey.key()) );
108 ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
109 ATH_CHECK( toolConfig.setProperty("JetSelection", "Tenacious") );
110 ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tenac) );
111 }
112 ATH_CHECK( m_metmaker_tenac.retrieve() );
113
114 return StatusCode::SUCCESS;
115 }
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
Gaudi::Property< std::string > m_netSigLocation
Definition METNetSig.h:147
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Definition METNetSig.h:150
ToolHandle< IMETMaker > m_metmaker_loose
Definition METNetSig.h:156
ToolHandle< IMETMaker > m_metmaker_tenac
Definition METNetSig.h:159
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerKey
Definition METNetSig.h:149
ToolHandle< IMETMaker > m_metmaker_tight
Definition METNetSig.h:157
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition METNetSig.h:148
ToolHandle< IMETMaker > m_metmaker_tghtr
Definition METNetSig.h:158

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
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.

◆ markInvisible()

StatusCode met::METNetSig::markInvisible ( const xAOD::IParticleContainer * collection,
xAOD::MissingETAssociationHelper & helper,
xAOD::MissingETContainer * metCont ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 467 of file METNetSig.cxx.

470 {
471 ATH_MSG_ERROR( "METNetSig does not support markInvisible!");
472 return StatusCode::FAILURE;
473 }

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
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:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
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.

◆ print()

◆ rebuildJetMET() [1/3]

StatusCode met::METNetSig::rebuildJetMET ( const std::string & metJetKey,
const std::string & softClusKey,
const std::string & softTrkKey,
xAOD::MissingETContainer * metCont,
const xAOD::JetContainer * jets,
const xAOD::MissingETContainer * metCoreCont,
xAOD::MissingETAssociationHelper & helper,
bool doJetJVT ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 135 of file METNetSig.cxx.

142 {
143
144 // Retrieving the event information (Needed for METSig, so we do it early)
145 SG::ReadHandle<xAOD::EventInfo> ei(m_eventInfoKey);
146
147 float avgmu = ei->averageInteractionsPerCrossing();
148 float actmu = ei->actualInteractionsPerCrossing();
149
151
152 // Creating the new containers for all the WPs
153 auto metCont_loose = std::make_unique<xAOD::MissingETContainer>();
154 auto metCont_looseAux = std::make_unique<xAOD::MissingETAuxContainer>();
155 metCont_loose->setStore( metCont_looseAux.get() );
156
157 auto metCont_tight = std::make_unique<xAOD::MissingETContainer>();
158 auto metCont_tightAux = std::make_unique<xAOD::MissingETAuxContainer>();
159 metCont_tight->setStore( metCont_tightAux.get() );
160
161 auto metCont_tghtr = std::make_unique<xAOD::MissingETContainer>();
162 auto metCont_tghtrAux = std::make_unique<xAOD::MissingETAuxContainer>();
163 metCont_tghtr->setStore( metCont_tghtrAux.get() );
164
165 auto metCont_tenac = std::make_unique<xAOD::MissingETContainer>();
166 auto metCont_tenacAux = std::make_unique<xAOD::MissingETAuxContainer>();
167 metCont_tenac->setStore( metCont_tenacAux.get() );
168
169 // Copying the contents of the original container into each WP container
170 // Avoids redundant calculation of identical terms.
171 ATH_MSG_VERBOSE( "Making copies of base MET container" );
172 ATH_CHECK( copyMETContainer( metCont_loose.get(), metCont ) );
173 ATH_CHECK( copyMETContainer( metCont_tight.get(), metCont ) );
174 ATH_CHECK( copyMETContainer( metCont_tghtr.get(), metCont ) );
175 ATH_CHECK( copyMETContainer( metCont_tenac.get(), metCont ) );
176
177 // Selected objects may differ between WPs due to jets, muon-in-jet treatment, etc. Need unique helpers, so copy current state.
178 xAOD::MissingETAssociationHelper helper_loose(helper);
179 xAOD::MissingETAssociationHelper helper_tight(helper);
180 xAOD::MissingETAssociationHelper helper_tghtr(helper);
181 xAOD::MissingETAssociationHelper helper_tenac(helper);
182
183 // Building the jet and soft terms for each WP
184 ATH_MSG_VERBOSE( "Building jet and soft terms for each MET WP" );
185 ATH_CHECK( m_metmaker_loose->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_loose.get(), jets, metCoreCont, helper_loose, true ) );
186 ATH_CHECK( m_metmaker_tight->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tight.get(), jets, metCoreCont, helper_tight, true ) );
187 ATH_CHECK( m_metmaker_tghtr->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tghtr.get(), jets, metCoreCont, helper_tghtr, true ) );
188 ATH_CHECK( m_metmaker_tenac->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tenac.get(), jets, metCoreCont, helper_tenac, true ) );
189
190 // Building and adding the "Final" MET object to each WP container
191 ATH_MSG_VERBOSE( "Building the Final MET object for each MET WP" );
196 // CST uses the LCTopo source bitmask even if the clusters are actually at EM scale
197 ATH_CHECK( met::buildMETSum( "FinalClus", metCont_loose.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
198 ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tight.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
199 ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tghtr.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
200 ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tenac.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
201
203
204 // Initialise two vectors: One for holding the network input values and another for the input names
205 std::vector<std::string> input_names;
206 std::vector<float> input_values;
207
208 ATH_CHECK( addMETFinal( "Loose", metCont_loose.get(), input_names, input_values ) );
209
210 // Tight gets all its hard terms included as well (same as all th others, only needed once)
211 ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::electron())), input_names, input_values ) );
212 ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::photon())), input_names, input_values ) );
213 ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::tau())), input_names, input_values ) );
214 ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::muon())), input_names, input_values ) );
215 ATH_CHECK( addMETFinal( "Tight", metCont_tight.get(), input_names, input_values ) );
216
217 ATH_CHECK( addMETFinal( "Tighter", metCont_tghtr.get(), input_names, input_values ) );
218 ATH_CHECK( addMETFinal( "Tenacious", metCont_tenac.get(), input_names, input_values ) );
219
220 // Pileup information and tracking information (using the user provided primary vertex container name)
221 SG::ReadHandle<xAOD::VertexContainer> pvtxs(m_pvContainerKey);
222 if(!pvtxs.isValid()){
223 ATH_MSG_ERROR("Could not retrieve primary vertex container!");
224 return StatusCode::FAILURE;
225 }
226 int NVx_2Tracks = 0;
227 int NVx_4Tracks = 0;
228 int PV_NTracks = 0;
229 int n_tracks = 0;
230 for ( const xAOD::Vertex* vx : *pvtxs ) {
231 n_tracks = vx->nTrackParticles();
232 if ( n_tracks>=2 ) NVx_2Tracks++;
233 if ( n_tracks>=4 ) NVx_4Tracks++;
234 if ( vx->vertexType() == xAOD::VxType::PriVtx ) PV_NTracks = n_tracks;
235 }
236 ATH_CHECK( addInputValue( "ActualMu", actmu, input_names, input_values ) );
237 ATH_CHECK( addInputValue( "AverageMu", avgmu, input_names, input_values ) );
238 ATH_CHECK( addInputValue( "NPV_2Tracks", NVx_2Tracks, input_names, input_values ) );
239 ATH_CHECK( addInputValue( "NPV_4Tracks", NVx_4Tracks, input_names, input_values ) );
240 ATH_CHECK( addInputValue( "PV_NTracks", PV_NTracks, input_names, input_values ) );
241
242 // Creating a dummy MET object on the output container to carry the NN features and decorate it with the two vectors
243 ATH_MSG_VERBOSE( "Saving network inputs to base MET container" );
244 xAOD::MissingET* net_inpts = nullptr;
245 if ( (*metCont)["NetInputDummy"] != NULL ) {
246 // If NetInputDummy already exists, erase it from the container so we recreate a clean object.
247 ATH_MSG_DEBUG("NetInputDummy already present in container — erasing and recreating.");
248 auto it = metCont->find("NetInputDummy");
249 if ( it != metCont->end() ) metCont->erase(it);
250 }
251 ATH_CHECK( fillMET( net_inpts, metCont, "NetInputDummy", static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Type::UnknownType) ) );
252 dec_inputnames( *(*metCont)["NetInputDummy"] ) = input_names;
253 dec_inputvalues( *(*metCont)["NetInputDummy"] ) = input_values;
254 return StatusCode::SUCCESS;
255 }
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
iterator erase(iterator position)
Remove element at a given position.
StatusCode copyMETContainer(xAOD::MissingETContainer *new_container, const xAOD::MissingETContainer *old_container) const
StatusCode addMETFinal(const std::string &WP_name, xAOD::MissingETContainer *met_container, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
const_iterator find(const std::string &name) const
Find non-modifiable MET object by name.
StatusCode buildMETSum(const std::string &totalName, xAOD::MissingETContainer *metCont)
static const SG::AuxElement::Decorator< std::vector< std::string > > dec_inputnames("input_names")
static const SG::AuxElement::Decorator< std::vector< float > > dec_inputvalues("input_values")
@ PriVtx
Primary vertex.
Vertex_v1 Vertex
Define the latest version of the vertex class.
static Types::bitmask_t muon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed muons.
static Types::bitmask_t tau(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed tau leptons.
static Types::bitmask_t electron(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed electrons.
static Types::bitmask_t photon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed photons.
@ LCTopo
Indicator for MET contribution from TopoClusters with LCW calibration applied.
@ Track
Indicator for MET contribution from reconstructed charged particle tracks.

◆ rebuildJetMET() [2/3]

StatusCode met::METNetSig::rebuildJetMET ( const std::string & metJetKey,
const std::string & softTrkKey,
xAOD::MissingETContainer * metCont,
const xAOD::JetContainer * jets,
const xAOD::MissingETContainer * metCoreCont,
xAOD::MissingETAssociationHelper & helper,
bool doJetJVT = false ) const
overridevirtual

Adds multiple jet definitions to seperate MET containers and creates the collection of input features for the neural network.

Implements IMETMaker.

Definition at line 406 of file METNetSig.cxx.

413 {
414 return rebuildJetMET(metJetKey, "SoftClus", "PVSoftTrk", metCont, jets, metCoreCont, helper, doJetJVT);
415 }
virtual StatusCode rebuildJetMET(const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT=false) const override
Adds multiple jet definitions to seperate MET containers and creates the collection of input features...

◆ rebuildJetMET() [3/3]

StatusCode met::METNetSig::rebuildJetMET ( xAOD::MissingET * metJet,
const xAOD::JetContainer * jets,
xAOD::MissingETAssociationHelper & helper,
xAOD::MissingET * metSoftClus,
const xAOD::MissingET * coreSoftClus,
xAOD::MissingET * metSoftTrk,
const xAOD::MissingET * coreSoftTrk,
bool doJetJVT,
bool tracksForHardJets = false,
std::vector< const xAOD::IParticle * > * softConst = 0 ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 417 of file METNetSig.cxx.

427 {
428 ATH_MSG_ERROR( "METNetSig has not overloaded this version of rebuildJetMET from IMETMaker!\n"
429 "Please use the method with the following arguments:\n"
430 "StatusCode METNetSig::rebuildJetMET(\n"
431 "const std::string& metJetKey,\n"
432 "const std::string& softClusKey,\n"
433 "const std::string& softTrkKey,\n"
434 "xAOD::MissingETContainer* metCont,\n"
435 "const xAOD::JetContainer* jets,\n"
436 "const xAOD::MissingETContainer* metCoreCont,\n"
437 "xAOD::MissingETAssociationHelper& helper,\n"
438 "bool doJetJVT\n"
439 ")" );
440 return StatusCode::FAILURE;
441 }

◆ rebuildMET() [1/3]

StatusCode met::METNetSig::rebuildMET ( const std::string & metKey,
xAOD::Type::ObjectType metType,
xAOD::MissingETContainer * metCont,
const xAOD::IParticleContainer * collection,
xAOD::MissingETAssociationHelper & helper,
MissingETBase::UsageHandler::Policy objScale ) const
overridevirtual

Adds a collection of objects to the core MET container, must be done for photons, elections and muons.

Implements IMETMaker.

Definition at line 119 of file METNetSig.cxx.

125 {
126 // If the MET term already exists in the container, skip rebuilding to avoid duplicates
127 if ( (*metCont)[metKey] != nullptr ) {
128 ATH_MSG_DEBUG("MET term '" << metKey << "' already exists in the container — skipping rebuild in METNetSig.");
129 return StatusCode::SUCCESS;
130 }
131
132 return m_metmaker_tight->rebuildMET( metKey, metType, metCont, collection, helper, objScale );
133 }

◆ rebuildMET() [2/3]

StatusCode met::METNetSig::rebuildMET ( xAOD::MissingET * met,
const xAOD::IParticleContainer * collection,
xAOD::MissingETAssociationHelper & helper,
MissingETBase::UsageHandler::Policy objScale ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 367 of file METNetSig.cxx.

371 {
372 ATH_MSG_ERROR( "METNetSig has not overloaded this version of rebuildMET from IMETMaker!\n"
373 "Please only use this method:\n"
374 "StatusCode METMaker::rebuildMET("
375 "const std::string& metKey,\n"
376 "xAOD::Type::ObjectType metType,\n"
377 "xAOD::MissingETContainer* metCont,\n"
378 "const xAOD::IParticleContainer* collection,\n"
379 "xAOD::MissingETAssociationHelper& helper,\n"
380 "MissingETBase::UsageHandler::Policy objScale\n"
381 ")" );
382 return StatusCode::FAILURE;
383 }

◆ rebuildMET() [3/3]

StatusCode met::METNetSig::rebuildMET ( xAOD::MissingET * met,
const xAOD::IParticleContainer * collection,
xAOD::MissingETAssociationHelper & helper,
MissingETBase::UsageHandler::Policy p,
bool removeOverlap,
MissingETBase::UsageHandler::Policy objScale ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 385 of file METNetSig.cxx.

392 {
393 ATH_MSG_ERROR( "METNetSig has not overloaded this version of rebuildMET from IMETMaker!\n"
394 "Please only use this method:\n"
395 "StatusCode METMaker::rebuildMET("
396 "const std::string& metKey,\n"
397 "xAOD::Type::ObjectType metType,\n"
398 "xAOD::MissingETContainer* metCont,\n"
399 "const xAOD::IParticleContainer* collection,\n"
400 "xAOD::MissingETAssociationHelper& helper,\n"
401 "MissingETBase::UsageHandler::Policy objScale\n"
402 ")" );
403 return StatusCode::FAILURE;
404 }

◆ rebuildTrackMET() [1/2]

StatusCode met::METNetSig::rebuildTrackMET ( const std::string & metJetKey,
const std::string & softTrkKey,
xAOD::MissingETContainer * metCont,
const xAOD::JetContainer * jets,
const xAOD::MissingETContainer * metCoreCont,
xAOD::MissingETAssociationHelper & helper,
bool doJetJVT ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 443 of file METNetSig.cxx.

450 {
451 ATH_MSG_ERROR( "Please dont use the method METNetSig::rebuildTrackMET!\n"
452 "It has no use in METNetSig and is a holdover from it's inheritance from IMETMaker." );
453 return StatusCode::FAILURE;
454 }

◆ rebuildTrackMET() [2/2]

StatusCode met::METNetSig::rebuildTrackMET ( xAOD::MissingET * metJet,
const xAOD::JetContainer * jets,
xAOD::MissingETAssociationHelper & helper,
xAOD::MissingET * metSoftTrk,
const xAOD::MissingET * coreSoftTrk,
bool doJetJVT ) const
overridevirtual

Unsuported method inherited from METMaker. Please do not use.

Implements IMETMaker.

Definition at line 456 of file METNetSig.cxx.

462 {
463 ATH_MSG_ERROR( "METNetSig does not support Track MET!" );
464 return StatusCode::FAILURE;
465 }

◆ renounce()

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 > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
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)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> met::METNetSig::m_eventInfoKey {this, "EventInfoKey", "EventInfo", "Event info key"}
private

Definition at line 148 of file METNetSig.h.

148{this, "EventInfoKey", "EventInfo", "Event info key"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_jetContainerKey

SG::ReadHandleKey<xAOD::JetContainer> met::METNetSig::m_jetContainerKey {this, "JetContainer", "", "Name of input jet container"}
private

Definition at line 150 of file METNetSig.h.

150{this, "JetContainer", "", "Name of input jet container"};

◆ m_metmaker_loose

ToolHandle<IMETMaker> met::METNetSig::m_metmaker_loose {this, "METMakerLoose", "", "METMaker for Loose WP. Do not configure manually except for expert usage." }
private

Definition at line 156 of file METNetSig.h.

156{this, "METMakerLoose", "", "METMaker for Loose WP. Do not configure manually except for expert usage." };

◆ m_metmaker_tenac

ToolHandle<IMETMaker> met::METNetSig::m_metmaker_tenac {this, "METMakerTenacious", "", "METMaker for Tenacious WP. Do not configure manually except for expert usage." }
private

Definition at line 159 of file METNetSig.h.

159{this, "METMakerTenacious", "", "METMaker for Tenacious WP. Do not configure manually except for expert usage." };

◆ m_metmaker_tghtr

ToolHandle<IMETMaker> met::METNetSig::m_metmaker_tghtr {this, "METMakerTighter", "", "METMaker for Tighter WP. Do not configure manually except for expert usage." }
private

Definition at line 158 of file METNetSig.h.

158{this, "METMakerTighter", "", "METMaker for Tighter WP. Do not configure manually except for expert usage." };

◆ m_metmaker_tight

ToolHandle<IMETMaker> met::METNetSig::m_metmaker_tight {this, "METMakerTight", "", "METMaker for Tight WP. Do not configure manually except for expert usage." }
private

Definition at line 157 of file METNetSig.h.

157{this, "METMakerTight", "", "METMaker for Tight WP. Do not configure manually except for expert usage." };

◆ m_metnetsighandler

std::unique_ptr<METNetSigHandler> met::METNetSig::m_metnetsighandler
private

Definition at line 155 of file METNetSig.h.

◆ m_netSigLocation

Gaudi::Property<std::string> met::METNetSig::m_netSigLocation {this, "NetworkLocation", "", "Location of NN file to use for METNetSig"}
private

Definition at line 147 of file METNetSig.h.

147{this, "NetworkLocation", "", "Location of NN file to use for METNetSig"};

◆ m_pvContainerKey

SG::ReadHandleKey<xAOD::VertexContainer> met::METNetSig::m_pvContainerKey {this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"}
private

Definition at line 149 of file METNetSig.h.

149{this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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