ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Analysis::CalibrationDataInterfaceTool Class Reference

#include <CalibrationDataInterfaceTool.h>

Inheritance diagram for Analysis::CalibrationDataInterfaceTool:
Collaboration diagram for Analysis::CalibrationDataInterfaceTool:

Public Types

enum  Uncertainty { None, Total, Statistical, Systematic }
 retrieve either the total uncertainty or only the statistical or systematic components More...
 
enum  variableType { kEta, kAbsEta, kPt }
 known variable types that can be used as function arguments More...
 

Public Member Functions

 CalibrationDataInterfaceTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~CalibrationDataInterfaceTool ()=default
 default destructor More...
 
StatusCode queryInterface (const InterfaceID &riid, void **ppvIf)
 allow access to the ICalibrationDataInterfaceTool interface More...
 
virtual StatusCode initialize () override
 standard Athena-Algorithm method More...
 
CalibResult getEfficiency (const Jet &jet, const std::string &label, const std::string &OP, Uncertainty unc=None) const
 Main interface methods accessing the flavour tagging performance information. More...
 
CalibResult getMCEfficiency (const Jet &jet, const std::string &label, const std::string &OP, Uncertainty unc=None) const
 "MC" efficiency retrieval More...
 
CalibResult getScaleFactor (const Jet &jet, const std::string &label, const std::string &OP, Uncertainty unc=None) const
 efficiency scale factor retrieval 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 std::string & EffCalibrationName (const std::string &flavour, unsigned int mapIndex=0) const
 Main interface methods accessing the flavour tagging performance information. More...
 
void setEffCalibrationNames (const std::map< std::string, std::vector< std::string > > &names)
 
const std::string & SFCalibrationName (const std::string &flavour) const
 
void setSFCalibrationNames (const std::map< std::string, std::string > &names)
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

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...
 
std::string getContainername (const std::string &flavour, bool SF, unsigned int mapIndex=0) const
 auxiliary function for retrieval of container name More...
 
std::string getBasename (const std::string &name) const
 auxiliary function for retrieval of name within the directory More...
 
double combinedUncertainty (double stat, const std::pair< double, double > &syst) const
 utility function for combination of statistical and (a priori asymmetric) systematic uncertainty. More...
 

Protected Attributes

std::string m_taggerName
 tagging algorithm name More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void registerObjects (const std::string &folder, const std::string &OP) const
 auxiliary function dealing with registration of objects More...
 
void retrieveFunctionArguments (const Jet &jet, const std::string &object, Double_t *x) const
 auxiliary function to retrieve values of function arguments More...
 
void makeVariables (const Jet &jet, CalibrationDataVariables &x) const
 auxiliary function to create the intermediate struct needed for the data layer More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::string m_EffcalibrationBName
 calibration curves for b, c, and light-flavour jets More...
 
std::string m_EffcalibrationCName
 
std::string m_EffcalibrationTName
 
std::string m_EffcalibrationLightName
 
std::string m_SFcalibrationBName
 
std::string m_SFcalibrationCName
 
std::string m_SFcalibrationTName
 
std::string m_SFcalibrationLightName
 
ToolHandle< CalibrationBroker > m_broker {this, "CalibrationBroker", "", "brief pointer to the performance broker"}
 pointer to the performance broker More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 
std::map< std::string, std::vector< std::string > > m_calibrationEffNames
 this simply collects the per-flavour properties. More...
 
std::map< std::string, std::string > m_calibrationSFNames
 

Detailed Description

hold: in particular, "channel" (jet author) aliasing is possible. The difference is that run-time information is to be provided in a text file to be interpreted using ROOT's TEnv and

DB representation (all residing under a common root folder): .../<jet author>/<tagger>/<operating point>/<flavour>/<object name> where <operating point> can be a weight cut (represented as a string, with the period replaced with an underscore) or the string "Continuous" (for continuous calibration purposes).

Author
Frank Filthaut F.Fil.nosp@m.thau.nosp@m.t@sci.nosp@m.ence.nosp@m..ru.n.nosp@m.l

This tool provides an interface to flavour tagging performance estimates.

A separate instance should be used for each different tagging algorithm. For each instance, all appropriate jet collections and tagger operating points need to be specified.

The model:

To retrieve results from COOL, a CalibrationBroker instance is used (a separate one from the one used for tagger weight distributions). This allows to use the CalibrationBroker's channel aliasing (although possibly with different aliases). Of course it is up to the user to verify that the aliasing is appropriate!

DB representation (all residing under a common root folder): .../<jet author>/<tagger>/<operating point>/<flavour>/<object name>

Author
Frank Filthaut F.Fil.nosp@m.thau.nosp@m.t@sci.nosp@m.ence.nosp@m..ru.n.nosp@m.l

Definition at line 64 of file CalibrationDataInterfaceTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ Uncertainty

retrieve either the total uncertainty or only the statistical or systematic components

Enumerator
None 
Total 
Statistical 
Systematic 

Definition at line 28 of file ICalibrationDataInterfaceTool.h.

◆ variableType

known variable types that can be used as function arguments

Enumerator
kEta 
kAbsEta 
kPt 

Definition at line 67 of file CalibrationDataInterfaceBase.h.

67 { kEta, kAbsEta, kPt };

Constructor & Destructor Documentation

◆ CalibrationDataInterfaceTool()

Analysis::CalibrationDataInterfaceTool::CalibrationDataInterfaceTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 28 of file CalibrationDataInterfaceTool.cxx.

30  :
31  AthAlgTool(t,n,p),
32  m_broker("PerformanceBroker")
33 {
34  declareInterface<Analysis::ICalibrationDataInterfaceTool>(this);
35 
36  declareProperty("taggerName", m_taggerName = "undefined",
37  "tagging algorithm name");
38  declareProperty("operatingPoints", m_operatingPoints,
39  "operating points for this tagging algorithm");
40  declareProperty("efficiencyCalibrationBName", m_EffcalibrationBName = "default",
41  "efficiency calibration curve for b jets");
42  declareProperty("efficiencyCalibrationCName", m_EffcalibrationCName = "default",
43  "efficiency calibration curve for c jets");
44  declareProperty("efficiencyCalibrationTName", m_EffcalibrationTName = "default",
45  "efficiency calibration curve for tau jets");
46  declareProperty("efficiencyCalibrationLightName", m_EffcalibrationLightName = "default",
47  "efficiency calibration curve for light-flavour jets");
48  declareProperty("scaleFactorCalibrationBName", m_SFcalibrationBName = "default",
49  "scale factor calibration curve for b jets");
50  declareProperty("scaleFactorCalibrationCName", m_SFcalibrationCName = "default",
51  "scale factor calibration curve for c jets");
52  declareProperty("scaleFactorCalibrationTName", m_SFcalibrationTName = "default",
53  "scale factor calibration curve for tau jets");
54  declareProperty("scaleFactorCalibrationLightName", m_SFcalibrationLightName = "default",
55  "scale factor calibration curve for light-flavour jets");
56  declareProperty("PerformanceBroker", m_broker,
57  "tool interfacing with COOL Database");
58 }

◆ ~CalibrationDataInterfaceTool()

virtual Analysis::CalibrationDataInterfaceTool::~CalibrationDataInterfaceTool ( )
virtualdefault

default destructor

Member Function Documentation

◆ combinedUncertainty()

double Analysis::CalibrationDataInterfaceBase::combinedUncertainty ( double  stat,
const std::pair< double, double > &  syst 
) const
protectedinherited

utility function for combination of statistical and (a priori asymmetric) systematic uncertainty.

NB perhaps this should be in its own

Definition at line 147 of file CalibrationDataInterfaceBase.cxx.

149 {
150  // Return the total (combined statistical and systematic) uncertainty started from
151  // its individual components. The result is symmetrised by using only the larger of
152  // the (a priori asymmetric) up- and downward systematic uncertainties.
153 
154  // The systematic uncertainty is (a priori) asymmetric, but this interface doesn't
155  // at present allow for asymmetric uncertainties.
156  // Address this by taking the larger (absolute) value of the two.
157  double largest = syst.first;
158  if (TMath::Abs(syst.second) > TMath::Abs(largest)) largest = syst.second;
159 
160  return TMath::Sqrt(stat*stat + largest*largest);
161 }

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

◆ EffCalibrationName()

const std::string & Analysis::CalibrationDataInterfaceBase::EffCalibrationName ( const std::string &  flavour,
unsigned int  mapIndex = 0 
) const
inherited

Main interface methods accessing the flavour tagging performance information.

Note that for both of the following, the label is assumed to adhere to the TruthInfo conventions (see package PhysicsAnalysis/JetTagging/JetTagInfo).

Definition at line 47 of file CalibrationDataInterfaceBase.cxx.

49 {
50  // Return the MC efficiency name for the given flavour.
51  // Note that no check is performed on the validity of the flavour.
52 
53  try {
54  return m_calibrationEffNames.at(flavour)[mapIndex];
55  }
56  catch (const std::out_of_range& e) {
57  std::cerr << "EffCalibrationName: flavour '" << flavour << "' is not known." << std::endl;
58  throw e;
59  }
60 }

◆ 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

◆ getBasename()

std::string Analysis::CalibrationDataInterfaceBase::getBasename ( const std::string &  name) const
protectedinherited

auxiliary function for retrieval of name within the directory

Definition at line 138 of file CalibrationDataInterfaceBase.cxx.

139 {
140  // Retrieve the name within the directory starting from the full name
141 
142  return name.substr(name.find_last_of('/')+1, std::string::npos);
143 }

◆ getContainername()

std::string Analysis::CalibrationDataInterfaceBase::getContainername ( const std::string &  flavour,
bool  SF,
unsigned int  mapIndex = 0 
) const
protectedinherited

auxiliary function for retrieval of container name

Definition at line 118 of file CalibrationDataInterfaceBase.cxx.

120 {
121  // Construct the full pathname corresponding to the container indicated by the combination
122  // of tagging operating point, jet flavour, and a possible extra extension. The calibration
123  // container name (stored internally) is also attached.
124 
125  const std::vector<std::string>& effNames = m_calibrationEffNames.at(flavour);
126  if (!SF && mapIndex >= effNames.size()) {
127  std::cerr << "getContainername: given mapIndex=" << mapIndex << " incompatible with array size "
128  << effNames.size() << "; resetting to 0" << std::endl;
129  mapIndex = 0;
130  }
131  std::string name = SF ? m_calibrationSFNames.at(flavour) : effNames[mapIndex];
132  name += SF ? "_SF" : "_Eff";
133 
134  return name;
135 }

◆ getEfficiency()

Analysis::CalibResult Analysis::CalibrationDataInterfaceTool::getEfficiency ( const Jet jet,
const std::string &  label,
const std::string &  OP,
Uncertainty  unc = None 
) const
virtual

Main interface methods accessing the flavour tagging performance information.

Note that for both of the following, the label is assumed to adhere to the TruthInfo conventions (see package PhysicsAnalysis/JetTagging/JetTagInfo). efficiency retrieval

Implements Analysis::ICalibrationDataInterfaceTool.

Definition at line 287 of file CalibrationDataInterfaceTool.cxx.

289 {
290  Analysis::CalibResult sfResult = getScaleFactor(jet, label, OP, unc);
291  Analysis::CalibResult effResult = getMCEfficiency(jet, label, OP, unc);
292 
293  double relative = 0;
294  double value = effResult.first*sfResult.first;
295  if (value != 0) {
296  relative = effResult.second/effResult.first;
297  double sfRelative = sfResult.second/sfResult.first;
298  relative = std::sqrt(sfRelative*sfRelative + relative*relative);
299  } else {
300  ATH_MSG_WARNING("in " << name() << ": null result, SF=" << sfResult.first
301  << " MC eff=" << effResult.first);
302  relative = Analysis::dummyValue;
303  }
304 
305  return std::make_pair(value,value*relative);
306 }

◆ getMCEfficiency()

Analysis::CalibResult Analysis::CalibrationDataInterfaceTool::getMCEfficiency ( const Jet jet,
const std::string &  label,
const std::string &  OP,
Uncertainty  unc = None 
) const
virtual

"MC" efficiency retrieval

Implements Analysis::ICalibrationDataInterfaceTool.

Definition at line 225 of file CalibrationDataInterfaceTool.cxx.

227 {
228  // extract the relevant jet quantities: kinematic variables and jet author
229 
230  // for light-flavour jets, rename from "N/A"
231  string flavour(label);
232  if (flavour == "N/A") flavour = "Light";
233 
234  string author = jet.jetAuthor();
235 
236  string effName(getBasename(OP, flavour, "_Eff", false));
237 
238  // Return a dummy result if the object is not found
239  std::pair<CalibrationDataContainer*,bool> ret =
240  m_broker->retrieveTObject<CalibrationDataContainer>(m_taggerName, author, effName);
241  CalibrationDataContainer* container = ret.first;
242  if (! container) {
243  ATH_MSG_WARNING("in " << name() << ": unable to find Eff calibration for object with "
244  << "tagger/jetCollection/flavour/operating point = "
245  << m_taggerName << "/" << author << "/" << flavour << "/" << OP);
246  return Analysis::dummyResult;
247  }
248 
249  /* Here, it isn't obvious what to do with the second element of the pair returned:
250  This indicates whether a new object has been loaded (presumably due to IOV changes),
251  but the CalibrationDataContainer should take of any necessary computations itself.
252  */
253 
254  // fill the CalibrationDataVariables object
257 
258  // always retrieve the result itself
259  double value;
260  if (container->getResult(variables, value) == CalibrationDataContainer::kError)
261  return Analysis::dummyResult;
262 
263  // retrieve the statistical uncertainty if desired
264  double stat(0);
265  if (unc == Total || unc == Statistical) {
266  if (container->getStatUncertainty(variables, stat) == CalibrationDataContainer::kError)
267  cerr << "getMCEfficiency: error retrieving MC efficiency statistical uncertainty!"
268  << endl;
269  }
270  UncertaintyResult resSyst(0,0);
271  if (unc == Total || unc == Systematic) {
272  if (container->getSystUncertainty(variables, resSyst) == CalibrationDataContainer::kError)
273  cerr << "getMCEfficiency: error retrieving MC efficiency parameter systematic uncertainty!"
274  << endl;
275  }
276 
277  double uncertainty = combinedUncertainty(stat, resSyst);
278  Analysis::CalibResult result = std::make_pair(value, uncertainty);
279 
280  result.first = std::max(0., std::min(1., result.first));
281  return result;
282 }

◆ getScaleFactor()

Analysis::CalibResult Analysis::CalibrationDataInterfaceTool::getScaleFactor ( const Jet jet,
const std::string &  label,
const std::string &  OP,
Uncertainty  unc = None 
) const
virtual

efficiency scale factor retrieval

Implements Analysis::ICalibrationDataInterfaceTool.

Definition at line 160 of file CalibrationDataInterfaceTool.cxx.

162 {
163  // // For now, a calibration for the charm efficiency scale factor is assumed not to exist
164  // if (label == "C") return getScaleFactor(jet, "B", OP, unc);
165 
166  // for light-flavour jets, rename from "N/A"
167  string flavour(label);
168  if (flavour == "N/A") flavour = "Light";
169 
170  string author = jet.jetAuthor();
171 
172  string sfName(getBasename(OP, flavour, "_SF", true));
173 
174  // Return a dummy result if the object is not found
175  std::pair<CalibrationDataContainer*,bool> ret =
176  m_broker->retrieveTObject<CalibrationDataContainer>(m_taggerName, author, sfName);
177  CalibrationDataContainer* container = ret.first;
178  if (! container) {
179  ATH_MSG_WARNING("in " << name() << ": unable to find SF calibration for object with "
180  << "tagger/jetCollection/flavour/operating point = "
181  << m_taggerName << "/" << author << "/" << flavour << "/" << OP);
182  return Analysis::dummyResult;
183  }
184 
185  /* Here, it isn't obvious what to do with the second element of the pair returned:
186  This indicates whether a new object has been loaded (presumably due to IOV changes),
187  but the CalibrationDataContainer should take of any necessary computations itself.
188  */
189 
190  // fill the CalibrationDataVariables object
193 
194  // always retrieve the result itself
195  double value;
196  if (container->getResult(variables, value) == CalibrationDataContainer::kError)
197  return Analysis::dummyResult;
198 
199  // retrieve the statistical uncertainty if desired
200  double stat(0);
201  if (unc == Total || unc == Statistical) {
202  if (container->getStatUncertainty(variables, stat) == CalibrationDataContainer::kError)
203  cerr << "getScaleFactor: error retrieving Scale factor statistical uncertainty!"
204  << endl;
205  }
206  UncertaintyResult resSyst(0,0);
207  if (unc == Total || unc == Systematic) {
208  if (container->getSystUncertainty(variables, resSyst) == CalibrationDataContainer::kError)
209  cerr << "getScaleFactor: error retrieving Scale factor parameter systematic uncertainty!"
210  << endl;
211  }
212 
213  double uncertainty = combinedUncertainty(stat, resSyst);
214  Analysis::CalibResult result = std::make_pair(value, uncertainty);
215 
216  result.first = std::max(0., result.first);
217  if (std::abs(result.first) < Analysis::CalibZERO)
218  result.first = 1.;
219  return result;
220 }

◆ initialize()

StatusCode Analysis::CalibrationDataInterfaceTool::initialize ( )
overridevirtual

standard Athena-Algorithm method

Definition at line 75 of file CalibrationDataInterfaceTool.cxx.

76 {
77 
78 // StatusCode sc = AthAlgTool::initialize();
79 // if (sc.isFailure()) return sc;
80 //
81 // sc = m_broker.retrieve();
82 // if (sc.isFailure()) {
83 // ATH_MSG_FATAL("initialize() in " << name() << ": unable to retrieve CalibrationBroker tool!");
84 // return sc;
85 // }
86 
87  string::size_type end;
88 
89  std::vector<string> calibrationBNames;
90  if (m_EffcalibrationBName.size() > 0) {
91  do {
92  end = m_EffcalibrationBName.find(";");
93  calibrationBNames.push_back(m_EffcalibrationBName.substr(0,end));
94  if (end != string::npos) m_EffcalibrationBName = m_EffcalibrationBName.substr(end+1);
95  } while (end != string::npos);
96  }
97 
98  std::vector<string> calibrationCNames;
99  if (m_EffcalibrationCName.size() > 0) {
100  do {
101  end = m_EffcalibrationCName.find(";");
102  calibrationCNames.push_back(m_EffcalibrationCName.substr(0,end));
103  if (end != string::npos) m_EffcalibrationCName = m_EffcalibrationCName.substr(end+1);
104  } while (end != string::npos);
105  }
106 
107  std::vector<string> calibrationTNames;
108  if (m_EffcalibrationTName.size() > 0) {
109  do {
110  end = m_EffcalibrationTName.find(";");
111  calibrationTNames.push_back(m_EffcalibrationTName.substr(0,end));
112  if (end != string::npos) m_EffcalibrationTName = m_EffcalibrationTName.substr(end+1);
113  } while (end != string::npos);
114  }
115 
116  std::vector<string> calibrationLightNames;
117  if (m_EffcalibrationLightName.size() > 0) {
118  do {
119  end = m_EffcalibrationLightName.find(";");
120  calibrationLightNames.push_back(m_EffcalibrationLightName.substr(0,end));
121  if (end != string::npos) m_EffcalibrationLightName = m_EffcalibrationLightName.substr(end+1);
122  } while (end != string::npos);
123  }
124 
125 
126  // insert the calibration names into a common object
127  std::map<string, std::vector<string> > effNames;
128  effNames["B"] = calibrationBNames;
129  effNames["C"] = calibrationCNames;
130  effNames["T"] = calibrationTNames;
131  effNames["Light"] = calibrationLightNames;
132  setEffCalibrationNames(effNames);
133 
134  // insert the calibration names into a common object
135  std::map<string, string> calibrationNames;
136  calibrationNames["B"] = m_SFcalibrationBName;
137  calibrationNames["C"] = m_SFcalibrationCName;
138  calibrationNames["T"] = m_SFcalibrationTName;
139  calibrationNames["Light"] = m_SFcalibrationLightName;
140  setSFCalibrationNames(calibrationNames);
141 
142  // register all objects
143  for (std::map<string, string>::const_iterator it = calibrationNames.begin();
144  it != calibrationNames.end(); ++it) {
145  for (std::vector<string>::const_iterator op = m_operatingPoints.begin();
146  op != m_operatingPoints.end(); ++op) {
147  registerObjects(it->first, *op);
148  }
149  }
150 
151  ATH_MSG_INFO("initialize() successful in " << name());
152  return StatusCode::SUCCESS;
153 }

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

◆ interfaceID()

static const InterfaceID& Analysis::ICalibrationDataInterfaceTool::interfaceID ( )
inlinestaticinherited

Definition at line 23 of file ICalibrationDataInterfaceTool.h.

23  {
24  return IID_ICalibrationDataInterfaceTool;
25  }

◆ makeVariables()

void Analysis::CalibrationDataInterfaceTool::makeVariables ( const Jet jet,
CalibrationDataVariables x 
) const
private

auxiliary function to create the intermediate struct needed for the data layer

Definition at line 325 of file CalibrationDataInterfaceTool.cxx.

327 {
328  x.jetAuthor = jet.jetAuthor();
329  x.jetPt = jet.pt() * 0.001; // NB convert from MeV to GeV!
330  x.jetEta = jet.eta();
331 }

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

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

◆ queryInterface()

StatusCode Analysis::CalibrationDataInterfaceTool::queryInterface ( const InterfaceID &  riid,
void **  ppvIf 
)

allow access to the ICalibrationDataInterfaceTool interface

Definition at line 62 of file CalibrationDataInterfaceTool.cxx.

63 {
65  *ppvIf = (ICalibrationDataInterfaceTool*)this;
66  addRef();
67  return StatusCode::SUCCESS;
68  }
69 
70  return AthAlgTool::queryInterface( riid, ppvIf );
71 }

◆ registerObjects()

void Analysis::CalibrationDataInterfaceTool::registerObjects ( const std::string &  folder,
const std::string &  OP 
) const
private

auxiliary function dealing with registration of objects

Definition at line 310 of file CalibrationDataInterfaceTool.cxx.

312 {
313  static const string slash("/");
314 
315  string common = OP; common += slash;
316  common += flavour; common += slash;
317  string nameEff(common); nameEff += EffCalibrationName(flavour); nameEff += "_Eff";
318  string nameSF(common); nameSF += SFCalibrationName(flavour); nameSF += "_SF";
319 
320  m_broker->registerHistogram(m_taggerName, nameSF);
321  m_broker->registerHistogram(m_taggerName, nameEff);
322 }

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

◆ retrieveFunctionArguments()

void Analysis::CalibrationDataInterfaceTool::retrieveFunctionArguments ( const Jet jet,
const std::string &  object,
Double_t *  x 
) const
private

auxiliary function to retrieve values of function arguments

◆ setEffCalibrationNames()

void Analysis::CalibrationDataInterfaceBase::setEffCalibrationNames ( const std::map< std::string, std::vector< std::string > > &  names)
inherited

Definition at line 63 of file CalibrationDataInterfaceBase.cxx.

65 {
66  // Set the MC efficiency names.
67 
69 }

◆ setSFCalibrationNames()

void Analysis::CalibrationDataInterfaceBase::setSFCalibrationNames ( const std::map< std::string, std::string > &  names)
inherited

Definition at line 87 of file CalibrationDataInterfaceBase.cxx.

88 {
89  // Set the efficiency scale factor calibration names.
90 
92 }

◆ SFCalibrationName()

const std::string & Analysis::CalibrationDataInterfaceBase::SFCalibrationName ( const std::string &  flavour) const
inherited

Definition at line 72 of file CalibrationDataInterfaceBase.cxx.

73 {
74  // Return the efficiency scale factor calibration name for the given flavour.
75  // Note that no check is performed on the validity of the flavour.
76 
77  try {
78  return m_calibrationSFNames.at(flavour);
79  }
80  catch (const std::out_of_range& e) {
81  std::cerr << "SFCalibrationName: flavour '" << flavour << "' is not known." << std::endl;
82  throw e;
83  }
84 }

◆ sysInitialize()

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

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

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

Handle START transition.

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

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

Member Data Documentation

◆ m_broker

ToolHandle<CalibrationBroker> Analysis::CalibrationDataInterfaceTool::m_broker {this, "CalibrationBroker", "", "brief pointer to the performance broker"}
private

pointer to the performance broker

Definition at line 121 of file CalibrationDataInterfaceTool.h.

◆ m_calibrationEffNames

std::map<std::string, std::vector<std::string> > Analysis::CalibrationDataInterfaceBase::m_calibrationEffNames
privateinherited

this simply collects the per-flavour properties.

Definition at line 72 of file CalibrationDataInterfaceBase.h.

◆ m_calibrationSFNames

std::map<std::string, std::string> Analysis::CalibrationDataInterfaceBase::m_calibrationSFNames
privateinherited

Definition at line 73 of file CalibrationDataInterfaceBase.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_EffcalibrationBName

std::string Analysis::CalibrationDataInterfaceTool::m_EffcalibrationBName
private

calibration curves for b, c, and light-flavour jets

Definition at line 111 of file CalibrationDataInterfaceTool.h.

◆ m_EffcalibrationCName

std::string Analysis::CalibrationDataInterfaceTool::m_EffcalibrationCName
private

Definition at line 112 of file CalibrationDataInterfaceTool.h.

◆ m_EffcalibrationLightName

std::string Analysis::CalibrationDataInterfaceTool::m_EffcalibrationLightName
private

Definition at line 114 of file CalibrationDataInterfaceTool.h.

◆ m_EffcalibrationTName

std::string Analysis::CalibrationDataInterfaceTool::m_EffcalibrationTName
private

Definition at line 113 of file CalibrationDataInterfaceTool.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_SFcalibrationBName

std::string Analysis::CalibrationDataInterfaceTool::m_SFcalibrationBName
private

Definition at line 115 of file CalibrationDataInterfaceTool.h.

◆ m_SFcalibrationCName

std::string Analysis::CalibrationDataInterfaceTool::m_SFcalibrationCName
private

Definition at line 116 of file CalibrationDataInterfaceTool.h.

◆ m_SFcalibrationLightName

std::string Analysis::CalibrationDataInterfaceTool::m_SFcalibrationLightName
private

Definition at line 118 of file CalibrationDataInterfaceTool.h.

◆ m_SFcalibrationTName

std::string Analysis::CalibrationDataInterfaceTool::m_SFcalibrationTName
private

Definition at line 117 of file CalibrationDataInterfaceTool.h.

◆ m_taggerName

std::string Analysis::CalibrationDataInterfaceBase::m_taggerName
protectedinherited

tagging algorithm name

Definition at line 94 of file CalibrationDataInterfaceBase.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Analysis::CalibResult
std::pair< double, double > CalibResult
Definition: CalibrationDataInterfaceBase.h:34
Analysis::CalibrationDataInterfaceBase::EffCalibrationName
const std::string & EffCalibrationName(const std::string &flavour, unsigned int mapIndex=0) const
Main interface methods accessing the flavour tagging performance information.
Definition: CalibrationDataInterfaceBase.cxx:47
Analysis::CalibrationDataInterfaceTool::m_SFcalibrationCName
std::string m_SFcalibrationCName
Definition: CalibrationDataInterfaceTool.h:116
Analysis::CalibrationDataInterfaceBase::m_calibrationEffNames
std::map< std::string, std::vector< std::string > > m_calibrationEffNames
this simply collects the per-flavour properties.
Definition: CalibrationDataInterfaceBase.h:72
Analysis::dummyResult
const CalibResult dummyResult(dummyValue, dummyValue)
get_generator_info.result
result
Definition: get_generator_info.py:21
Analysis::CalibrationDataContainer
Definition: CalibrationDataContainer.h:51
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:13
Analysis::CalibrationDataInterfaceBase::kAbsEta
@ kAbsEta
Definition: CalibrationDataInterfaceBase.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Analysis::CalibrationDataInterfaceTool::m_EffcalibrationTName
std::string m_EffcalibrationTName
Definition: CalibrationDataInterfaceTool.h:113
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
Analysis::CalibrationDataInterfaceBase::m_calibrationSFNames
std::map< std::string, std::string > m_calibrationSFNames
Definition: CalibrationDataInterfaceBase.h:73
skel.it
it
Definition: skel.GENtoEVGEN.py:423
TRT_PAI_gasdata::SF
const float SF[NF]
Cross sections for Fluor.
Definition: TRT_PAI_gasdata.h:285
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
Analysis::CalibrationDataInterfaceTool::registerObjects
void registerObjects(const std::string &folder, const std::string &OP) const
auxiliary function dealing with registration of objects
Definition: CalibrationDataInterfaceTool.cxx:310
athena.value
value
Definition: athena.py:122
Analysis::ICalibrationDataInterfaceTool::Statistical
@ Statistical
Definition: ICalibrationDataInterfaceTool.h:28
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
x
#define x
Analysis::CalibrationDataInterfaceBase::SFCalibrationName
const std::string & SFCalibrationName(const std::string &flavour) const
Definition: CalibrationDataInterfaceBase.cxx:72
Analysis::dummyValue
const double dummyValue
Definition: CalibrationDataInterfaceBase.h:33
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
Analysis::CalibrationDataInterfaceBase::m_taggerName
std::string m_taggerName
tagging algorithm name
Definition: CalibrationDataInterfaceBase.h:94
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
MakeFileForReductions.largest
float largest
Definition: MakeFileForReductions.py:95
Analysis::CalibrationDataInterfaceTool::m_EffcalibrationBName
std::string m_EffcalibrationBName
calibration curves for b, c, and light-flavour jets
Definition: CalibrationDataInterfaceTool.h:111
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Analysis::CalibrationDataInterfaceBase::kEta
@ kEta
Definition: CalibrationDataInterfaceBase.h:67
Analysis::CalibrationDataInterfaceTool::m_broker
ToolHandle< CalibrationBroker > m_broker
pointer to the performance broker
Definition: CalibrationDataInterfaceTool.h:121
ret
T ret(T t)
Definition: rootspy.cxx:260
beamspotman.n
n
Definition: beamspotman.py:731
Analysis::kError
@ kError
Definition: CalibrationDataVariables.h:60
python.subdetectors.mmg.names
names
Definition: mmg.py:8
Analysis::CalibrationDataInterfaceBase::combinedUncertainty
double combinedUncertainty(double stat, const std::pair< double, double > &syst) const
utility function for combination of statistical and (a priori asymmetric) systematic uncertainty.
Definition: CalibrationDataInterfaceBase.cxx:147
Analysis::CalibrationDataInterfaceTool::m_SFcalibrationLightName
std::string m_SFcalibrationLightName
Definition: CalibrationDataInterfaceTool.h:118
Analysis::CalibrationDataInterfaceTool::m_EffcalibrationLightName
std::string m_EffcalibrationLightName
Definition: CalibrationDataInterfaceTool.h:114
Analysis::UncertaintyResult
std::pair< double, double > UncertaintyResult
The following typedef is for convenience: most uncertainties can be asymmetric.
Definition: CalibrationDataContainer.h:33
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Analysis::ICalibrationDataInterfaceTool::interfaceID
static const InterfaceID & interfaceID()
Definition: ICalibrationDataInterfaceTool.h:23
beamspotman.stat
stat
Definition: beamspotman.py:266
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
min
#define min(a, b)
Definition: cfImp.cxx:40
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
Analysis::CalibrationDataInterfaceTool::getScaleFactor
CalibResult getScaleFactor(const Jet &jet, const std::string &label, const std::string &OP, Uncertainty unc=None) const
efficiency scale factor retrieval
Definition: CalibrationDataInterfaceTool.cxx:160
Analysis::CalibrationDataInterfaceBase::setEffCalibrationNames
void setEffCalibrationNames(const std::map< std::string, std::vector< std::string > > &names)
Definition: CalibrationDataInterfaceBase.cxx:63
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Analysis::CalibrationDataInterfaceTool::makeVariables
void makeVariables(const Jet &jet, CalibrationDataVariables &x) const
auxiliary function to create the intermediate struct needed for the data layer
Definition: CalibrationDataInterfaceTool.cxx:325
Analysis::CalibrationDataInterfaceTool::m_EffcalibrationCName
std::string m_EffcalibrationCName
Definition: CalibrationDataInterfaceTool.h:112
Analysis::CalibrationDataInterfaceTool::m_SFcalibrationBName
std::string m_SFcalibrationBName
Definition: CalibrationDataInterfaceTool.h:115
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Analysis::ICalibrationDataInterfaceTool::None
@ None
Definition: ICalibrationDataInterfaceTool.h:28
CaloCondBlobAlgs_fillNoiseFromASCII.author
string author
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:26
Analysis::CalibrationDataVariables
Definition: CalibrationDataVariables.h:42
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
Analysis::CalibrationDataInterfaceBase::setSFCalibrationNames
void setSFCalibrationNames(const std::map< std::string, std::string > &names)
Definition: CalibrationDataInterfaceBase.cxx:87
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Analysis::CalibrationDataInterfaceTool::getMCEfficiency
CalibResult getMCEfficiency(const Jet &jet, const std::string &label, const std::string &OP, Uncertainty unc=None) const
"MC" efficiency retrieval
Definition: CalibrationDataInterfaceTool.cxx:225
Analysis::CalibrationDataInterfaceBase::kPt
@ kPt
Definition: CalibrationDataInterfaceBase.h:67
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Analysis::CalibrationDataInterfaceTool::m_SFcalibrationTName
std::string m_SFcalibrationTName
Definition: CalibrationDataInterfaceTool.h:117
Analysis::ICalibrationDataInterfaceTool::Total
@ Total
Definition: ICalibrationDataInterfaceTool.h:28
Analysis::ICalibrationDataInterfaceTool::Systematic
@ Systematic
Definition: ICalibrationDataInterfaceTool.h:28
Analysis::CalibZERO
const double CalibZERO
Definition: CalibrationDataInterfaceBase.h:32
fitman.k
k
Definition: fitman.py:528
common
Definition: common.py:1
Analysis::CalibrationDataInterfaceBase::getBasename
std::string getBasename(const std::string &name) const
auxiliary function for retrieval of name within the directory
Definition: CalibrationDataInterfaceBase.cxx:138