ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
met::METNet Class Referencefinal

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

#include <METNet.h>

Inheritance diagram for met::METNet:
Collaboration diagram for met::METNet:

Public Member Functions

 METNet (const std::string &name)
 
virtual ~METNet ()=default
 
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
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
 
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
 
virtual StatusCode evaluateNNMET (const std::string &totalName, xAOD::MissingETContainer *metCont) const override
 
virtual StatusCode rebuildMET (xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override
 
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
 
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
 
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
 
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
 
virtual StatusCode rebuildTrackMET (xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT) const override
 
virtual StatusCode markInvisible (const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override
 
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, V, H > &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< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

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> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

Gaudi::Property< std::string > m_netLocation {this, "NetworkFile", "", "Location of NN file to use"}
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this, "EventInfoKey", "EventInfo", "Event info key"}
 
SG::ReadHandleKey< xAOD::VertexContainerm_pvContainerKey {this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"}
 
std::unique_ptr< const METNetHandlerm_metNetHandler
 
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) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

METNet 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 42 of file METNet.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

◆ METNet()

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

Definition at line 42 of file METNet.cxx.

42  :
43  AsgTool(name){}

◆ ~METNet()

virtual met::METNet::~METNet ( )
virtualdefault

Member Function Documentation

◆ addInputValue()

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

Definition at line 293 of file METNet.cxx.

296  {
297  // This is the only place we push_back to either vector
298  // Ensuring that they are always consistant with each other!!
299  ATH_MSG_VERBOSE( "Adding variable: " << var_name << " = " << value << " to the network input vector" );
300  name_vec.push_back( var_name );
301  val_vec.push_back( value );
302  return StatusCode::SUCCESS;
303  }

◆ addMETFinal()

StatusCode met::METNet::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 259 of file METNet.cxx.

262  {
263  // Add the jet, soft, and final terms to the vector
264  ATH_CHECK( addMETTerm( WP_name, (*met_container)["RefJet"], name_vec, val_vec ) );
265  ATH_CHECK( addMETTerm( WP_name, (*met_container)["PVSoftTrk"], name_vec, val_vec ) );
266  ATH_CHECK( addMETTerm( WP_name, (*met_container)["FinalTrk"], name_vec, val_vec ) );
267  ATH_CHECK( addMETTerm( WP_name, (*met_container)["SoftClus"], name_vec, val_vec ) );
268  ATH_CHECK( addMETTerm( WP_name, (*met_container)["FinalClus"], name_vec, val_vec ) );
269  return StatusCode::SUCCESS;
270  }

◆ addMETTerm()

StatusCode met::METNet::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 272 of file METNet.cxx.

275  {
276 
277  if(!met){
278  ATH_MSG_ERROR("addMETTerm was called with a null pointer for the input MET value!");
279  return StatusCode::FAILURE;
280  }
281 
282  // Build the name of the term from the WP and the Object type from the container
283  std::string tname = WP_name + "_" + met->name();
284 
285  // Add the MET components and SumET
286  ATH_CHECK( addInputValue( tname+"_mpx", met->mpx(), name_vec, val_vec ) );
287  ATH_CHECK( addInputValue( tname+"_mpy", met->mpy(), name_vec, val_vec ) );
288  ATH_CHECK( addInputValue( tname+"_sumet", met->sumet(), name_vec, val_vec ) );
289 
290  return StatusCode::SUCCESS;
291  }

◆ copyMETContainer()

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

Definition at line 305 of file METNet.cxx.

306  {
307  xAOD::MissingET* blank_met;
308 
309  for ( const xAOD::MissingET* old_met : *old_container ) {
310  blank_met = nullptr;
311  const std::string& name = old_met->name();
312 
313  ATH_CHECK( fillMET( blank_met, new_container, name, old_met->source() ) ); // Initialize the blank met with the new name in the new container
314  *(*new_container)[name] = *(*old_container)[name]; // Copy over the contents of this "term" from old container to new
315 
316  // Also need to copy the original object links
317  dec_constitObjLinks(*(*new_container)[name]) = acc_constitObjLinks(*(*old_container)[name]);
318  }
319 
320  return StatusCode::SUCCESS;
321  }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  t,
const SG::NotHandleType  
)
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.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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  }

◆ 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.

95 { return m_detStore; }

◆ evaluateNNMET()

StatusCode met::METNet::evaluateNNMET ( const std::string &  totalName,
xAOD::MissingETContainer metCont 
) const
overridevirtual

Reimplemented from IMETMaker.

Definition at line 223 of file METNet.cxx.

224  {
225 
226  // First we check that the container has the correct decorations
227  ATH_MSG_VERBOSE( "Checking MET container for network inputs" );
228  if ( (*metCont)["NetInputDummy"] == NULL ) {
229  ATH_MSG_ERROR( "Could not find the NetInputDummy MET object in the container. Did you run rebuildJetMET?" );
230  return StatusCode::FAILURE;
231  }
232 
233  // Pull out the vector from the met containter
234  std::vector<float> tmp_inputs = acc_inputvalues(*(*metCont)["NetInputDummy"]);
235  ATH_MSG_VERBOSE( "Loaded " << tmp_inputs.size() << " network inputs" );
236 
237  // Check that the list of inputs matches the network size
238  if ( tmp_inputs.size() != m_metNetHandler->getReqSize() ) {
239  ATH_MSG_ERROR( "The MET container provided " << tmp_inputs.size()
240  << " elements, but the ONNX network needs exactly " << m_metNetHandler->getReqSize() << "!" );
241  return StatusCode::FAILURE;
242  }
243 
244  // Passing the inputs through the network
245  std::vector<float> net_met;
246  m_metNetHandler->predict(net_met, tmp_inputs);
247 
248  // Adding the network output to the Final Met container
249  xAOD::MissingET* metFinal = nullptr;
250  ATH_CHECK( fillMET( metFinal, metCont, totalName, MissingETBase::Source::total() ) );
251  metFinal->setMpx( net_met[0] );
252  metFinal->setMpy( net_met[1] );
253 
254  ATH_MSG_VERBOSE( "Writing the Final Network MET: (" << net_met[0] << ", " << net_met[1] << ")" );
255 
256  return StatusCode::SUCCESS;
257  }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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  }

◆ 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::METNet::initialize ( )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 45 of file METNet.cxx.

45  {
46  ATH_MSG_INFO( "Initializing " << name() << "..." );
47 
49  ATH_CHECK(m_pvContainerKey.initialize());
50 
51  if( m_netLocation.empty()){
52  ATH_MSG_ERROR("NetworkFile property was not specified!");
53  return StatusCode::FAILURE;
54  }
55  std::string netFilePath = PathResolverFindCalibFile(m_netLocation);
56  std::unique_ptr<METNetHandler> metNetHandler = std::make_unique<METNetHandler>( netFilePath );
57  if( metNetHandler->initialize() != 0){
58  ATH_MSG_ERROR("METNet model file not found!");
59  return StatusCode::FAILURE;
60  }
61  ATH_MSG_INFO("Resolved METNet ONNX file at " + netFilePath);
62  m_metNetHandler = std::move(metNetHandler);
63 
64  if(m_metmaker_loose.empty()){
65  asg::AsgToolConfig toolConfig("met::METMaker/metmaker_loose");
66  ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
67  ATH_CHECK( toolConfig.setProperty("JetSelection", "Loose") );
68  ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_loose) );
69  }
70  ATH_CHECK( m_metmaker_loose.retrieve() );
71 
72  if(m_metmaker_tight.empty()){
73  asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tight");
74  ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
75  ATH_CHECK( toolConfig.setProperty("JetSelection", "Tight") );
76  ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tight) );
77  }
78  ATH_CHECK( m_metmaker_tight.retrieve() );
79 
80  if(m_metmaker_tghtr.empty()){
81  asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tghtr");
82  ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
83  ATH_CHECK( toolConfig.setProperty("JetSelection", "Tighter") );
84  ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tghtr) );
85  }
86  ATH_CHECK( m_metmaker_tghtr.retrieve() );
87 
88  if(m_metmaker_tenac.empty()){
89  asg::AsgToolConfig toolConfig("met::METMaker/metmaker_tenac");
90  ATH_CHECK( toolConfig.setProperty("DoPFlow", true) );
91  ATH_CHECK( toolConfig.setProperty("JetSelection", "Tenacious") );
92  ATH_CHECK( toolConfig.makePrivateTool(m_metmaker_tenac) );
93  }
94  ATH_CHECK( m_metmaker_tenac.retrieve() );
95 
96  return StatusCode::SUCCESS;
97  }

◆ 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::METNet::markInvisible ( const xAOD::IParticleContainer collection,
xAOD::MissingETAssociationHelper helper,
xAOD::MissingETContainer metCont 
) const
overridevirtual

Implements IMETMaker.

Definition at line 416 of file METNet.cxx.

418  {
419  ATH_MSG_ERROR( "METNet does not support markInvisible!");
420  return StatusCode::FAILURE;
421  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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  }

◆ 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()

void asg::AsgTool::print ( ) const
virtualinherited

◆ rebuildJetMET() [1/3]

StatusCode met::METNet::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

Implements IMETMaker.

Definition at line 108 of file METNet.cxx.

115  {
116 
117  // Retrieving the event information (Needed for METSig, so we do it early)
119 
120  float avgmu = ei->averageInteractionsPerCrossing();
121  float actmu = ei->actualInteractionsPerCrossing();
122 
123  // Creating the new containers for all the WPs
124  auto metCont_loose = std::make_shared<xAOD::MissingETContainer>();
125  auto metCont_looseAux = std::make_shared<xAOD::MissingETAuxContainer>();
126  metCont_loose->setStore( metCont_looseAux.get() );
127 
128  auto metCont_tight = std::make_shared<xAOD::MissingETContainer>();
129  auto metCont_tightAux = std::make_shared<xAOD::MissingETAuxContainer>();
130  metCont_tight->setStore( metCont_tightAux.get() );
131 
132  auto metCont_tghtr = std::make_shared<xAOD::MissingETContainer>();
133  auto metCont_tghtrAux = std::make_shared<xAOD::MissingETAuxContainer>();
134  metCont_tghtr->setStore( metCont_tghtrAux.get() );
135 
136  auto metCont_tenac = std::make_shared<xAOD::MissingETContainer>();
137  auto metCont_tenacAux = std::make_shared<xAOD::MissingETAuxContainer>();
138  metCont_tenac->setStore( metCont_tenacAux.get() );
139 
140  // Copying the contents of the original container into each WP container
141  // Avoids redundant calculation of identical terms.
142  ATH_MSG_VERBOSE( "Making copies of base MET container" );
143  ATH_CHECK( copyMETContainer( metCont_loose.get(), metCont ) );
144  ATH_CHECK( copyMETContainer( metCont_tight.get(), metCont ) );
145  ATH_CHECK( copyMETContainer( metCont_tghtr.get(), metCont ) );
146  ATH_CHECK( copyMETContainer( metCont_tenac.get(), metCont ) );
147 
148  // Selected objects may differ between WPs due to jets, muon-in-jet treatment, etc. Need unique helpers, so copy current state.
153 
154  // Building the jet and soft terms for each WP
155  ATH_MSG_VERBOSE( "Building jet and soft terms for each MET WP" );
156  ATH_CHECK( m_metmaker_loose->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_loose.get(), jets, metCoreCont, helper_loose, true ) );
157  ATH_CHECK( m_metmaker_tight->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tight.get(), jets, metCoreCont, helper_tight, true ) );
158  ATH_CHECK( m_metmaker_tghtr->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tghtr.get(), jets, metCoreCont, helper_tghtr, true ) );
159  ATH_CHECK( m_metmaker_tenac->rebuildJetMET( "RefJet", softClusKey, softTrkKey, metCont_tenac.get(), jets, metCoreCont, helper_tenac, true ) );
160 
161  // Building and adding the "Final" MET object to each WP container
162  ATH_MSG_VERBOSE( "Building the Final MET object for each MET WP" );
163  ATH_CHECK( met::buildMETSum( "FinalTrk", metCont_loose.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::Track)) );
164  ATH_CHECK( met::buildMETSum( "FinalTrk", metCont_tight.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::Track)) );
165  ATH_CHECK( met::buildMETSum( "FinalTrk", metCont_tghtr.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::Track)) );
166  ATH_CHECK( met::buildMETSum( "FinalTrk", metCont_tenac.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::Track)) );
167  // CST uses the LCTopo source bitmask even if the clusters are actually at EM scale
168  ATH_CHECK( met::buildMETSum( "FinalClus", metCont_loose.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
169  ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tight.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
170  ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tghtr.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
171  ATH_CHECK( met::buildMETSum( "FinalClus", metCont_tenac.get(), static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Signal::LCTopo)) );
172 
174 
175  // Initialise two vectors: One for holding the network input values and another for the input names
176  std::vector<std::string> input_names;
177  std::vector<float> input_values;
178 
179  ATH_CHECK( addMETFinal( "Loose", metCont_loose.get(), input_names, input_values ) );
180 
181  // Tight gets all its hard terms included as well (same as all th others, only needed once)
182  ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::electron())), input_names, input_values ) );
183  ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::photon())), input_names, input_values ) );
184  ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::tau())), input_names, input_values ) );
185  ATH_CHECK( addMETTerm( "Tight", *(metCont_tight->find(MissingETBase::Source::muon())), input_names, input_values ) );
186  ATH_CHECK( addMETFinal( "Tight", metCont_tight.get(), input_names, input_values ) );
187 
188  ATH_CHECK( addMETFinal( "Tighter", metCont_tghtr.get(), input_names, input_values ) );
189  ATH_CHECK( addMETFinal( "Tenacious", metCont_tenac.get(), input_names, input_values ) );
190 
191  // Pileup information and tracking information (using the user provided primary vertex container name)
193  if(!pvtxs.isValid()){
194  ATH_MSG_ERROR("Could not retrieve primary vertex container!");
195  return StatusCode::FAILURE;
196  }
197  int NVx_2Tracks = 0;
198  int NVx_4Tracks = 0;
199  int PV_NTracks = 0;
200  int n_tracks = 0;
201  for ( const xAOD::Vertex* vx : *pvtxs ) {
202  n_tracks = vx->nTrackParticles();
203  if ( n_tracks>=2 ) NVx_2Tracks++;
204  if ( n_tracks>=4 ) NVx_4Tracks++;
205  if ( vx->vertexType() == xAOD::VxType::PriVtx ) PV_NTracks = n_tracks;
206  }
207  ATH_CHECK( addInputValue( "ActualMu", actmu, input_names, input_values ) );
208  ATH_CHECK( addInputValue( "AverageMu", avgmu, input_names, input_values ) );
209  ATH_CHECK( addInputValue( "NPV_2Tracks", NVx_2Tracks, input_names, input_values ) );
210  ATH_CHECK( addInputValue( "NPV_4Tracks", NVx_4Tracks, input_names, input_values ) );
211  ATH_CHECK( addInputValue( "PV_NTracks", PV_NTracks, input_names, input_values ) );
212 
213  // Creating a dummy MET object on the output container to carry the NN features and decorate it with the two vectors
214  ATH_MSG_VERBOSE( "Saving network inputs to base MET container" );
215  xAOD::MissingET* net_inpts = nullptr;
216  ATH_CHECK( fillMET( net_inpts, metCont, "NetInputDummy", static_cast<MissingETBase::Types::bitmask_t>(MissingETBase::Source::Type::UnknownType) ) );
217  dec_inputnames( *(*metCont)["NetInputDummy"] ) = input_names;
218  dec_inputvalues( *(*metCont)["NetInputDummy"] ) = input_values;
219 
220  return StatusCode::SUCCESS;
221  }

◆ rebuildJetMET() [2/3]

StatusCode met::METNet::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

Implements IMETMaker.

Definition at line 359 of file METNet.cxx.

365  {
366  return rebuildJetMET(metJetKey, "SoftClus", "PVSoftTrk", metCont, jets, metCoreCont, helper, doJetJVT);
367  }

◆ rebuildJetMET() [3/3]

StatusCode met::METNet::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

Implements IMETMaker.

Definition at line 369 of file METNet.cxx.

378  {
379  ATH_MSG_ERROR( "METNet has not overloaded this version of rebuildJetMET from IMETMaker!\n"
380  "Please use the method with the following arguments:\n"
381  "StatusCode METNet::rebuildJetMET(\n"
382  "const std::string& metJetKey,\n"
383  "const std::string& softClusKey,\n"
384  "const std::string& softTrkKey,\n"
385  "xAOD::MissingETContainer* metCont,\n"
386  "const xAOD::JetContainer* jets,\n"
387  "const xAOD::MissingETContainer* metCoreCont,\n"
388  "xAOD::MissingETAssociationHelper& helper,\n"
389  "bool doJetJVT\n"
390  ")" );
391  return StatusCode::FAILURE;
392  }

◆ rebuildMET() [1/3]

StatusCode met::METNet::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

Implements IMETMaker.

Definition at line 99 of file METNet.cxx.

104  {
105  return m_metmaker_tight->rebuildMET( metKey, metType, metCont, collection, helper, objScale );
106  }

◆ rebuildMET() [2/3]

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

Implements IMETMaker.

Definition at line 323 of file METNet.cxx.

326  {
327  ATH_MSG_ERROR( "METNet has not overloaded this version of rebuildMET from IMETMaker!\n"
328  "Please only use this method:\n"
329  "StatusCode METMaker::rebuildMET("
330  "const std::string& metKey,\n"
331  "xAOD::Type::ObjectType metType,\n"
332  "xAOD::MissingETContainer* metCont,\n"
333  "const xAOD::IParticleContainer* collection,\n"
334  "xAOD::MissingETAssociationHelper& helper,\n"
335  "MissingETBase::UsageHandler::Policy objScale\n"
336  ")" );
337  return StatusCode::FAILURE;
338  }

◆ rebuildMET() [3/3]

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

Implements IMETMaker.

Definition at line 340 of file METNet.cxx.

345  {
346  ATH_MSG_ERROR( "METNet has not overloaded this version of rebuildMET from IMETMaker!\n"
347  "Please only use this method:\n"
348  "StatusCode METMaker::rebuildMET("
349  "const std::string& metKey,\n"
350  "xAOD::Type::ObjectType metType,\n"
351  "xAOD::MissingETContainer* metCont,\n"
352  "const xAOD::IParticleContainer* collection,\n"
353  "xAOD::MissingETAssociationHelper& helper,\n"
354  "MissingETBase::UsageHandler::Policy objScale\n"
355  ")" );
356  return StatusCode::FAILURE;
357  }

◆ rebuildTrackMET() [1/2]

StatusCode met::METNet::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

Implements IMETMaker.

Definition at line 394 of file METNet.cxx.

400  {
401  ATH_MSG_ERROR( "Please don't use the method METNet::rebuildTrackMET!\n"
402  "It has no use in METNet and is a holdover from its inheritance from IMETMaker." );
403  return StatusCode::FAILURE;
404  }

◆ rebuildTrackMET() [2/2]

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

Implements IMETMaker.

Definition at line 406 of file METNet.cxx.

411  {
412  ATH_MSG_ERROR( "METNet does not support Track MET!" );
413  return StatusCode::FAILURE;
414  }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

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::METNet::m_eventInfoKey {this, "EventInfoKey", "EventInfo", "Event info key"}
private

Definition at line 138 of file METNet.h.

◆ 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_metmaker_loose

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

Definition at line 143 of file METNet.h.

◆ m_metmaker_tenac

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

Definition at line 146 of file METNet.h.

◆ m_metmaker_tghtr

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

Definition at line 145 of file METNet.h.

◆ m_metmaker_tight

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

Definition at line 144 of file METNet.h.

◆ m_metNetHandler

std::unique_ptr<const METNetHandler> met::METNet::m_metNetHandler
private

Definition at line 141 of file METNet.h.

◆ m_netLocation

Gaudi::Property<std::string> met::METNet::m_netLocation {this, "NetworkFile", "", "Location of NN file to use"}
private

Definition at line 136 of file METNet.h.

◆ m_pvContainerKey

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

Definition at line 139 of file METNet.h.

◆ 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:
met::METNet::rebuildJetMET
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
Definition: METNet.cxx:359
MissingETBase::Source::muon
static Types::bitmask_t muon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed muons.
Definition: MissingETBase.h:250
MissingETBase::Source::Type::UnknownType
@ UnknownType
Indicator for an unknown MET term source.
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:407
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CheckAppliedSFs.var_name
var_name
Definition: CheckAppliedSFs.py:241
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
xAOD::MissingET_v1::setMpy
void setMpy(float value)
Set the component.
MissingETBase::Source::electron
static Types::bitmask_t electron(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed electrons.
Definition: MissingETBase.h:229
met::METNet::copyMETContainer
StatusCode copyMETContainer(xAOD::MissingETContainer *new_container, const xAOD::MissingETContainer *old_container) const
Definition: METNet.cxx:305
met::METNet::m_netLocation
Gaudi::Property< std::string > m_netLocation
Definition: METNet.h:136
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
defineDB.jets
jets
Definition: JetTagCalibration/share/defineDB.py:24
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
met::METNet::m_metmaker_tghtr
ToolHandle< IMETMaker > m_metmaker_tghtr
Definition: METNet.h:145
athena.value
value
Definition: athena.py:124
MissingETBase::Source::Signal::LCTopo
@ LCTopo
Indicator for MET contribution from TopoClusters with LCW calibration applied.
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
MissingETBase::Types::bitmask_t
uint64_t bitmask_t
Type for status word bit mask.
Definition: MissingETBase.h:39
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
met::METNet::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: METNet.h:138
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
met::METNet::m_metmaker_tight
ToolHandle< IMETMaker > m_metmaker_tight
Definition: METNet.h:144
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:115
met::buildMETSum
StatusCode buildMETSum(const std::string &totalName, xAOD::MissingETContainer *metCont)
Definition: METHelpers.cxx:64
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
met::METNet::m_pvContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerKey
Definition: METNet.h:139
asg::AsgTool::AsgTool
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition: AsgTool.cxx:58
met::METNet::m_metNetHandler
std::unique_ptr< const METNetHandler > m_metNetHandler
Definition: METNet.h:141
met
Definition: IMETSignificance.h:24
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
asg::AsgToolConfig
an object that can create a AsgTool
Definition: AsgToolConfig.h:22
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:572
CalibDbCompareRT.dummy
dummy
Definition: CalibDbCompareRT.py:59
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
met::METNet::addMETFinal
StatusCode addMETFinal(const std::string &WP_name, xAOD::MissingETContainer *met_container, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
Definition: METNet.cxx:259
met::METNet::addMETTerm
StatusCode addMETTerm(const std::string &WP_name, xAOD::MissingET *met, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
Definition: METNet.cxx:272
xAOD::MissingET_v1::setMpx
void setMpx(float value)
Set the component.
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
MissingETBase::Source::tau
static Types::bitmask_t tau(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed tau leptons.
Definition: MissingETBase.h:243
xAOD::MissingETAssociationHelper
Definition: MissingETAssociationHelper.h:22
met::METNet::m_metmaker_tenac
ToolHandle< IMETMaker > m_metmaker_tenac
Definition: METNet.h:146
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:321
MissingETBase::Source::Signal::Track
@ Track
Indicator for MET contribution from reconstructed charged particle tracks.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
MissingETBase::Source::photon
static Types::bitmask_t photon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed photons.
Definition: MissingETBase.h:236
MissingETBase::Source::total
static Types::bitmask_t total(Region reg=Region::FullAcceptance)
Standard full reconstructed MET.
Definition: MissingETBase.h:271
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
met::fillMET
StatusCode fillMET(xAOD::MissingET *&met, xAOD::MissingETContainer *metCont, const std::string &metKey, const MissingETBase::Types::bitmask_t metSource)
Definition: METHelpers.cxx:123
met::METNet::addInputValue
StatusCode addInputValue(const std::string &var_name, float value, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
Definition: METNet.cxx:293
SG::DataProxy
Definition: DataProxy.h:45
fitman.k
k
Definition: fitman.py:528
met::METNet::m_metmaker_loose
ToolHandle< IMETMaker > m_metmaker_loose
Definition: METNet.h:143