ATLAS Offline Software
Public Member Functions | List of all members
CP::IEfficiencyScaleFactorTool Class Referenceabstract

General interface for tools providing analysis efficiency scale factors. More...

#include <IEfficiencyScaleFactorTool.h>

Inheritance diagram for CP::IEfficiencyScaleFactorTool:
Collaboration diagram for CP::IEfficiencyScaleFactorTool:

Public Member Functions

virtual ~IEfficiencyScaleFactorTool ()=default
 Default destructor. More...
 
virtual CorrectionCode getEfficiencyScaleFactor (const xAOD::IParticle &p, double &sf) const =0
 Retrieve an efficiency scale factor for a particle type object. More...
 
virtual CorrectionCode applyEfficiencyScaleFactor (const xAOD::IParticle &p) const =0
 Decorate a particle with its efficiency scale factor. More...
 
virtual bool isAffectedBySystematic (const SystematicVariation &systematic) const =0
 Declare the interface that this class provides. More...
 
virtual StatusCode applySystematicVariation (const SystematicSet &systConfig)=0
 effects: configure this tool for the given list of systematic variations. More...
 
virtual SystematicSet affectingSystematics () const =0
 the list of all systematics this tool can be affected by More...
 
virtual SystematicSet recommendedSystematics () const =0
 the list of all systematics this tool recommends to use More...
 
virtual void print () const =0
 Print the state of the tool. More...
 

Detailed Description

General interface for tools providing analysis efficiency scale factors.

This is a generic interface that should be implemented by all analysis tools that provide efficiency scale factors for xAOD::IParticle type objects.

Note
If your tool needs type specific variables that the xAOD::IParticle interface doesn't provide, please rely on the xAOD::IParticle::type() function to identify whether you received an appropriate object. And then use static_cast to cast the reference to the right type. Like:
if( p.type() != xAOD::Type::Electron ) {
ATH_MSG_ERROR( "Object of wrong type (" << p.type() << ") received" );
}
const xAOD::Electron& el = static_cast< const xAOD::Electron& >( p );

Just be very careful about writing the code correctly, as a wrong static_cast could lead to memory corruption. But since its much faster than dynamic_cast, it's still recommended to use this sort of code.

Revision
790193
Date
2016-12-16 17:36:15 +0100 (Fri, 16 Dec 2016)

Definition at line 51 of file IEfficiencyScaleFactorTool.h.

Constructor & Destructor Documentation

◆ ~IEfficiencyScaleFactorTool()

virtual CP::IEfficiencyScaleFactorTool::~IEfficiencyScaleFactorTool ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ affectingSystematics()

virtual SystematicSet CP::IReentrantSystematicsTool::affectingSystematics ( ) const
pure virtualinherited

the list of all systematics this tool can be affected by

Implemented in InDet::InDetTrackSystematicsTool, CP::ElectronChargeEfficiencyCorrectionTool, AsgElectronEfficiencyCorrectionTool, CP::IsolationCorrectionTool, CP::EgammaCalibrationAndSmearingTool, CP::FFJetSmearingTool, SimpleMuonTriggerScaleFactors, SimplePhotonEfficiencyCorrectionTool, PMGTools::PMGTruthWeightTool, AsgPhotonEfficiencyCorrectionTool, ParticleScaleFactorTool, InDet::InDetTrackTruthFilterTool, CP::JetJvtEfficiency, InDet::InDetTrackBiasingTool, InDet::JetTrackFilterTool, InDet::InDetTrackSmearingTool, CP::BaseFakeBkgTool, InDet::InclusiveTrackFilterTool, TrigGlobalEfficiencyCorrectionTool, SimpleElectronEfficiencyCorrectionTool, TauAnalysisTools::DiTauSmearingTool, CP::JetQGTagger, CP::MuonCalibTool, CP::MuonCalibIntScaleSmearTool, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, BTaggingEfficiencyJsonTool, InDet::IInDetTrackSmearingTool, InDet::IInDetTrackTruthFilterTool, CP::IIsolationCorrectionTool, InDet::IInDetTrackBiasingTool, InDet::IJetTrackFilterTool, BTaggingEfficiencyTool, JetUncertaintiesTool, BTaggingTruthTaggingTool, CP::PileupReweightingTool, met::METSystematicsTool, BTaggingEigenVectorRecompositionTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, CP::JetTileCorrectionTool, TauAnalysisTools::CommonSmearingTool, CP::SystematicsTool, TauAnalysisTools::CommonEfficiencyTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, TauAnalysisTools::TauSmearingTool, CP::MuonTriggerScaleFactors, and CP::MuonEfficiencyScaleFactors.

◆ applyEfficiencyScaleFactor()

virtual CorrectionCode CP::IEfficiencyScaleFactorTool::applyEfficiencyScaleFactor ( const xAOD::IParticle p) const
pure virtual

Decorate a particle with its efficiency scale factor.

This function can be used to decorate a particle type object with an efficiency scale factor. The name and type of the scale factor variable is up to the specific tool implementation.

Parameters
pThe particle for which a scale factor is to be calculated
Returns
CP::CorrectionCode::Error in case of a serious problem, CP::CorrectionCode::OutOfValidityRange if no scale factor is available for the received object, or CP::CorrectionCode::Ok if the scale factor could be correctly provided

◆ applySystematicVariation()

virtual StatusCode CP::ISystematicsTool::applySystematicVariation ( const SystematicSet systConfig)
pure virtualinherited

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

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

Implemented in CP::ElectronChargeEfficiencyCorrectionTool, CP::MuonCalibTool, CP::MuonCalibIntScaleSmearTool, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, CP::SystematicsTool, CP::JetTileCorrectionTool, CP::MuonEfficiencyScaleFactors, CP::JetQGTagger, CP::FFJetSmearingTool, CP::IIsolationCorrectionTool, AsgElectronEfficiencyCorrectionTool, CP::IsolationCorrectionTool, CP::EgammaCalibrationAndSmearingTool, AsgPhotonEfficiencyCorrectionTool, ParticleScaleFactorTool, CP::BaseFakeBkgTool, TauAnalysisTools::DiTauSmearingTool, TrigGlobalEfficiencyCorrectionTool, JetUncertaintiesTool, BTaggingTruthTaggingTool, CP::PileupReweightingTool, BTaggingEigenVectorRecompositionTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, TauAnalysisTools::TauSmearingTool, CP::MuonTriggerScaleFactors, BTaggingEfficiencyJsonTool, TauAnalysisTools::CommonSmearingTool, TauAnalysisTools::CommonEfficiencyTool, TauAnalysisTools::TauEfficiencyTriggerTool, CP::JetJvtEfficiency, BTaggingEfficiencyTool, met::METSystematicsTool, InDet::IInDetTrackSmearingTool, InDet::IInDetTrackTruthFilterTool, InDet::IInDetTrackBiasingTool, InDet::IJetTrackFilterTool, SimpleMuonTriggerScaleFactors, SimplePhotonEfficiencyCorrectionTool, InDet::InDetTrackTruthFilterTool, InDet::InDetTrackBiasingTool, InDet::JetTrackFilterTool, InDet::InDetTrackSmearingTool, InDet::InclusiveTrackFilterTool, SimpleElectronEfficiencyCorrectionTool, and InDet::InDetTrackSystematicsTool.

◆ getEfficiencyScaleFactor()

virtual CorrectionCode CP::IEfficiencyScaleFactorTool::getEfficiencyScaleFactor ( const xAOD::IParticle p,
double &  sf 
) const
pure virtual

Retrieve an efficiency scale factor for a particle type object.

This function is used to retrieve the efficiency scale factor for a specific particle object.

Parameters
pThe particle for which a scale factor is to be calculated
sfA reference to the scale factor variable to be set
Returns
CP::CorrectionCode::Error in case of a serious problem, CP::CorrectionCode::OutOfValidityRange if no scale factor is available for the received object, or CP::CorrectionCode::Ok if the scale factor could be correctly provided

◆ isAffectedBySystematic()

virtual bool CP::ISystematicsTool::isAffectedBySystematic ( const SystematicVariation systematic) const
pure virtualinherited

Declare the interface that this class provides.

returns: whether this tool is affected by the given systematics

Implemented in CP::JetQGTagger, CP::ElectronChargeEfficiencyCorrectionTool, CP::MuonCalibTool, CP::MuonCalibIntScaleSmearTool, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, CP::JetTileCorrectionTool, CP::SystematicsTool, CP::MuonEfficiencyScaleFactors, CP::JetJvtEfficiency, met::METSystematicsTool, AsgElectronEfficiencyCorrectionTool, CP::IsolationCorrectionTool, CP::EgammaCalibrationAndSmearingTool, CP::FFJetSmearingTool, ParticleScaleFactorTool, AsgPhotonEfficiencyCorrectionTool, CP::BaseFakeBkgTool, TrigGlobalEfficiencyCorrectionTool, TauAnalysisTools::DiTauSmearingTool, BTaggingEfficiencyJsonTool, CP::IIsolationCorrectionTool, BTaggingEfficiencyTool, JetUncertaintiesTool, BTaggingTruthTaggingTool, CP::PileupReweightingTool, BTaggingEigenVectorRecompositionTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, TauAnalysisTools::CommonSmearingTool, TauAnalysisTools::CommonEfficiencyTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, TauAnalysisTools::TauSmearingTool, CP::MuonTriggerScaleFactors, SimpleMuonTriggerScaleFactors, SimplePhotonEfficiencyCorrectionTool, InDet::InDetTrackTruthFilterTool, InDet::InDetTrackBiasingTool, InDet::JetTrackFilterTool, InDet::InDetTrackSmearingTool, InDet::InclusiveTrackFilterTool, SimpleElectronEfficiencyCorrectionTool, InDet::InDetTrackSystematicsTool, InDet::IInDetTrackSmearingTool, InDet::IInDetTrackTruthFilterTool, InDet::IInDetTrackBiasingTool, and InDet::IJetTrackFilterTool.

◆ print()

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

◆ recommendedSystematics()

virtual SystematicSet CP::IReentrantSystematicsTool::recommendedSystematics ( ) const
pure virtualinherited

the list of all systematics this tool recommends to use

Implemented in CP::ElectronChargeEfficiencyCorrectionTool, AsgElectronEfficiencyCorrectionTool, CP::IsolationCorrectionTool, CP::EgammaCalibrationAndSmearingTool, CP::FFJetSmearingTool, SimpleMuonTriggerScaleFactors, SimplePhotonEfficiencyCorrectionTool, PMGTools::PMGTruthWeightTool, AsgPhotonEfficiencyCorrectionTool, InDet::InDetTrackTruthFilterTool, ParticleScaleFactorTool, CP::JetJvtEfficiency, InDet::InDetTrackBiasingTool, InDet::JetTrackFilterTool, InDet::InDetTrackSmearingTool, CP::BaseFakeBkgTool, InDet::InclusiveTrackFilterTool, TauAnalysisTools::DiTauSmearingTool, TrigGlobalEfficiencyCorrectionTool, SimpleElectronEfficiencyCorrectionTool, CP::JetQGTagger, CP::MuonCalibTool, CP::MuonCalibIntScaleSmearTool, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, InDet::InDetTrackSystematicsTool, BTaggingEfficiencyJsonTool, InDet::IInDetTrackSmearingTool, InDet::IInDetTrackTruthFilterTool, CP::IIsolationCorrectionTool, InDet::IInDetTrackBiasingTool, InDet::IJetTrackFilterTool, BTaggingEfficiencyTool, JetUncertaintiesTool, BTaggingTruthTaggingTool, CP::PileupReweightingTool, met::METSystematicsTool, BTaggingEigenVectorRecompositionTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, CP::JetTileCorrectionTool, CP::SystematicsTool, TauAnalysisTools::CommonSmearingTool, TauAnalysisTools::CommonEfficiencyTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, TauAnalysisTools::TauSmearingTool, CP::MuonTriggerScaleFactors, and CP::MuonEfficiencyScaleFactors.


The documentation for this class was generated from the following file:
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
CP::CorrectionCode::Error
@ Error
Some error happened during the object correction.
Definition: CorrectionCode.h:36
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
xAOD::Electron_v1
Definition: Electron_v1.h:34