00001 #ifndef JETCPINTERFACES_ICPJETUNCERTAINTIESTOOL_H 00002 #define JETCPINTERFACES_ICPJETUNCERTAINTIESTOOL_H 00003 00004 #include "JetInterface/IJetUncertaintiesTool.h" 00005 00006 #include "PATInterfaces/ISystematicsTool.h" 00007 #include "PATInterfaces/CorrectionCode.h" 00008 00009 class ICPJetUncertaintiesTool : virtual public IJetUncertaintiesTool, 00010 virtual public CP::ISystematicsTool 00011 { 00012 // Interface declaration 00013 ASG_TOOL_INTERFACE(ICPJetUncertaintiesTool) 00014 00015 public: 00016 ICPJetUncertaintiesTool& operator=( ICPJetUncertaintiesTool&& ) { return *this; } 00017 00018 // Apply a systematic variation or get a new copy 00019 virtual CP::CorrectionCode applyCorrection(xAOD::Jet& input) const = 0; 00020 virtual CP::CorrectionCode applyCorrection(xAOD::Jet& input, const xAOD::EventInfo& eInfo) const = 0; 00021 virtual CP::CorrectionCode correctedCopy(const xAOD::Jet& input, xAOD::Jet*& output) const = 0; 00022 virtual CP::CorrectionCode correctedCopy(const xAOD::Jet& input, xAOD::Jet*& output, const xAOD::EventInfo& eInfo) const = 0; 00023 virtual CP::CorrectionCode applyContainerCorrection(xAOD::JetContainer& inputs) const = 0; 00024 virtual CP::CorrectionCode applyContainerCorrection(xAOD::JetContainer& inputs, const xAOD::EventInfo& eInfo) const = 0; 00025 00026 }; 00027 00028 #endif 00029