CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_6/src/HiggsAnalysis/CombinedLimit/interface/LimitAlgo.h

Go to the documentation of this file.
00001 #ifndef HiggsAnalysis_CombinedLimit_LimitAlgo_h
00002 #define HiggsAnalysis_CombinedLimit_LimitAlgo_h
00003 
00011 #include <boost/program_options.hpp>
00012 #include <string>
00013 class RooWorkspace;
00014 class RooAbsData;
00015 namespace RooStats { class ModelConfig; }
00016 
00017 class LimitAlgo {
00018 public:
00019   LimitAlgo() { }
00020   LimitAlgo(const char * desc) : options_(desc) { }
00021   virtual void applyOptions(const boost::program_options::variables_map &vm) { }
00022   virtual void applyDefaultOptions() { }
00023   virtual void setToyNumber(const int) { }
00024   virtual void setNToys(const int) { }
00025   virtual bool run(RooWorkspace *w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &data, double &limit, double &limitErr, const double *hint) = 0;
00026   virtual const std::string & name() const = 0;
00027   const boost::program_options::options_description & options() const {
00028     return options_;
00029   }
00030 protected:
00031   boost::program_options::options_description options_;
00032 };
00033 
00034 #endif