Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Member Functions | Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
AsgElectronEfficiencyCorrectionTool Class Referencefinalabstract

#include <AsgElectronEfficiencyCorrectionTool.h>

Inheritance diagram for AsgElectronEfficiencyCorrectionTool:
Collaboration diagram for AsgElectronEfficiencyCorrectionTool:

Classes

struct  Accessors
 
struct  SystConf
 

Public Member Functions

void callSingleEvent (columnar::ElectronRange electrons, columnar::EventInfoId event) const
 
void callEvents (columnar::EventContextRange events) const override
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual StatusCode sysInitialize ()
 Function initialising the tool in the correct way in Athena. 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 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
 

Public Attributes

std::unique_ptr< Accessorsm_accessors
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

virtual ASG_TOOL_CLASS(AsgElectronEfficiencyCorrectionTool, IAsgElectronEfficiencyCorrectionTool) public ~AsgElectronEfficiencyCorrectionTool () override final
 Standard destructor. More...
 
virtual StatusCode initialize () override final
 Gaudi Service Interface method implementations. More...
 
virtual StatusCode beginInputFile () override final
 Function called when a new input file is opened. More...
 
virtual StatusCode beginEvent () override final
 Function called when a new events is loaded. More...
 
virtual CP::SystematicSet affectingSystematics () const override final
 returns: the list of all systematics this tool can be affected by More...
 
virtual CP::SystematicSet recommendedSystematics () const override final
 returns: the list of all systematics this tool recommends to use More...
 
virtual bool isAffectedBySystematic (const CP::SystematicVariation &systematic) const override final
 returns: whether this tool is affected by the given systematis More...
 
virtual StatusCode applySystematicVariation (const CP::SystematicSet &systConfig) override final
 Configure this tool for the given systematics. More...
 
virtual CP::CorrectionCode getEfficiencyScaleFactor (const xAOD::Electron &inputObject, double &efficiencyScaleFactor) const override final
 
CP::CorrectionCode getEfficiencyScaleFactor (columnar::ElectronId inputObject, double &efficiencyScaleFactor, columnar::EventInfoId info) const
 
virtual CP::CorrectionCode getEfficiencyScaleFactor (const double et, const double cluster_eta, const unsigned int runNumber, double &efficiencyScaleFactor) const override final
 
virtual CP::CorrectionCode applyEfficiencyScaleFactor (const xAOD::Electron &inputObject) const override final
 
virtual int getNumberOfToys () const override final
 
virtual void printCorrelationModels () const override final
 print available/implemented correlation models More...
 
virtual const CP::SystematicSetappliedSystematics () const override final
 returns: the currently applied systematics More...
 
virtual int systUncorrVariationIndex (const xAOD::Electron &inputObject) const override final
 
int systUncorrVariationIndex (columnar::ElectronId inputObject) const
 
StatusCode registerSystematics ()
 
int currentSimplifiedUncorrSystRegion (const double cluster_eta, const double et) const
 
int currentUncorrSystRegion (const double cluster_eta, const double et) const
 
StatusCode InitSystematics ()
 initialize the systematics More...
 
virtual StatusCode getFile (const std::string &recokey, const std::string &idkey, const std::string &isokey, const std::string &trigkey)
 Gets the correction filename from map. More...
 
StatusCode get_simType_from_metadata (PATCore::ParticleDataType::DataType &result) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

bool m_metadata_retrieved = false
 To check if the metadata can be retrieved. More...
 
std::unique_ptr< Root::TElectronEfficiencyCorrectionToolm_rootTool = nullptr
 Pointer to the underlying ROOT based tool. More...
 
std::unordered_map< CP::SystematicSet, CP::SystematicSetm_systFilter
 Systematics filter map. More...
 
CP::SystematicSet m_affectedSys
 Affected systematic, should be done only once. More...
 
CP::SystematicSetm_appliedSystematics
 Currently applied systematics. More...
 
std::string m_correlation_model_name
 
int m_correlation_model
 
std::string m_mapFile
 
std::string m_recoKey
 
std::string m_idKey
 
std::string m_isoKey
 
std::string m_trigKey
 
std::vector< std::string > m_corrFileNameList
 The list of file names. More...
 
std::string m_resultPrefix
 The prefix string for the result. More...
 
std::string m_resultName
 The string for the result. More...
 
std::string m_sysSubstring
 
std::string m_eventInfoCollectionName
 The Event info collection name. More...
 
bool m_useRandomRunNumber
 
int m_defaultRandomRunNumber
 
PATCore::ParticleDataType::DataType m_dataType
 
int m_dataTypeOverwrite
 Force the data type to a given value. More...
 
int m_number_of_toys
 
int m_seed_toys
 
double m_scale_toys
 
int m_nCorrSyst
 
int m_nUncorrSyst
 
std::vector< std::pair< float, std::vector< float > > > m_pteta_bins
 
std::vector< float > m_uncorrSimplfEtaBinsUser
 
std::vector< float > m_uncorrSimplfEtBinsUser
 
TH2F * m_UncorrRegions
 
int m_nSimpleUncorrSyst
 
std::string m_toysBasename
 
std::vector< CP::SystematicVariationm_corrVarUp
 
std::vector< CP::SystematicVariationm_corrVarDown
 
std::vector< CP::SystematicVariationm_uncorrVarUp
 
std::vector< CP::SystematicVariationm_uncorrVarDown
 
MetaStore_t m_inputMetaStore
 Object accessing the input metadata store. More...
 
MetaStore_t m_outputMetaStore
 Object accessing the output metadata store. More...
 
bool m_beginInputFileCalled
 Flag helping to discover when the tool misses the opening of the first input file. More...
 
bool m_useIncidents
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 41 of file AsgElectronEfficiencyCorrectionTool.h.

Member Typedef Documentation

◆ MetaStore_t

Type of the metadata store object in Athena.

Definition at line 66 of file AsgMetadataTool.h.

◆ MetaStorePtr_t

Type of the metadata store pointer in standalone mode.

Definition at line 68 of file AsgMetadataTool.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ~AsgElectronEfficiencyCorrectionTool()

AsgElectronEfficiencyCorrectionTool::~AsgElectronEfficiencyCorrectionTool ( )
finaloverrideprivatevirtual

Standard destructor.

Definition at line 143 of file AsgElectronEfficiencyCorrectionTool.cxx.

144 {
145  if (m_UncorrRegions) {
146  delete m_UncorrRegions;
147  }
148 }

Member Function Documentation

◆ affectingSystematics()

CP::SystematicSet AsgElectronEfficiencyCorrectionTool::affectingSystematics ( ) const
finaloverrideprivatevirtual

returns: the list of all systematics this tool can be affected by

Implements CP::IReentrantSystematicsTool.

Definition at line 573 of file AsgElectronEfficiencyCorrectionTool.cxx.

574 {
575  return m_affectedSys;
576 }

◆ appliedSystematics()

virtual const CP::SystematicSet& AsgElectronEfficiencyCorrectionTool::appliedSystematics ( ) const
inlinefinaloverrideprivatevirtual

returns: the currently applied systematics

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 115 of file AsgElectronEfficiencyCorrectionTool.h.

116  {
117  return *m_appliedSystematics;
118  }

◆ applyEfficiencyScaleFactor()

CP::CorrectionCode AsgElectronEfficiencyCorrectionTool::applyEfficiencyScaleFactor ( const xAOD::Electron inputObject) const
finaloverrideprivatevirtual

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 540 of file AsgElectronEfficiencyCorrectionTool.cxx.

542 {
543  double efficiencyScaleFactor = 1.0;
545  getEfficiencyScaleFactor(inputObject, efficiencyScaleFactor);
547  m_resultName + "SF");
548  dec(inputObject) = efficiencyScaleFactor;
549  return result;
550 }

◆ applySystematicVariation()

StatusCode AsgElectronEfficiencyCorrectionTool::applySystematicVariation ( const CP::SystematicSet systConfig)
finaloverrideprivatevirtual

Configure this tool for the given systematics.

Apply one variation at a time.

Implements CP::ISystematicsTool.

Definition at line 599 of file AsgElectronEfficiencyCorrectionTool.cxx.

601 {
602  // First, check if this configuration exists in the filtered map/registy
603  auto itr = m_systFilter.find(systConfig);
604 
605  if (itr != m_systFilter.end()) {
606  CP::SystematicSet& mySysConf = itr->second;
607  m_appliedSystematics = &mySysConf;
608  }
609  // if not, we should register it, after it passes sanity checks
610  else {
611  // If it's a new input set, we need to filter it
612  CP::SystematicSet affectingSys = affectingSystematics();
613  CP::SystematicSet filteredSys;
615  systConfig, affectingSys, filteredSys)) {
617  "Unsupported combination of systematic variations passed to the tool!");
618  return StatusCode::FAILURE;
619  }
620  // Does filtered make sense, only one per time
621  if (filteredSys.size() > 1) {
623  "More than one systematic variation passed at the same time");
624  return StatusCode::FAILURE;
625  }
626 
627  if (filteredSys.empty() && !systConfig.empty()) {
628  ATH_MSG_DEBUG("systematics : ");
629  for (const auto& syst : systConfig) {
630  ATH_MSG_DEBUG(syst.name());
631  }
632  ATH_MSG_DEBUG(" Not supported ");
633  }
634  // insert to the registy
635  itr = m_systFilter.insert(std::make_pair(systConfig, filteredSys)).first;
636  // And return directly
637  CP::SystematicSet& mySysConf = itr->second;
638  m_appliedSystematics = &mySysConf;
639  }
640  return StatusCode::SUCCESS;
641 }

◆ beginEvent()

StatusCode AsgElectronEfficiencyCorrectionTool::beginEvent ( )
finaloverrideprivatevirtual

Function called when a new events is loaded.

Dummy implementation that can be overridden by the derived tool.

Reimplemented from asg::AsgMetadataTool.

Definition at line 934 of file AsgElectronEfficiencyCorrectionTool.cxx.

935 {
936 
937  if (m_dataTypeOverwrite != -1)
938  return StatusCode::SUCCESS;
940  return StatusCode::SUCCESS;
941 
942  m_metadata_retrieved = true;
943  return StatusCode::SUCCESS;
944 }

◆ beginInputFile()

StatusCode AsgElectronEfficiencyCorrectionTool::beginInputFile ( )
finaloverrideprivatevirtual

Function called when a new input file is opened.

Dummy implementation that can be overridden by the derived tool.

Reimplemented from asg::AsgMetadataTool.

Definition at line 899 of file AsgElectronEfficiencyCorrectionTool.cxx.

900 {
901 
902  // User forced a particular dataType
903  if (m_dataTypeOverwrite != -1)
904  return StatusCode::SUCCESS;
905 
906  PATCore::ParticleDataType::DataType dataType_metadata;
907  const StatusCode status = get_simType_from_metadata(dataType_metadata);
908  // Metadata got retrieved
909  if (status == StatusCode::SUCCESS) {
910  m_metadata_retrieved = true;
911  ATH_MSG_DEBUG("metadata from new file: "
912  << (dataType_metadata == PATCore::ParticleDataType::Data
913  ? "data"
914  : (dataType_metadata == PATCore::ParticleDataType::Full
915  ? "full simulation"
916  : "fast simulation")));
917 
918  if (dataType_metadata != PATCore::ParticleDataType::Data) {
919  if (m_dataTypeOverwrite == -1) {
920  m_dataType = dataType_metadata;
921  } else {
923  "Applying SF corrections to data while they make sense only for MC");
924  }
925  }
926  } else { // not able to retrieve metadata
927  m_metadata_retrieved = false;
928  ATH_MSG_DEBUG("not able to retrieve metadata");
929  }
930  return StatusCode::SUCCESS;
931 }

◆ callEvents()

void AsgElectronEfficiencyCorrectionTool::callEvents ( columnar::EventContextRange  events) const
override

Definition at line 1027 of file AsgElectronEfficiencyCorrectionTool.cxx.

1028 {
1029  const Accessors& acc = *m_accessors;
1031  {
1032  auto eventInfo = acc.m_eventInfo(event);
1033  callSingleEvent (acc.m_electrons(event), eventInfo);
1034  }
1035 }

◆ callSingleEvent()

void AsgElectronEfficiencyCorrectionTool::callSingleEvent ( columnar::ElectronRange  electrons,
columnar::EventInfoId  event 
) const

Definition at line 1005 of file AsgElectronEfficiencyCorrectionTool.cxx.

1006 {
1007  const Accessors& acc = *m_accessors;
1009  {
1010  double sf = 0;
1012  {
1014  acc.m_sfDec(electron) = sf;
1015  acc.m_validDec(electron) = true;
1016  break;
1018  acc.m_sfDec(electron) = sf;
1019  acc.m_validDec(electron) = false;
1020  break;
1021  default:
1022  throw std::runtime_error("Error in getEfficiencyScaleFactor");
1023  }
1024  }
1025 }

◆ currentSimplifiedUncorrSystRegion()

int AsgElectronEfficiencyCorrectionTool::currentSimplifiedUncorrSystRegion ( const double  cluster_eta,
const double  et 
) const
private

Definition at line 717 of file AsgElectronEfficiencyCorrectionTool.cxx.

720 {
721  int ptbin = std::as_const(*m_UncorrRegions).GetXaxis()->FindBin(et) - 1;
722  if (ptbin < 0 ||
723  ptbin >= std::as_const(*m_UncorrRegions).GetXaxis()->GetNbins()) {
725  " Found electron with Et = "
726  << et / 1000. << " GeV, where you specified boundaries of ["
727  << std::as_const(*m_UncorrRegions).GetXaxis()->GetBinLowEdge(1) << ","
728  << std::as_const(*m_UncorrRegions)
729  .GetXaxis()
730  ->GetBinUpEdge(
731  std::as_const(*m_UncorrRegions).GetXaxis()->GetNbins())
732  << "] for the SIMPLIFIED correlation model ");
733  return -1;
734  }
735  int etabin =
736  std::as_const(*m_UncorrRegions).GetYaxis()->FindBin(std::abs(cluster_eta)) -
737  1;
738  if (etabin < 0 ||
739  etabin >= std::as_const(*m_UncorrRegions).GetYaxis()->GetNbins()) {
741  " Found electron with |eta| = "
742  << std::abs(cluster_eta) << ", where you specified boundaries of ["
743  << std::as_const(*m_UncorrRegions).GetYaxis()->GetBinLowEdge(1) << ","
744  << std::as_const(*m_UncorrRegions)
745  .GetYaxis()
746  ->GetBinUpEdge(
747  std::as_const(*m_UncorrRegions).GetYaxis()->GetNbins())
748  << "] for the SIMPLIFIED correlation model ");
749  return -1;
750  }
751  int reg = ((etabin)*m_UncorrRegions->GetNbinsX() + ptbin);
752  return reg;
753 }

◆ currentUncorrSystRegion()

int AsgElectronEfficiencyCorrectionTool::currentUncorrSystRegion ( const double  cluster_eta,
const double  et 
) const
private

Definition at line 756 of file AsgElectronEfficiencyCorrectionTool.cxx.

759 {
760  int etabin = 0;
761  int reg = 0;
762  bool found = false;
763  float cluster_eta_electron = 0;
764  auto itr_ptBEGIN = m_pteta_bins.begin();
765  auto itr_ptEND = m_pteta_bins.end();
766  for (; itr_ptBEGIN != itr_ptEND; ++itr_ptBEGIN) {
767  auto itr_ptBEGINplusOne = itr_ptBEGIN;
768  ++itr_ptBEGINplusOne;
769  // Find the pt bin : Larger or equal from the current and the next one is
770  // the last or the next one is larger.
771  if (et >= itr_ptBEGIN->first &&
772  (itr_ptBEGINplusOne == itr_ptEND || et < itr_ptBEGINplusOne->first)) {
773  if ((itr_ptBEGIN->second).at(0) >= 0) {
774  cluster_eta_electron = std::abs(cluster_eta);
775  } else {
776  cluster_eta_electron = (cluster_eta);
777  };
778  for (unsigned int etab = 0; etab < ((itr_ptBEGIN->second).size());
779  ++etab) {
780  unsigned int etabnext = etab + 1;
781  // Find the eta bin : Larger or equal from the current and the next one
782  // is the last or the next one is larger:.
783  if ((cluster_eta_electron) >= (itr_ptBEGIN->second).at(etab) &&
784  (etabnext == itr_ptBEGIN->second.size() ||
785  cluster_eta_electron < itr_ptBEGIN->second.at(etabnext))) {
786  found = true;
787  break;
788  }
789  // We did not find it. Increment eta and continue looking
790  etabin++;
791  }
792  }
793  if (found) {
794  break;
795  }
796  // Add the full size of the "passed" eta row
797  reg += (itr_ptBEGIN->second).size();
798  }
799  if (!found) {
800  ATH_MSG_WARNING("No index for the uncorrelated systematic was found, "
801  "returning the maximum index");
802  return m_nCorrSyst;
803  }
804  reg = reg + etabin;
805  return reg;
806 }

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

◆ endInputFile()

StatusCode asg::AsgMetadataTool::endInputFile ( )
protectedvirtualinherited

Function called when the currently open input file got completely processed.

Dummy implementation that can be overridden by the derived tool.

Reimplemented in BookkeeperTool, BookkeeperDumperTool, xAODMaker::TriggerMenuMetaDataTool, and xAODMaker::TruthMetaDataTool.

Definition at line 188 of file AsgMetadataTool.cxx.

188  {
189 
190  // Return gracefully:
191  return StatusCode::SUCCESS;
192  }

◆ 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

◆ get_simType_from_metadata()

StatusCode AsgElectronEfficiencyCorrectionTool::get_simType_from_metadata ( PATCore::ParticleDataType::DataType result) const
private

Definition at line 947 of file AsgElectronEfficiencyCorrectionTool.cxx.

949 {
950 
951 #ifndef XAOD_STANDALONE
952  // Determine MC/Data
953  std::string dataType("");
955  "/TagInfo", "project_name", dataType, inputMetaStore()))
956  .isSuccess()) {
957  if (!(dataType == "IS_SIMULATION")) {
959  ATH_MSG_DEBUG("Running on data");
960  return StatusCode::SUCCESS;
961  }
962  // Determine Fast/FullSim
963  if (dataType == "IS_SIMULATION") {
964  std::string simType("");
965  ATH_CHECK(AthAnalysisHelper::retrieveMetadata("/Simulation/Parameters",
966  "SimulationFlavour",
967  simType,
968  inputMetaStore()));
969  std::transform(simType.begin(), simType.end(), simType.begin(), ::toupper);
970  result = (simType.find("ATLFAST") == std::string::npos)
973  return StatusCode::SUCCESS;
974  }
975  }
976 #endif
977  // Here's how things will work dual use, when file metadata is available in
978  // files
979  if (inputMetaStore()->contains<xAOD::FileMetaData>("FileMetaData")) {
980  const xAOD::FileMetaData* fmd = nullptr;
981  ATH_CHECK(inputMetaStore()->retrieve(fmd, "FileMetaData"));
982 
983  std::string simType("");
984  const bool s = fmd->value(xAOD::FileMetaData::simFlavour, simType);
985  if (!s) {
986  ATH_MSG_DEBUG("no sim flavour from metadata: must be data");
988  return StatusCode::SUCCESS;
989  } else {
990  ATH_MSG_DEBUG("sim type = " + simType);
991  std::transform(simType.begin(), simType.end(), simType.begin(), ::toupper);
992  result = (simType.find("ATLFAST") == std::string::npos)
995  return StatusCode::SUCCESS;
996  }
997  } else { // no metadata in the file
998  ATH_MSG_DEBUG("no metadata found in the file");
999  return StatusCode::FAILURE;
1000  }
1001 }

◆ getEfficiencyScaleFactor() [1/3]

CP::CorrectionCode AsgElectronEfficiencyCorrectionTool::getEfficiencyScaleFactor ( columnar::ElectronId  inputObject,
double &  efficiencyScaleFactor,
columnar::EventInfoId  info 
) const
private

Definition at line 348 of file AsgElectronEfficiencyCorrectionTool.cxx.

352 {
353  const Accessors& acc = *m_accessors;
354 
355  efficiencyScaleFactor = 1;
356  // Retrieve the proper random Run Number
357  unsigned int runNumber = m_defaultRandomRunNumber;
358  if (m_useRandomRunNumber) {
359  if (!acc.randomrunnumber.isAvailable(eventInfo)) {
361  "Pileup tool not run before using ElectronEfficiencyTool! SFs do not "
362  "reflect PU distribution in data");
364  }
365  runNumber = acc.randomrunnumber(eventInfo);
366  }
367  //
368  // Get the result
369  //
370  double cluster_eta(-9999.9);
371 
372  auto cluster = acc.caloClusterAcc (inputObject) [0].value();
373 
374  // we need to use different variables for central and forward electrons
375  if (acc.accAuthor.isAvailable(inputObject) &&
376  acc.accAuthor(inputObject) == xAOD::EgammaParameters::AuthorFwdElectron) {
377  cluster_eta = acc.clusterEtaAcc (cluster);
378  } else {
379  cluster_eta = acc.clusterEtaBEAcc (cluster, 2);
380  }
381 
382  // use et from cluster because it is immutable under syst variations of
383  // electron energy scale
384  const double energy = acc.clusterEAcc(cluster);
385  const double parEta = acc.m_eta(inputObject);
386  const double coshEta = std::cosh(parEta);
387  double et = (coshEta != 0.) ? energy / coshEta : 0.;
388  // allow for a 5% margin at the lowest pT bin boundary (i.e. increase et by 5%
389  // for sub-threshold electrons). This assures that electrons that pass the
390  // threshold only under syst variations of energy get a scale factor assigned.
391  auto itr_pt = m_pteta_bins.begin();
392  if (itr_pt != m_pteta_bins.end() && et < itr_pt->first) {
393  et = et * 1.05;
394  }
395  return getEfficiencyScaleFactor(et, cluster_eta, runNumber,
396  efficiencyScaleFactor);
397 }

◆ getEfficiencyScaleFactor() [2/3]

CP::CorrectionCode AsgElectronEfficiencyCorrectionTool::getEfficiencyScaleFactor ( const double  et,
const double  cluster_eta,
const unsigned int  runNumber,
double &  efficiencyScaleFactor 
) const
finaloverrideprivatevirtual

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 400 of file AsgElectronEfficiencyCorrectionTool.cxx.

405 {
406  // We pass only one variation per time
407  // The applied systematic is always one systematic.
408  // Either is relevant and acquires a value
409  // or stays 0.
410  double sys(0);
411 
412  // Let's try to figure already what we are to do
413  bool doSFOnly = appliedSystematics().empty();
414  bool doToys = (m_correlation_model == correlationModel::MCTOYS ||
416  bool isTotal = (m_correlation_model == correlationModel::TOTAL);
417  bool isFull = (m_correlation_model == correlationModel::FULL);
418  bool isSimplified = (m_correlation_model == correlationModel::SIMPLIFIED);
419 
420  // Lets see if we have an uncorrelated syst variation passed
421  int unCorrSign = 0;
422  // or a correlated one
423  int indexCorrelated = -999;
424  int correlatedSign = 0;
425  if (!(doSFOnly || doToys || isTotal) && (isFull || isSimplified)) {
426  const auto& sysName = appliedSystematics().begin()->name();
427  bool isUncorr = (sysName.find("UncorrUnc") != std::string::npos);
428  int currentUncorReg = -999;
429  if (isUncorr) {
430  // Can we find an uncorrelated region?
431  if (isFull) {
432  currentUncorReg = currentUncorrSystRegion(cluster_eta, et);
433  } else if (isSimplified) {
434  currentUncorReg = currentSimplifiedUncorrSystRegion(cluster_eta, et);
435  }
436  if (currentUncorReg < 0) {
438  }
439  // And use it to if we got the "right" syst variation
440  if (appliedSystematics().matchSystematic(
441  m_uncorrVarDown[currentUncorReg])) {
442  unCorrSign = -1;
443  } else if (appliedSystematics().matchSystematic(
444  m_uncorrVarUp[currentUncorReg])) {
445  unCorrSign = 1;
446  }
447  } else if (m_nCorrSyst != 0) {//if we have 0 we do not care ...
448  if (sysName.find("CorrUnc") != std::string::npos) {
449  // given the name convention we
450  const auto varNumEnd = sysName.rfind("__");
451  const auto varNumBegin = sysName.rfind("NP") + 2;
452  const int varIndex =
453  std::stoi(sysName.substr(varNumBegin, (varNumEnd - varNumBegin)));
454  if (appliedSystematics().matchSystematic(m_corrVarUp[varIndex])) {
455  indexCorrelated = varIndex;
456  correlatedSign = 1;
457  } else if (appliedSystematics().matchSystematic(
458  m_corrVarDown[varIndex])) {
459  indexCorrelated = varIndex;
460  correlatedSign = -1;
461  }
462  } // find CorrUncertainty in name
463  } // not Uncorr and we have CorrSyst
464  } // Not (SF or toys or total)
465 
466  // Now lets do the call
467  // For now we more or less calculate on demand only
468  // the Correlated and the toys we can see if we want
469  // top opt also the "TOTAL"
471  const int status =
472  m_rootTool->calculate(m_dataType, runNumber, cluster_eta, et, /* in MeV */
473  result, isTotal);
474 
475  // if status 0 something went wrong
476  if (!status) {
477  efficiencyScaleFactor = 1;
479  }
480  // At this point we have the SF
481  efficiencyScaleFactor = result.SF;
482  //And if all we need we can return
483  if (doSFOnly) {
484  return CP::CorrectionCode::Ok;
485  }
486 
487  // First the logic if the user requested toys
488  if (doToys) {
490  toy.second = m_scale_toys;
491  sys = result.toys[toy.first - 1] * m_scale_toys;
492  // return here for Toy variations
493  efficiencyScaleFactor = sys;
494  return CP::CorrectionCode::Ok;
495  }
496  // The "TOTAL" single uncertainty uncorrelated+correlated
497  else if (isTotal) {
498  sys = result.Total;
499  if (appliedSystematics().matchSystematic(m_uncorrVarUp[0])) {
500  return HelperFunc(efficiencyScaleFactor, sys);
501  }
502  if (appliedSystematics().matchSystematic(m_uncorrVarDown[0])) {
503  return HelperFunc(efficiencyScaleFactor, -1 * sys);
504  }
505  }
506  // Then the uncorrelated part for the SiMPLIFIED/FULL models
507  else if (unCorrSign!=0) {
508  sys = unCorrSign * result.UnCorr;
509  return HelperFunc(efficiencyScaleFactor, sys);
510  }
511 
512  // If we reach this point
513  // it means we need to do the correlated part
514  // for the FULL/SIMPLIFIED models.
515  // First if there are not correlated systematic
516  if (m_nCorrSyst == 0) {
517 
518  if (appliedSystematics().matchSystematic(m_corrVarUp[0])) {
519  sys = std::sqrt(result.Total * result.Total -
520  result.UnCorr * result.UnCorr); // total
521  // -stat
522  return HelperFunc(efficiencyScaleFactor, sys);
523  }
524  if (appliedSystematics().matchSystematic(m_corrVarDown[0])) {
525  sys = -1 * std::sqrt(result.Total * result.Total -
526  result.UnCorr * result.UnCorr); // total
527  // -stat
528  return HelperFunc(efficiencyScaleFactor, sys);
529  }
530  }
531  //or if we had
532  if (correlatedSign != 0) {
533  sys = correlatedSign * result.Corr[indexCorrelated];
534  return HelperFunc(efficiencyScaleFactor, sys);
535  }
536  return CP::CorrectionCode::Ok;
537 }

◆ getEfficiencyScaleFactor() [3/3]

CP::CorrectionCode AsgElectronEfficiencyCorrectionTool::getEfficiencyScaleFactor ( const xAOD::Electron inputObject,
double &  efficiencyScaleFactor 
) const
finaloverrideprivatevirtual

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 335 of file AsgElectronEfficiencyCorrectionTool.cxx.

338 {
339  const xAOD::EventInfo* eventInfo = nullptr;
340  if (evtStore()->retrieve(eventInfo, m_eventInfoCollectionName).isFailure()) {
341  ATH_MSG_ERROR("Could not retrieve EventInfo object!");
343  }
344  return getEfficiencyScaleFactor(columnar::ElectronId(inputObject), efficiencyScaleFactor, columnar::EventInfoId (*eventInfo));
345 }

◆ getFile()

StatusCode AsgElectronEfficiencyCorrectionTool::getFile ( const std::string &  recokey,
const std::string &  idkey,
const std::string &  isokey,
const std::string &  trigkey 
)
privatevirtual

Gets the correction filename from map.

Definition at line 846 of file AsgElectronEfficiencyCorrectionTool.cxx.

850 {
851 
852  std::string mapFileName = PathResolverFindCalibFile(m_mapFile);
853  std::string key =
854  ElRecomFileHelpers::convertToOneKey(recokey, idkey, isokey, trigkey);
855  std::string value = ElRecomFileHelpers::getValueByKey(mapFileName, key);
856 
857  if (!value.empty()) {
858  m_corrFileNameList.push_back(value);
859  } else {
860  if (mapFileName.empty()) {
862  "Map file does not exist, Please set the path and version properly..");
863  } else {
865  "Key "
866  << key
867  << " does not exist in the map file, Please configure it properly..");
868  }
869  return StatusCode::FAILURE;
870  }
871 
872  ATH_MSG_DEBUG("Full File Name is " + value);
873  return StatusCode::SUCCESS;
874 }

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

◆ getNumberOfToys()

virtual int AsgElectronEfficiencyCorrectionTool::getNumberOfToys ( ) const
inlinefinaloverrideprivatevirtual

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 97 of file AsgElectronEfficiencyCorrectionTool.h.

98  {
99  return m_number_of_toys;
100  };

◆ getProperty()

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

Get one of the tool's properties.

◆ handle()

void asg::AsgMetadataTool::handle ( const Incident &  inc)
protectedvirtualinherited

Function receiving incidents from IncidentSvc/TEvent.

Reimplemented in Trig::TrigDecisionTool.

Definition at line 130 of file AsgMetadataTool.cxx.

130  {
131 
132  // Tell the user what's happening:
133  ATH_MSG_VERBOSE( "Callback received with incident: " << inc.type() );
134 
135  // Call the appropriate member function:
136  if( inc.type() == IncidentType::BeginInputFile ) {
137  m_beginInputFileCalled = true;
138  if( beginInputFile().isFailure() ) {
139  ATH_MSG_FATAL( "Failed to call beginInputFile()" );
140  throw std::runtime_error( "Couldn't call beginInputFile()" );
141  }
142  } else if( inc.type() == IncidentType::EndInputFile ) {
143  if( endInputFile().isFailure() ) {
144  ATH_MSG_FATAL( "Failed to call endInputFile()" );
145  throw std::runtime_error( "Couldn't call endInputFile()" );
146  }
147  } else if( inc.type() == IncidentType::BeginEvent ) {
148  // If the tool didn't catch the begin input file incident for the
149  // first input file of the job, then call the appropriate function
150  // now.
151  if( ! m_beginInputFileCalled ) {
152  m_beginInputFileCalled = true;
153  if( beginInputFile().isFailure() ) {
154  ATH_MSG_FATAL( "Failed to call beginInputFile()" );
155  throw std::runtime_error( "Couldn't call beginInputFile()" );
156  }
157  }
158  if( beginEvent().isFailure() ) {
159  ATH_MSG_FATAL( "Failed to call beginEvent()" );
160  throw std::runtime_error( "Couldn't call beginEvent()" );
161  }
162 
163  #ifdef XAOD_STANDALONE
164  } else if( inc.type() == IncidentType::MetaDataStop ) {
165  if( metaDataStop().isFailure() ) {
166  ATH_MSG_FATAL( "Failed to call metaDataStop()" );
167  throw std::runtime_error( "Couldn't call metaDataStop()" );
168  }
169 
170  #endif // XAOD_STANDALONE
171  } else {
172  ATH_MSG_WARNING( "Unknown incident type received in AsgMetaDataTool: " << inc.type() );
173  }
174 
175  return;
176  }

◆ initialize()

StatusCode AsgElectronEfficiencyCorrectionTool::initialize ( )
finaloverrideprivatevirtual

Gaudi Service Interface method implementations.

Reimplemented from asg::AsgTool.

Definition at line 151 of file AsgElectronEfficiencyCorrectionTool.cxx.

152 {
153  // Forward the message level
154  m_rootTool->msg().setLevel(this->msg().level());
155 
156  if (m_corrFileNameList.empty() && m_recoKey.empty() && m_idKey.empty() &&
157  m_trigKey.empty() && m_isoKey.empty()) {
158  ATH_MSG_ERROR("CorrectionFileNameList as well as SFKeys are empty! Please "
159  "configure it properly...");
160  return StatusCode::FAILURE;
161  }
162  /*
163  * When metadata are available
164  * m_dataType will be whatever the metadata says i.e Full or Fast
165  * Its default value is Full.
166  * The user can overwrite all these ,using a flag,
167  * and force a specific dataType
168  */
169  if (m_dataTypeOverwrite != -1) {
170  if (m_dataTypeOverwrite !=
171  static_cast<int>(PATCore::ParticleDataType::Full) &&
173  static_cast<int>(PATCore::ParticleDataType::Fast)) {
174  ATH_MSG_ERROR("Unsupported Particle Data Type Overwrite"
176  return StatusCode::FAILURE;
177  }
178  m_dataType =
180  }
181  // Find the relevant input files
182  // Fill the vector with filename using keys if the user
183  // has not passed the full filename as a property
184  if (m_corrFileNameList.empty()) {
185  if (getFile(m_recoKey, m_idKey, m_isoKey, m_trigKey).isFailure()) {
186  ATH_MSG_ERROR("No Root file input specified, and not available map file");
187  return StatusCode::FAILURE;
188  }
189  }
190  // Resolve the paths to the input files for the full Geant4 simualtion
191  // corrections
192  for (auto& ifile : m_corrFileNameList) {
193 
195  if (filename.empty()) {
196  ATH_MSG_ERROR("Could NOT resolve file name " << ifile);
197  return StatusCode::FAILURE;
198  } else {
199  ATH_MSG_DEBUG(" Path found = " << filename);
200  }
201  m_rootTool->addFileName(filename);
202  // Determine the systematics substring according to the name of the input
203  // file
204  if (ifile.find("efficiencySF.") != std::string::npos) {
205  m_sysSubstring = "Trigger_";
206  }
207  if (ifile.find("efficiencySF.offline") != std::string::npos) {
208  m_sysSubstring = "ID_";
209  }
210  if (ifile.find("efficiencySF.offline.RecoTrk") != std::string::npos) {
211  m_sysSubstring = "Reco_";
212  }
213  if (ifile.find("efficiencySF.offline.Fwd") != std::string::npos) {
214  m_sysSubstring = "FwdID_";
215  }
216  if (ifile.find("efficiencySF.Isolation") != std::string::npos) {
217  m_sysSubstring = "Iso_";
218  }
219  if (ifile.find("efficiency.") != std::string::npos) {
220  m_sysSubstring = "TriggerEff_";
221  }
222  if (ifile.find("efficiencySF.ChargeID") != std::string::npos) {
223  m_sysSubstring = "ChargeIDSel_";
224  }
225  if (m_sysSubstring.empty()) {
226  ATH_MSG_ERROR("Could NOT find systematics Substring file name "
227  << m_sysSubstring);
228  return StatusCode::FAILURE;
229  }
230  }
231  //
232  // Find the proper correlation Model
233  if (m_correlation_model_name == "COMBMCTOYS") {
235  } else if (m_correlation_model_name == "MCTOYS") {
237  } else if (m_correlation_model_name == "FULL") {
239  } else if (m_correlation_model_name == "SIMPLIFIED") {
241  // a few checks on the binning that the user might have specified
242  if (m_uncorrSimplfEtaBinsUser.empty() || m_uncorrSimplfEtBinsUser.empty() ||
243  m_uncorrSimplfEtBinsUser.size() < 2 ||
244  m_uncorrSimplfEtaBinsUser.size() < 2) {
245  ATH_MSG_ERROR("Something went wrong when specifying bins for the "
246  "SIMPLIFIED correlation model ");
247  return StatusCode::FAILURE;
248  }
249  } else if (m_correlation_model_name == "TOTAL") {
251  } else if (m_correlation_model_name == "SYST") {
253  } else {
254  ATH_MSG_ERROR("Unknown correlation model " + m_correlation_model_name);
255  return StatusCode::FAILURE;
256  }
257  ATH_MSG_DEBUG("Correlation model: " + m_correlation_model_name
258  << " Enum " << m_correlation_model);
259 
260  // Histogram of simplified uncorrelated regions
262  m_UncorrRegions = new TH2F("UncorrRegions",
263  "UncorrRegions",
264  m_uncorrSimplfEtBinsUser.size() - 1,
266  m_uncorrSimplfEtaBinsUser.size() - 1,
268  m_UncorrRegions->SetDirectory(nullptr);
269 
270  // bins not entries here
272  (m_uncorrSimplfEtBinsUser.size() - 1);
273  }
274  // Finish the preaparation of the underlying tool
275  if (m_seed_toys != 0) {
276  m_rootTool->setSeed(m_seed_toys);
277  }
278  //
280  m_rootTool->bookCombToyMCScaleFactors(m_number_of_toys);
281  }
282  //
284  m_rootTool->bookToyMCScaleFactors(m_number_of_toys);
285  }
286  // We need to initialize the underlying ROOT TSelectorTool
287  if (0 == m_rootTool->initialize()) {
289  "Could not initialize the TElectronEfficiencyCorrectionTool!");
290  return StatusCode::FAILURE;
291  }
292 
293  // get Nsyst
294  m_nCorrSyst = m_rootTool->getNSyst();
295  std::map<float, std::vector<float>> tmp;
296  m_nUncorrSyst = m_rootTool->getNbins(tmp);
297  // copy over to vector for better access
298  for (const auto& i : tmp) {
299  m_pteta_bins.emplace_back(i.first, i.second);
300  }
301 
302  // Check if the input contains uncorr/stat necessary
303  // to run non-total systematic model
305  m_rootTool->uncorrEmpty(m_dataType) ) {
306  ATH_MSG_ERROR("Called correlation model "+m_correlation_model_name+
307  " but input does not contain necessary histograms.");
308  return StatusCode::FAILURE;
309  }
310 
311  // Initialize the systematics
312  if (InitSystematics() != StatusCode::SUCCESS) {
313  ATH_MSG_ERROR("(InitSystematics() != StatusCode::SUCCESS)");
314  return StatusCode::FAILURE;
315  }
316  // Add the recommended systematics to the registry
317  if (registerSystematics() != StatusCode::SUCCESS) {
318  ATH_MSG_ERROR("(registerSystematics() != StatusCode::SUCCESS)");
319  return StatusCode::FAILURE;
320  }
321  // Configure for nominal systematics
322  if (applySystematicVariation(CP::SystematicSet()) != StatusCode::SUCCESS) {
323  ATH_MSG_ERROR("Could not configure for nominal settings");
324  return StatusCode::FAILURE;
325  }
326 
327  if (m_useRandomRunNumber) {
328  resetAccessor (m_accessors->randomrunnumber, *this, "RandomRunNumber");
329  }
330  ATH_CHECK (initializeColumns());
331  return StatusCode::SUCCESS;
332 }

◆ InitSystematics()

StatusCode AsgElectronEfficiencyCorrectionTool::InitSystematics ( )
private

initialize the systematics

Definition at line 647 of file AsgElectronEfficiencyCorrectionTool.cxx.

648 {
649  const std::string prefix = "EL_EFF_" + m_sysSubstring;
650  const std::string prefixUncorr = prefix + m_correlation_model_name + "_";
651  // Toys
653  m_toysBasename = prefix + "COMBMCTOY";
657  m_toysBasename = prefix + "MCTOY";
660  // Correlated for the different models (1 or Full set)
662  if (m_nCorrSyst == 0) {
663  auto varUp = CP::SystematicVariation(prefix + "CorrUncertainty", 1);
664  auto varDown = CP::SystematicVariation(prefix + "CorrUncertainty", -1);
665  m_corrVarUp.push_back(varUp);
666  m_corrVarDown.push_back(varDown);
667  m_affectedSys.insert(varUp);
668  m_affectedSys.insert(varDown);
669  } else
670  for (int i = 0; i < m_nCorrSyst; ++i) {
671  auto varUp =
672  CP::SystematicVariation(prefix + Form("CorrUncertaintyNP%d", i), 1);
673  auto varDown =
674  CP::SystematicVariation(prefix + Form("CorrUncertaintyNP%d", i), -1);
675  m_corrVarUp.push_back(varUp);
676  m_corrVarDown.push_back(varDown);
677  m_affectedSys.insert(varUp);
678  m_affectedSys.insert(varDown);
679  }
680  }
681  // Different tratement for the uncorrelated per model
683  auto varUp = CP::SystematicVariation(prefixUncorr + "1NPCOR_PLUS_UNCOR", 1);
684  auto varDown =
685  CP::SystematicVariation(prefixUncorr + "1NPCOR_PLUS_UNCOR", -1);
686  m_uncorrVarUp.push_back(varUp);
687  m_uncorrVarDown.push_back(varDown);
688  m_affectedSys.insert(varUp);
689  m_affectedSys.insert(varDown);
691  for (int i = 0; i < m_nUncorrSyst; ++i) {
692  auto varUp = CP::SystematicVariation(
693  prefixUncorr + Form("UncorrUncertaintyNP%d", i), 1);
694  auto varDown = CP::SystematicVariation(
695  prefixUncorr + Form("UncorrUncertaintyNP%d", i), -1);
696  m_uncorrVarUp.push_back(varUp);
697  m_uncorrVarDown.push_back(varDown);
698  m_affectedSys.insert(varUp);
699  m_affectedSys.insert(varDown);
700  }
702  for (int i = 0; i < m_nSimpleUncorrSyst; ++i) {
703  auto varUp = CP::SystematicVariation(
704  prefixUncorr + Form("UncorrUncertaintyNP%d", i), 1);
705  auto varDown = CP::SystematicVariation(
706  prefixUncorr + Form("UncorrUncertaintyNP%d", i), -1);
707  m_uncorrVarUp.push_back(varUp);
708  m_uncorrVarDown.push_back(varDown);
709  m_affectedSys.insert(varUp);
710  m_affectedSys.insert(varDown);
711  }
712  }
713  return StatusCode::SUCCESS;
714 }

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

◆ inputMetaStore()

AsgMetadataTool::MetaStorePtr_t asg::AsgMetadataTool::inputMetaStore ( ) const
inherited

Accessor for the input metadata store.

Definition at line 88 of file AsgMetadataTool.cxx.

88  {
89 
90 #ifdef XAOD_STANDALONE
91  return &m_inputMetaStore;
92 #else // XAOD_STANDALONE
93  return m_inputMetaStore;
94 #endif // XAOD_STANDALONE
95  }

◆ isAffectedBySystematic()

bool AsgElectronEfficiencyCorrectionTool::isAffectedBySystematic ( const CP::SystematicVariation systematic) const
finaloverrideprivatevirtual

returns: whether this tool is affected by the given systematis

returns: bool indicating if affected by the variation

Implements CP::ISystematicsTool.

Definition at line 557 of file AsgElectronEfficiencyCorrectionTool.cxx.

559 {
560  if (systematic.empty()) {
561  return false;
562  }
566  return (sys.begin()->ensembleContains(systematic));
567  } else {
568  return (sys.find(systematic) != sys.end());
569  }
570 }

◆ metaDataStop()

StatusCode asg::AsgMetadataTool::metaDataStop ( )
protectedvirtualinherited

Function called when the tool should write out its metadata.

Dummy implementation that can be overridden by the derived tool.

Reimplemented in BookkeeperTool, BookkeeperDumperTool, xAODMaker::TriggerMenuMetaDataTool, and xAODMaker::TruthMetaDataTool.

Definition at line 204 of file AsgMetadataTool.cxx.

204  {
205 
206  // Return gracefully:
207  return StatusCode::SUCCESS;
208  }

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

◆ outputMetaStore()

AsgMetadataTool::MetaStorePtr_t asg::AsgMetadataTool::outputMetaStore ( ) const
inherited

Accessor for the output metadata store.

Definition at line 97 of file AsgMetadataTool.cxx.

97  {
98 
99 #ifdef XAOD_STANDALONE
100  return &m_outputMetaStore;
101 #else // XAOD_STANDALONE
102  return m_outputMetaStore;
103 #endif // XAOD_STANDALONE
104  }

◆ print() [1/2]

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

◆ print() [2/2]

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

◆ printCorrelationModels()

virtual void AsgElectronEfficiencyCorrectionTool::printCorrelationModels ( ) const
inlinefinaloverrideprivatevirtual

print available/implemented correlation models

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 102 of file AsgElectronEfficiencyCorrectionTool.h.

103  {
104  ATH_MSG_INFO(
105  " Available Correlation Models for the ElectronEfficiencyCorrectionTool");
106  ATH_MSG_INFO("FULL");
107  ATH_MSG_INFO("SIMPLIFIED");
108  ATH_MSG_INFO("MCTOYS");
109  ATH_MSG_INFO("SYST");
110  ATH_MSG_INFO("COMBMCTOYS");
111  ATH_MSG_INFO("TOTAL");
112  };

◆ recommendedSystematics()

CP::SystematicSet AsgElectronEfficiencyCorrectionTool::recommendedSystematics ( ) const
finaloverrideprivatevirtual

returns: the list of all systematics this tool recommends to use

Implements CP::IReentrantSystematicsTool.

Definition at line 593 of file AsgElectronEfficiencyCorrectionTool.cxx.

594 {
595  return affectingSystematics();
596 }

◆ registerSystematics()

StatusCode AsgElectronEfficiencyCorrectionTool::registerSystematics ( )
private

Definition at line 580 of file AsgElectronEfficiencyCorrectionTool.cxx.

581 {
583 
584  if (registry.registerSystematics(*this) != StatusCode::SUCCESS) {
586  "Failed to add systematic to list of recommended systematics.");
587  return StatusCode::FAILURE;
588  }
589  return StatusCode::SUCCESS;
590 }

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

◆ setUseIncidents()

void asg::AsgMetadataTool::setUseIncidents ( const bool  flag)
inlineprotectedinherited

Definition at line 132 of file AsgMetadataTool.h.

133  {
135  }

◆ sysInitialize()

StatusCode asg::AsgMetadataTool::sysInitialize ( )
virtualinherited

Function initialising the tool in the correct way in Athena.

This function is used to set up the callbacks from IncidentSvc in Athena at the right time during initialisation, without the user having to do anything special in his/her code.

Reimplemented from AthCommonDataStore< AthCommonMsg< AlgTool > >.

Definition at line 110 of file AsgMetadataTool.cxx.

110  {
111 
112 #ifndef XAOD_STANDALONE
113  if (m_useIncidents) {
114  // Connect to the IncidentSvc:
115  ServiceHandle< IIncidentSvc > incSvc( "IncidentSvc", name() );
116  ATH_CHECK( incSvc.retrieve() );
117 
118  // Set up the right callbacks: don't rethrow exceptions, any failure and we should end
119  incSvc->addListener( this, IncidentType::BeginEvent, 0, false );
120  }
121  // Let the base class do its thing:
122  ATH_CHECK( AlgTool::sysInitialize() );
123 
124 #endif // not XAOD_STANDALONE
125 
126  // Return gracefully:
127  return StatusCode::SUCCESS;
128  }

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

◆ systUncorrVariationIndex() [1/2]

int AsgElectronEfficiencyCorrectionTool::systUncorrVariationIndex ( columnar::ElectronId  inputObject) const
private

Definition at line 816 of file AsgElectronEfficiencyCorrectionTool.cxx.

818 {
819  const Accessors& acc = *m_accessors;
820  int currentSystRegion = -999;
821  double cluster_eta(-9999.9);
822  double et(0.0);
823 
824  et = acc.m_pt(inputObject);
825  const auto cluster = acc.caloClusterAcc (inputObject) [0].value();
826  cluster_eta = acc.clusterEtaBEAcc (cluster, 2);
827  switch (m_correlation_model) {
829  currentSystRegion = currentSimplifiedUncorrSystRegion(cluster_eta, et);
830  break;
831  }
832  case correlationModel::FULL: {
833  currentSystRegion = currentUncorrSystRegion(cluster_eta, et);
834  break;
835  }
836  default: {
837  // not there for the other models
838  break;
839  }
840  }
841  return currentSystRegion;
842 }

◆ systUncorrVariationIndex() [2/2]

int AsgElectronEfficiencyCorrectionTool::systUncorrVariationIndex ( const xAOD::Electron inputObject) const
finaloverrideprivatevirtual

Implements IAsgElectronEfficiencyCorrectionTool.

Definition at line 809 of file AsgElectronEfficiencyCorrectionTool.cxx.

811 {
812  return systUncorrVariationIndex (columnar::ElectronId (inputObject));
813 }

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

std::unique_ptr<Accessors> AsgElectronEfficiencyCorrectionTool::m_accessors

Definition at line 256 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_affectedSys

CP::SystematicSet AsgElectronEfficiencyCorrectionTool::m_affectedSys
private

Affected systematic, should be done only once.

Definition at line 162 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_appliedSystematics

CP::SystematicSet* AsgElectronEfficiencyCorrectionTool::m_appliedSystematics
private

Currently applied systematics.

Definition at line 165 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_beginInputFileCalled

bool asg::AsgMetadataTool::m_beginInputFileCalled
privateinherited

Flag helping to discover when the tool misses the opening of the first input file.

Definition at line 126 of file AsgMetadataTool.h.

◆ m_correlation_model

int AsgElectronEfficiencyCorrectionTool::m_correlation_model
private

Definition at line 169 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_correlation_model_name

std::string AsgElectronEfficiencyCorrectionTool::m_correlation_model_name
private

Definition at line 168 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_corrFileNameList

std::vector<std::string> AsgElectronEfficiencyCorrectionTool::m_corrFileNameList
private

The list of file names.

Definition at line 181 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_corrVarDown

std::vector<CP::SystematicVariation> AsgElectronEfficiencyCorrectionTool::m_corrVarDown
private

Definition at line 230 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_corrVarUp

std::vector<CP::SystematicVariation> AsgElectronEfficiencyCorrectionTool::m_corrVarUp
private

Definition at line 229 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_dataType

PATCore::ParticleDataType::DataType AsgElectronEfficiencyCorrectionTool::m_dataType
private

Definition at line 200 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_dataTypeOverwrite

int AsgElectronEfficiencyCorrectionTool::m_dataTypeOverwrite
private

Force the data type to a given value.

Definition at line 203 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_defaultRandomRunNumber

int AsgElectronEfficiencyCorrectionTool::m_defaultRandomRunNumber
private

Definition at line 197 of file AsgElectronEfficiencyCorrectionTool.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_eventInfoCollectionName

std::string AsgElectronEfficiencyCorrectionTool::m_eventInfoCollectionName
private

The Event info collection name.

Definition at line 193 of file AsgElectronEfficiencyCorrectionTool.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_idKey

std::string AsgElectronEfficiencyCorrectionTool::m_idKey
private

Definition at line 176 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_inputMetaStore

MetaStore_t asg::AsgMetadataTool::m_inputMetaStore
privateinherited

Object accessing the input metadata store.

Definition at line 119 of file AsgMetadataTool.h.

◆ m_isoKey

std::string AsgElectronEfficiencyCorrectionTool::m_isoKey
private

Definition at line 177 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_mapFile

std::string AsgElectronEfficiencyCorrectionTool::m_mapFile
private

Definition at line 172 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_metadata_retrieved

bool AsgElectronEfficiencyCorrectionTool::m_metadata_retrieved = false
private

To check if the metadata can be retrieved.

Definition at line 153 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_nCorrSyst

int AsgElectronEfficiencyCorrectionTool::m_nCorrSyst
private

Definition at line 215 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_nSimpleUncorrSyst

int AsgElectronEfficiencyCorrectionTool::m_nSimpleUncorrSyst
private

Definition at line 225 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_number_of_toys

int AsgElectronEfficiencyCorrectionTool::m_number_of_toys
private

Definition at line 206 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_nUncorrSyst

int AsgElectronEfficiencyCorrectionTool::m_nUncorrSyst
private

Definition at line 216 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_outputMetaStore

MetaStore_t asg::AsgMetadataTool::m_outputMetaStore
privateinherited

Object accessing the output metadata store.

Definition at line 121 of file AsgMetadataTool.h.

◆ m_pteta_bins

std::vector<std::pair<float, std::vector<float> > > AsgElectronEfficiencyCorrectionTool::m_pteta_bins
private

Definition at line 217 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_recoKey

std::string AsgElectronEfficiencyCorrectionTool::m_recoKey
private

Definition at line 175 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_resultName

std::string AsgElectronEfficiencyCorrectionTool::m_resultName
private

The string for the result.

Definition at line 187 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_resultPrefix

std::string AsgElectronEfficiencyCorrectionTool::m_resultPrefix
private

The prefix string for the result.

Definition at line 184 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_rootTool

std::unique_ptr<Root::TElectronEfficiencyCorrectionTool> AsgElectronEfficiencyCorrectionTool::m_rootTool = nullptr
private

Pointer to the underlying ROOT based tool.

Definition at line 156 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_scale_toys

double AsgElectronEfficiencyCorrectionTool::m_scale_toys
private

Definition at line 212 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_seed_toys

int AsgElectronEfficiencyCorrectionTool::m_seed_toys
private

Definition at line 209 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_sysSubstring

std::string AsgElectronEfficiencyCorrectionTool::m_sysSubstring
private

Definition at line 190 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_systFilter

std::unordered_map<CP::SystematicSet, CP::SystematicSet> AsgElectronEfficiencyCorrectionTool::m_systFilter
private

Systematics filter map.

Definition at line 159 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_toysBasename

std::string AsgElectronEfficiencyCorrectionTool::m_toysBasename
private

Definition at line 228 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_trigKey

std::string AsgElectronEfficiencyCorrectionTool::m_trigKey
private

Definition at line 178 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_UncorrRegions

TH2F* AsgElectronEfficiencyCorrectionTool::m_UncorrRegions
private

Definition at line 224 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_uncorrSimplfEtaBinsUser

std::vector<float> AsgElectronEfficiencyCorrectionTool::m_uncorrSimplfEtaBinsUser
private

Definition at line 220 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_uncorrSimplfEtBinsUser

std::vector<float> AsgElectronEfficiencyCorrectionTool::m_uncorrSimplfEtBinsUser
private

Definition at line 221 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_uncorrVarDown

std::vector<CP::SystematicVariation> AsgElectronEfficiencyCorrectionTool::m_uncorrVarDown
private

Definition at line 232 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_uncorrVarUp

std::vector<CP::SystematicVariation> AsgElectronEfficiencyCorrectionTool::m_uncorrVarUp
private

Definition at line 231 of file AsgElectronEfficiencyCorrectionTool.h.

◆ m_useIncidents

bool asg::AsgMetadataTool::m_useIncidents
privateinherited

Definition at line 128 of file AsgMetadataTool.h.

◆ m_useRandomRunNumber

bool AsgElectronEfficiencyCorrectionTool::m_useRandomRunNumber
private

Definition at line 196 of file AsgElectronEfficiencyCorrectionTool.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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AsgElectronEfficiencyCorrectionTool::getFile
virtual StatusCode getFile(const std::string &recokey, const std::string &idkey, const std::string &isokey, const std::string &trigkey)
Gets the correction filename from map.
Definition: AsgElectronEfficiencyCorrectionTool.cxx:846
python.Dso.registry
registry
Definition: Control/AthenaServices/python/Dso.py:159
AsgElectronEfficiencyCorrectionTool::m_correlation_model
int m_correlation_model
Definition: AsgElectronEfficiencyCorrectionTool.h:169
CaloCondBlobAlgs_fillNoiseFromASCII.sysName
sysName
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:93
AsgElectronEfficiencyCorrectionTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig) override final
Configure this tool for the given systematics.
Definition: AsgElectronEfficiencyCorrectionTool.cxx:599
et
Extra patterns decribing particle interation process.
CP::SystematicSet::getToyVariationByBaseName
std::pair< unsigned, float > getToyVariationByBaseName(const std::string &basename) const
the toy variation for the given basename
Definition: SystematicSet.cxx:201
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
AsgElectronEfficiencyCorrectionTool::m_corrFileNameList
std::vector< std::string > m_corrFileNameList
The list of file names.
Definition: AsgElectronEfficiencyCorrectionTool.h:181
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
asg::AsgMetadataTool::beginEvent
virtual StatusCode beginEvent()
Function called when a new events is loaded.
Definition: AsgMetadataTool.cxx:196
get_generator_info.result
result
Definition: get_generator_info.py:21
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:402
AsgElectronEfficiencyCorrectionTool::m_idKey
std::string m_idKey
Definition: AsgElectronEfficiencyCorrectionTool.h:176
AsgElectronEfficiencyCorrectionTool::m_appliedSystematics
CP::SystematicSet * m_appliedSystematics
Currently applied systematics.
Definition: AsgElectronEfficiencyCorrectionTool.h:165
AsgElectronEfficiencyCorrectionTool::m_rootTool
std::unique_ptr< Root::TElectronEfficiencyCorrectionTool > m_rootTool
Pointer to the underlying ROOT based tool.
Definition: AsgElectronEfficiencyCorrectionTool.h:156
AsgElectronEfficiencyCorrectionTool::m_mapFile
std::string m_mapFile
Definition: AsgElectronEfficiencyCorrectionTool.h:172
AsgElectronEfficiencyCorrectionTool::InitSystematics
StatusCode InitSystematics()
initialize the systematics
Definition: AsgElectronEfficiencyCorrectionTool.cxx:647
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
correlationModel::FULL
@ FULL
Definition: AsgElectronEfficiencyCorrectionTool.cxx:49
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
AsgElectronEfficiencyCorrectionTool::m_uncorrSimplfEtaBinsUser
std::vector< float > m_uncorrSimplfEtaBinsUser
Definition: AsgElectronEfficiencyCorrectionTool.h:220
CP::SystematicSet::size
size_t size() const
returns: size of the set
Definition: SystematicSet.h:71
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CP::SystematicSet::empty
bool empty() const
returns: whether the set is empty
Definition: SystematicSet.h:67
PATCore::ParticleDataType::Fast
@ Fast
Definition: PATCoreEnums.h:22
AsgElectronEfficiencyCorrectionTool::m_useRandomRunNumber
bool m_useRandomRunNumber
Definition: AsgElectronEfficiencyCorrectionTool.h:196
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
correlationModel::SYST
@ SYST
Definition: AsgElectronEfficiencyCorrectionTool.cxx:52
AsgElectronEfficiencyCorrectionTool::currentUncorrSystRegion
int currentUncorrSystRegion(const double cluster_eta, const double et) const
Definition: AsgElectronEfficiencyCorrectionTool.cxx:756
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
downloadSingle.dataType
string dataType
Definition: downloadSingle.py:18
asg::AsgMetadataTool::inputMetaStore
MetaStorePtr_t inputMetaStore() const
Accessor for the input metadata store.
Definition: AsgMetadataTool.cxx:88
AsgElectronEfficiencyCorrectionTool::registerSystematics
StatusCode registerSystematics()
Definition: AsgElectronEfficiencyCorrectionTool.cxx:580
athena.value
value
Definition: athena.py:124
asg::AsgMetadataTool::m_beginInputFileCalled
bool m_beginInputFileCalled
Flag helping to discover when the tool misses the opening of the first input file.
Definition: AsgMetadataTool.h:126
asg::AsgMetadataTool::endInputFile
virtual StatusCode endInputFile()
Function called when the currently open input file got completely processed.
Definition: AsgMetadataTool.cxx:188
asg::AsgMetadataTool::m_outputMetaStore
MetaStore_t m_outputMetaStore
Object accessing the output metadata store.
Definition: AsgMetadataTool.h:121
AsgElectronEfficiencyCorrectionTool::m_resultName
std::string m_resultName
The string for the result.
Definition: AsgElectronEfficiencyCorrectionTool.h:187
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::EgammaParameters::AuthorFwdElectron
const uint16_t AuthorFwdElectron
Electron reconstructed by the Forward cluster-based algorithm.
Definition: EgammaDefs.h:30
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
AsgElectronEfficiencyCorrectionTool::m_correlation_model_name
std::string m_correlation_model_name
Definition: AsgElectronEfficiencyCorrectionTool.h:168
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
CP::SystematicVariation
Definition: SystematicVariation.h:47
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
PATCore::ParticleDataType::Data
@ Data
Definition: PATCoreEnums.h:22
python.DataFormatRates.events
events
Definition: DataFormatRates.py:105
AsgElectronEfficiencyCorrectionTool::m_accessors
std::unique_ptr< Accessors > m_accessors
Definition: AsgElectronEfficiencyCorrectionTool.h:256
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
AsgElectronEfficiencyCorrectionTool::m_defaultRandomRunNumber
int m_defaultRandomRunNumber
Definition: AsgElectronEfficiencyCorrectionTool.h:197
AsgElectronEfficiencyCorrectionTool::m_dataType
PATCore::ParticleDataType::DataType m_dataType
Definition: AsgElectronEfficiencyCorrectionTool.h:200
PATCore::ParticleDataType::DataType
DataType
Definition: PATCoreEnums.h:22
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
xAOD::FileMetaData_v1::value
bool value(MetaDataType type, std::string &val) const
Get a pre-defined string value out of the object.
Definition: FileMetaData_v1.cxx:195
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AsgElectronEfficiencyCorrectionTool::m_isoKey
std::string m_isoKey
Definition: AsgElectronEfficiencyCorrectionTool.h:177
xAOD::FileMetaData_v1::simFlavour
@ simFlavour
Fast or Full sim [string].
Definition: FileMetaData_v1.h:76
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
PATCore::ParticleDataType::Full
@ Full
Definition: PATCoreEnums.h:22
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
AsgElectronEfficiencyCorrectionTool::callSingleEvent
void callSingleEvent(columnar::ElectronRange electrons, columnar::EventInfoId event) const
Definition: AsgElectronEfficiencyCorrectionTool.cxx:1005
correlationModel::MCTOYS
@ MCTOYS
Definition: AsgElectronEfficiencyCorrectionTool.cxx:48
AsgElectronEfficiencyCorrectionTool::m_uncorrSimplfEtBinsUser
std::vector< float > m_uncorrSimplfEtBinsUser
Definition: AsgElectronEfficiencyCorrectionTool.h:221
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
Root::TElectronEfficiencyCorrectionTool::Result
Definition: TElectronEfficiencyCorrectionTool.h:42
CP::CorrectionCode::Error
@ Error
Some error happened during the object correction.
Definition: CorrectionCode.h:36
histSizes.code
code
Definition: histSizes.py:129
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
AsgElectronEfficiencyCorrectionTool::m_toysBasename
std::string m_toysBasename
Definition: AsgElectronEfficiencyCorrectionTool.h:228
columnar::ContainerId::cluster
@ cluster
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:59
lumiFormat.i
int i
Definition: lumiFormat.py:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AsgElectronEfficiencyCorrectionTool::m_uncorrVarDown
std::vector< CP::SystematicVariation > m_uncorrVarDown
Definition: AsgElectronEfficiencyCorrectionTool.h:232
asg::AsgMetadataTool::beginInputFile
virtual StatusCode beginInputFile()
Function called when a new input file is opened.
Definition: AsgMetadataTool.cxx:180
master.flag
bool flag
Definition: master.py:29
AsgElectronEfficiencyCorrectionTool::m_nCorrSyst
int m_nCorrSyst
Definition: AsgElectronEfficiencyCorrectionTool.h:215
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
AsgElectronEfficiencyCorrectionTool::m_recoKey
std::string m_recoKey
Definition: AsgElectronEfficiencyCorrectionTool.h:175
AsgElectronEfficiencyCorrectionTool::appliedSystematics
virtual const CP::SystematicSet & appliedSystematics() const override final
returns: the currently applied systematics
Definition: AsgElectronEfficiencyCorrectionTool.h:115
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
AsgElectronEfficiencyCorrectionTool::m_number_of_toys
int m_number_of_toys
Definition: AsgElectronEfficiencyCorrectionTool.h:206
AsgElectronEfficiencyCorrectionTool::m_resultPrefix
std::string m_resultPrefix
The prefix string for the result.
Definition: AsgElectronEfficiencyCorrectionTool.h:184
asg::AsgMetadataTool::metaDataStop
virtual StatusCode metaDataStop()
Function called when the tool should write out its metadata.
Definition: AsgMetadataTool.cxx:204
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
AsgElectronEfficiencyCorrectionTool::systUncorrVariationIndex
virtual int systUncorrVariationIndex(const xAOD::Electron &inputObject) const override final
Definition: AsgElectronEfficiencyCorrectionTool.cxx:809
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AsgElectronEfficiencyCorrectionTool::m_seed_toys
int m_seed_toys
Definition: AsgElectronEfficiencyCorrectionTool.h:209
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
AsgElectronEfficiencyCorrectionTool::m_nUncorrSyst
int m_nUncorrSyst
Definition: AsgElectronEfficiencyCorrectionTool.h:216
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
correlationModel::COMBMCTOYS
@ COMBMCTOYS
Definition: AsgElectronEfficiencyCorrectionTool.cxx:47
xAOD::FileMetaData_v1
Class holding file-level metadata about an xAOD file.
Definition: FileMetaData_v1.h:34
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
AsgElectronEfficiencyCorrectionTool::m_scale_toys
double m_scale_toys
Definition: AsgElectronEfficiencyCorrectionTool.h:212
AsgElectronEfficiencyCorrectionTool::m_dataTypeOverwrite
int m_dataTypeOverwrite
Force the data type to a given value.
Definition: AsgElectronEfficiencyCorrectionTool.h:203
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
AsgElectronEfficiencyCorrectionTool::m_corrVarDown
std::vector< CP::SystematicVariation > m_corrVarDown
Definition: AsgElectronEfficiencyCorrectionTool.h:230
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition: ObjectId.h:18
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
asg::AsgMetadataTool::m_inputMetaStore
MetaStore_t m_inputMetaStore
Object accessing the input metadata store.
Definition: AsgMetadataTool.h:119
CP::SystematicSet::insert
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
Definition: SystematicSet.cxx:88
correlationModel::SIMPLIFIED
@ SIMPLIFIED
Definition: AsgElectronEfficiencyCorrectionTool.cxx:50
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
AsgElectronEfficiencyCorrectionTool::getEfficiencyScaleFactor
virtual CP::CorrectionCode getEfficiencyScaleFactor(const xAOD::Electron &inputObject, double &efficiencyScaleFactor) const override final
Definition: AsgElectronEfficiencyCorrectionTool.cxx:335
AsgElectronEfficiencyCorrectionTool::m_systFilter
std::unordered_map< CP::SystematicSet, CP::SystematicSet > m_systFilter
Systematics filter map.
Definition: AsgElectronEfficiencyCorrectionTool.h:159
AsgElectronEfficiencyCorrectionTool::m_eventInfoCollectionName
std::string m_eventInfoCollectionName
The Event info collection name.
Definition: AsgElectronEfficiencyCorrectionTool.h:193
AsgElectronEfficiencyCorrectionTool::get_simType_from_metadata
StatusCode get_simType_from_metadata(PATCore::ParticleDataType::DataType &result) const
Definition: AsgElectronEfficiencyCorrectionTool.cxx:947
AsgElectronEfficiencyCorrectionTool::m_trigKey
std::string m_trigKey
Definition: AsgElectronEfficiencyCorrectionTool.h:178
AsgElectronEfficiencyCorrectionTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const override final
returns: the list of all systematics this tool can be affected by
Definition: AsgElectronEfficiencyCorrectionTool.cxx:573
checkTriggerxAOD.found
found
Definition: checkTriggerxAOD.py:328
columnar::ContainerId::eventInfo
@ eventInfo
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
AsgElectronEfficiencyCorrectionTool::m_uncorrVarUp
std::vector< CP::SystematicVariation > m_uncorrVarUp
Definition: AsgElectronEfficiencyCorrectionTool.h:231
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ElRecomFileHelpers::convertToOneKey
std::string convertToOneKey(const std::string &recokey, const std::string &idkey, const std::string &isokey, const std::string &trigkey)
Definition: ElRecomFileHelpers.cxx:38
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
AsgElectronEfficiencyCorrectionTool::m_nSimpleUncorrSyst
int m_nSimpleUncorrSyst
Definition: AsgElectronEfficiencyCorrectionTool.h:225
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CP::SystematicVariation::empty
bool empty() const
returns: whether this is an empty systematic, i.e.
Definition: SystematicVariation.cxx:294
CP::SystematicRegistry
This module implements the central registry for handling systematic uncertainties with CP tools.
Definition: SystematicRegistry.h:25
AsgElectronEfficiencyCorrectionTool::m_affectedSys
CP::SystematicSet m_affectedSys
Affected systematic, should be done only once.
Definition: AsgElectronEfficiencyCorrectionTool.h:162
CP::SystematicSet::begin
const_iterator begin() const
description: const iterator to the beginning of the set
Definition: SystematicSet.h:55
DeMoScan.first
bool first
Definition: DeMoScan.py:536
AsgElectronEfficiencyCorrectionTool::m_corrVarUp
std::vector< CP::SystematicVariation > m_corrVarUp
Definition: AsgElectronEfficiencyCorrectionTool.h:229
AsgElectronEfficiencyCorrectionTool::m_UncorrRegions
TH2F * m_UncorrRegions
Definition: AsgElectronEfficiencyCorrectionTool.h:224
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
AsgElectronEfficiencyCorrectionTool::m_pteta_bins
std::vector< std::pair< float, std::vector< float > > > m_pteta_bins
Definition: AsgElectronEfficiencyCorrectionTool.h:217
AsgElectronEfficiencyCorrectionTool::m_sysSubstring
std::string m_sysSubstring
Definition: AsgElectronEfficiencyCorrectionTool.h:190
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
merge.status
status
Definition: merge.py:17
AsgElectronEfficiencyCorrectionTool::m_metadata_retrieved
bool m_metadata_retrieved
To check if the metadata can be retrieved.
Definition: AsgElectronEfficiencyCorrectionTool.h:153
LArCellNtuple.ifile
string ifile
Definition: LArCellNtuple.py:133
columnar::resetAccessor
void resetAccessor(AccessorTemplate< CI, CT, CAM, CM > &accessor, ColumnarTool< CM > &columnBase, const std::string &name, ColumnInfo &&info={})
reset a column accessor to point to a new column
Definition: ColumnAccessor.h:212
SG::DataProxy
Definition: DataProxy.h:45
ElRecomFileHelpers::getValueByKey
std::string getValueByKey(const std::string &mapFile, const std::string &key)
Definition: ElRecomFileHelpers.cxx:75
CP::SystematicVariation::makeToyEnsemble
static SystematicVariation makeToyEnsemble(const std::string &basename)
constructor for toy systematics ensemble
Definition: SystematicVariation.cxx:258
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
CP::SystematicSet::filterForAffectingSystematics
static StatusCode filterForAffectingSystematics(const SystematicSet &systConfig, const SystematicSet &affectingSystematics, SystematicSet &filteredSystematics)
description: filter the systematics for the affected systematics returns: success guarantee: strong f...
Definition: SystematicSet.cxx:213
correlationModel::TOTAL
@ TOTAL
Definition: AsgElectronEfficiencyCorrectionTool.cxx:51
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
AthAnalysisHelper::retrieveMetadata
static std::string retrieveMetadata(const std::string &folder, const std::string &key, const ServiceHandle< StoreGateSvc > &inputMetaStore)
method that always returns as a string you can use from, e.g, pyROOT with evt = ROOT....
Definition: AthAnalysisHelper.h:254
ServiceHandle< IIncidentSvc >
AsgElectronEfficiencyCorrectionTool::currentSimplifiedUncorrSystRegion
int currentSimplifiedUncorrSystRegion(const double cluster_eta, const double et) const
Definition: AsgElectronEfficiencyCorrectionTool.cxx:717
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
asg::AsgMetadataTool::m_useIncidents
bool m_useIncidents
Definition: AsgMetadataTool.h:128