a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Loading...
Searching...
No Matches
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 "NPSMEFTd6MFP.h"
21#include "NPSMEFTd6U3.h"
22#include "NPSMEFTd6MFV.h"
23#include "NPSMEFTd6CHRU.h"
24#include "NPSMEFTd6ATHDM.h"
25
26#include "NPd6SILH.h"
27
28#include "NPSMEFT6dtopquark.h"
29#include "SigmaBR.h"
30#include "HiggsKigen.h"
31#include "HiggsChiral.h"
32#include "GeneralSUSY.h"
33#include "SUSYMassInsertion.h"
34#include "SUSY.h"
35#include "THDM.h"
38#include "RealWeakEFTLFV.h"
39#include "RealWeakEFTCC.h"
40#include "LoopMediators.h"
41#include "NPDF2.h"
42#include "CMFV.h"
43#include "GeorgiMachacek.h"
45/* BEGIN: REMOVE FROM THE PACKAGE */
46#include "pMSSM.h"
47#include "MFV.h"
48#include "NPSTUVWXY.h"
49#include "GeneralTHDM.h"
50#include "GeneralTHDMZ2.h"
51#include "THDMW.h"
52/* END: REMOVE FROM THE PACKAGE */
53
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}
107
108void ModelFactory::addModelToFactory(const std::string name, std::function<StandardModel*() > funct)
109{
110 modelFactory[name] = funct;
111}
112
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}
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
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.
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