ra4_stats  0341147a0dc35f80f4e12c6003afb76a38e2ed6e
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
WorkspaceGenerator Class Reference

#include <workspace_generator.hpp>

Public Types

enum  PrintLevel { PrintLevel::silent, PrintLevel::important, PrintLevel::normal, PrintLevel::everything }
 

Public Member Functions

 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.)
 
void WriteToFile (const std::string &file_name)
 
double GetLuminosity () const
 
WorkspaceGeneratorSetLuminosity (double luminosity)
 
bool GetDoSystematics () const
 
WorkspaceGeneratorSetDoSystematics (bool do_systematics)
 
bool GetDoDilepton () const
 
WorkspaceGeneratorSetDoDilepton (bool do_systematics)
 
PrintLevel GetPrintLevel () const
 
WorkspaceGeneratorSetPrintLevel (PrintLevel print_level)
 
bool GetKappaCorrected () const
 
WorkspaceGeneratorSetKappaCorrected (bool do_kappa_correction)
 
double GetRMax () const
 
WorkspaceGeneratorSetRMax (double rmax)
 
bool UseGausApprox () const
 
WorkspaceGeneratorUseGausApprox (bool use_gaus_approx)
 
GammaParams GetYield (const YieldKey &key) const
 
GammaParams GetYield (const Bin &bin, const Process &process, const Cut &cut) const
 
GammaParams GetYield (const Bin &bin, const Process &process) const
 
size_t AddToys (size_t num_toys=0)
 
const ProcessGetInjectionModel () const
 
WorkspaceGeneratorSetInjectionModel (const Process &injection)
 
bool GetDefaultInjectionModel () const
 
WorkspaceGeneratorSetDefaultInjectionModel ()
 

Private Member Functions

void SetupToys (const RooArgSet &obs)
 
void GenerateToys (RooArgSet &obs)
 
void ResetToys (RooArgSet &obs)
 
void UpdateWorkspace ()
 
void AddPOI ()
 
void ReadSystematicsFile ()
 
void AddDileptonSystematic ()
 
bool NeedsDileptonBin (const Bin &bin) const
 
void MakeDileptonBin (const Bin &bin, Bin &dilep_bin, Cut &dilep_cut) const
 
void AddSystematicsGenerators ()
 
void AddSystematicGenerator (const std::string &name)
 
void AddData (const Block &block)
 
void AddBackgroundFractions (const Block &block)
 
void AddABCDParameters (const Block &block)
 
void AddRawBackgroundPredictions (const Block &block)
 
void AddKappas (const Block &block)
 
void AddMCYields (const Block &block)
 
void AddMCPdfs (const Block &block)
 
void AddMCProcessSums (const Block &block)
 
void AddMCRowSums (const Block &block)
 
void AddMCColSums (const Block &block)
 
void AddMCTotal (const Block &block)
 
void AddMCPrediction (const Block &block)
 
void AddMCKappa (const Block &block)
 
void AddFullBackgroundPredictions (const Block &block)
 
void AddSignalPredictions (const Block &block)
 
void AddPdfs (const Block &block)
 
void AddDebug (const Block &block)
 
void AddDummyNuisance ()
 
void AddFullPdf ()
 
void AddParameterSets ()
 
void DefineParameterSet (const std::string &cat_name, const std::set< std::string > &var_names)
 
void AddModels ()
 
void AddPoisson (const std::string &pdf_name, const std::string &n_name, const std::string &mu_name, bool allow_approx)
 
void PrintComparison (std::ostream &stream, const Bin &bin, const Process &process, const Block &block) const
 

Static Private Member Functions

static std::mt19937_64 InitializePRNG ()
 
static int GetPoisson (double rate)
 
static void CleanLine (std::string &line)
 

Private Attributes

Cut baseline_
 
std::set< Processbackgrounds_
 
Process signal_
 
Process data_
 
Process injection_
 
bool inject_other_signal_
 
std::set< Blockblocks_
 
std::map< std::string, double > obs_vals_
 
std::map< std::string, std::poisson_distribution<> > obs_gens_
 
std::string systematics_file_
 
bool use_r4_
 
double sig_strength_
 
double sig_xsec_f_
 
double rmax_
 
RooWorkspace w_
 
std::set< std::string > poi_
 
std::set< std::string > observables_
 
std::set< std::string > glob_observables_
 
std::set< std::string > nuisances_
 
std::set< std::string > systematics_
 
std::set< FreeSystematicfree_systematics_
 
double luminosity_
 
PrintLevel print_level_
 
bool do_systematics_
 
bool do_dilepton_
 
bool do_mc_kappa_correction_
 
size_t num_toys_
 
bool gaus_approx_
 
bool w_is_valid_
 

Static Private Attributes

static YieldManager yields_ = YieldManager(4.)
 
static std::mt19937_64 prng_ = WorkspaceGenerator::InitializePRNG()
 
static std::poisson_distribution dist_
 

Friends

std::ostream & operator<< (std::ostream &stream, const WorkspaceGenerator &wg)
 

Detailed Description

Definition at line 21 of file workspace_generator.hpp.

Member Enumeration Documentation

Enumerator
silent 
important 
normal 
everything 

Definition at line 33 of file workspace_generator.hpp.

Constructor & Destructor Documentation

WorkspaceGenerator::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. 
)

Definition at line 27 of file workspace_generator.cpp.

References w_.

Member Function Documentation

void WorkspaceGenerator::AddABCDParameters ( const Block block)
private
void WorkspaceGenerator::AddBackgroundFractions ( const Block block)
private

Definition at line 623 of file workspace_generator.cpp.

References backgrounds_, Block::Bins(), DBG, everything, Block::Name(), print_level_, and w_.

Referenced by UpdateWorkspace().

void WorkspaceGenerator::AddData ( const Block block)
private
void WorkspaceGenerator::AddDebug ( const Block block)
private

Definition at line 986 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), print_level_, and w_.

Referenced by UpdateWorkspace().

void WorkspaceGenerator::AddDileptonSystematic ( )
private
void WorkspaceGenerator::AddDummyNuisance ( )
private

Definition at line 1001 of file workspace_generator.cpp.

References Append(), nuisances_, and w_.

void WorkspaceGenerator::AddFullBackgroundPredictions ( const Block block)
private
void WorkspaceGenerator::AddFullPdf ( )
private

Definition at line 1006 of file workspace_generator.cpp.

References blocks_, DBG, do_dilepton_, do_systematics_, everything, print_level_, systematics_, and w_.

Referenced by UpdateWorkspace().

void WorkspaceGenerator::AddKappas ( const Block block)
private
void WorkspaceGenerator::AddMCColSums ( const Block block)
private

Definition at line 839 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), print_level_, and w_.

Referenced by AddKappas().

void WorkspaceGenerator::AddMCKappa ( const Block block)
private

Definition at line 887 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), Bin::Name(), print_level_, and w_.

Referenced by AddKappas().

void WorkspaceGenerator::AddMCPdfs ( const Block block)
private
void WorkspaceGenerator::AddMCPrediction ( const Block block)
private

Definition at line 872 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), Bin::Name(), print_level_, and w_.

Referenced by AddKappas().

void WorkspaceGenerator::AddMCProcessSums ( const Block block)
private
void WorkspaceGenerator::AddMCRowSums ( const Block block)
private

Definition at line 824 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), print_level_, and w_.

Referenced by AddKappas().

void WorkspaceGenerator::AddMCTotal ( const Block block)
private

Definition at line 858 of file workspace_generator.cpp.

References Block::Bins(), DBG, everything, Block::Name(), print_level_, and w_.

Referenced by AddKappas().

void WorkspaceGenerator::AddMCYields ( const Block block)
private
void WorkspaceGenerator::AddModels ( )
private

Definition at line 1057 of file workspace_generator.cpp.

References DBG, everything, print_level_, and w_.

Referenced by UpdateWorkspace().

void WorkspaceGenerator::AddParameterSets ( )
private
void WorkspaceGenerator::AddPdfs ( const Block block)
private
void WorkspaceGenerator::AddPOI ( )
private

Definition at line 323 of file workspace_generator.cpp.

References Append(), DBG, everything, poi_, print_level_, rmax_, and w_.

Referenced by UpdateWorkspace().

void WorkspaceGenerator::AddPoisson ( const std::string &  pdf_name,
const std::string &  n_name,
const std::string &  mu_name,
bool  allow_approx 
)
private

Definition at line 1077 of file workspace_generator.cpp.

References w_.

Referenced by AddMCPdfs(), and AddPdfs().

void WorkspaceGenerator::AddRawBackgroundPredictions ( const Block block)
private
void WorkspaceGenerator::AddSignalPredictions ( const Block block)
private
void WorkspaceGenerator::AddSystematicGenerator ( const std::string &  name)
private
void WorkspaceGenerator::AddSystematicsGenerators ( )
private
size_t WorkspaceGenerator::AddToys ( size_t  num_toys = 0)
void WorkspaceGenerator::CleanLine ( std::string &  line)
staticprivate

Definition at line 430 of file workspace_generator.cpp.

References ReplaceAll().

Referenced by ReadSystematicsFile().

void WorkspaceGenerator::DefineParameterSet ( const std::string &  cat_name,
const std::set< std::string > &  var_names 
)
private

Definition at line 1042 of file workspace_generator.cpp.

References DBG, everything, scan_aggregate::name, print_level_, and w_.

Referenced by AddParameterSets().

void WorkspaceGenerator::GenerateToys ( RooArgSet &  obs)
private

Definition at line 238 of file workspace_generator.cpp.

References Contains(), DBG, ERROR, everything, scan_aggregate::name, obs_gens_, print_level_, and prng_.

Referenced by AddToys().

bool WorkspaceGenerator::GetDefaultInjectionModel ( ) const

Definition at line 211 of file workspace_generator.cpp.

References inject_other_signal_.

bool WorkspaceGenerator::GetDoDilepton ( ) const

Definition at line 106 of file workspace_generator.cpp.

References do_dilepton_.

bool WorkspaceGenerator::GetDoSystematics ( ) const

Definition at line 94 of file workspace_generator.cpp.

References do_systematics_.

const Process & WorkspaceGenerator::GetInjectionModel ( ) const

Definition at line 197 of file workspace_generator.cpp.

References inject_other_signal_, injection_, and signal_.

bool WorkspaceGenerator::GetKappaCorrected ( ) const

Definition at line 127 of file workspace_generator.cpp.

References do_mc_kappa_correction_.

double WorkspaceGenerator::GetLuminosity ( ) const

Definition at line 82 of file workspace_generator.cpp.

References luminosity_.

int WorkspaceGenerator::GetPoisson ( double  rate)
staticprivate

Definition at line 275 of file workspace_generator.cpp.

References dist_, and prng_.

WorkspaceGenerator::PrintLevel WorkspaceGenerator::GetPrintLevel ( ) const

Definition at line 118 of file workspace_generator.cpp.

References print_level_.

double WorkspaceGenerator::GetRMax ( ) const

Definition at line 139 of file workspace_generator.cpp.

References rmax_.

GammaParams WorkspaceGenerator::GetYield ( const YieldKey key) const
GammaParams WorkspaceGenerator::GetYield ( const Bin bin,
const Process process,
const Cut cut 
) const

Definition at line 165 of file workspace_generator.cpp.

References GetYield().

GammaParams WorkspaceGenerator::GetYield ( const Bin bin,
const Process process 
) const

Definition at line 171 of file workspace_generator.cpp.

References baseline_, and GetYield().

mt19937_64 WorkspaceGenerator::InitializePRNG ( )
staticprivate

Definition at line 267 of file workspace_generator.cpp.

void WorkspaceGenerator::MakeDileptonBin ( const Bin bin,
Bin dilep_bin,
Cut dilep_cut 
) const
private
bool WorkspaceGenerator::NeedsDileptonBin ( const Bin bin) const
private

Definition at line 480 of file workspace_generator.cpp.

References baseline_, Contains(), Bin::Cut(), DBG, everything, and print_level_.

Referenced by AddDileptonSystematic().

void WorkspaceGenerator::PrintComparison ( std::ostream &  stream,
const Bin bin,
const Process process,
const Block block 
) const
private
void WorkspaceGenerator::ReadSystematicsFile ( )
private
void WorkspaceGenerator::ResetToys ( RooArgSet &  obs)
private

Definition at line 252 of file workspace_generator.cpp.

References Contains(), DBG, ERROR, everything, scan_aggregate::name, obs_vals_, and print_level_.

Referenced by AddToys().

WorkspaceGenerator & WorkspaceGenerator::SetDefaultInjectionModel ( )

Definition at line 215 of file workspace_generator.cpp.

References inject_other_signal_.

WorkspaceGenerator & WorkspaceGenerator::SetDoDilepton ( bool  do_systematics)

Definition at line 110 of file workspace_generator.cpp.

References do_dilepton_, and w_is_valid_.

Referenced by main().

WorkspaceGenerator & WorkspaceGenerator::SetDoSystematics ( bool  do_systematics)
WorkspaceGenerator & WorkspaceGenerator::SetInjectionModel ( const Process injection)

Definition at line 205 of file workspace_generator.cpp.

References inject_other_signal_, and injection_.

Referenced by main().

WorkspaceGenerator & WorkspaceGenerator::SetKappaCorrected ( bool  do_kappa_correction)

Definition at line 131 of file workspace_generator.cpp.

References do_mc_kappa_correction_, and w_is_valid_.

Referenced by main().

WorkspaceGenerator & WorkspaceGenerator::SetLuminosity ( double  luminosity)

Definition at line 86 of file workspace_generator.cpp.

References luminosity_, and w_is_valid_.

Referenced by main().

WorkspaceGenerator & WorkspaceGenerator::SetPrintLevel ( WorkspaceGenerator::PrintLevel  print_level)

Definition at line 122 of file workspace_generator.cpp.

References print_level_.

WorkspaceGenerator & WorkspaceGenerator::SetRMax ( double  rmax)

Definition at line 143 of file workspace_generator.cpp.

References change_r::rmax, rmax_, and w_is_valid_.

Referenced by main().

void WorkspaceGenerator::SetupToys ( const RooArgSet &  obs)
private

Definition at line 220 of file workspace_generator.cpp.

References Contains(), DBG, ERROR, everything, scan_aggregate::name, obs_gens_, obs_vals_, and print_level_.

Referenced by AddToys().

void WorkspaceGenerator::UpdateWorkspace ( )
private
bool WorkspaceGenerator::UseGausApprox ( ) const

Definition at line 151 of file workspace_generator.cpp.

References gaus_approx_.

Referenced by main().

WorkspaceGenerator & WorkspaceGenerator::UseGausApprox ( bool  use_gaus_approx)

Definition at line 155 of file workspace_generator.cpp.

References gaus_approx_.

void WorkspaceGenerator::WriteToFile ( const std::string &  file_name)

Definition at line 66 of file workspace_generator.cpp.

References DBG, everything, important, normal, print_level_, UpdateWorkspace(), w_, and w_is_valid_.

Referenced by main().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  stream,
const WorkspaceGenerator wg 
)
friend

Definition at line 1096 of file workspace_generator.cpp.

Member Data Documentation

std::set<Process> WorkspaceGenerator::backgrounds_
private
Cut WorkspaceGenerator::baseline_
private
std::set<Block> WorkspaceGenerator::blocks_
private
Process WorkspaceGenerator::data_
private

Definition at line 77 of file workspace_generator.hpp.

Referenced by AddData(), AddDileptonSystematic(), and operator<<().

poisson_distribution WorkspaceGenerator::dist_
staticprivate

Definition at line 101 of file workspace_generator.hpp.

Referenced by GetPoisson().

bool WorkspaceGenerator::do_dilepton_
private

Definition at line 93 of file workspace_generator.hpp.

Referenced by AddFullPdf(), GetDoDilepton(), SetDoDilepton(), and UpdateWorkspace().

bool WorkspaceGenerator::do_mc_kappa_correction_
private
bool WorkspaceGenerator::do_systematics_
private
std::set<FreeSystematic> WorkspaceGenerator::free_systematics_
private
bool WorkspaceGenerator::gaus_approx_
private

Definition at line 96 of file workspace_generator.hpp.

Referenced by AddMCPdfs(), and UseGausApprox().

std::set<std::string> WorkspaceGenerator::glob_observables_
private

Definition at line 88 of file workspace_generator.hpp.

Referenced by AddMCYields(), AddParameterSets(), and AddSystematicGenerator().

bool WorkspaceGenerator::inject_other_signal_
private
Process WorkspaceGenerator::injection_
private

Definition at line 78 of file workspace_generator.hpp.

Referenced by AddData(), GetInjectionModel(), and SetInjectionModel().

double WorkspaceGenerator::luminosity_
private

Definition at line 90 of file workspace_generator.hpp.

Referenced by GetLuminosity(), GetYield(), and SetLuminosity().

std::set<std::string> WorkspaceGenerator::nuisances_
private
size_t WorkspaceGenerator::num_toys_
private

Definition at line 95 of file workspace_generator.hpp.

Referenced by AddToys().

std::map<std::string, std::poisson_distribution<> > WorkspaceGenerator::obs_gens_
private

Definition at line 82 of file workspace_generator.hpp.

Referenced by GenerateToys(), and SetupToys().

std::map<std::string, double> WorkspaceGenerator::obs_vals_
private

Definition at line 81 of file workspace_generator.hpp.

Referenced by ResetToys(), and SetupToys().

std::set<std::string> WorkspaceGenerator::observables_
private

Definition at line 88 of file workspace_generator.hpp.

Referenced by AddData(), and AddParameterSets().

std::set<std::string> WorkspaceGenerator::poi_
private

Definition at line 88 of file workspace_generator.hpp.

Referenced by AddParameterSets(), and AddPOI().

PrintLevel WorkspaceGenerator::print_level_
private
mt19937_64 WorkspaceGenerator::prng_ = WorkspaceGenerator::InitializePRNG()
staticprivate

Definition at line 100 of file workspace_generator.hpp.

Referenced by GenerateToys(), and GetPoisson().

double WorkspaceGenerator::rmax_
private

Definition at line 86 of file workspace_generator.hpp.

Referenced by AddPOI(), GetRMax(), and SetRMax().

double WorkspaceGenerator::sig_strength_
private

Definition at line 85 of file workspace_generator.hpp.

Referenced by AddData().

double WorkspaceGenerator::sig_xsec_f_
private

Definition at line 85 of file workspace_generator.hpp.

Referenced by AddMCYields().

Process WorkspaceGenerator::signal_
private
std::set<std::string> WorkspaceGenerator::systematics_
private

Definition at line 88 of file workspace_generator.hpp.

Referenced by AddFullPdf(), and AddSystematicGenerator().

std::string WorkspaceGenerator::systematics_file_
private

Definition at line 83 of file workspace_generator.hpp.

Referenced by ReadSystematicsFile().

bool WorkspaceGenerator::use_r4_
private

Definition at line 84 of file workspace_generator.hpp.

Referenced by AddData(), and AddPdfs().

RooWorkspace WorkspaceGenerator::w_
private
bool WorkspaceGenerator::w_is_valid_
mutableprivate
YieldManager WorkspaceGenerator::yields_ = YieldManager(4.)
staticprivate

The documentation for this class was generated from the following files: