1 #ifndef H_WORKSPACE_GENERATOR 2 #define H_WORKSPACE_GENERATOR 10 #include "RooWorkspace.h" 24 const std::set<Block> &blocks,
25 const std::set<Process> &backgrounds,
28 const std::string &systematics_file =
"",
31 const double sig_xsec_f = 1.);
61 const Cut &cut)
const;
65 size_t AddToys(
size_t num_toys = 0);
82 std::map<std::string, std::poisson_distribution<> >
obs_gens_;
101 static std::poisson_distribution<>
dist_;
112 static void CleanLine(std::string &line);
142 const std::string &n_name,
143 const std::string &mu_name,
WorkspaceGenerator & SetLuminosity(double luminosity)
void SetupToys(const RooArgSet &obs)
std::set< std::string > observables_
void AddFullBackgroundPredictions(const Block &block)
WorkspaceGenerator(const Cut &baseline, const std::set< Block > &blocks, const std::set< Process > &backgrounds, const Process &signal, const Process &data, const std::string &systematics_file="", const bool use_r4=true, const double sig_strength=0., const double sig_xsec_f=1.)
bool inject_other_signal_
WorkspaceGenerator & SetRMax(double rmax)
std::set< std::string > poi_
void AddRawBackgroundPredictions(const Block &block)
WorkspaceGenerator & SetDoSystematics(bool do_systematics)
void AddMCTotal(const Block &block)
std::set< std::string > nuisances_
WorkspaceGenerator & SetInjectionModel(const Process &injection)
void MakeDileptonBin(const Bin &bin, Bin &dilep_bin, Cut &dilep_cut) const
std::string systematics_file_
bool UseGausApprox() const
void AddMCRowSums(const Block &block)
static void CleanLine(std::string &line)
bool GetDefaultInjectionModel() const
bool GetDoSystematics() const
friend std::ostream & operator<<(std::ostream &stream, const WorkspaceGenerator &wg)
std::map< std::string, std::poisson_distribution<> > obs_gens_
static std::mt19937_64 prng_
void AddKappas(const Block &block)
void AddMCPrediction(const Block &block)
void AddMCKappa(const Block &block)
std::map< std::string, double > obs_vals_
std::tuple< Bin, Process, Cut > YieldKey
WorkspaceGenerator & SetKappaCorrected(bool do_kappa_correction)
void AddSignalPredictions(const Block &block)
void AddSystematicGenerator(const std::string &name)
std::set< std::string > systematics_
WorkspaceGenerator & SetDoDilepton(bool do_systematics)
void AddABCDParameters(const Block &block)
void AddMCColSums(const Block &block)
void WriteToFile(const std::string &file_name)
void AddMCYields(const Block &block)
bool NeedsDileptonBin(const Bin &bin) const
static int GetPoisson(double rate)
std::set< std::string > glob_observables_
void DefineParameterSet(const std::string &cat_name, const std::set< std::string > &var_names)
void ReadSystematicsFile()
static std::poisson_distribution dist_
static YieldManager yields_
std::set< Block > blocks_
std::set< FreeSystematic > free_systematics_
void AddPdfs(const Block &block)
void GenerateToys(RooArgSet &obs)
GammaParams GetYield(const YieldKey &key) const
void AddSystematicsGenerators()
const Process & GetInjectionModel() const
void PrintComparison(std::ostream &stream, const Bin &bin, const Process &process, const Block &block) const
bool do_mc_kappa_correction_
void ResetToys(RooArgSet &obs)
void AddData(const Block &block)
void AddMCPdfs(const Block &block)
std::set< Process > backgrounds_
PrintLevel GetPrintLevel() const
WorkspaceGenerator & SetDefaultInjectionModel()
void AddDileptonSystematic()
void AddMCProcessSums(const Block &block)
void AddBackgroundFractions(const Block &block)
WorkspaceGenerator & SetPrintLevel(PrintLevel print_level)
bool GetKappaCorrected() const
bool GetDoDilepton() const
void AddDebug(const Block &block)
double GetLuminosity() const
static std::mt19937_64 InitializePRNG()
size_t AddToys(size_t num_toys=0)
void AddPoisson(const std::string &pdf_name, const std::string &n_name, const std::string &mu_name, bool allow_approx)