a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Loading...
Searching...
No Matches
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 54 of file ModelFactory.cpp.

55{
56 modelFactory["StandardModel"] = []() -> StandardModel* { return new StandardModel(); };
57 modelFactory["NPSTU"] = []() -> StandardModel* { return new NPSTU(); };
58 modelFactory["NPSTUZbbbarLR"] = []() -> StandardModel* { return new NPSTUZbbbarLR(); };
59 modelFactory["NPEpsilons"] = []() -> StandardModel* { return new NPEpsilons(); };
60 modelFactory["NPEpsilons_pureNP"] = []() -> StandardModel* { return new NPEpsilons_pureNP(); };
61 modelFactory["NPHiggs"] = []() -> StandardModel* { return new NPHiggs(); };
62 modelFactory["NPZbbbar"] = []() -> StandardModel* { return new NPZbbbar(false); };
63 modelFactory["NPZbbbarLR"] = []() -> StandardModel* { return new NPZbbbar(true); };
64 modelFactory["NPZbbbarLinearized"] = []() -> StandardModel* { return new NPZbbbarLinearized(false); };
65 modelFactory["NPZbbbarLinearizedLR"] = []() -> StandardModel* { return new NPZbbbarLinearized(true); };
66 modelFactory["NPSMEFTd6"] = []() -> StandardModel* { return new NPSMEFTd6(false, false); };
67 modelFactory["NPSMEFTd6General"] = []() -> StandardModel* { return new NPSMEFTd6General(); };
68 modelFactory["NPSMEFTd6U2qU1le"] = []() -> StandardModel* { return new NPSMEFTd6U2qU1le(); };
69 modelFactory["NPSMEFTd6U2"] = []() -> StandardModel* { return new NPSMEFTd6U2(); };
70 modelFactory["NPSMEFTd6MFP"] = []() -> StandardModel* { return new NPSMEFTd6MFP(); };
71 modelFactory["NPSMEFTd6U3"] = []() -> StandardModel* { return new NPSMEFTd6U3(); };
72 modelFactory["NPSMEFTd6MFV"] = []() -> StandardModel* { return new NPSMEFTd6MFV(); };
73 modelFactory["NPSMEFTd6CHRU"] = []() -> StandardModel* { return new NPSMEFTd6CHRU(); };
74
75 modelFactory["NPSMEFTd6ATHDM"] = []() -> StandardModel* { return new NPSMEFTd6ATHDM(); };
76
77 modelFactory["NPd6SILH"] = []() -> StandardModel* { return new NPd6SILH(); };
78
79 modelFactory["NPSMEFT6dtopquark"] = []() -> StandardModel* { return new NPSMEFT6dtopquark(); };
80
81 modelFactory["SigmaBR"] = []() -> StandardModel* { return new SigmaBR(); };
82 modelFactory["NPSMEFTd6_LFU_QFU"] = []() -> StandardModel* { return new NPSMEFTd6(true, true); };
83 modelFactory["HiggsKigen"] = []() -> StandardModel* { return new HiggsKigen(); };
84 modelFactory["HiggsChiral"] = []() -> StandardModel* { return new HiggsChiral(); };
85 modelFactory["NPDF2"] = []() -> StandardModel* { return new NPDF2(); };
86 modelFactory["CMFV"] = []() -> StandardModel* { return new CMFV(); };
87 modelFactory["FlavourWilsonCoefficient"] = []() -> StandardModel* { return new FlavourWilsonCoefficient(); };
88 modelFactory["FlavourWilsonCoefficient_DF2"] = []() -> StandardModel* { return new FlavourWilsonCoefficient_DF2(); };
89 modelFactory["RealWeakEFTLFV"] = []() -> StandardModel* { return new RealWeakEFTLFV(); };
90 modelFactory["RealWeakEFTCC"] = []() -> StandardModel* { return new RealWeakEFTCC(0); };
91 modelFactory["RealWeakEFTCCPM"] = []() -> StandardModel* { return new RealWeakEFTCC(1); };
92 modelFactory["LoopMediators"] = []() -> StandardModel* { return new LoopMediators(); };
93 modelFactory["SUSYMassInsertion"] = []() -> StandardModel* { return new SUSYMassInsertion(); };
94 modelFactory["THDM"] = []() -> StandardModel* { return new THDM(); };
95 modelFactory["GeneralSUSY"] = []() -> StandardModel* { return new GeneralSUSY(); };
96 modelFactory["GeorgiMachacek"] = []() -> StandardModel* { return new GeorgiMachacek(); };
97 modelFactory["LeftRightSymmetricModel"] = []() -> StandardModel* { return new LeftRightSymmetricModel(); };
98/* BEGIN: REMOVE FROM THE PACKAGE */
99 modelFactory["MFV"] = []() -> StandardModel* { return new MFV(); };
100 modelFactory["pMSSM"] = []() -> StandardModel* { return new pMSSM(); };
101 modelFactory["NPSTUVWXY"] = []() -> StandardModel* { return new NPSTUVWXY(); };
102 modelFactory["GeneralTHDM"] = []() -> StandardModel* { return new GeneralTHDM(); };
103 modelFactory["GeneralTHDMZ2"] = []() -> StandardModel* { return new GeneralTHDMZ2(); };
104 modelFactory["THDMW"] = []() -> StandardModel* { return new THDMW(); };
105/* END: REMOVE FROM THE PACKAGE */
106}
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.
A base class for the GeorgiMachacek model.
A model class extending the StandardModel Higgs sector with.
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.
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
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.
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 108 of file ModelFactory.cpp.

109{
110 modelFactory[name] = funct;
111}

◆ CreateModel()

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

Definition at line 113 of file ModelFactory.cpp.

114{
115 if (modelFactory.find(name) == modelFactory.end())
116 throw std::runtime_error("ERROR: Wrong model " + name + " passed to ModelFactory.\n");
117 return (modelFactory[name]());
118}

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: