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

#include <METSystematicsTool.h>

Inheritance diagram for met::METSystematicsTool:
Collaboration diagram for met::METSystematicsTool:

Public Member Functions

 METSystematicsTool (const std::string &name)
 
StatusCode softTrkSystInitialize ()
 
StatusCode softCaloSystInitialize ()
 
StatusCode jetTrkSystInitialize ()
 
StatusCode initialize ()
 Dummy implementation of the initialisation function. More...
 
CP::CorrectionCode applyCorrection (xAOD::MissingET &inputMet, const xAOD::MissingETAssociationHelper &helper) const
 
CP::CorrectionCode correctedCopy (const xAOD::MissingET &met, xAOD::MissingET *&outputmet, const xAOD::MissingETAssociationHelper &helper) const
 
bool isAffectedBySystematic (const CP::SystematicVariation &var) const
 returns: whether this tool is affected by the given systematic guarantee: no-fail More...
 
CP::SystematicSet affectingSystematics () const
 returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II More...
 
CP::SystematicSet recommendedSystematics () const
 returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II More...
 
StatusCode applySystematicVariation (const CP::SystematicSet &set)
 effects: configure this tool for the given list of systematic variations. More...
 
StatusCode sysApplySystematicVariation (const CP::SystematicSet &)
 effects: configure this tool for the given list of systematic variations. More...
 
void setRandomSeed (int seed) const
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 
const SystematicSet & appliedSystematics () const
 returns: the list of systematics that have been applied to this tool. More...
 
std::string appliedSystematicsString () const
 returns: a string representation of appliedSystematics() guarantee: strong failures: out of memory II rationale: this is meant to be used when printing out the applied systematics for debugging purposes (or when embedding them in a string). More...
 
void testInvariant () const
 effects: test the invariance of this object guarantee: no-fail More...
 

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...
 
StatusCode addAffectingSystematic (const SystematicVariation &systematic, bool recommended)
 effects: add a systematic to the list of registered systematics. More...
 
StatusCode addRecommendedSystematic (const SystematicVariation &systematic)
 effects: add a systematic to the list of recommended systematics failures: unsupported systematic More...
 
void addAffectingSystematics (const SystematicSet &systematics)
 effects: add a SystematicSet to the registered systematics. More...
 
StatusCode addRecommendedSystematics (const SystematicSet &systematics)
 effects: add a SystematicSet to the recommended systematics. More...
 

Protected Attributes

SystematicSet m_affectingSystematics
 description: members directly corresponding to accessors More...
 
SystematicSet m_recommendedSystematics
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

 FRIEND_TEST (METSystTest, TestDefaultHistosFilled)
 
 FRIEND_TEST (METSystTest, TestJetTrkHistosFilled)
 
 FRIEND_TEST (METSystTest, TestAddAffectingSystematic)
 
 FRIEND_TEST (METSystTest, TestProjectST)
 
 FRIEND_TEST (METSystTest, TestProjectST2)
 
 METSystematicsTool ()
 
CP::CorrectionCode internalSoftTermApplyCorrection (xAOD::MissingET &softMet, xAOD::MissingETContainer const *METcont, xAOD::EventInfo const &eInfo) const
 
CP::CorrectionCode calcJetTrackMETWithSyst (xAOD::MissingET &jettrkmet, const xAOD::MissingETAssociationHelper &helper) const
 
CP::CorrectionCode calcJetTrackMETWithSyst (xAOD::MissingET &jettrkmet, const xAOD::MissingETAssociationHelper &helper, const xAOD::Jet *jet) const
 
CP::CorrectionCode getCorrectedJetTrackMET (xAOD::MissingET &jettrkmet, const xAOD::MissingETAssociationHelper &helper) const
 
TRandom3 * getTLSRandomGen () const
 
int getNPV () const
 
xAOD::EventInfo constgetDefaultEventInfo () const
 
StatusCode addMETAffectingSystematics ()
 
StatusCode extractHistoPath (std::string &histfile, std::string &systpath, std::string &configdir, std::string &suffix, SystType const &type)
 
missingEt calcPtHard (xAOD::MissingETContainer const *const cont) const
 
missingEt caloSyst_scale (missingEt const &softTerms, double const scale) const
 
missingEt caloSyst_reso (missingEt const &softTerms) const
 
missingEt softTrkSyst_scale (missingEt const &softTerms, missingEt const &ptHard, double const shift) const
 
missingEt softTrkSyst_reso (missingEt const &softTerms, missingEt const &ptHard, double const shift, double const smearpara, double const smearperp) const
 
missingEt projectST (missingEt const &softTerms, missingEt const &ptHard) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SystApplied m_appliedSystEnum {NONE}
 
Gaudi::Property< std::string > m_configPrefix {this, "ConfigPrefix", "METUtilities/R22_PreRecs", ""}
 
Gaudi::Property< std::string > m_configSoftTrkFile {this, "ConfigSoftTrkFile", "TrackSoftTerms-pflow.config", ""}
 
Gaudi::Property< std::string > m_configJetTrkFile {this, "ConfigJetTrkFile", "", ""}
 
Gaudi::Property< std::string > m_configSoftCaloFile {this, "ConfigSoftCaloFile", "", ""}
 
Gaudi::Property< bool > m_useDevArea {this, "UseDevArea", false, ""}
 
std::unique_ptr< TH3Dm_shiftpara_pthard_njet_mu {}
 
std::unique_ptr< TH3Dm_resopara_pthard_njet_mu {}
 
std::unique_ptr< TH3Dm_resoperp_pthard_njet_mu {}
 
std::unique_ptr< TH2Dm_jet_systRpt_pt_eta {}
 
std::unique_ptr< TH1Dm_h_calosyst_scale {}
 
std::unique_ptr< TH1Dm_h_calosyst_reso {}
 
boost::thread_specific_ptr< TRandom3 > m_rand_tls
 
int m_units {-1}
 
SG::ReadHandleKey< xAOD::VertexContainerm_VertexContKey {this, "VertexContainer", "PrimaryVertices", ""}
 
SG::ReadHandleKey< xAOD::MissingETContainerm_TruthContKey {this, "TruthContainer", "MET_Truth", ""}
 
SG::ReadHandleKey< xAOD::EventInfom_EventInfoKey {this, "EventInfo", "EventInfo", ""}
 
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
 
SystematicSet * m_appliedSystematics
 description: pointer to currenty applied systematics More...
 
std::unordered_map< SystematicSet, SystematicSet > m_systFilterMap
 map of cached systematics filtering More...
 

Detailed Description

Definition at line 82 of file METSystematicsTool.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

◆ METSystematicsTool() [1/2]

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

Definition at line 33 of file METSystematicsTool.cxx.

35  {
36  ATH_MSG_DEBUG (__PRETTY_FUNCTION__ );
37 
39  }

◆ METSystematicsTool() [2/2]

met::METSystematicsTool::METSystematicsTool ( )
private

Member Function Documentation

◆ addAffectingSystematic()

StatusCode CP::SystematicsTool::addAffectingSystematic ( const SystematicVariation systematic,
bool  recommended 
)
protectedinherited

effects: add a systematic to the list of registered systematics.

It will optionally also add this sytematic to the recommended set. side effects: this will add the systematic to the global list of systematics, if not already there guarantee: strong failures: out of memory II

Definition at line 111 of file SystematicsTool.cxx.

112  {
113 
114  RCU_READ_INVARIANT( this );
115 
116  SystematicRegistry& reg = SystematicRegistry::getInstance();
117  reg.registerSystematic( systematic );
118  m_affectingSystematics.insert( systematic );
119  if( recommended ) {
120  if( addRecommendedSystematic(systematic) != StatusCode::SUCCESS ) {
121  return StatusCode::FAILURE;
122  }
123  }
124  return StatusCode::SUCCESS;
125  }

◆ addAffectingSystematics()

void CP::SystematicsTool::addAffectingSystematics ( const SystematicSet systematics)
protectedinherited

effects: add a SystematicSet to the registered systematics.

Definition at line 141 of file SystematicsTool.cxx.

142  {
143 
144  RCU_READ_INVARIANT( this );
145 
146  SystematicRegistry& reg = SystematicRegistry::getInstance();
148  reg.registerSystematics( systematics );
149  }

◆ addMETAffectingSystematics()

StatusCode met::METSystematicsTool::addMETAffectingSystematics ( )
private

Definition at line 41 of file METSystematicsTool.cxx.

41  {
42  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
43 
44  if(!m_configSoftTrkFile.empty()){
45  if( !(addAffectingSystematic( softTrkAffSyst::MET_SoftTrk_ScaleUp , true /*recommended */ ) &&
46  addAffectingSystematic( softTrkAffSyst::MET_SoftTrk_ScaleDown, true /*recommended */ ) &&
47  addAffectingSystematic( softTrkAffSyst::MET_SoftTrk_ResoPara , true /*recommended */ ) &&
48  addAffectingSystematic( softTrkAffSyst::MET_SoftTrk_ResoPerp , true /*recommended */ ) &&
49  addAffectingSystematic( softTrkAffSyst::MET_SoftTrk_ResoCorr , false /*not recommended */) ) ) {
50  ATH_MSG_ERROR("failed to properly add softTrk affecting systematics " );
51  return StatusCode::FAILURE;
52  }
53  }
54  if(!m_configSoftCaloFile.empty()){
55  if( !(addAffectingSystematic( softCaloAffSyst::MET_SoftCalo_ScaleUp , true /*recommended */ ) &&
56  addAffectingSystematic( softCaloAffSyst::MET_SoftCalo_ScaleDown, true /*recommended */ ) &&
57  addAffectingSystematic( softCaloAffSyst::MET_SoftCalo_Reso , true /*recommended */ ) ) ) {
58  ATH_MSG_ERROR("failed to properly add softCalo affecting systematics " );
59  return StatusCode::FAILURE;
60  }
61  }
62  if(!m_configJetTrkFile.empty()){
63  if( !(addAffectingSystematic( jetTrkAffSyst::MET_JetTrk_ScaleUp , true /*recommended */ ) &&
64  addAffectingSystematic( jetTrkAffSyst::MET_JetTrk_ScaleDown, true /*recommended */ ) ) ){
65  ATH_MSG_ERROR("failed to properly add jetTrk affecting systematics " );
66  return StatusCode::FAILURE;
67  }
68  }
69 
70  ATH_MSG_INFO( "AffectingSystematics are:" );
71  for(const auto& syst : m_affectingSystematics) {
72  ATH_MSG_INFO( syst.name() );
73  }
74 
75  ATH_MSG_DEBUG("These systematics are set based on your config files: " );
76  ATH_MSG_DEBUG("ConfigSoftTrkFile: " << m_configSoftTrkFile );
77  ATH_MSG_DEBUG("ConfigSoftCaloFile: "<< m_configSoftCaloFile);
78  ATH_MSG_DEBUG("ConfigSoftJetFile: " << m_configJetTrkFile );
79 
80  return StatusCode::SUCCESS;
81  }

◆ addRecommendedSystematic()

StatusCode CP::SystematicsTool::addRecommendedSystematic ( const SystematicVariation systematic)
protectedinherited

effects: add a systematic to the list of recommended systematics failures: unsupported systematic

Definition at line 127 of file SystematicsTool.cxx.

128  {
129 
130  RCU_READ_INVARIANT( this );
131 
132  SystematicRegistry& reg = SystematicRegistry::getInstance();
133  m_recommendedSystematics.insert( systematic );
134  if( reg.addSystematicToRecommended( systematic ) !=
135  StatusCode::SUCCESS ) {
136  return StatusCode::FAILURE;
137  }
138  return StatusCode::SUCCESS;
139  }

◆ addRecommendedSystematics()

StatusCode CP::SystematicsTool::addRecommendedSystematics ( const SystematicSet systematics)
protectedinherited

effects: add a SystematicSet to the recommended systematics.

Definition at line 151 of file SystematicsTool.cxx.

152  {
153 
154  RCU_READ_INVARIANT( this );
155 
156  SystematicRegistry& reg = SystematicRegistry::getInstance();
158  if( reg.addSystematicsToRecommended( systematics ) !=
159  StatusCode::SUCCESS ) {
160  return StatusCode::FAILURE;
161  }
162  return StatusCode::SUCCESS;
163  }

◆ affectingSystematics()

CP::SystematicSet met::METSystematicsTool::affectingSystematics ( ) const
inlinevirtual

returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II

Reimplemented from CP::SystematicsTool.

Definition at line 123 of file METSystematicsTool.h.

◆ appliedSystematics()

const SystematicSet & CP::SystematicsTool::appliedSystematics ( ) const
inherited

returns: the list of systematics that have been applied to this tool.

this is not including systematics that were applied, but do not affect this tool guarantee: no-fail

Definition at line 54 of file SystematicsTool.cxx.

54  {
55 
56  RCU_READ_INVARIANT( this );
57  if(m_appliedSystematics == 0){
58  std::cerr << "SystematicsTool::appliedSystematics WARNING: "
59  << "no systematic configuration has been applied yet. "
60  << "Returning NULL" << std::endl;
61  static const SystematicSet dummy;
62  return dummy;
63  }
64  return *m_appliedSystematics;
65  }

◆ appliedSystematicsString()

std::string CP::SystematicsTool::appliedSystematicsString ( ) const
inherited

returns: a string representation of appliedSystematics() guarantee: strong failures: out of memory II rationale: this is meant to be used when printing out the applied systematics for debugging purposes (or when embedding them in a string).

Definition at line 67 of file SystematicsTool.cxx.

67  {
68 
69  RCU_READ_INVARIANT( this );
70  return m_appliedSystematics->name();
71  }

◆ applyCorrection()

CP::CorrectionCode met::METSystematicsTool::applyCorrection ( xAOD::MissingET inputMet,
const xAOD::MissingETAssociationHelper helper 
) const
virtual

Implements IMETSystematicsTool.

Definition at line 243 of file METSystematicsTool.cxx.

244  {
245 
246  //if asking for jet track systematics, the user needs to give a met association helper (with a map) as well
247  //if using a different jetContainer, you can give it as an option to applyCorrection
248  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
249 
250  if( getDefaultEventInfo() == nullptr) {
251  ATH_MSG_WARNING("event info is empty, returning without applying correction");
253  }
254 
256  ATH_MSG_WARNING("This tool should be applied to MC only. Return without changing the input MET object");
258  }
259 
260  if( MissingETBase::Source::isSoftTerm(inputMet.source())){
261 
262  xAOD::MissingETContainer const * METcont = dynamic_cast<xAOD::MissingETContainer const*>(inputMet.container());
263  if(METcont == nullptr){
264  ATH_MSG_WARNING("MissingET object not owned by a container. Returning without applying correction" );
266  }
267 
268  return internalSoftTermApplyCorrection(inputMet, METcont, *getDefaultEventInfo());
269  }
270 
271  // if( MissingETBase::Source::isTrackTerm(inputMet.source()) &&
273  ){
274  if( helper.map() == nullptr) {
275  ATH_MSG_WARNING("The MissingETAssociationMap for the given MissingETAssociationHelper is null. Returning without applying correction ");
277  }
278 
279  return getCorrectedJetTrackMET(inputMet, helper);
280  }
281 
282  ATH_MSG_WARNING("METSystematicsTool received a MissingET object it can't correct. You should only pass soft MET terms or jet track MET terms.");
284  }

◆ applySystematicVariation()

StatusCode met::METSystematicsTool::applySystematicVariation ( const CP::SystematicSet systConfig)
inlinevirtual

effects: configure this tool for the given list of systematic variations.

any requested systematics that are not affecting this tool will be silently ignored (unless they cause other errors). guarantee: basic failures: out of memory II failures: systematic unknown failures: requesting multiple variations on the same systematic (e.g. up & down) failures: requesting an unsupported variation on an otherwise supported systematic (e.g. a 2 sigma variation and the tool only supports 1 sigma variations) failures: unsupported combination of supported systematic failures: other tool specific errors

Reimplemented from CP::SystematicsTool.

Definition at line 125 of file METSystematicsTool.h.

◆ calcJetTrackMETWithSyst() [1/2]

CP::CorrectionCode met::METSystematicsTool::calcJetTrackMETWithSyst ( xAOD::MissingET jettrkmet,
const xAOD::MissingETAssociationHelper helper 
) const
private

Definition at line 511 of file METSystematicsTool.cxx.

514  {
515  ATH_MSG_VERBOSE(__PRETTY_FUNCTION__);
516 
517  if( m_jet_systRpt_pt_eta == nullptr ) {
518  ATH_MSG_ERROR("jet track systematics histogram not initialized properly.") ;
520  }
521 
523  double uncert = 0.;
524  int jetCount=0;
525 
526  std::vector<const xAOD::Jet*> jets;
527  for(const iplink_t& jetlink : acc_constitObjLinks(jettrkmet)) {
528  if((*jetlink)->type()!=xAOD::Type::Jet) {
529  ATH_MSG_ERROR("Invalid object of type " << (*jetlink)->type() << " in jet term");
531  }
532  jets.push_back(static_cast<const xAOD::Jet*>(*jetlink));
533  }
534  bool originalInputs = jets.empty() ? false : !acc_originalObject.isAvailable(*jets.front());
535  for(const xAOD::Jet *jet : jets) {
536  const MissingETAssociation* assoc = nullptr;
537  const MissingETAssociationMap* map = helper.map();
538  if(originalInputs) {
540  } else {
541  const IParticle* orig = *acc_originalObject(*jet);
542  assoc = MissingETComposition::getAssociation(map,static_cast<const xAOD::Jet*>(orig));
543  }
544 
546  if(std::abs(jet->eta())<=2.5)
547  {
548  jetCount++;
549  int phbin = std::as_const(m_jet_systRpt_pt_eta)->GetXaxis()->FindBin(jet->pt()/1e3);
550  if(phbin>m_jet_systRpt_pt_eta->GetNbinsX()) phbin = m_jet_systRpt_pt_eta->GetNbinsX();
551 
552  int etabin = std::as_const(m_jet_systRpt_pt_eta)->GetYaxis()->FindBin(std::abs( jet->eta() ));
553  if(etabin>m_jet_systRpt_pt_eta->GetNbinsY()) etabin = m_jet_systRpt_pt_eta->GetNbinsY();
554  float uncert_frac=(trkvec.sumpt())*(m_jet_systRpt_pt_eta->GetBinContent(phbin, etabin));
555 
556  ATH_MSG_VERBOSE("Sumpt: "<< trkvec.sumpt());
557  ATH_MSG_VERBOSE("jet uncert: "<< m_jet_systRpt_pt_eta->GetBinContent(phbin, etabin));
558  uncert = std::sqrt(uncert*uncert+uncert_frac*uncert_frac);
559  }
560  }
561 
562  ATH_MSG_VERBOSE("Uncertainty: "<< uncert);
563  ATH_MSG_VERBOSE("Jet Counting: "<< jetCount);
564 
565  switch( m_appliedSystEnum ) {
566  case MET_JETTRK_SCALEUP :
567  {
568  //uncert = uncert;
569  break;
570  }
571  case MET_JETTRK_SCALEDOWN :
572  {
573  uncert = -1.*uncert;
574  break;
575  }
576  default:
577  break;
578  }
579 
580  jettrkmet.setMpx ( jettrkmet.mpx()*(1 + uncert/(std::abs(jettrkmet.mpx())*std::sqrt(2))));
581  jettrkmet.setMpy ( jettrkmet.mpy()*(1 + uncert/(std::abs(jettrkmet.mpy())*std::sqrt(2))));
582  jettrkmet.setSumet( jettrkmet.sumet() + uncert);
583  }
584 
585  return CP::CorrectionCode::Ok;
586  }

◆ calcJetTrackMETWithSyst() [2/2]

CP::CorrectionCode met::METSystematicsTool::calcJetTrackMETWithSyst ( xAOD::MissingET jettrkmet,
const xAOD::MissingETAssociationHelper helper,
const xAOD::Jet jet 
) const
private

Definition at line 466 of file METSystematicsTool.cxx.

470  {
471  ATH_MSG_VERBOSE(__PRETTY_FUNCTION__);
472 
473  if( m_jet_systRpt_pt_eta == nullptr ) {
474  ATH_MSG_ERROR("jet track systematics histogram not initialized properly.") ;
476  }
477 
481 
482  int phbin = std::as_const(m_jet_systRpt_pt_eta)->GetXaxis()->FindBin(jet->pt()/1e3);
483  if(phbin>m_jet_systRpt_pt_eta->GetNbinsX()) phbin = m_jet_systRpt_pt_eta->GetNbinsX();
484 
485  int etabin = std::as_const(m_jet_systRpt_pt_eta)->GetYaxis()->FindBin(std::abs( jet->eta() ));
486  if(etabin>m_jet_systRpt_pt_eta->GetNbinsY()) etabin = m_jet_systRpt_pt_eta->GetNbinsY();
487 
488  double uncert = 0.;
489  switch( m_appliedSystEnum ){
490  case MET_JETTRK_SCALEUP : {
491  uncert = m_jet_systRpt_pt_eta->GetBinContent(phbin,etabin);
492  break;
493  }
494  case MET_JETTRK_SCALEDOWN : {
495  uncert = -1.*m_jet_systRpt_pt_eta->GetBinContent(phbin,etabin);
496  break;
497  }
498  default:
499  break;
500  }
501 
502  ATH_MSG_VERBOSE("Uncertainty on this jet is " << uncert);
503 
504  jettrkmet.setMpx ( jettrkmet.mpx() - trkvec.cpx() * uncert);
505  jettrkmet.setMpy ( jettrkmet.mpy() - trkvec.cpy() * uncert);
506  } else { ATH_MSG_VERBOSE("No jet track systematics applied"); }
507 
508  return CP::CorrectionCode::Ok;
509  }

◆ calcPtHard()

missingEt met::METSystematicsTool::calcPtHard ( xAOD::MissingETContainer const *const  cont) const
private

Definition at line 674 of file METSystematicsTool.cxx.

675  {
676  ATH_MSG_VERBOSE(__PRETTY_FUNCTION__ );
677 
678  //get truth container
680  if (!truthCont.isValid()) {
681 
682  ATH_MSG_ERROR( m_TruthContKey.key() << " container empty or doesn't exist, calcPtHard returning zero.");
683  return {};
684  }
685 
687  if(truthiter == truthCont->end()){
688  ATH_MSG_ERROR( "NonInt is not in " << m_TruthContKey.key() << ". calcPtHard returing zero." );
689  return {};
690  }
691  const xAOD::MissingET& truthmet = **truthiter;
692 
693  missingEt ptHard;
694  ptHard.mpx = truthmet.mpx();
695  ptHard.mpy = truthmet.mpy();
696  ptHard.sumet = truthmet.sumet();
697  ptHard.name = truthmet.name();
698  ptHard.source = truthmet.source();
699 
700  //loop over all non soft or total terms
701  for(xAOD::MissingETContainer::const_iterator iMET=cont->begin();iMET!=cont->end(); ++iMET ) {
702  if( !( MissingETBase::Source::isSoftTerm( (*iMET)->source() ) ||
703  MissingETBase::Source::isTotalTerm( (*iMET)->source() ) ) ) {
704  ptHard.mpx -= (*iMET)->mpx();
705  ptHard.mpy -= (*iMET)->mpy();
706  ptHard.sumet += (*iMET)->sumet();
707  }
708  }
709 
710  if( ptHard.sumet < 0 ) {
711  ATH_MSG_ERROR("PtHard has a negative sumet, returning ptHart = 0");
712  return {};
713  }
714 
715  ptHard.mpx *= 1./(double(m_units)) ;
716  ptHard.mpy *= 1./(double(m_units)) ;
717  ptHard.sumet*= 1./(double(m_units)) ;
718 
719  // protect from zero pthard. protects against an empty pthard for the soft term systematic
720  if(ptHard.sumet<1.0e-6){
721  ptHard.sumet=1.0e-6;
722  ptHard.mpx=1.0e-6;
723  ptHard.mpy=0.0;
724  }
725 
726  return ptHard;
727  }

◆ caloSyst_reso()

missingEt met::METSystematicsTool::caloSyst_reso ( missingEt const softTerms) const
private

Definition at line 615 of file METSystematicsTool.cxx.

615  {
616  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
617  // ATH_MSG_VERBOSE("caloSyst_reso: input MET: " << softTerms.met);
618 
619  double const metSigma = .7 * std::sqrt(softTerms.sumet);
620  double const resUnc = m_h_calosyst_reso->GetBinContent(1);
621  double const smearedSigma = std::sqrt( (metSigma* (1. + resUnc))*(metSigma* (1. + resUnc)) -
622  metSigma * metSigma );
623 
624  ATH_MSG_VERBOSE("caloSyst_reso: metSigma: " << metSigma << ", resUnc: " << resUnc << ", smearedSigma = " << smearedSigma);
625 
626  double const softTermsMet = std::sqrt( softTerms.mpx * softTerms.mpx +
627  softTerms.mpy * softTerms.mpy );
628 
629 
630  double const rand = getTLSRandomGen()->Gaus(0.,1.);
631  double const shift = softTermsMet<1e-9 ? 0. : rand*smearedSigma / softTermsMet;
632 
633  ATH_MSG_VERBOSE("caloSyst_reso: shift = " << shift);
634 
635  return missingEt(softTerms.mpx*(1.+shift),softTerms.mpy*(1.+shift),softTerms.sumet,
636  softTerms.name,softTerms.source);
637  }

◆ caloSyst_scale()

missingEt met::METSystematicsTool::caloSyst_scale ( missingEt const softTerms,
double const  scale 
) const
private

Definition at line 608 of file METSystematicsTool.cxx.

608  {
609  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
610 
611  return missingEt(softTerms.mpx*scale, softTerms.mpy*scale, softTerms.sumet,
612  softTerms.name,softTerms.source);
613  }

◆ correctedCopy()

CP::CorrectionCode met::METSystematicsTool::correctedCopy ( const xAOD::MissingET met,
xAOD::MissingET *&  outputmet,
const xAOD::MissingETAssociationHelper helper 
) const
virtual

Implements IMETSystematicsTool.

Definition at line 287 of file METSystematicsTool.cxx.

289  { ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
290  xAOD::MissingET * copy = nullptr;
291 
292  if(outputmet != nullptr ){
293  ATH_MSG_WARNING("Please pass a nullptr to the 2nd argument of correctedCopy to fill the output pointer");
294  ATH_MSG_WARNING("Returning without making a correctedCopy");
296  }
297 
298  if( getDefaultEventInfo() == nullptr) {
299  ATH_MSG_WARNING("event info is empty, return a nullptr");
300  outputmet = nullptr;
302  }
303 
305  ATH_MSG_WARNING("This tool should be applied to MC only. Return without changing the input MET object");
306  outputmet = nullptr;
308  }
309 
310  if( MissingETBase::Source::isSoftTerm(met.source())){
311  xAOD::MissingETContainer const * METcont = dynamic_cast<xAOD::MissingETContainer const*>(met.container());
312  if(METcont == nullptr){
313  ATH_MSG_WARNING("MissingET object not owned by a container. Unable to apply correction, returning output MET object as null" );
314  outputmet = nullptr;
316  }
317  copy = new xAOD::MissingET(met);
318 
320  outputmet = nullptr; delete copy;
322  }
323  }//soft term source
324  if( //MissingETBase::Source::isTrackTerm(met.source()) &&
326  if( helper.map() == nullptr) {
327  ATH_MSG_WARNING("MissingETAssociationHelper contained a null MissingETAssociationMap pointer");
328  outputmet = nullptr; delete copy;
330  }
331  delete copy;
332  copy = new xAOD::MissingET(met);
334  outputmet = nullptr; delete copy;
336  }
337  }//jet track term source
338 
339  outputmet = copy;
340  return CP::CorrectionCode::Ok;
341  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  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 > &  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 > &  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 > &  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 > &  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; }

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

◆ extractHistoPath()

StatusCode met::METSystematicsTool::extractHistoPath ( std::string &  histfile,
std::string &  systpath,
std::string &  configdir,
std::string &  suffix,
SystType const type 
)
private

Definition at line 729 of file METSystematicsTool.cxx.

735  {
736  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__);
737  TEnv reader;
738 
739  std::string configpath = "";
740  std::string configfile = "";
741  if(m_useDevArea) { configpath += "dev/"; }
742 
743  switch(type){
744  case SOFTCALO : configfile += m_configSoftCaloFile.value();
745  configpath = PathResolverFindCalibFile(m_configPrefix.value()+m_configSoftCaloFile.value());//, "CALIBPATH", PathResolver::RecursiveSearch) ;
746  break;
747  case SOFTTRK : configfile += m_configSoftTrkFile.value();
748  configpath = PathResolverFindCalibFile(m_configPrefix.value()+m_configSoftTrkFile.value());//, "CALIBPATH", PathResolver::RecursiveSearch) ;
749  break;
750  case JETTRK : configfile += m_configJetTrkFile.value();
751  configpath = PathResolverFindCalibFile(m_configPrefix.value()+m_configJetTrkFile.value());//, "CALIBPATH", PathResolver::RecursiveSearch) ;
752  break;
753  default : configpath = "";
754  }
755 
756  ATH_MSG_INFO( "Searching for configFile: " << configfile);
757  ATH_MSG_DEBUG( "PWD: " << gSystem->Getenv("PWD") ) ;
758  ATH_MSG_DEBUG( "CALIBPATH: " << gSystem->Getenv("CALIBPATH") );
759 
760  if(configpath.empty() || configfile.empty() ){
761  ATH_MSG_ERROR( "Path Resolver couldn't find config file");
762  return StatusCode::FAILURE;
763  }
764 
765  if( reader.ReadFile(configpath.c_str(),EEnvLevel(0)) < 0) {
766  ATH_MSG_ERROR( "Couldn't read the track config file!" );
767  return StatusCode::FAILURE;
768  }
769 
770  ATH_MSG_INFO( "Configuring from file : " << configpath );
771 
772 
773  switch(type){
774  case SOFTCALO :
775  histfile = reader.GetValue( "Conf.InputFile" , "");
776  systpath = reader.GetValue( "GlobalSyst.sourcedir" , "" );
777  break;
778  case SOFTTRK :
779  histfile = reader.GetValue( "Conf.InputFile" , "");
780  systpath = reader.GetValue( "PtHardSyst.sourcedir" , "" );
781  suffix = reader.GetValue( "PtHardSyst.suffix" , "" );
782  break;
783  case JETTRK :
784  histfile = reader.GetValue( "JetTrkSyst.InputFile" , "");
786  systpath = "/";
787  break;
788  default : break;
789  }
790  if(m_useDevArea) histfile = "dev/"+histfile;
791 
792  std::string const units_string = reader.GetValue( "Units", "" );
793 
794  //check if we already set the units in another config file
795  if(m_units == 1000){
796  if(units_string != "GeV"){
797  ATH_MSG_ERROR("initialized the different systematics using two config files that conflict on units");
798  return StatusCode::FAILURE;
799  }
800  }
801  if(m_units == 1){
802  if( (!units_string.empty()) &&
803  (units_string != "MeV")
804  ){
805  ATH_MSG_ERROR("initialized the different systematics using two config files that conflict on units");
806  return StatusCode::FAILURE;
807  }
808  }
809 
810  //set the units again
811  if( (units_string.empty()) ||
812  (units_string == "MeV")
813  ){
814  m_units = 1;
815  }else if(units_string == "GeV"){
816  m_units = 1000;
817  }else{
818  ATH_MSG_ERROR("You specified an incorrect 'Units' value. Please specify MeV , GeV , or leave it blank for MeV");
819  return StatusCode::FAILURE;
820  }
821 
822  ATH_MSG_INFO( "Will read histograms from : " << histfile );
823  ATH_MSG_DEBUG( "Systpath :" << systpath ) ;
824  histpath = PathResolverFindCalibFile(histfile);//, "CALIBPATH", PathResolver::RecursiveSearch) ;
825  ATH_MSG_INFO("Extracted histogram path : " << histpath);
826 
827  if(histfile.empty() || systpath.empty() || histpath.empty() ){
828  ATH_MSG_ERROR("Failed to correctly set histfile path, or path to histograms inside of the histfile" );
829  return StatusCode::FAILURE;
830  }
831 
832 
833  if( (m_units != 1) &&
834  (m_units != 1000) &&
835  (m_units != -1)
836  ){
837  ATH_MSG_ERROR("Something is wrong with your units initialization. Please contact the developers (you should never get here).");
838  return StatusCode::FAILURE;
839  }
840 
841 
842  return StatusCode::SUCCESS;
843  }

◆ 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

◆ FRIEND_TEST() [1/5]

met::METSystematicsTool::FRIEND_TEST ( METSystTest  ,
TestAddAffectingSystematic   
)
private

◆ FRIEND_TEST() [2/5]

met::METSystematicsTool::FRIEND_TEST ( METSystTest  ,
TestDefaultHistosFilled   
)
private

◆ FRIEND_TEST() [3/5]

met::METSystematicsTool::FRIEND_TEST ( METSystTest  ,
TestJetTrkHistosFilled   
)
private

◆ FRIEND_TEST() [4/5]

met::METSystematicsTool::FRIEND_TEST ( METSystTest  ,
TestProjectST   
)
private

◆ FRIEND_TEST() [5/5]

met::METSystematicsTool::FRIEND_TEST ( METSystTest  ,
TestProjectST2   
)
private

◆ getCorrectedJetTrackMET()

CP::CorrectionCode met::METSystematicsTool::getCorrectedJetTrackMET ( xAOD::MissingET jettrkmet,
const xAOD::MissingETAssociationHelper helper 
) const
private

Definition at line 589 of file METSystematicsTool.cxx.

592  {
593  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
594 
595  const MissingETAssociationMap* map = helper.map();
596  if(!map) {
597  ATH_MSG_ERROR("MissingETAssociationMap null, error calculating jet track systematics.");
599  }
600 
602  ATH_MSG_ERROR("Failed to calculate jet track systematics.");
604  }
605  return CP::CorrectionCode::Ok;
606  }

◆ getDefaultEventInfo()

xAOD::EventInfo const * met::METSystematicsTool::getDefaultEventInfo ( ) const
private

Definition at line 847 of file METSystematicsTool.cxx.

848  { ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
849 
851  if (!eInfoConst.isValid()) {
852 
853  ATH_MSG_ERROR("Failed to retrieve default EventInfo object");
854  }
855  return &*eInfoConst;
856  }

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

◆ getNPV()

int met::METSystematicsTool::getNPV ( ) const
private

Definition at line 858 of file METSystematicsTool.cxx.

858  {
859  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
861 
862  if (!vertices.isValid()) {
863 
864  ATH_MSG_ERROR("Failed to retrieve default NPV value from PrimaryVertices");
865  return 0;
866  }
867 
868  int NPV = 0;
870  for (itr = vertices->begin(); itr != vertices->end(); ++itr)
871  if ( (*itr)->vertexType() != xAOD::VxType::NoVtx) NPV++;
872 
873  return NPV;
874  }

◆ getProperty()

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

Get one of the tool's properties.

◆ getTLSRandomGen()

TRandom3 * met::METSystematicsTool::getTLSRandomGen ( ) const
private

Definition at line 876 of file METSystematicsTool.cxx.

876  {
877  TRandom3* random = m_rand_tls.get();
878  if (!random) {
879  random = new TRandom3();
880  m_rand_tls.reset(random);
881  }
882  return random;
883  }

◆ initialize()

StatusCode met::METSystematicsTool::initialize ( )
virtual

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 83 of file METSystematicsTool.cxx.

84  {
85  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
86  // ReadHandleKey(s)
87 
88  ATH_CHECK( m_VertexContKey.initialize() );
89  ATH_CHECK( m_TruthContKey.initialize() );
91 
92  const char lastchar = m_configPrefix.value().back();
93  if (lastchar != '/') {
94  m_configPrefix = m_configPrefix.value() + "/";
95  }
96 
97  if(m_configSoftTrkFile.empty() &&
98  m_configSoftCaloFile.empty() &&
99  m_configJetTrkFile.empty() ) ATH_MSG_WARNING("you have initialized the METSystematicsTool with no configuration file. The tool will do nothing. Please set the configuration file properties.");
100 
104 
106  }

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

◆ internalSoftTermApplyCorrection()

CP::CorrectionCode met::METSystematicsTool::internalSoftTermApplyCorrection ( xAOD::MissingET softMet,
xAOD::MissingETContainer const METcont,
xAOD::EventInfo const eInfo 
) const
private

Definition at line 343 of file METSystematicsTool.cxx.

346  { //this is equivalent of "getSoftTerms"
347 
348  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
349 
350 
351  if( ! MissingETBase::Source::isSoftTerm(softMet.source()) ){
352  ATH_MSG_ERROR("not soft met, cannot apply soft term correction to this MET");
354  }
355 
356  bool doSyst = false;
357  if( MissingETBase::Source::isTrackTerm(softMet.source()) ) {
359  ATH_MSG_VERBOSE("Track soft term " << softMet.name()
360  << ", met = " << softMet.met()
361  << ", applied systematic is " << m_appliedSystEnum
362  << ", do syst? " << doSyst);
363  } else {
365  ATH_MSG_VERBOSE("Calo soft term " << softMet.name()
366  << ", met = " << softMet.met()
367  << ", applied systematic is " << m_appliedSystEnum
368  << ", do syst? " << doSyst);
369  }
370 
371  if(doSyst) {
372 
373  //this is for speed
374  //we avoid creating met private stores here
375  missingEt softMetStruct;
376  softMetStruct.mpx = softMet.mpx();
377  softMetStruct.mpy = softMet.mpy();
378  softMetStruct.sumet = softMet.sumet();
379  softMetStruct.name = softMet.name();
380  softMetStruct.source = softMet.source();
381 
382  if(METcont == nullptr){
383  ATH_MSG_WARNING("failed to retrieve MET container from passed object");
385  }
386 
387  missingEt const ptHard = calcPtHard(METcont);
388  double const ptHardMet = std::sqrt( ptHard.mpx * ptHard.mpx +
389  ptHard.mpy * ptHard.mpy ) ;
390 
391  const xAOD::MissingET* jetterm = *METcont->find( MissingETBase::Source::jet() );
392  size_t njet = (jetterm==nullptr) ? 0 : acc_constitObjLinks(*jetterm ).size();
393 
394  int phbin = std::as_const(m_shiftpara_pthard_njet_mu)->GetXaxis()->FindBin( ptHardMet ) ;
395  if(phbin>m_shiftpara_pthard_njet_mu->GetNbinsX()) phbin = m_shiftpara_pthard_njet_mu->GetNbinsX();
396  int const jetbin = std::as_const(m_shiftpara_pthard_njet_mu)->GetYaxis()->FindBin(njet);
397  int const mubin = std::as_const(m_shiftpara_pthard_njet_mu)->GetZaxis()->FindBin(eInfo.actualInteractionsPerCrossing() );
398  double const ptHardShift = m_shiftpara_pthard_njet_mu->GetBinContent(phbin,jetbin,mubin);
399 
400  double const randGaus = getTLSRandomGen()->Gaus(0.,1.);
401 
402  ATH_MSG_DEBUG("About to apply systematic " << appliedSystematicsString() );
403 
404  //now we need to know what soft term systematics we are doing
405  //m_appliedSystEnum was cached by the applySystematicVariation method
406  switch( m_appliedSystEnum ){
407  case MET_SOFTTRK_SCALEUP : {
408  softMetStruct = softTrkSyst_scale(softMetStruct, ptHard, ptHardShift);
409  break;
410  }
411  case MET_SOFTTRK_SCALEDOWN: {
412  softMetStruct = softTrkSyst_scale(softMetStruct, ptHard,-1*ptHardShift);
413  break;
414  }
415  case MET_SOFTTRK_RESOPARA : {
416  double const smearpara = m_resopara_pthard_njet_mu->GetBinContent(phbin,jetbin,mubin)*randGaus;
417  softMetStruct = softTrkSyst_reso(softMetStruct, ptHard, ptHardShift, smearpara, 0.);
418  break;
419  }
420  case MET_SOFTTRK_RESOPERP : {
421  double const smearperp = m_resoperp_pthard_njet_mu->GetBinContent(phbin,jetbin,mubin)*randGaus;
422  softMetStruct = softTrkSyst_reso(softMetStruct, ptHard, ptHardShift, 0., smearperp );
423  break;
424  }
425  case MET_SOFTTRK_RESOCORR : {
426  double const smearpara = m_resopara_pthard_njet_mu->GetBinContent(phbin,jetbin,mubin)*randGaus;
427  double const smearperp = m_resoperp_pthard_njet_mu->GetBinContent(phbin,jetbin,mubin)*randGaus;
428  softMetStruct = softTrkSyst_reso(softMetStruct, ptHard, ptHardShift, smearpara , smearperp);
429  break;
430  }
431  case MET_SOFTCALO_SCALEUP : {
432  double const caloscale = 1. + m_h_calosyst_scale->GetBinContent(1);
433  softMetStruct = caloSyst_scale(softMetStruct,caloscale);
434  break;
435  }
436  case MET_SOFTCALO_SCALEDOWN : {
437  double const caloscale = 1. - m_h_calosyst_scale->GetBinContent(1);
438  softMetStruct = caloSyst_scale(softMetStruct,caloscale);
439  break;
440  }
441  case MET_SOFTCALO_RESO : {
442  softMetStruct = caloSyst_reso(softMetStruct) ;
443  break;
444  }
445  default:{
446  ATH_MSG_DEBUG("No systematic applied, returning nominal MET term");
447  }
448  }
449 
450  //fill the softMet back with the struct values to return
451  softMet.setMpx( softMetStruct.mpx);
452  softMet.setMpy( softMetStruct.mpy);
453  softMet.setSumet( softMetStruct.sumet);
454  softMet.setName( softMetStruct.name);
455  softMet.setSource( softMetStruct.source);
456  } else {
457  ATH_MSG_DEBUG("Ignore irrelevant systematic.");
458  }
459 
460  ATH_MSG_VERBOSE("Output soft term " << softMet.name()
461  << ", met = " << softMet.met() );
462 
463  return CP::CorrectionCode::Ok;
464  }

◆ isAffectedBySystematic()

bool met::METSystematicsTool::isAffectedBySystematic ( const CP::SystematicVariation systematic) const
inlinevirtual

returns: whether this tool is affected by the given systematic guarantee: no-fail

Reimplemented from CP::SystematicsTool.

Definition at line 122 of file METSystematicsTool.h.

◆ jetTrkSystInitialize()

StatusCode met::METSystematicsTool::jetTrkSystInitialize ( )

Definition at line 144 of file METSystematicsTool.cxx.

145  {
146  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__);
147 
148  std::string histfile = "";
149  std::string gsystpath = "";
150  std::string configdir = "";
151  std::string blank = "";
152 
153  ATH_CHECK( extractHistoPath(histfile,gsystpath, configdir,blank , JETTRK) );//properly sets the paths
154 
155  TFile infile((configdir).c_str());
156 
157  m_jet_systRpt_pt_eta.reset(dynamic_cast<TH2D*>( infile.Get("jet_systRpt_pt_eta")));
158 // m_jet_systRpt_pt_eta.reset(dynamic_cast<TH2D*>( infile.Get("uncertaintyMap")));
159 
161  {
162  ATH_MSG_ERROR("Could not get jet track histo from the config file:" << histfile);
163  return StatusCode::FAILURE;
164  }
165 
166  m_jet_systRpt_pt_eta->SetDirectory(nullptr);
167 
168  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ << " DONE!!");
169  return StatusCode::SUCCESS;
170  }

◆ 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() [1/2]

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

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

◆ projectST()

missingEt met::METSystematicsTool::projectST ( missingEt const softTerms,
missingEt const ptHard 
) const
private

Definition at line 658 of file METSystematicsTool.cxx.

659  {
660  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
661  double const ptHardMet = std::sqrt( ptHard.mpx * ptHard.mpx +
662  ptHard.mpy * ptHard.mpy );
663 
664  double const ux = ptHard.mpx/ptHardMet;
665  double const uy = ptHard.mpy/ptHardMet;
666  double const projL = ux*softTerms.mpx + uy*softTerms.mpy;
667  double const projT = uy*softTerms.mpx - ux*softTerms.mpy;
668  missingEt proj(projL,projT,softTerms.sumet,
669  softTerms.name,softTerms.source);
670 
671  return proj;
672  }

◆ recommendedSystematics()

CP::SystematicSet met::METSystematicsTool::recommendedSystematics ( ) const
inlinevirtual

returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II

Reimplemented from CP::SystematicsTool.

Definition at line 124 of file METSystematicsTool.h.

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

◆ setRandomSeed()

void met::METSystematicsTool::setRandomSeed ( int  seed) const
virtual

Implements IMETSystematicsTool.

Definition at line 885 of file METSystematicsTool.cxx.

885  {
886  ATH_MSG_VERBOSE(__PRETTY_FUNCTION__);
887  getTLSRandomGen()->SetSeed(seed);
888  }

◆ softCaloSystInitialize()

StatusCode met::METSystematicsTool::softCaloSystInitialize ( )

Definition at line 108 of file METSystematicsTool.cxx.

109  {
110  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__);
111  ATH_MSG_INFO("Doing SoftCalo systematics initialization. THIS IS FOR SOFTWARE DEVELOPMENT ONLY.");
112  ATH_MSG_INFO("CST IS NOT YET RECOMMENDED OR SUPPORTED BY THE MET GROUP. YOU ARE USING A 2012 config file.");
113 
114  std::string histfile = "";
115  std::string gsystpath = "";
116  std::string histpath = "";
117  std::string blank = "";
118 
119  ATH_CHECK( extractHistoPath(histfile,gsystpath,histpath,blank ,SOFTCALO) );//properly sets the paths
120 
121  TFile infile(histpath.c_str());
122 
123  ATH_MSG_INFO( "METSystematics: Read calo uncertainties" );
124  m_h_calosyst_scale.reset(dynamic_cast<TH1D*>( infile.Get((gsystpath+"/globsyst_scale").c_str())));
125  m_h_calosyst_reso.reset(dynamic_cast<TH1D*>( infile.Get((gsystpath+"/globsyst_reso").c_str())));
126 
127  if( !(m_h_calosyst_scale &&
129  )
130  )
131  {
132  ATH_MSG_ERROR("Could not get all calo histos from the config file:" << histfile);
133  return StatusCode::FAILURE;
134  }
135 
136  m_h_calosyst_scale->SetDirectory(nullptr);
137  m_h_calosyst_reso ->SetDirectory(nullptr);
138 
139  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ << " DONE!!" );
140  return StatusCode::SUCCESS;
141  }

◆ softTrkSyst_reso()

missingEt met::METSystematicsTool::softTrkSyst_reso ( missingEt const softTerms,
missingEt const ptHard,
double const  shift,
double const  smearpara,
double const  smearperp 
) const
private

Definition at line 644 of file METSystematicsTool.cxx.

648  {
649  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ );
650 
651  missingEt projection = projectST(softTerms,ptHard);
652  projection.mpx = (projection.mpx + shift + smearpara );
653  projection.mpy = (projection.mpy + + smearperp );
654 
655  return projectST(projection, ptHard);
656  }

◆ softTrkSyst_scale()

missingEt met::METSystematicsTool::softTrkSyst_scale ( missingEt const softTerms,
missingEt const ptHard,
double const  shift 
) const
private

Definition at line 639 of file METSystematicsTool.cxx.

640  { ATH_MSG_VERBOSE(__PRETTY_FUNCTION__);
641  return softTrkSyst_reso(softTerms, ptHard, shift, 0. , 0.);
642  }

◆ softTrkSystInitialize()

StatusCode met::METSystematicsTool::softTrkSystInitialize ( )

Definition at line 173 of file METSystematicsTool.cxx.

174  {
175  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
176 
177  std::string histfile = "";
178  std::string psystpath = "";
179  std::string histpath = "";
180  std::string suffix = "";
181 
182  ATH_CHECK( extractHistoPath(histfile,psystpath,histpath, suffix, SOFTTRK) );//properly sets the paths
183 
184  TFile infile(histpath.c_str());
185 
186  m_resoperp_pthard_njet_mu.reset(dynamic_cast<TH3D*>( infile.Get((psystpath+"/resoperp_"+suffix).c_str()) ));
187  m_resopara_pthard_njet_mu.reset(dynamic_cast<TH3D*>( infile.Get((psystpath+"/resopara_"+suffix).c_str()) ));
188  m_shiftpara_pthard_njet_mu.reset(dynamic_cast<TH3D*>( infile.Get((psystpath+"/shiftpara_"+suffix).c_str())));
189 
193  )
194  )
195  {
196  ATH_MSG_ERROR("Could not get all track histos from the config file:" << histfile );
197  return StatusCode::FAILURE;
198  }
199 
200  m_resoperp_pthard_njet_mu ->SetDirectory(nullptr);
201  m_resopara_pthard_njet_mu ->SetDirectory(nullptr);
202  m_shiftpara_pthard_njet_mu->SetDirectory(nullptr);
203 
204  ATH_MSG_VERBOSE( __PRETTY_FUNCTION__ <<" DONE!!");
205  return StatusCode::SUCCESS;
206  }

◆ sysApplySystematicVariation()

StatusCode met::METSystematicsTool::sysApplySystematicVariation ( const CP::SystematicSet systConfig)
virtual

effects: configure this tool for the given list of systematic variations.

systConfig is guaranteed to contain only supported systematics. guarantee: basic failures: out of memory II failures: unsupported combination of supported systematics failures: other tool specific errors

Implements CP::SystematicsTool.

Definition at line 208 of file METSystematicsTool.cxx.

208  {//this should already be filtered for MET systematics
209  ATH_MSG_VERBOSE (__PRETTY_FUNCTION__ );
210  // Only a single systematic can be applied at a time:
211  // If at some point we can deal with multiple systematics, we will check here that the combination we are given will work
212 
214  if( systSet.empty() ) {
215  ATH_MSG_DEBUG("No affecting systematics received.");
216  return StatusCode::SUCCESS;
217  } else if( systSet.size() > 1 ) {
218  ATH_MSG_WARNING("Tool does not support multiple systematics, returning unsupported" );
219  return StatusCode::FAILURE;
220  }
221  CP::SystematicVariation systVar = *systSet.begin();
222  if ( systVar == CP::SystematicVariation("") ) m_appliedSystEnum = NONE ;
223  else if( systVar == softTrkAffSyst::MET_SoftTrk_ScaleUp) m_appliedSystEnum = MET_SOFTTRK_SCALEUP ;
224  else if( systVar == softTrkAffSyst::MET_SoftTrk_ScaleDown) m_appliedSystEnum = MET_SOFTTRK_SCALEDOWN ;
225  else if( systVar == softTrkAffSyst::MET_SoftTrk_ResoPara) m_appliedSystEnum = MET_SOFTTRK_RESOPARA ;
226  else if( systVar == softTrkAffSyst::MET_SoftTrk_ResoPerp) m_appliedSystEnum = MET_SOFTTRK_RESOPERP ;
227  else if( systVar == softTrkAffSyst::MET_SoftTrk_ResoCorr) m_appliedSystEnum = MET_SOFTTRK_RESOCORR ;
228  else if( systVar == softCaloAffSyst::MET_SoftCalo_ScaleUp) m_appliedSystEnum = MET_SOFTCALO_SCALEUP ;
229  else if( systVar == softCaloAffSyst::MET_SoftCalo_ScaleDown) m_appliedSystEnum = MET_SOFTCALO_SCALEDOWN;
230  else if( systVar == softCaloAffSyst::MET_SoftCalo_Reso) m_appliedSystEnum = MET_SOFTCALO_RESO ;
231  else if( systVar == jetTrkAffSyst::MET_JetTrk_ScaleUp) m_appliedSystEnum = MET_JETTRK_SCALEUP ;
232  else if( systVar == jetTrkAffSyst::MET_JetTrk_ScaleDown) m_appliedSystEnum = MET_JETTRK_SCALEDOWN ;
233  else{
234  ATH_MSG_WARNING("unsupported systematic applied " );
235  return StatusCode::FAILURE;
236  }
237 
238  ATH_MSG_DEBUG("applied systematic is " << m_appliedSystEnum );
239 
240  return StatusCode::SUCCESS;
241  }

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

◆ testInvariant()

void CP::SystematicsTool::testInvariant ( ) const
inherited

effects: test the invariance of this object guarantee: no-fail

Definition at line 165 of file SystematicsTool.cxx.

165  {
166 
167  //RCU_INVARIANT( this != 0 );
168  }

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

SystematicSet CP::SystematicsTool::m_affectingSystematics
protectedinherited

description: members directly corresponding to accessors

Definition at line 146 of file SystematicsTool.h.

◆ m_appliedSystematics

SystematicSet* CP::SystematicsTool::m_appliedSystematics
privateinherited

description: pointer to currenty applied systematics

Definition at line 151 of file SystematicsTool.h.

◆ m_appliedSystEnum

SystApplied met::METSystematicsTool::m_appliedSystEnum {NONE}
private

Definition at line 136 of file METSystematicsTool.h.

◆ m_configJetTrkFile

Gaudi::Property<std::string> met::METSystematicsTool::m_configJetTrkFile {this, "ConfigJetTrkFile", "", ""}
private

Definition at line 151 of file METSystematicsTool.h.

◆ m_configPrefix

Gaudi::Property<std::string> met::METSystematicsTool::m_configPrefix {this, "ConfigPrefix", "METUtilities/R22_PreRecs", ""}
private

Definition at line 149 of file METSystematicsTool.h.

◆ m_configSoftCaloFile

Gaudi::Property<std::string> met::METSystematicsTool::m_configSoftCaloFile {this, "ConfigSoftCaloFile", "", ""}
private

Definition at line 152 of file METSystematicsTool.h.

◆ m_configSoftTrkFile

Gaudi::Property<std::string> met::METSystematicsTool::m_configSoftTrkFile {this, "ConfigSoftTrkFile", "TrackSoftTerms-pflow.config", ""}
private

Definition at line 150 of file METSystematicsTool.h.

◆ 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::METSystematicsTool::m_EventInfoKey {this, "EventInfo", "EventInfo", ""}
private

Definition at line 174 of file METSystematicsTool.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_h_calosyst_reso

std::unique_ptr<TH1D> met::METSystematicsTool::m_h_calosyst_reso {}
private

Definition at line 160 of file METSystematicsTool.h.

◆ m_h_calosyst_scale

std::unique_ptr<TH1D> met::METSystematicsTool::m_h_calosyst_scale {}
private

Definition at line 159 of file METSystematicsTool.h.

◆ m_jet_systRpt_pt_eta

std::unique_ptr<TH2D> met::METSystematicsTool::m_jet_systRpt_pt_eta {}
private

Definition at line 158 of file METSystematicsTool.h.

◆ m_rand_tls

boost::thread_specific_ptr<TRandom3> met::METSystematicsTool::m_rand_tls
mutableprivate

Definition at line 162 of file METSystematicsTool.h.

◆ m_recommendedSystematics

SystematicSet CP::SystematicsTool::m_recommendedSystematics
protectedinherited

Definition at line 147 of file SystematicsTool.h.

◆ m_resopara_pthard_njet_mu

std::unique_ptr<TH3D> met::METSystematicsTool::m_resopara_pthard_njet_mu {}
private

Definition at line 156 of file METSystematicsTool.h.

◆ m_resoperp_pthard_njet_mu

std::unique_ptr<TH3D> met::METSystematicsTool::m_resoperp_pthard_njet_mu {}
private

Definition at line 157 of file METSystematicsTool.h.

◆ m_shiftpara_pthard_njet_mu

std::unique_ptr<TH3D> met::METSystematicsTool::m_shiftpara_pthard_njet_mu {}
private

Definition at line 155 of file METSystematicsTool.h.

◆ m_systFilterMap

std::unordered_map<SystematicSet, SystematicSet> CP::SystematicsTool::m_systFilterMap
privateinherited

map of cached systematics filtering

Definition at line 154 of file SystematicsTool.h.

◆ m_TruthContKey

SG::ReadHandleKey<xAOD::MissingETContainer> met::METSystematicsTool::m_TruthContKey {this, "TruthContainer", "MET_Truth", ""}
private

Definition at line 173 of file METSystematicsTool.h.

◆ m_units

int met::METSystematicsTool::m_units {-1}
private

Definition at line 165 of file METSystematicsTool.h.

◆ m_useDevArea

Gaudi::Property<bool> met::METSystematicsTool::m_useDevArea {this, "UseDevArea", false, ""}
private

Definition at line 153 of file METSystematicsTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_VertexContKey

SG::ReadHandleKey<xAOD::VertexContainer> met::METSystematicsTool::m_VertexContKey {this, "VertexContainer", "PrimaryVertices", ""}
private

Definition at line 172 of file METSystematicsTool.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::METSystematicsTool::m_resoperp_pthard_njet_mu
std::unique_ptr< TH3D > m_resoperp_pthard_njet_mu
Definition: METSystematicsTool.h:157
beamspotnt.var
var
Definition: bin/beamspotnt.py:1394
met::METSystematicsTool::internalSoftTermApplyCorrection
CP::CorrectionCode internalSoftTermApplyCorrection(xAOD::MissingET &softMet, xAOD::MissingETContainer const *METcont, xAOD::EventInfo const &eInfo) const
Definition: METSystematicsTool.cxx:343
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
met::METSystematicsTool::m_configJetTrkFile
Gaudi::Property< std::string > m_configJetTrkFile
Definition: METSystematicsTool.h:151
hotSpotInTAG.suffix
string suffix
Definition: hotSpotInTAG.py:186
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
checkCorrelInHIST.histpath
histpath
Definition: checkCorrelInHIST.py:400
run.infile
string infile
Definition: run.py:13
xAOD::MissingET_v1::setSumet
void setSumet(float value)
Set .
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
met::METSystematicsTool::jetTrkSystInitialize
StatusCode jetTrkSystInitialize()
Definition: METSystematicsTool.cxx:144
TH3D
Definition: rootspy.cxx:505
CP::SystematicsTool::m_appliedSystematics
SystematicSet * m_appliedSystematics
description: pointer to currenty applied systematics
Definition: SystematicsTool.h:151
xAOD::MissingETAssociation_v1
MET association descriptor contains object links and corresponding parameters.
Definition: MissingETAssociation_v1.h:29
met::METSystematicsTool::applySystematicVariation
StatusCode applySystematicVariation(const CP::SystematicSet &set)
effects: configure this tool for the given list of systematic variations.
Definition: METSystematicsTool.h:125
xAOD::MissingET_v1::sumet
float sumet() const
Returns.
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
met::METSystematicsTool::softTrkSystInitialize
StatusCode softTrkSystInitialize()
Definition: METSystematicsTool.cxx:173
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::MissingET_v1::setMpy
void setMpy(float value)
Set the component.
met::METSystematicsTool::getTLSRandomGen
TRandom3 * getTLSRandomGen() const
Definition: METSystematicsTool.cxx:876
MissingETBase::Source::isTotalTerm
static bool isTotalTerm(Types::bitmask_t bits, Region reg=Region::FullAcceptance)
Definition: MissingETBase.h:405
met::MET_SOFTCALO_RESO
@ MET_SOFTCALO_RESO
Definition: METSystematicsTool.h:77
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
CP::SystematicsTool::affectingSystematics
virtual SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of ...
Definition: SystematicsTool.cxx:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
xAOD::MissingET
MissingET_v1 MissingET
Version control by type defintion.
Definition: Event/xAOD/xAODMissingET/xAODMissingET/MissingET.h:15
CP::SystematicSet::name
std::string name() const
returns: the systematics joined into a single string.
Definition: SystematicSet.cxx:278
met::METSystematicsTool::m_configPrefix
Gaudi::Property< std::string > m_configPrefix
Definition: METSystematicsTool.h:149
met::MET_JETTRK_SCALEDOWN
@ MET_JETTRK_SCALEDOWN
Definition: METSystematicsTool.h:79
CP::SystematicsTool::m_affectingSystematics
SystematicSet m_affectingSystematics
description: members directly corresponding to accessors
Definition: SystematicsTool.h:146
met::JETTRK
@ JETTRK
Definition: IMETSystematicsTool.h:50
CP::SystematicsTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const SystematicSet &systConfig)
effects: configure this tool for the given list of systematic variations.
Definition: SystematicsTool.cxx:74
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
CP::SystematicVariation
Definition: SystematicVariation.h:47
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
MissingETBase::Source::isTrackTerm
static bool isTrackTerm(Types::bitmask_t bits, Region reg=Region::FullAcceptance)
Definition: MissingETBase.h:404
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
xAOD::EventInfo_v1::IS_SIMULATION
@ IS_SIMULATION
true: simulation, false: data
Definition: EventInfo_v1.h:151
python.DomainsRegistry.reg
reg
globals -----------------------------------------------------------------—
Definition: DomainsRegistry.py:343
xAOD::MissingET_v1::setSource
void setSource(MissingETBase::Types::bitmask_t src)
Set the source of the MET object.
xAOD::VxType::NoVtx
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
Definition: TrackingPrimitives.h:570
MissingETBase::Source::isJetTerm
static bool isJetTerm(Types::bitmask_t bits, Region reg=Region::FullAcceptance)
Definition: MissingETBase.h:402
xAOD::MissingETAssociation_v1::ConstVec
Vector sum of constituents for subtractive overlap removal.
Definition: MissingETAssociation_v1.h:36
xAOD::MissingETAssociationMap_v1
Definition: MissingETAssociationMap_v1.h:29
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
met::METSystematicsTool::m_h_calosyst_scale
std::unique_ptr< TH1D > m_h_calosyst_scale
Definition: METSystematicsTool.h:159
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
met::METSystematicsTool::caloSyst_scale
missingEt caloSyst_scale(missingEt const &softTerms, double const scale) const
Definition: METSystematicsTool.cxx:608
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
met::METSystematicsTool::m_configSoftCaloFile
Gaudi::Property< std::string > m_configSoftCaloFile
Definition: METSystematicsTool.h:152
met::NONE
@ NONE
Definition: METSystematicsTool.h:69
met::METSystematicsTool::m_appliedSystEnum
SystApplied m_appliedSystEnum
Definition: METSystematicsTool.h:136
met::METSystematicsTool::addMETAffectingSystematics
StatusCode addMETAffectingSystematics()
Definition: METSystematicsTool.cxx:41
xAOD::MissingET_v1::setName
void setName(const std::string &name)
Set the name of the MET object.
met::MET_SOFTCALO_SCALEUP
@ MET_SOFTCALO_SCALEUP
Definition: METSystematicsTool.h:75
met::METSystematicsTool::m_h_calosyst_reso
std::unique_ptr< TH1D > m_h_calosyst_reso
Definition: METSystematicsTool.h:160
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::MET_SOFTTRK_RESOPARA
@ MET_SOFTTRK_RESOPARA
Definition: METSystematicsTool.h:72
asg::AsgTool::AsgTool
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition: AsgTool.cxx:58
CP::CorrectionCode::Error
@ Error
Some error happened during the object correction.
Definition: CorrectionCode.h:36
met::METSystematicsTool::m_rand_tls
boost::thread_specific_ptr< TRandom3 > m_rand_tls
Definition: METSystematicsTool.h:162
met
Definition: IMETSignificance.h:24
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
LArG4FSStartPointFilter.rand
rand
Definition: LArG4FSStartPointFilter.py:80
CP::SystematicsTool::recommendedSystematics
virtual SystematicSet recommendedSystematics() const
returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of ...
Definition: SystematicsTool.cxx:47
CP::SystematicsTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const SystematicVariation &systematic) const
returns: whether this tool is affected by the given systematic guarantee: no-fail
Definition: SystematicsTool.cxx:32
met::MET_SOFTTRK_RESOCORR
@ MET_SOFTTRK_RESOCORR
Definition: METSystematicsTool.h:74
met::METSystematicsTool::calcPtHard
missingEt calcPtHard(xAOD::MissingETContainer const *const cont) const
Definition: METSystematicsTool.cxx:674
MissingETBase::Source::jet
static Types::bitmask_t jet(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed jets.
Definition: MissingETBase.h:257
CP::SystematicsTool::addRecommendedSystematic
StatusCode addRecommendedSystematic(const SystematicVariation &systematic)
effects: add a systematic to the list of recommended systematics failures: unsupported systematic
Definition: SystematicsTool.cxx:128
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::MissingETAssociation_v1::ConstVec::cpy
float cpy() const
Returns .
xAOD::MissingETAssociation_v1::ConstVec::sumpt
float sumpt() const
Returns sum of component pt.
met::METSystematicsTool::m_units
int m_units
Definition: METSystematicsTool.h:165
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
xAOD::MissingET_v1::mpx
float mpx() const
Returns .
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
met::METSystematicsTool::getDefaultEventInfo
xAOD::EventInfo const * getDefaultEventInfo() const
Definition: METSystematicsTool.cxx:847
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
CP::SystematicsTool::appliedSystematicsString
std::string appliedSystematicsString() const
returns: a string representation of appliedSystematics() guarantee: strong failures: out of memory II...
Definition: SystematicsTool.cxx:67
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
met::METSystematicsTool::m_useDevArea
Gaudi::Property< bool > m_useDevArea
Definition: METSystematicsTool.h:153
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::METSystematicsTool::calcJetTrackMETWithSyst
CP::CorrectionCode calcJetTrackMETWithSyst(xAOD::MissingET &jettrkmet, const xAOD::MissingETAssociationHelper &helper) const
Definition: METSystematicsTool.cxx:511
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
xAOD::MissingET_v1::name
const std::string & name() const
Identifier getters.
make_coralServer_rep.proj
proj
Definition: make_coralServer_rep.py:48
xAOD::MissingET_v1::setMpx
void setMpx(float value)
Set the component.
xAOD::MissingETAssociation_v1::jetTrkVec
ConstVec jetTrkVec() const
Get track constituent vector for the reference jet.
Definition: MissingETAssociation_v1.cxx:570
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
met::SOFTTRK
@ SOFTTRK
Definition: IMETSystematicsTool.h:49
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
met::MET_SOFTCALO_SCALEDOWN
@ MET_SOFTCALO_SCALEDOWN
Definition: METSystematicsTool.h:76
xAOD::MissingETContainer_v1
Container for xAOD::MissingET_v1 objects.
Definition: MissingETContainer_v1.h:21
CheckAppliedSFs.systematics
def systematics
Definition: CheckAppliedSFs.py:231
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
CP::SystematicSet::insert
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
Definition: SystematicSet.cxx:88
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
met::METSystematicsTool::m_shiftpara_pthard_njet_mu
std::unique_ptr< TH3D > m_shiftpara_pthard_njet_mu
Definition: METSystematicsTool.h:155
met::METSystematicsTool::softTrkSyst_scale
missingEt softTrkSyst_scale(missingEt const &softTerms, missingEt const &ptHard, double const shift) const
Definition: METSystematicsTool.cxx:639
met::METSystematicsTool::caloSyst_reso
missingEt caloSyst_reso(missingEt const &softTerms) const
Definition: METSystematicsTool.cxx:615
xAOD::MissingET_v1::source
MissingETBase::Types::bitmask_t source() const
MET object source tag.
xAOD::MissingETComposition::getAssociation
static const MissingETAssociation * getAssociation(const MissingETAssociationMap *pMap, const Jet *pJet)
Definition: Event/xAOD/xAODMissingET/Root/MissingETComposition.cxx:415
met::SOFTCALO
@ SOFTCALO
Definition: IMETSystematicsTool.h:48
xAOD::MissingETAssociation_v1::overlapTrkVec
ConstVec overlapTrkVec(const MissingETAssociationHelper &helper) const
Retrieve total track-based vector to be subtracted from the jet.
Definition: MissingETAssociation_v1.cxx:782
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
met::MET_SOFTTRK_RESOPERP
@ MET_SOFTTRK_RESOPERP
Definition: METSystematicsTool.h:73
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
met::METSystematicsTool::m_jet_systRpt_pt_eta
std::unique_ptr< TH2D > m_jet_systRpt_pt_eta
Definition: METSystematicsTool.h:158
met::METSystematicsTool::projectST
missingEt projectST(missingEt const &softTerms, missingEt const &ptHard) const
Definition: METSystematicsTool.cxx:658
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
h
MissingETBase::Source::truthNonInt
static Types::bitmask_t truthNonInt()
Standard bit pattern indicating genuine true MET.
Definition: MissingETBase.h:321
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CP::SystematicsTool::m_recommendedSystematics
SystematicSet m_recommendedSystematics
Definition: SystematicsTool.h:147
met::METSystematicsTool::m_VertexContKey
SG::ReadHandleKey< xAOD::VertexContainer > m_VertexContKey
Definition: METSystematicsTool.h:172
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
met::METSystematicsTool::m_configSoftTrkFile
Gaudi::Property< std::string > m_configSoftTrkFile
Definition: METSystematicsTool.h:150
CP::SystematicsTool::addAffectingSystematic
StatusCode addAffectingSystematic(const SystematicVariation &systematic, bool recommended)
effects: add a systematic to the list of registered systematics.
Definition: SystematicsTool.cxx:112
met::METSystematicsTool::m_TruthContKey
SG::ReadHandleKey< xAOD::MissingETContainer > m_TruthContKey
Definition: METSystematicsTool.h:173
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
met::MET_SOFTTRK_SCALEUP
@ MET_SOFTTRK_SCALEUP
Definition: METSystematicsTool.h:70
met::METSystematicsTool::m_resopara_pthard_njet_mu
std::unique_ptr< TH3D > m_resopara_pthard_njet_mu
Definition: METSystematicsTool.h:156
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
met::MET_JETTRK_SCALEUP
@ MET_JETTRK_SCALEUP
Definition: METSystematicsTool.h:78
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
met::METSystematicsTool::getCorrectedJetTrackMET
CP::CorrectionCode getCorrectedJetTrackMET(xAOD::MissingET &jettrkmet, const xAOD::MissingETAssociationHelper &helper) const
Definition: METSystematicsTool.cxx:589
calibdata.copy
bool copy
Definition: calibdata.py:27
SG::AuxElement::container
const SG::AuxVectorData * container() const
Return the container holding this element.
xAOD::MissingETAssociation_v1::ConstVec::cpx
float cpx() const
Returns .
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
collisions.reader
reader
read the goodrunslist xml file(s)
Definition: collisions.py:22
xAOD::MissingET_v1::mpy
float mpy() const
Returns .
met::METSystematicsTool::extractHistoPath
StatusCode extractHistoPath(std::string &histfile, std::string &systpath, std::string &configdir, std::string &suffix, SystType const &type)
Definition: METSystematicsTool.cxx:729
SG::DataProxy
Definition: DataProxy.h:44
module_driven_slicing.histfile
histfile
Definition: module_driven_slicing.py:571
MissingETBase::Source::isSoftTerm
static bool isSoftTerm(Types::bitmask_t bits, Region reg=Region::FullAcceptance)
Definition: MissingETBase.h:403
met::METSystematicsTool::m_EventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Definition: METSystematicsTool.h:174
met::METSystematicsTool::softTrkSyst_reso
missingEt softTrkSyst_reso(missingEt const &softTerms, missingEt const &ptHard, double const shift, double const smearpara, double const smearperp) const
Definition: METSystematicsTool.cxx:644
RCU_READ_INVARIANT
#define RCU_READ_INVARIANT(x)
Definition: Assert.h:229
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
met::METSystematicsTool::softCaloSystInitialize
StatusCode softCaloSystInitialize()
Definition: METSystematicsTool.cxx:108
xAOD::Jet
Jet_v1 Jet
Definition of the current "jet version".
Definition: Event/xAOD/xAODJet/xAODJet/Jet.h:17
met::MET_SOFTTRK_SCALEDOWN
@ MET_SOFTTRK_SCALEDOWN
Definition: METSystematicsTool.h:71
xAOD::MissingET_v1::met
float met() const
Returns .
fitman.k
k
Definition: fitman.py:528
CP::SystematicRegistry::getInstance
static SystematicRegistry & getInstance()
Get the singleton instance of the registry for the curren thread.
Definition: SystematicRegistry.cxx:25