00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: ISystematicsTool.h 676499 2015-06-18 20:13:50Z sfarrell $ 00003 #ifndef PATINTERFACES_ISYSTEMATICSTOOL_H 00004 #define PATINTERFACES_ISYSTEMATICSTOOL_H 00005 00006 // Copyright Iowa State University 2014. 00007 // Author: Nils Krumnack 00008 // Distributed under the Boost Software License, Version 1.0. 00009 // (See accompanying file LICENSE_1_0.txt or copy at 00010 // http://www.boost.org/LICENSE_1_0.txt) 00011 00012 // System include(s): 00013 00014 // Framework include(s): 00015 #include "AsgTools/IAsgTool.h" 00016 00017 // Local include(s): 00018 #include "PATInterfaces/SystematicCode.h" 00019 #include "PATInterfaces/SystematicVariation.h" 00020 #include "PATInterfaces/SystematicSet.h" 00021 00022 namespace CP { 00023 00036 class ISystematicsTool : public virtual asg::IAsgTool { 00037 00039 ASG_TOOL_INTERFACE( CP::ISystematicsTool ) 00040 00041 public: 00042 00044 virtual ~ISystematicsTool(){}; 00045 00047 virtual bool 00048 isAffectedBySystematic( const SystematicVariation& systematic ) const = 0; 00049 00051 virtual SystematicSet 00052 affectingSystematics() const = 0; 00053 00055 virtual SystematicSet 00056 recommendedSystematics() const = 0; 00057 00071 virtual SystematicCode applySystematicVariation 00072 ( const SystematicSet& systConfig ) = 0; 00073 00074 }; // class ISystematicsTool 00075 00076 } // namespace CP 00077 00078 #endif // PATINTERFACES_ISYSTEMATICSTOOL_H