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