master
|
a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models
|
|
A class for providing access to the computation of observables without a Monte Carlo run.
More...
#include <ComputeObservables.h>
A class for providing access to the computation of observables without a Monte Carlo run.
- Author
- HEPfit Collaboration
- Copyright
- GNU General Public License
This class can be used to create an object that takes a map of model parameters that need to be varied in the analysis and passes out a map of the observables that it is told to compute.
- Examples
- libmode_config.cpp, and libmode_header.cpp.
Definition at line 35 of file ComputeObservables.h.
|
| void | addCustomObservableType (const std::string name, boost::function< Observable *() > funct) |
| | A method to add a user defined observable with a user defined likelihood. More...
|
| |
| void | AddObservable (std::string ObsName) |
| | A method to remove an observable from the list of observables. More...
|
| |
| std::map< std::string, double > | compute (std::map< std::string, double > DP) |
| | The method used to compute observables. More...
|
| |
| | ComputeObservables (ModelFactory &ModelF, ThObsFactory &ThObsF, const std::string &ModelConf_i, const int rank_i=0) |
| | Constructor. More...
|
| |
| | ComputeObservables (ModelFactory &ModelF, ThObsFactory &ThObsF, const std::string &ModelName_i, std::map< std::string, double > DPars_i, std::map< std::string, std::string > DFlags_i, const int rank_i=0) |
| | Constructor. More...
|
| |
| StandardModel * | getModel () |
| | A get method return the pointer to the model. More...
|
| |
| std::map< std::string, double > | getObservables () |
| | A method to get the map of observables. More...
|
| |
| std::map< std::string, double > | getParameters () |
| | A method to get the map of parameters. More...
|
| |
| void | RemoveObservable (std::string ObsName) |
| | A method to add an observable to the list of observables. More...
|
| |
| void | setFlags (std::map< std::string, std::string > DFlags_i) |
| | This method sets the necessary flag for the requested model. More...
|
| |
| virtual | ~ComputeObservables () |
| | The default destructor. More...
|
| |
◆ ComputeObservables() [1/2]
| ComputeObservables::ComputeObservables |
( |
ModelFactory & |
ModelF, |
|
|
ThObsFactory & |
ThObsF, |
|
|
const std::string & |
ModelConf_i, |
|
|
const int |
rank_i = 0 |
|
) |
| |
Constructor.
This constructor passes the name of the SomeModel.conf file. It is to be used to compute observables using of a SomeModel.conf file to initialize the mandatory parameters.
- Parameters
-
| [in] | ModelF | |
| [in] | ThObsF | |
| [in] | ModelConf_i | the name of the input configuration file for the model name, |
| [in] | rank_i | the rank of the process in a MPI run (set to 0 for serial run) the model parameters and observables to be calculated |
Definition at line 14 of file ComputeObservables.cpp.
21 std::map<std::string, double> DP;
22 for (std::vector<ModelParameter>::iterator it =
ModPars.begin(); it <
ModPars.end(); it++) {
23 DP[it->getname()] = it->getave();
28 for (boost::ptr_vector<Observable>::iterator it =
Obs.begin(); it <
Obs.end(); it++) {
29 DObs.insert(std::pair<std::string, double> (it->getThname() , 0.));
30 DThObs.insert(std::pair<std::string, ThObservable*> (it->getThname() , it->getTho()));
32 for (std::vector<CorrelatedGaussianObservables>::iterator it1 =
CGO.begin(); it1 <
CGO.end(); it1++) {
33 std::vector<Observable> ObsInCGO = it1->getObs();
34 for (std::vector<Observable>::iterator it2 = ObsInCGO.begin(); it2 < ObsInCGO.end(); it2++) {
35 DObs.insert(std::pair<std::string, double> (it2->getThname() , 0.));
36 DThObs.insert(std::pair<std::string, ThObservable*> (it2->getThname() , it2->getTho()));
43 std::cout <<
"\nPlease set the following parameters in the model configuration files:\n" << std::endl;
45 std::cout <<
"ModelParameter\t" << *it << std::endl;
47 std::cout << std::endl;
50 throw std::runtime_error(
"ERROR: Parameter(s) missing in model initialization.\n");
55 std::cout <<
"\n" << std::endl;
57 std::cout <<
"WARNING: unknown parameter " << *it <<
" not added." << std::endl;
◆ ComputeObservables() [2/2]
| ComputeObservables::ComputeObservables |
( |
ModelFactory & |
ModelF, |
|
|
ThObsFactory & |
ThObsF, |
|
|
const std::string & |
ModelName_i, |
|
|
std::map< std::string, double > |
DPars_i, |
|
|
std::map< std::string, std::string > |
DFlags_i, |
|
|
const int |
rank_i = 0 |
|
) |
| |
Constructor.
This constructor passes the model name and model parameters. It is to be used to compute observables without the use of a SomeModel.conf file.
- Parameters
-
| [in] | ModelF | |
| [in] | ThObsF | |
| [in] | ModelName_i | the name of the model being used |
| [in] | DPars_i | the mandatory parameters of the model being used |
| [in] | rank_i | the rank of the process in a MPI run (set to 0 for serial run) |
Definition at line 61 of file ComputeObservables.cpp.
68 for (std::map<std::string, double>::iterator it = DPars_i.begin(); it != DPars_i.end(); it++) {
75 if (
rank == 0) std::cout <<
"\nModel Initialized: " <<
ModelName << std::endl;
77 throw std::runtime_error(
"\nERROR: " +
ModelName +
" not initialized successfully.\n");
82 std::cout <<
"\nPlease set the following parameters in the model configuration files:\n" << std::endl;
84 std::cout <<
"ModelParameter\t" << *it << std::endl;
86 std::cout << std::endl;
89 throw std::runtime_error(
"\nERROR: " +
ModelName +
" cannot be initialized.\n");
94 std::cout <<
"\n" << std::endl;
96 std::cout <<
"WARNING: unknown parameter " << *it <<
" not added to MCMC" << std::endl;
◆ ~ComputeObservables()
| ComputeObservables::~ComputeObservables |
( |
| ) |
|
|
virtual |
◆ addCustomObservableType()
| void ComputeObservables::addCustomObservableType |
( |
const std::string |
name, |
|
|
boost::function< Observable *() > |
funct |
|
) |
| |
A method to add a user defined observable with a user defined likelihood.
- Parameters
-
| [in] | a | function of the type observable |
Definition at line 153 of file ComputeObservables.cpp.
◆ AddObservable()
| void ComputeObservables::AddObservable |
( |
std::string |
ObsName | ) |
|
◆ compute()
| std::map< std::string, double > ComputeObservables::compute |
( |
std::map< std::string, double > |
DP | ) |
|
The method used to compute observables.
- Parameters
-
| [in] | DP | the map of parameters being varied |
- Examples
- libmode_config.cpp, and libmode_header.cpp.
Definition at line 122 of file ComputeObservables.cpp.
125 for (std::map<std::string, double>::iterator it = DP.begin(); it != DP.end(); it++) {
127 throw std::runtime_error(
"\nERROR: Incorrect parameter name " + it->first +
" passed to ComputeObservable");
131 for (std::map<std::string, double>::iterator it =
DObs.begin(); it !=
DObs.end(); it++) {
132 DObs[it->first] =
DThObs[it->first]->computeThValue();
◆ getModel()
A get method return the pointer to the model.
- Returns
- the pointer to the model
Definition at line 123 of file ComputeObservables.h.
◆ getObservables()
| std::map<std::string, double> ComputeObservables::getObservables |
( |
| ) |
|
|
inline |
◆ getParameters()
| std::map<std::string, double> ComputeObservables::getParameters |
( |
| ) |
|
|
inline |
A method to get the map of parameters.
- Returns
- the map of parameters
Definition at line 108 of file ComputeObservables.h.
◆ RemoveObservable()
| void ComputeObservables::RemoveObservable |
( |
std::string |
ObsName | ) |
|
A method to add an observable to the list of observables.
- Parameters
-
| [in] | ObsName | the name of the observable to be added |
Definition at line 137 of file ComputeObservables.cpp.
139 if(
DObs.find(ObsName) ==
DObs.end())
140 throw std::runtime_error(
"\nERROR: Observable cannot be removed since it has not been added.\n");
143 throw std::runtime_error(
"\nERROR: ThObservable cannot be removed since it has not been added.\n");
◆ setFlags()
| void ComputeObservables::setFlags |
( |
std::map< std::string, std::string > |
DFlags_i | ) |
|
This method sets the necessary flag for the requested model.
- Parameters
-
| [in] | DFlags_i | the flags for the model being used |
- Examples
- libmode_config.cpp.
Definition at line 107 of file ComputeObservables.cpp.
109 for (std::map<std::string, std::string>::iterator it = DFlags_i.begin(); it != DFlags_i.end(); it++) {
110 if (!(boost::iequals(it->second,
"true")) && !(boost::iequals(it->second,
"false")) && !
Mod->
setFlagStr(it->first, it->second)) {
111 throw std::runtime_error(
"ERROR: setFlagStr error for " + it->first);
112 }
else if (boost::iequals(it->second,
"true") && !
Mod->
setFlag(it->first, 1)) {
113 throw std::runtime_error(
"ERROR: setFlag error for " + it->first);
114 }
else if (boost::iequals(it->second,
"false") && !
Mod->
setFlag(it->first, 0)) {
115 throw std::runtime_error(
"ERROR: setFlag error for " + it->first);
117 if (
rank == 0) std::cout <<
"set flag " << it->first <<
" = " << it->second << std::endl;
◆ CGO
◆ CGP
◆ DFlags
| std::map<std::string, std::string> ComputeObservables::DFlags |
|
private |
◆ DObs
| std::map<std::string, double> ComputeObservables::DObs |
|
private |
◆ DPars
| std::map<std::string, double> ComputeObservables::DPars |
|
private |
◆ DThObs
| std::map<std::string, ThObservable*> ComputeObservables::DThObs |
|
private |
◆ Mod
◆ ModelName
| std::string ComputeObservables::ModelName |
|
private |
◆ ModPars
◆ myInputParser
◆ Obs
| boost::ptr_vector<Observable> ComputeObservables::Obs |
|
private |
◆ Obs2D
◆ paraNames
| std::vector<std::string> ComputeObservables::paraNames |
|
private |
◆ rank
| const int ComputeObservables::rank |
|
private |
◆ unknownParameters
| std::vector<std::string> ComputeObservables::unknownParameters |
|
private |
The documentation for this class was generated from the following files:
boost::ptr_vector< Observable > Obs
std::vector< std::string > getmissingModelParameters()
std::string ModelName
Name of the Model to be used.
std::map< std::string, double > DObs
Map of the observables to be computed.
std::map< std::string, double > DPars
Map of the parameters to be passed to Model.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
std::vector< CorrelatedGaussianObservables > CGO
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
void setFlags(std::map< std::string, std::string > DFlags_i)
This method sets the necessary flag for the requested model.
StandardModel * Mod
Pointer to an object of the class StandardModel.
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of StandardModel.
bool IsModelInitialized() const
A method to check if the model is initialized.
const int rank
< Rank of the MPI process. Set to 0 for serial run.
void setModelName(const std::string name)
A method to set the name of the model.
std::vector< Observable2D > Obs2D
virtual bool InitializeModel()
A method to initialize the model.
StandardModel * CreateModel(const std::string &ModelName)
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for StandardModel.
std::vector< CorrelatedGaussianParameters > CGP
std::map< std::string, ThObservable * > DThObs
std::vector< ModelParameter > ModPars
std::vector< std::string > unknownParameters
InputParser myInputParser
An object of the InputParser class.
std::vector< std::string > getUnknownParameters()
A method to get the vector of the parameters that have been specified in the configuration file but n...
ThObservable * CreateThMethod(const std::string &name, StandardModel &model) const
This method checks for the existence of an observable of a specific name in the map thobs and returns...
std::vector< std::string > paraNames
The vector of allowed parameter names.