a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
ModelFactory.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "ModelFactory.h"
9#include "NPSTU.h"
10#include "NPSTUZbbbarLR.h"
11#include "NPEpsilons.h"
12#include "NPEpsilons_pureNP.h"
13#include "NPHiggs.h"
14#include "NPZbbbar.h"
15#include "NPZbbbarLinearized.h"
16#include "NPSMEFTd6.h"
17#include "NPSMEFTd6General.h"
18#include "NPSMEFTd6U2qU1le.h"
19#include "NPSMEFTd6U2.h"
20#include "NPSMEFTd6U3.h"
21#include "NPSMEFTd6MFV.h"
22
23#include "NPd6SILH.h"
24
25#include "NPSMEFT6dtopquark.h"
26#include "SigmaBR.h"
27#include "HiggsKigen.h"
28#include "HiggsChiral.h"
29#include "GeneralSUSY.h"
30#include "SUSYMassInsertion.h"
31#include "SUSY.h"
32#include "THDM.h"
35#include "RealWeakEFTLFV.h"
36#include "RealWeakEFTCC.h"
37#include "LoopMediators.h"
38#include "NPDF2.h"
39#include "CMFV.h"
40#include "GeorgiMachacek.h"
42/* BEGIN: REMOVE FROM THE PACKAGE */
43#include "pMSSM.h"
44#include "MFV.h"
45#include "NPSTUVWXY.h"
46#include "GeneralTHDM.h"
47#include "GeneralTHDMZ2.h"
48#include "THDMW.h"
49/* END: REMOVE FROM THE PACKAGE */
50
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}
100
101void ModelFactory::addModelToFactory(const std::string name, std::function<StandardModel*() > funct)
102{
103 modelFactory[name] = funct;
104}
105
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}
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
void addModelToFactory(const std::string name, std::function< StandardModel *() >)
StandardModel * CreateModel(const std::string &ModelName)
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