ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
CP::JvtEfficiencyTool Class Reference

#include <JvtEfficiencyTool.h>

Inheritance diagram for CP::JvtEfficiencyTool:
Collaboration diagram for CP::JvtEfficiencyTool:

Public Member Functions

virtual ~JvtEfficiencyTool () override=default
 
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
virtual StatusCode sysApplySystematicVariation (const CP::SystematicSet &sys) override
 effects: configure this tool for the given list of systematic variations. More...
 
virtual CorrectionCode getEfficiencyScaleFactor (const xAOD::Jet &jet, float &sf) const override
 Calculate the efficiency scale factor for the provided jet. More...
 
virtual CorrectionCode getInefficiencyScaleFactor (const xAOD::Jet &jet, float &sf) const override
 Calculate the inefficiency scale factor for the provided jet. 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
 
virtual bool isAffectedBySystematic (const SystematicVariation &systematic) const
 returns: whether this tool is affected by the given systematic guarantee: no-fail More...
 
virtual SystematicSet affectingSystematics () const
 returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II More...
 
virtual SystematicSet recommendedSystematics () const
 returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of memory II More...
 
const SystematicSetappliedSystematics () 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...
 
virtual StatusCode applySystematicVariation (const SystematicSet &systConfig)
 effects: configure this tool for the given list of systematic variations. More...
 
void testInvariant () const
 effects: test the invariance of this object guarantee: no-fail More...
 

Protected Member Functions

StatusCode initHists (const std::string &file, const std::string &wp)
 Read the input histograms. Passing an empty 'file' string uses dummy SFs. More...
 
bool isInRange (const xAOD::Jet &jet) const
 
CorrectionCode getEffImpl (float x, float y, float &sf) const
 
CorrectionCode getIneffImpl (float x, float y, float &sf) const
 
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

Gaudi::Property< std::string > m_jetContainer
 
Gaudi::Property< bool > m_doTruthRequirement
 
SG::ReadDecorHandleKey< xAOD::JetContainerm_truthHSLabel
 
Gaudi::Property< float > m_minEta
 
Gaudi::Property< float > m_maxEta
 
Gaudi::Property< float > m_minPtForJvt
 
Gaudi::Property< float > m_maxPtForJvt
 
Gaudi::Property< float > m_dummySFError
 
Gaudi::Property< std::string > m_jetEtaName
 
std::unique_ptr< TH2 > m_jvtHist
 
std::unique_ptr< TH2 > m_effHist
 
bool m_useDummySFs {false}
 
SG::ConstAccessor< float > m_etaAcc { m_jetEtaName }
 
int m_appliedSysSigma = 0
 
std::optional< SG::AuxElement::ConstAccessor< char > > m_accIsHS
 
SystematicSet m_affectingSystematics
 description: members directly corresponding to accessors More...
 
SystematicSet m_recommendedSystematics
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

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

Gaudi::Property< bool > m_isPFlow
 
Gaudi::Property< std::string > m_wp
 
Gaudi::Property< std::string > m_file
 
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
 
SystematicSetm_appliedSystematics
 description: pointer to currenty applied systematics More...
 
std::unordered_map< SystematicSet, SystematicSetm_systFilterMap
 map of cached systematics filtering More...
 

Detailed Description

Definition at line 12 of file JvtEfficiencyTool.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

◆ ~JvtEfficiencyTool()

virtual CP::JvtEfficiencyTool::~JvtEfficiencyTool ( )
overridevirtualdefault

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  }

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

SystematicSet CP::SystematicsTool::affectingSystematics ( ) const
virtualinherited

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

Implements CP::IReentrantSystematicsTool.

Reimplemented in CP::JetJvtEfficiency, CP::JetQGTagger, and met::METSystematicsTool.

Definition at line 40 of file SystematicsTool.cxx.

40  {
41 
42  RCU_READ_INVARIANT( this );
44  }

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

◆ applySystematicVariation()

StatusCode CP::SystematicsTool::applySystematicVariation ( const SystematicSet systConfig)
virtualinherited

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

Implements CP::ISystematicsTool.

Reimplemented in CP::JetQGTagger, CP::JetJvtEfficiency, and met::METSystematicsTool.

Definition at line 73 of file SystematicsTool.cxx.

74  {
75 
76  RCU_CHANGE_INVARIANT( this );
77 
78  // First, try to find this input set in the map
79  auto itr = m_systFilterMap.find(systConfig);
80 
81  // This is a new input set, so we need to filter it
82  if(itr == m_systFilterMap.end()){
83 
84  // Filter input systematics with the affecting systematics
85  SystematicSet myAppliedSystematics;
86  if( SystematicSet::
87  filterForAffectingSystematics( systConfig,
89  myAppliedSystematics ) !=
90  StatusCode::SUCCESS ) {
91  return StatusCode::FAILURE;
92  }
93 
94  // Insert the new filtered set onto our filter map
95  itr = m_systFilterMap.insert
96  (std::make_pair(systConfig, myAppliedSystematics)).first;
97 
98  }
99 
100  // Apply the filtered systematics
101  if( sysApplySystematicVariation( itr->second ) !=
102  StatusCode::SUCCESS ) {
103  return StatusCode::FAILURE;
104  }
105 
106  // Store the filtered systematics
107  m_appliedSystematics = &itr->second;
108  return StatusCode::SUCCESS;
109  }

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

◆ 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

◆ getEfficiencyScaleFactor()

CorrectionCode CP::JvtEfficiencyToolBase::getEfficiencyScaleFactor ( const xAOD::Jet jet,
float &  sf 
) const
overridevirtualinherited

Calculate the efficiency scale factor for the provided jet.

Parameters
jetThe jet whose efficiency should be calculated
[out]sfThe calculated scale factor
Returns
A code signifying the status of the returned scale factor

Implements CP::IJvtEfficiencyTool.

Reimplemented in CP::FJvtEfficiencyTool.

Definition at line 48 of file JvtEfficiencyToolBase.cxx.

48  {
49  if (!isInRange(jet)) {
50  sf = -1;
52  }
54  if (!m_accIsHS->isAvailable(jet)) {
55  ATH_MSG_ERROR("Truth tagging required but not available");
56  return CorrectionCode::Error;
57  }
58  if (!(*m_accIsHS)(jet)) {
59  sf = 1;
60  return CorrectionCode::Ok;
61  }
62  }
63  return getEffImpl(jet.pt(), m_etaAcc(jet), sf);
64  }

◆ getEffImpl()

CorrectionCode CP::JvtEfficiencyToolBase::getEffImpl ( float  x,
float  y,
float &  sf 
) const
protectedinherited

Definition at line 124 of file JvtEfficiencyToolBase.cxx.

124  {
125  float baseFactor = 1;
126  float errorTerm = m_dummySFError;
127  if (!m_useDummySFs) {
128  if (!getBinContentAndError(*m_jvtHist, x, y, baseFactor, errorTerm)) {
129  sf = -1;
131  }
132  }
133  sf = baseFactor + m_appliedSysSigma * errorTerm;
134  return CorrectionCode::Ok;
135  }

◆ getInefficiencyScaleFactor()

CorrectionCode CP::JvtEfficiencyToolBase::getInefficiencyScaleFactor ( const xAOD::Jet jet,
float &  sf 
) const
overridevirtualinherited

Calculate the inefficiency scale factor for the provided jet.

Parameters
jetThe jet whose inefficiency should be calculated
[out]sfThe calculated scale factor
Returns
A code signifying the status of the returned scale factor

Implements CP::IJvtEfficiencyTool.

Reimplemented in CP::FJvtEfficiencyTool.

Definition at line 67 of file JvtEfficiencyToolBase.cxx.

67  {
68  if (!isInRange(jet)) {
69  sf = -1;
71  }
73  if (!m_accIsHS->isAvailable(jet)) {
74  ATH_MSG_ERROR("Truth tagging required but not available");
75  return CorrectionCode::Error;
76  }
77  if (!(*m_accIsHS)(jet)) {
78  sf = 1;
79  return CorrectionCode::Ok;
80  }
81  }
82  return getIneffImpl(jet.pt(), m_etaAcc(jet), sf);
83  }

◆ getIneffImpl()

CorrectionCode CP::JvtEfficiencyToolBase::getIneffImpl ( float  x,
float  y,
float &  sf 
) const
protectedinherited

Definition at line 137 of file JvtEfficiencyToolBase.cxx.

137  {
138  if (m_useDummySFs) {
140  return CorrectionCode::Ok;
141  }
142  float baseFactor, errorTerm, effFactor, errorEffTerm;
143  if (!getBinContentAndError(*m_jvtHist, x, y, baseFactor, errorTerm) ||
144  !getBinContentAndError(*m_effHist, x, y, effFactor, errorEffTerm)) {
145  sf = -1;
147  }
148  baseFactor += errorTerm * m_appliedSysSigma;
149  effFactor += errorEffTerm * m_appliedSysSigma;
150 
151  sf = (1 - baseFactor * effFactor) / (1 - effFactor);
152  return CorrectionCode::Ok;
153  }

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

◆ initHists()

StatusCode CP::JvtEfficiencyToolBase::initHists ( const std::string &  file,
const std::string &  wp 
)
protectedinherited

Read the input histograms. Passing an empty 'file' string uses dummy SFs.

Definition at line 85 of file JvtEfficiencyToolBase.cxx.

85  {
86  if (file.empty()) {
87  m_useDummySFs = true;
88  ATH_MSG_INFO("No SF file provided, running with dummy SFs of 1 +/- " << m_dummySFError);
89  return StatusCode::SUCCESS;
90  }
91  std::string resolved = PathResolverFindCalibFile(file);
92  if (resolved.empty()) {
93  ATH_MSG_ERROR("Could not locate file " << file);
94  return StatusCode::FAILURE;
95  }
96  std::unique_ptr<TFile> fIn(TFile::Open(resolved.c_str(), "READ"));
97  if (!fIn) {
98  ATH_MSG_ERROR("Failed to open file " << resolved);
99  return StatusCode::FAILURE;
100  }
101 
102  std::string jvtName = "Jvt" + wp;
103  m_jvtHist.reset(fIn->Get<TH2>(jvtName.c_str()));
104  if (!m_jvtHist) {
106  "Could not open SF histogram "
107  << jvtName << ". Please check the supported working points.");
108  return StatusCode::FAILURE;
109  }
110  m_jvtHist->SetDirectory(nullptr);
111  std::string effName = "Eff" + wp;
112  m_effHist.reset(fIn->Get<TH2>(effName.c_str()));
113  if (!m_effHist) {
115  "Could not open efficiency histogram "
116  << jvtName << ". Please check the supported working points.");
117  return StatusCode::FAILURE;
118  }
119  m_effHist->SetDirectory(nullptr);
120 
121  return StatusCode::SUCCESS;
122  }

◆ initialize()

StatusCode CP::JvtEfficiencyTool::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 CP::JvtEfficiencyToolBase.

Definition at line 11 of file JvtEfficiencyTool.cxx.

11  {
13  if (m_wp == "Default")
14  m_wp = m_isPFlow ? "Tight" : "Medium";
15  if (m_file == "Default")
16  m_file = "JetJvtEfficiency/Moriond2018/JvtSFFile_" +
17  std::string(m_isPFlow ? "EMPFlow" : "EMTopo") + "Jets.root";
19  if (!addAffectingSystematic(JvtEfficiencyUp, true) ||
20  !addAffectingSystematic(JvtEfficiencyDown, true)) {
21  ATH_MSG_ERROR("failed to set up NNJvt systematics");
22  return StatusCode::FAILURE;
23  }
24  return StatusCode::SUCCESS;
25  }

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

◆ isAffectedBySystematic()

bool CP::SystematicsTool::isAffectedBySystematic ( const SystematicVariation systematic) const
virtualinherited

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

Implements CP::ISystematicsTool.

Reimplemented in CP::JetQGTagger, CP::JetJvtEfficiency, and met::METSystematicsTool.

Definition at line 31 of file SystematicsTool.cxx.

32  {
33 
34  RCU_READ_INVARIANT( this );
35  return ( m_affectingSystematics.find( systematic ) !=
37  }

◆ isInRange()

bool CP::JvtEfficiencyToolBase::isInRange ( const xAOD::Jet jet) const
protectedinherited

Definition at line 155 of file JvtEfficiencyToolBase.cxx.

155  {
156  if (jet.pt() < m_minPtForJvt || jet.pt() > m_maxPtForJvt)
157  return false;
158  float eta = m_etaAcc(jet);
159  return std::abs(eta) >= m_minEta && std::abs(eta) <= m_maxEta;
160  }

◆ 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

◆ recommendedSystematics()

SystematicSet CP::SystematicsTool::recommendedSystematics ( ) const
virtualinherited

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

Implements CP::IReentrantSystematicsTool.

Reimplemented in CP::JetJvtEfficiency, CP::JetQGTagger, and met::METSystematicsTool.

Definition at line 47 of file SystematicsTool.cxx.

47  {
48 
49  RCU_READ_INVARIANT( this );
51  }

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

◆ sysApplySystematicVariation()

StatusCode CP::JvtEfficiencyTool::sysApplySystematicVariation ( const CP::SystematicSet systConfig)
overridevirtual

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 27 of file JvtEfficiencyTool.cxx.

27  {
28  if (sys.find(JvtEfficiencyUp) != sys.end())
30  else if (sys.find(JvtEfficiencyDown) != sys.end())
31  m_appliedSysSigma = -1;
32  else
34  return StatusCode::SUCCESS;
35  }

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

std::optional<SG::AuxElement::ConstAccessor<char> > CP::JvtEfficiencyToolBase::m_accIsHS
protectedinherited

Definition at line 63 of file JvtEfficiencyToolBase.h.

◆ m_affectingSystematics

SystematicSet CP::SystematicsTool::m_affectingSystematics
protectedinherited

description: members directly corresponding to accessors

Definition at line 146 of file SystematicsTool.h.

◆ m_appliedSysSigma

int CP::JvtEfficiencyToolBase::m_appliedSysSigma = 0
protectedinherited

Definition at line 61 of file JvtEfficiencyToolBase.h.

◆ m_appliedSystematics

SystematicSet* CP::SystematicsTool::m_appliedSystematics
privateinherited

description: pointer to currenty applied systematics

Definition at line 151 of file SystematicsTool.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_doTruthRequirement

Gaudi::Property<bool> CP::JvtEfficiencyToolBase::m_doTruthRequirement
protectedinherited
Initial value:
{
this, "DoTruthReq", true,
"Use the truth-matching requirement. **Strongly** recommended"}

Definition at line 37 of file JvtEfficiencyToolBase.h.

◆ m_dummySFError

Gaudi::Property<float> CP::JvtEfficiencyToolBase::m_dummySFError
protectedinherited
Initial value:
{
this, "DummySFError", 0.1, "The amount by which to vary the dummy SF"}

Definition at line 50 of file JvtEfficiencyToolBase.h.

◆ m_effHist

std::unique_ptr<TH2> CP::JvtEfficiencyToolBase::m_effHist
protectedinherited

Definition at line 56 of file JvtEfficiencyToolBase.h.

◆ m_etaAcc

SG::ConstAccessor<float> CP::JvtEfficiencyToolBase::m_etaAcc { m_jetEtaName }
protectedinherited

Definition at line 59 of file JvtEfficiencyToolBase.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_file

Gaudi::Property<std::string> CP::JvtEfficiencyTool::m_file
private
Initial value:
{
this, "SFFile", "Default",
"The file containing the SF histograms. Set to the empty string to use dummy scale "
"factors."}

Definition at line 29 of file JvtEfficiencyTool.h.

◆ m_isPFlow

Gaudi::Property<bool> CP::JvtEfficiencyTool::m_isPFlow
private
Initial value:
{
this, "IsPFlow", true,
"Whether the jet collection is PFlow or not. Used to configure the correct working "
"points"}

Definition at line 23 of file JvtEfficiencyTool.h.

◆ m_jetContainer

Gaudi::Property<std::string> CP::JvtEfficiencyToolBase::m_jetContainer
protectedinherited
Initial value:
{
this, "JetContainer", "",
"The name of the jet container, used to correctly initialize the read handles"}

Definition at line 34 of file JvtEfficiencyToolBase.h.

◆ m_jetEtaName

Gaudi::Property<std::string> CP::JvtEfficiencyToolBase::m_jetEtaName
protectedinherited
Initial value:
{
this, "JetEtaName", "eta", "The name of the jet eta to use."}

Definition at line 53 of file JvtEfficiencyToolBase.h.

◆ m_jvtHist

std::unique_ptr<TH2> CP::JvtEfficiencyToolBase::m_jvtHist
protectedinherited

Definition at line 55 of file JvtEfficiencyToolBase.h.

◆ m_maxEta

Gaudi::Property<float> CP::JvtEfficiencyToolBase::m_maxEta
protectedinherited
Initial value:
{
this, "MaxEtaForJvt", 2.5, "All jets with |eta| above this are out of range"}

Definition at line 44 of file JvtEfficiencyToolBase.h.

◆ m_maxPtForJvt

Gaudi::Property<float> CP::JvtEfficiencyToolBase::m_maxPtForJvt
protectedinherited
Initial value:
{
this, "MaxPtForJvt", 60e3, "All jets with pT above this are out of range"}

Definition at line 48 of file JvtEfficiencyToolBase.h.

◆ m_minEta

Gaudi::Property<float> CP::JvtEfficiencyToolBase::m_minEta
protectedinherited
Initial value:
{
this, "MinEtaForJvt", -1, "All jets with |eta| below this are out of range"}

Definition at line 42 of file JvtEfficiencyToolBase.h.

◆ m_minPtForJvt

Gaudi::Property<float> CP::JvtEfficiencyToolBase::m_minPtForJvt
protectedinherited
Initial value:
{
this, "MinPtForJvt", 20e3, "All jets with pT below this are out of range"}

Definition at line 46 of file JvtEfficiencyToolBase.h.

◆ m_recommendedSystematics

SystematicSet CP::SystematicsTool::m_recommendedSystematics
protectedinherited

Definition at line 147 of file SystematicsTool.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_truthHSLabel

SG::ReadDecorHandleKey<xAOD::JetContainer> CP::JvtEfficiencyToolBase::m_truthHSLabel
protectedinherited
Initial value:
{
this, "TruthHSLabel", "isJvtHS", "Label for truth-matched jets"}

Definition at line 40 of file JvtEfficiencyToolBase.h.

◆ m_useDummySFs

bool CP::JvtEfficiencyToolBase::m_useDummySFs {false}
protectedinherited

Definition at line 57 of file JvtEfficiencyToolBase.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.

◆ m_wp

Gaudi::Property<std::string> CP::JvtEfficiencyTool::m_wp
private
Initial value:
{
this, "WorkingPoint", "Default", "The working point to use."}

Definition at line 27 of file JvtEfficiencyTool.h.


The documentation for this class was generated from the following files:
CP::JvtEfficiencyToolBase::getIneffImpl
CorrectionCode getIneffImpl(float x, float y, float &sf) const
Definition: JvtEfficiencyToolBase.cxx:137
test_pyathena.eta
eta
Definition: test_pyathena.py:10
CP::JvtEfficiencyToolBase::m_appliedSysSigma
int m_appliedSysSigma
Definition: JvtEfficiencyToolBase.h:61
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CP::SystematicsTool::m_appliedSystematics
SystematicSet * m_appliedSystematics
description: pointer to currenty applied systematics
Definition: SystematicsTool.h:151
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CP::JvtEfficiencyToolBase::m_doTruthRequirement
Gaudi::Property< bool > m_doTruthRequirement
Definition: JvtEfficiencyToolBase.h:37
CP::JvtEfficiencyToolBase::initHists
StatusCode initHists(const std::string &file, const std::string &wp)
Read the input histograms. Passing an empty 'file' string uses dummy SFs.
Definition: JvtEfficiencyToolBase.cxx:85
CP::JvtEfficiencyTool::m_file
Gaudi::Property< std::string > m_file
Definition: JvtEfficiencyTool.h:29
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
CP::SystematicSet::name
std::string name() const
returns: the systematics joined into a single string.
Definition: SystematicSet.cxx:278
CP::SystematicsTool::m_affectingSystematics
SystematicSet m_affectingSystematics
description: members directly corresponding to accessors
Definition: SystematicsTool.h:146
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
x
#define x
CP::JvtEfficiencyToolBase::m_jvtHist
std::unique_ptr< TH2 > m_jvtHist
Definition: JvtEfficiencyToolBase.h:55
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::JvtEfficiencyToolBase::m_effHist
std::unique_ptr< TH2 > m_effHist
Definition: JvtEfficiencyToolBase.h:56
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
CP::JvtEfficiencyTool::m_wp
Gaudi::Property< std::string > m_wp
Definition: JvtEfficiencyTool.h:27
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
CP::CorrectionCode::OutOfValidityRange
@ OutOfValidityRange
Input object is out of validity range.
Definition: CorrectionCode.h:37
CP::CorrectionCode::Error
@ Error
Some error happened during the object correction.
Definition: CorrectionCode.h:36
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
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
CP::JvtEfficiencyToolBase::m_maxEta
Gaudi::Property< float > m_maxEta
Definition: JvtEfficiencyToolBase.h:44
CP::JvtEfficiencyToolBase::m_dummySFError
Gaudi::Property< float > m_dummySFError
Definition: JvtEfficiencyToolBase.h:50
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
CP::SystematicsTool::m_systFilterMap
std::unordered_map< SystematicSet, SystematicSet > m_systFilterMap
map of cached systematics filtering
Definition: SystematicsTool.h:154
CP::SystematicsTool::sysApplySystematicVariation
virtual StatusCode sysApplySystematicVariation(const SystematicSet &systConfig)=0
effects: configure this tool for the given list of systematic variations.
file
TFile * file
Definition: tile_monitor.h:29
CP::SystematicSet::end
const_iterator end() const
description: const iterator to the end of the set
Definition: SystematicSet.h:59
python.xAODType.dummy
dummy
Definition: xAODType.py:4
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
PlotSFuncertainty.wp
wp
Definition: PlotSFuncertainty.py:112
CP::JvtEfficiencyToolBase::m_etaAcc
SG::ConstAccessor< float > m_etaAcc
Definition: JvtEfficiencyToolBase.h:59
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
CP::JvtEfficiencyToolBase::isInRange
bool isInRange(const xAOD::Jet &jet) const
Definition: JvtEfficiencyToolBase.cxx:155
CheckAppliedSFs.systematics
def systematics
Definition: CheckAppliedSFs.py:231
CP::JvtEfficiencyToolBase::getEffImpl
CorrectionCode getEffImpl(float x, float y, float &sf) const
Definition: JvtEfficiencyToolBase.cxx:124
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:221
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
CP::SystematicSet::find
iterator find(const SystematicVariation &sys) const
description: find an element in the set
Definition: SystematicSet.h:63
CP::JvtEfficiencyToolBase::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: JvtEfficiencyToolBase.cxx:31
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
CP::JvtEfficiencyToolBase::m_minPtForJvt
Gaudi::Property< float > m_minPtForJvt
Definition: JvtEfficiencyToolBase.h:46
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
CP::JvtEfficiencyToolBase::m_useDummySFs
bool m_useDummySFs
Definition: JvtEfficiencyToolBase.h:57
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
CP::SystematicsTool::m_recommendedSystematics
SystematicSet m_recommendedSystematics
Definition: SystematicsTool.h:147
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
CP::JvtEfficiencyToolBase::m_minEta
Gaudi::Property< float > m_minEta
Definition: JvtEfficiencyToolBase.h:42
CP::SystematicsTool::addAffectingSystematic
StatusCode addAffectingSystematic(const SystematicVariation &systematic, bool recommended)
effects: add a systematic to the list of registered systematics.
Definition: SystematicsTool.cxx:112
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
RCU_CHANGE_INVARIANT
#define RCU_CHANGE_INVARIANT(x)
Definition: Assert.h:231
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
CP::JvtEfficiencyTool::m_isPFlow
Gaudi::Property< bool > m_isPFlow
Definition: JvtEfficiencyTool.h:23
SG::DataProxy
Definition: DataProxy.h:44
MooRTT_summarizeCPU.fIn
fIn
Definition: MooRTT_summarizeCPU.py:11
CP::JvtEfficiencyToolBase::m_maxPtForJvt
Gaudi::Property< float > m_maxPtForJvt
Definition: JvtEfficiencyToolBase.h:48
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
CP::JvtEfficiencyToolBase::m_accIsHS
std::optional< SG::AuxElement::ConstAccessor< char > > m_accIsHS
Definition: JvtEfficiencyToolBase.h:63
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