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

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 52 of file ModelFactory.cpp.

53{
54 modelFactory["StandardModel"] = boost::factory<StandardModel*>();
55 modelFactory["NPSTU"] = boost::factory<NPSTU*>();
56 modelFactory["NPSTUZbbbarLR"] = boost::factory<NPSTUZbbbarLR*>();
57 modelFactory["NPEpsilons"] = boost::factory<NPEpsilons*>();
58 modelFactory["NPEpsilons_pureNP"] = boost::factory<NPEpsilons_pureNP*>();
59 modelFactory["NPHiggs"] = boost::factory<NPHiggs*>();
60 modelFactory["NPZbbbar"] = bind(boost::factory<NPZbbbar*>(), false);
61 modelFactory["NPZbbbarLR"] = bind(boost::factory<NPZbbbar*>(), true);
62 modelFactory["NPZbbbarLinearized"] = bind(boost::factory<NPZbbbarLinearized*>(), false);
63 modelFactory["NPZbbbarLinearizedLR"] = bind(boost::factory<NPZbbbarLinearized*>(), true);
64 modelFactory["NPSMEFTd6"] = bind(boost::factory<NPSMEFTd6*>(), false, false);
65 modelFactory["NPSMEFTd6General"] = boost::factory<NPSMEFTd6General*>();
66 modelFactory["NPSMEFTd6U2qU1le"] = boost::factory<NPSMEFTd6U2qU1le*>();
67 modelFactory["NPSMEFTd6U2"] = boost::factory<NPSMEFTd6U2*>();
68 modelFactory["NPSMEFTd6U3"] = boost::factory<NPSMEFTd6U3*>();
69
70 modelFactory["NPd6SILH"] = boost::factory<NPd6SILH*>();
71
72 modelFactory["NPSMEFT6dtopquark"] = boost::factory<NPSMEFT6dtopquark*>();
73
74 //modelFactory["NPSMEFT6dtopquark"] = bind(boost::factory<NPSMEFT6dtopquark*>(), false, false);
75 modelFactory["SigmaBR"] = boost::factory<SigmaBR*>();
76 modelFactory["NPSMEFTd6_LFU_QFU"] = bind(boost::factory<NPSMEFTd6*>(), true, true);
77 modelFactory["HiggsKigen"] = boost::factory<HiggsKigen*>();
78 modelFactory["HiggsChiral"] = boost::factory<HiggsChiral*>();
79 modelFactory["NPDF2"] = boost::factory<NPDF2*>();
80 modelFactory["CMFV"] = boost::factory<CMFV*>();
81 modelFactory["FlavourWilsonCoefficient"] = boost::factory<FlavourWilsonCoefficient*>();
82 modelFactory["FlavourWilsonCoefficient_DF2"] = boost::factory<FlavourWilsonCoefficient_DF2*>();
83 modelFactory["RealWeakEFTLFV"] = boost::factory<RealWeakEFTLFV*>();
84 modelFactory["RealWeakEFTCC"] = bind(boost::factory<RealWeakEFTCC*>(), 0);
85 modelFactory["RealWeakEFTCCPM"] = bind(boost::factory<RealWeakEFTCC*>(), 1);
86 modelFactory["LoopMediators"] = boost::factory<LoopMediators*>();
87 modelFactory["SUSYMassInsertion"] = boost::factory<SUSYMassInsertion*>();
88 modelFactory["THDM"] = boost::factory<THDM*>();
89 modelFactory["GeneralSUSY"] = boost::factory<GeneralSUSY*>();
90 modelFactory["GeorgiMachacek"] = boost::factory<GeorgiMachacek*>();
91 modelFactory["LeftRightSymmetricModel"] = boost::factory<LeftRightSymmetricModel*>();
92/* BEGIN: REMOVE FROM THE PACKAGE */
93 modelFactory["MFV"] = boost::factory<MFV*>();
94 modelFactory["pMSSM"] = boost::factory<pMSSM*>();
95 modelFactory["NPSTUVWXY"] = boost::factory<NPSTUVWXY*>();
96 modelFactory["GeneralTHDM"] = boost::factory<GeneralTHDM*>();
97 modelFactory["GeneralTHDMZ2"] = boost::factory<GeneralTHDMZ2*>();
98 modelFactory["THDMW"] = boost::factory<THDMW*>();
99/* END: REMOVE FROM THE PACKAGE */
100}
std::map< std::string, boost::function< StandardModel *()> > modelFactory
Definition: ModelFactory.h:35

◆ 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 
)

Definition at line 102 of file ModelFactory.cpp.

103{
104 modelFactory[name] = funct;
105}

◆ CreateModel()

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

Definition at line 107 of file ModelFactory.cpp.

108{
109 if (modelFactory.find(name) == modelFactory.end())
110 throw std::runtime_error("ERROR: Wrong model " + name + " passed to ModelFactory.\n");
111 return (modelFactory[name]());
112}

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: