a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
ModelFactory Class Reference

A class for. More...

#include <ModelFactory.h>

Detailed Description

A class for.

Author
HEPfit Collaboration
Examples
EventGeneration.cpp, libmode_config.cpp, libmode_header.cpp, MCMC.cpp, and myModel_MCMC.cpp.

Definition at line 25 of file ModelFactory.h.

Public Member Functions

void addModelToFactory (const std::string name, boost::function< StandardModel *() >)
 
StandardModelCreateModel (const std::string &ModelName)
 
 ModelFactory ()
 
 ModelFactory (const ModelFactory &orig)
 
virtual ~ModelFactory ()
 

Private Attributes

std::map< std::string, boost::function< StandardModel *()> > modelFactory
 

Constructor & Destructor Documentation

◆ ModelFactory() [1/2]

ModelFactory::ModelFactory ( )

Definition at line 36 of file ModelFactory.cpp.

37 {
38  modelFactory["StandardModel"] = boost::factory<StandardModel*>();
39  modelFactory["NPSTU"] = boost::factory<NPSTU*>();
40  modelFactory["NPSTUZbbbarLR"] = boost::factory<NPSTUZbbbarLR*>();
41  modelFactory["NPEpsilons"] = boost::factory<NPEpsilons*>();
42  modelFactory["NPEpsilons_pureNP"] = boost::factory<NPEpsilons_pureNP*>();
43  modelFactory["NPZbbbar"] = boost::bind(boost::factory<NPZbbbar*>(), false);
44  modelFactory["NPZbbbarLR"] = boost::bind(boost::factory<NPZbbbar*>(), true);
45  modelFactory["NPZbbbarLinearized"] = boost::bind(boost::factory<NPZbbbarLinearized*>(), false);
46  modelFactory["NPZbbbarLinearizedLR"] = boost::bind(boost::factory<NPZbbbarLinearized*>(), true);
47  modelFactory["NPSMEFTd6"] = boost::bind(boost::factory<NPSMEFTd6*>(), false, false);
48  modelFactory["NPSMEFT6dtopquark"] = boost::factory<NPSMEFT6dtopquark*>();
49  modelFactory["NPSMEFTd6_LFU_QFU"] = boost::bind(boost::factory<NPSMEFTd6*>(), true, true);
50  modelFactory["HiggsKvKf"] = boost::factory<HiggsKvKf*>();
51  modelFactory["HiggsKvKfgen"] = boost::factory<HiggsKvKfgen*>();
52  modelFactory["HiggsKvgenKfgen"] = boost::factory<HiggsKvgenKfgen*>();
53  modelFactory["HiggsKigen"] = boost::factory<HiggsKigen*>();
54  modelFactory["HiggsChiral"] = boost::factory<HiggsChiral*>();
55  modelFactory["NPDF2"] = boost::factory<NPDF2*>();
56  modelFactory["CMFV"] = boost::factory<CMFV*>();
57  modelFactory["FlavourWilsonCoefficient"] = boost::factory<FlavourWilsonCoefficient*>();
58  modelFactory["FlavourWilsonCoefficient_DF2"] = boost::factory<FlavourWilsonCoefficient_DF2*>();
59  modelFactory["RealWeakEFTLFV"] = boost::factory<RealWeakEFTLFV*>();
60  modelFactory["RealWeakEFTCC"] = boost::bind(boost::factory<RealWeakEFTCC*>(), 0);
61  modelFactory["RealWeakEFTCCPM"] = boost::bind(boost::factory<RealWeakEFTCC*>(), 1);
62  modelFactory["THDM"] = boost::factory<THDM*>();
63  modelFactory["GeorgiMachacek"] = boost::factory<GeorgiMachacek*>();
64  modelFactory["GeneralSUSY"] = boost::factory<GeneralSUSY*>();
65  modelFactory["GeneralTHDM"] = boost::factory<GeneralTHDM*>();
66  modelFactory["THDMW"] = boost::factory<THDMW*>();
67 }

◆ ModelFactory() [2/2]

ModelFactory::ModelFactory ( const ModelFactory orig)

◆ ~ModelFactory()

virtual ModelFactory::~ModelFactory ( )
inlinevirtual

Definition at line 29 of file ModelFactory.h.

29 {};

Member Function Documentation

◆ addModelToFactory()

void ModelFactory::addModelToFactory ( const std::string  name,
boost::function< StandardModel *() >  funct 
)
Examples
myModel_MCMC.cpp.

Definition at line 69 of file ModelFactory.cpp.

70 {
71  modelFactory[name] = funct;
72 }

◆ CreateModel()

StandardModel * ModelFactory::CreateModel ( const std::string &  ModelName)

Definition at line 74 of file ModelFactory.cpp.

75 {
76  if (modelFactory.find(name) == modelFactory.end())
77  throw std::runtime_error("ERROR: Wrong model " + name + " passed to ModelFactory.\n");
78  return (modelFactory[name]());
79 }

Member Data Documentation

◆ modelFactory

std::map<std::string, boost::function<StandardModel* ()> > ModelFactory::modelFactory
private

Definition at line 35 of file ModelFactory.h.


The documentation for this class was generated from the following files:
ModelFactory::modelFactory
std::map< std::string, boost::function< StandardModel *()> > modelFactory
Definition: ModelFactory.h:35