Go to the documentation of this file.00001 #ifndef HiggsAnalysis_CombinedLimit_MaxLikelihoodFit_h
00002 #define HiggsAnalysis_CombinedLimit_MaxLikelihoodFit_h
00003
00011 #include "../interface/FitterAlgoBase.h"
00012 #include "TTree.h"
00013 class MaxLikelihoodFit : public FitterAlgoBase {
00014 public:
00015 MaxLikelihoodFit() ;
00016 virtual const std::string & name() const {
00017 static const std::string name("MaxLikelihoodFit");
00018 return name;
00019 }
00020 ~MaxLikelihoodFit();
00021 virtual void applyOptions(const boost::program_options::variables_map &vm) ;
00022 virtual void setToyNumber(const int) ;
00023 virtual void setNToys(const int);
00024
00025 protected:
00026 virtual bool runSpecific(RooWorkspace *w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &data, double &limit, double &limitErr, const double *hint);
00027
00028 static std::string name_;
00029
00030 static std::string minos_;
00031
00032 static bool justFit_, noErrors_;
00033 static std::string out_;
00034 static bool makePlots_;
00035 static float rebinFactor_;
00036 static std::string signalPdfNames_, backgroundPdfNames_;
00037 static bool saveNormalizations_;
00038 static bool reuseParams_;
00039 int currentToy_, nToys;
00040 int fitStatus_, numbadnll_;
00041 double mu_, nll_nll0_, nll_bonly_,nll_sb_;
00042 std::auto_ptr<TFile> fitOut;
00043 double* globalObservables_;
00044 double* nuisanceParameters_;
00045
00046 TTree *t_fit_b_, *t_fit_sb_;
00047
00048 void getNormalizations(RooAbsPdf *pdf, const RooArgSet &obs, RooArgSet &out);
00049 void createFitResultTrees(const RooStats::ModelConfig &);
00050 void setFitResultTrees(const RooArgSet *, double *);
00051 };
00052
00053
00054 #endif