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 24 of file ModelFactory.h.

Public Member Functions

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

Private Attributes

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

Constructor & Destructor Documentation

◆ ModelFactory() [1/2]

ModelFactory::ModelFactory ( )

Definition at line 51 of file ModelFactory.cpp.

52{
53 modelFactory["StandardModel"] = []() -> StandardModel* { return new StandardModel(); };
54 modelFactory["NPSTU"] = []() -> StandardModel* { return new NPSTU(); };
55 modelFactory["NPSTUZbbbarLR"] = []() -> StandardModel* { return new NPSTUZbbbarLR(); };
56 modelFactory["NPEpsilons"] = []() -> StandardModel* { return new NPEpsilons(); };
57 modelFactory["NPEpsilons_pureNP"] = []() -> StandardModel* { return new NPEpsilons_pureNP(); };
58 modelFactory["NPHiggs"] = []() -> StandardModel* { return new NPHiggs(); };
59 modelFactory["NPZbbbar"] = []() -> StandardModel* { return new NPZbbbar(false); };
60 modelFactory["NPZbbbarLR"] = []() -> StandardModel* { return new NPZbbbar(true); };
61 modelFactory["NPZbbbarLinearized"] = []() -> StandardModel* { return new NPZbbbarLinearized(false); };
62 modelFactory["NPZbbbarLinearizedLR"] = []() -> StandardModel* { return new NPZbbbarLinearized(true); };
63 modelFactory["NPSMEFTd6"] = []() -> StandardModel* { return new NPSMEFTd6(false, false); };
64 modelFactory["NPSMEFTd6General"] = []() -> StandardModel* { return new NPSMEFTd6General(); };
65 modelFactory["NPSMEFTd6U2qU1le"] = []() -> StandardModel* { return new NPSMEFTd6U2qU1le(); };
66 modelFactory["NPSMEFTd6U2"] = []() -> StandardModel* { return new NPSMEFTd6U2(); };
67 modelFactory["NPSMEFTd6U3"] = []() -> StandardModel* { return new NPSMEFTd6U3(); };
68 modelFactory["NPSMEFTd6MFV"] = []() -> StandardModel* { return new NPSMEFTd6MFV(); };
69
70 modelFactory["NPd6SILH"] = []() -> StandardModel* { return new NPd6SILH(); };
71
72 modelFactory["NPSMEFT6dtopquark"] = []() -> StandardModel* { return new NPSMEFT6dtopquark(); };
73
74 modelFactory["SigmaBR"] = []() -> StandardModel* { return new SigmaBR(); };
75 modelFactory["NPSMEFTd6_LFU_QFU"] = []() -> StandardModel* { return new NPSMEFTd6(true, true); };
76 modelFactory["HiggsKigen"] = []() -> StandardModel* { return new HiggsKigen(); };
77 modelFactory["HiggsChiral"] = []() -> StandardModel* { return new HiggsChiral(); };
78 modelFactory["NPDF2"] = []() -> StandardModel* { return new NPDF2(); };
79 modelFactory["CMFV"] = []() -> StandardModel* { return new CMFV(); };
80 modelFactory["FlavourWilsonCoefficient"] = []() -> StandardModel* { return new FlavourWilsonCoefficient(); };
81 modelFactory["FlavourWilsonCoefficient_DF2"] = []() -> StandardModel* { return new FlavourWilsonCoefficient_DF2(); };
82 modelFactory["RealWeakEFTLFV"] = []() -> StandardModel* { return new RealWeakEFTLFV(); };
83 modelFactory["RealWeakEFTCC"] = []() -> StandardModel* { return new RealWeakEFTCC(0); };
84 modelFactory["RealWeakEFTCCPM"] = []() -> StandardModel* { return new RealWeakEFTCC(1); };
85 modelFactory["LoopMediators"] = []() -> StandardModel* { return new LoopMediators(); };
86 modelFactory["SUSYMassInsertion"] = []() -> StandardModel* { return new SUSYMassInsertion(); };
87 modelFactory["THDM"] = []() -> StandardModel* { return new THDM(); };
88 modelFactory["GeneralSUSY"] = []() -> StandardModel* { return new GeneralSUSY(); };
89 modelFactory["GeorgiMachacek"] = []() -> StandardModel* { return new GeorgiMachacek(); };
90 modelFactory["LeftRightSymmetricModel"] = []() -> StandardModel* { return new LeftRightSymmetricModel(); };
91/* BEGIN: REMOVE FROM THE PACKAGE */
92 modelFactory["MFV"] = []() -> StandardModel* { return new MFV(); };
93 modelFactory["pMSSM"] = []() -> StandardModel* { return new pMSSM(); };
94 modelFactory["NPSTUVWXY"] = []() -> StandardModel* { return new NPSTUVWXY(); };
95 modelFactory["GeneralTHDM"] = []() -> StandardModel* { return new GeneralTHDM(); };
96 modelFactory["GeneralTHDMZ2"] = []() -> StandardModel* { return new GeneralTHDMZ2(); };
97 modelFactory["THDMW"] = []() -> StandardModel* { return new THDMW(); };
98/* END: REMOVE FROM THE PACKAGE */
99}
Model for CMFV contributions to flavour.
Definition: CMFV.h:30
Model for NP contributions to using modification to the Wilson coefficients.
Model for NP contributions to flavour through shifts to Standard Model Wilson coefficients.
A class for the general MSSM.
Definition: GeneralSUSY.h:200
A base class for the GeorgiMachacek model.
A model class extending the StandardModel Higgs sector with.
Definition: HiggsChiral.h:109
A model class extending the StandardModel Higgs sector with seven flavour-universal couplings.
Definition: HiggsKigen.h:198
A base class for generic Left Right Symmetric Models.
Model for NP contributions to flavour.
Definition: LoopMediators.h:20
calculation of soft masses and trilinear couplings for squarks and sleptons in Minimal Flavour Violat...
Definition: MFV.h:19
std::map< std::string, std::function< StandardModel *()> > modelFactory
Definition: ModelFactory.h:34
Model for general constraints NP contributions to processes.
Definition: NPDF2.h:19
A model class for new physics in the form of contributions to the parameters.
A model class for new physics in the form of contributions to the parameters.
Definition: NPEpsilons.h:123
A model class for new physics in the form of an electroweak chiral Lagrangian with a light Higgs-like...
Definition: NPHiggs.h:142
A model class for new physics in the form of the dimension-six effective Lagrangian.
A model class for new physics in the form of the dimension-six effective Lagrangian.
Definition: NPSMEFTd6.h:1052
A model class for new physics in the form of contributions to the oblique parameters and .
Definition: NPSTU.h:85
A model class for new physics in the form of contributions to the extended oblique parameters and .
Definition: NPSTUVWXY.h:137
A model class for new physics in the form of oblique and -vertex corrections.
A model class for new physics in the form of contributions to the couplings.
Definition: NPZbbbar.h:126
A model class for new physics in the form of contributions to the couplings.
Model for NP contributions to charged current processes like decays.
Definition: RealWeakEFTCC.h:57
Model for WEFT LFV contributions to processes like decays.
A model class for the Standard Model.
A base class for symmetric Two-Higgs-Doublet models.
Definition: THDM.h:120
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233
A class for the phenomenological MSSM.
Definition: pMSSM.h:26

◆ ModelFactory() [2/2]

ModelFactory::ModelFactory ( const ModelFactory orig)

◆ ~ModelFactory()

virtual ModelFactory::~ModelFactory ( )
inlinevirtual

Definition at line 28 of file ModelFactory.h.

28{};

Member Function Documentation

◆ addModelToFactory()

void ModelFactory::addModelToFactory ( const std::string  name,
std::function< StandardModel *() >  funct 
)

Definition at line 101 of file ModelFactory.cpp.

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

◆ CreateModel()

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

Definition at line 106 of file ModelFactory.cpp.

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

Member Data Documentation

◆ modelFactory

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

Definition at line 34 of file ModelFactory.h.


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