00001 
00002 #ifndef PMGTOOLS_IPMGSHERPAVJETSSYSTOOL_H
00003 #define PMGTOOLS_IPMGSHERPAVJETSSYSTOOL_H
00004 
00005 
00006 #include "AsgTools/IAsgTool.h"
00007 
00008 
00009 
00010 
00011 
00012 #include "PATInterfaces/CorrectionCode.h"
00013 
00014 
00015 namespace PMGTools {
00016   
00017   
00018   enum SysParType {
00019     None = 0,
00020     Znunu,
00021     Zll,
00022     Wlnu,
00023     GammaJets
00024   };
00025     
00026   class IPMGSherpaVjetsSysTool : public virtual asg::IAsgTool { 
00027     
00028     
00029     ASG_TOOL_INTERFACE( PMGTools::IPMGSherpaVjetsSysTool )
00030     
00031     public:
00032     
00034     virtual double getWeight(std::string sysVariation = "nom") = 0;
00035         
00037     virtual void setNjets(int njets) = 0;
00038     virtual void cacheDSID(bool do_it=true) = 0;
00039     
00041     virtual std::vector<std::string> getSupportedVariations(SysParType ptype) = 0;
00042     
00044     virtual unsigned int getNtruthJets() = 0;  
00045     
00046   }; 
00047   
00048 } 
00049 
00050 #endif //> !PMGTOOLS_IPMGSHERPAVJETSSYSTOOL_H