1 #ifndef HiggsAnalysis_CombinedLimit_MarkovChainMC_h
2 #define HiggsAnalysis_CombinedLimit_MarkovChainMC_h
11 #include "../interface/LimitAlgo.h"
14 namespace RooStats {
class MarkovChain; }
19 virtual void applyOptions(
const boost::program_options::variables_map &vm) ;
20 bool run(RooWorkspace *
w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &
data,
double &
limit,
double &limitErr,
const double *hint);
21 virtual const std::string &
name()
const {
22 static const std::string
name(
"MarkovChainMC");
69 int runOnce(RooWorkspace *w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &data,
double &limit,
double &limitErr,
const double *hint)
const ;
71 RooStats::MarkovChain *
mergeChains(
const RooArgSet &poi,
const std::vector<double> &limits)
const;
72 void readChains(
const RooArgSet &poi, std::vector<double> &limits);
73 void limitFromChain(
double &limit,
double &limitErr,
const RooArgSet &poi, RooStats::MarkovChain &chain,
int burnInSteps=-1 ) ;
74 void limitAndError(
double &limit,
double &limitErr,
const std::vector<double> &limits)
const ;
75 RooStats::MarkovChain *
slimChain(
const RooArgSet &poi,
const RooStats::MarkovChain &chain)
const;
79 int stationarityTest(
const RooStats::MarkovChain &chain,
const RooArgSet &poi,
int nchunks)
const ;
static bool updateProposalParams_
static float cropNSigmas_
static ProposalType proposalType_
void limitFromChain(double &limit, double &limitErr, const RooArgSet &poi, RooStats::MarkovChain &chain, int burnInSteps=-1)
static float proposalHelperWidthRangeDivisor_
static bool adaptiveTruncation_
do adaptive truncated mean
static float proposalHelperUniformFraction_
static float hintSafetyFactor_
Safety factor for hint (integrate up to this number of times the hinted limit)
static bool readChains_
Read chains from file instead of running them.
static float truncatedMeanFraction_
Ignore up to this fraction of results if they're too far from the median.
static unsigned int iterations_
Propose this number of points for the chain.
static bool alwaysStepPoi_
RooStats::MarkovChain * mergeChains(const RooArgSet &poi, const std::vector< double > &limits) const
float mass_
Mass of the Higgs boson (goes into the name of the saved chains)
static float burnInFraction_
Discard these fraction of points.
virtual const std::string & name() const
static std::string proposalTypeName_
static bool adaptiveBurnIn_
Adaptive burn-in (experimental!)
static bool saveChain_
Save Markov Chain in output file.
static int debugProposal_
bool run(RooWorkspace *w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &data, double &limit, double &limitErr, const double *hint)
int stationarityTest(const RooStats::MarkovChain &chain, const RooArgSet &poi, int nchunks) const
note: this is still being developed
void limitAndError(double &limit, double &limitErr, const std::vector< double > &limits) const
int runOnce(RooWorkspace *w, RooStats::ModelConfig *mc_s, RooStats::ModelConfig *mc_b, RooAbsData &data, double &limit, double &limitErr, const double *hint) const
static bool noSlimChain_
Leave all parameters in the markov chain, not just the POI.
RooStats::MarkovChain * slimChain(const RooArgSet &poi, const RooStats::MarkovChain &chain) const
static unsigned int burnInSteps_
Discard these points.
virtual void applyOptions(const boost::program_options::variables_map &vm)
char data[epos_bytes_allocation]
int modelNDF_
Number of degrees of freedom of the problem, approximately.
static unsigned int tries_
compute the limit N times
static unsigned int numberOfBins_
int guessBurnInSteps(const RooStats::MarkovChain &chain) const
static bool mergeChains_
Merge chains instead of averaging limits.
void readChains(const RooArgSet &poi, std::vector< double > &limits)
static unsigned int proposalHelperCacheSize_