00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: IEfficiencyScaleFactorTool.h 790193 2016-12-16 16:36:15Z krasznaa $ 00003 #ifndef ASGANALYSISINTERFACES_IEFFICIENCYSCALEFACTORTOOL_H 00004 #define ASGANALYSISINTERFACES_IEFFICIENCYSCALEFACTORTOOL_H 00005 00006 // ASG include(s): 00007 #include "PATInterfaces/ISystematicsTool.h" 00008 #include "PATInterfaces/CorrectionCode.h" 00009 00010 // Forward declaration(s): 00011 namespace xAOD { 00012 class IParticle; 00013 } 00014 00016 namespace CP { 00017 00046 class IEfficiencyScaleFactorTool : virtual public ISystematicsTool { 00047 00048 // Declare the interface of the tool 00049 ASG_TOOL_INTERFACE( CP::IEfficiencyScaleFactorTool ) 00050 00051 public: 00053 virtual ~IEfficiencyScaleFactorTool() = default; 00054 00068 virtual CorrectionCode getEfficiencyScaleFactor( const xAOD::IParticle& p, 00069 double& sf ) const = 0; 00070 00084 virtual CorrectionCode 00085 applyEfficiencyScaleFactor( const xAOD::IParticle& p ) const = 0; 00086 00087 }; // class IEfficiencyScaleFactorTool 00088 00089 } // namespace CP 00090 00091 #endif // ASGANALYSISINTERFACES_IEFFICIENCYSCALEFACTORTOOL_H