ThObsFactory Class Reference

A class for. More...

#include <ThObsFactory.h>

Detailed Description

A class for.

Author
HEPfit Collaboration

Definition at line 26 of file ThObsFactory.h.

Public Member Functions

void addObsToFactory (const std::string name, boost::function< ThObservable *(const StandardModel &) >)
 
ThObservableCreateThMethod (const std::string &name, const StandardModel &model) const
 This method checks for the existence of an observable of a specific name in the map thobs and returns a pointer to the particular ThObservable. More...
 
 ThObsFactory ()
 
 ThObsFactory (const ThObsFactory &orig)
 
virtual ~ThObsFactory ()
 

Private Attributes

std::map< std::string, boost::function< ThObservable *(const StandardModel &) > > obsThFactory
 

Constructor & Destructor Documentation

ThObsFactory::ThObsFactory ( )

< the center-of-mass energy in TeV

< the center-of-mass energy in TeV

Definition at line 21 of file ThObsFactory.cpp.

22 {
23  //----- StandardModel observables -----
24  obsThFactory["MtMSbar"] = boost::factory<MtMSbar*>();
25  //----- Electroweak precision observables -----
26  obsThFactory["Mw"] = boost::factory<Mw*>();
27  obsThFactory["GammaW"] = boost::factory<GammaW*>();
28  obsThFactory["GammaZ"] = boost::factory<GammaZ*>();
29  obsThFactory["sigmaHadron"] = boost::factory<sigmaHadron*>();
30  obsThFactory["sin2thetaEff"] = boost::factory<sin2thetaEff*>();
31  obsThFactory["PtauPol"] = boost::factory<PtauPol*>();
32  obsThFactory["Alepton"] = boost::factory<Alepton*>();
33  obsThFactory["Acharm"] = boost::factory<Acharm*>();
34  obsThFactory["Abottom"] = boost::factory<Abottom*>();
35  obsThFactory["AFBlepton"] = boost::factory<AFBlepton*>();
36  obsThFactory["AFBcharm"] = boost::factory<AFBcharm*>();
37  obsThFactory["AFBbottom"] = boost::factory<AFBbottom*>();
38  obsThFactory["Rlepton"] = boost::factory<Rlepton*>();
39  obsThFactory["Rcharm"] = boost::factory<Rcharm*>();
40  obsThFactory["Rbottom"] = boost::factory<Rbottom*>();
41 
42  //----- Higgs Extension observables ----------
43  const double sqrt_s_LHC7 = 7.0;
44  const double sqrt_s_LHC8 = 8.0;
45  const double sqrt_s_TeV = 1.96;
46  const double sqrt_s_TLEP = .24;
47  obsThFactory["ggH"] = boost::bind(boost::factory<muggH*>(), _1, sqrt_s_LHC8);
48  obsThFactory["VBF"] = boost::bind(boost::factory<muVBF*>(), _1, sqrt_s_LHC8);
49  obsThFactory["WH"] = boost::bind(boost::factory<muWH*>(), _1, sqrt_s_LHC8);
50  obsThFactory["ZH"] = boost::bind(boost::factory<muZH*>(), _1, sqrt_s_LHC8);
51  obsThFactory["VH"] = boost::bind(boost::factory<muVH*>(), _1, sqrt_s_LHC8);
52  obsThFactory["ggH+ttH"] = boost::bind(boost::factory<muggHpttH*>(), _1, sqrt_s_LHC8);
53  obsThFactory["VBF+VH"] = boost::bind(boost::factory<muVBFpVH*>(), _1, sqrt_s_LHC8);
54  obsThFactory["ttH"] = boost::bind(boost::factory<muttH*>(), _1, sqrt_s_LHC8);
55  obsThFactory["ggH7"] = boost::bind(boost::factory<muggH*>(), _1, sqrt_s_LHC7);
56  obsThFactory["VBF7"] = boost::bind(boost::factory<muVBF*>(), _1, sqrt_s_LHC7);
57  obsThFactory["WH7"] = boost::bind(boost::factory<muWH*>(), _1, sqrt_s_LHC7);
58  obsThFactory["ZH7"] = boost::bind(boost::factory<muZH*>(), _1, sqrt_s_LHC7);
59  obsThFactory["VH7"] = boost::bind(boost::factory<muVH*>(), _1, sqrt_s_LHC7);
60  obsThFactory["ttH7"] = boost::bind(boost::factory<muttH*>(), _1, sqrt_s_LHC7);
61  obsThFactory["ggH8"] = boost::bind(boost::factory<muggH*>(), _1, sqrt_s_LHC8);
62  obsThFactory["ggH+ttH8"] = boost::bind(boost::factory<muggHpttH*>(), _1, sqrt_s_LHC8);
63  obsThFactory["VBF8"] = boost::bind(boost::factory<muVBF*>(), _1, sqrt_s_LHC8);
64  obsThFactory["VBF+VH8"] = boost::bind(boost::factory<muVBFpVH*>(), _1, sqrt_s_LHC8);
65  obsThFactory["VH8"] = boost::bind(boost::factory<muVH*>(), _1, sqrt_s_LHC8);
66  obsThFactory["WH8"] = boost::bind(boost::factory<muWH*>(), _1, sqrt_s_LHC8);
67  obsThFactory["ZH8"] = boost::bind(boost::factory<muZH*>(), _1, sqrt_s_LHC8);
68  obsThFactory["ttH8"] = boost::bind(boost::factory<muttH*>(), _1, sqrt_s_LHC8);
69  obsThFactory["ggH196"] = boost::bind(boost::factory<muggH*>(), _1, sqrt_s_TeV);
70  obsThFactory["VBF196"] = boost::bind(boost::factory<muVBF*>(), _1, sqrt_s_TeV);
71  obsThFactory["VH196"] = boost::bind(boost::factory<muVH*>(), _1, sqrt_s_TeV);
72  obsThFactory["ttH196"] = boost::bind(boost::factory<muttH*>(), _1, sqrt_s_TeV);
73  obsThFactory["eeZH240"] = boost::bind(boost::factory<mueeZH*>(), _1, sqrt_s_TLEP);
74  obsThFactory["BrHggRatio"] = boost::factory<BrHtoggRatio*>();
75  obsThFactory["BrHWWRatio"] = boost::factory<BrHtoWWRatio*>();
76  obsThFactory["BrHZZRatio"] = boost::factory<BrHtoZZRatio*>();
77  obsThFactory["BrHZgaRatio"] = boost::factory<BrHtoZgaRatio*>();
78  obsThFactory["BrHgagaRatio"] = boost::factory<BrHtogagaRatio*>();
79  obsThFactory["BrHtautauRatio"] = boost::factory<BrHtotautauRatio*>();
80  obsThFactory["BrHccRatio"] = boost::factory<BrHtoccRatio*>();
81  obsThFactory["BrHbbRatio"] = boost::factory<BrHtobbRatio*>();
82 
83  //----- Epsilon parameters -----
84  obsThFactory["epsilon1"] = boost::factory<Epsilon1*>();
85  obsThFactory["epsilon2"] = boost::factory<Epsilon2*>();
86  obsThFactory["epsilon3"] = boost::factory<Epsilon3*>();
87  obsThFactory["epsilonb"] = boost::factory<Epsilonb*>();
88 
89  //----- Flavour observables -----
90  //----- DF = 2 -----
91  obsThFactory["DmBd"] = boost::factory<DmBd*>();
92  obsThFactory["DmBs"] = boost::factory<DmBs*>();
93  obsThFactory["SJPsiK"] = boost::factory<SJPsiK*>();
94  obsThFactory["Betas_JPsiPhi"] = boost::factory<Betas_JPsiPhi*>();
95  obsThFactory["EpsilonK"] = boost::factory<EpsilonK*>();
96  obsThFactory["DmK"] = boost::factory<DmK*>();
97  //----- CKM -----
98  obsThFactory["Vud"] = boost::bind(boost::factory<VCKM*>(), _1, 1, 1);
99  obsThFactory["Vus"] = boost::bind(boost::factory<VCKM*>(), _1, 1, 2);
100  obsThFactory["Vub"] = boost::bind(boost::factory<VCKM*>(), _1, 1, 3);
101  obsThFactory["Vcd"] = boost::bind(boost::factory<VCKM*>(), _1, 2, 1);
102  obsThFactory["Vcs"] = boost::bind(boost::factory<VCKM*>(), _1, 2, 2);
103  obsThFactory["Vcb"] = boost::bind(boost::factory<VCKM*>(), _1, 2, 3);
104  obsThFactory["Vtd"] = boost::bind(boost::factory<VCKM*>(), _1, 3, 1);
105  obsThFactory["Vts"] = boost::bind(boost::factory<VCKM*>(), _1, 3, 2);
106  obsThFactory["Vtb"] = boost::bind(boost::factory<VCKM*>(), _1, 3, 3);
107  obsThFactory["alpha"] = boost::factory<Alpha*>();
108  obsThFactory["alpha_2a"] = boost::factory<Alpha_2a*>();
109  obsThFactory["gamma"] = boost::factory<CKMGamma*>();
110  obsThFactory["Abslam_t"] = boost::factory<Abslam_t*>();
111  obsThFactory["Abslam_c"] = boost::factory<Abslam_c*>();
112  obsThFactory["Abslam_u"] = boost::factory<Abslam_u*>();
113  obsThFactory["Abslam_td"] = boost::factory<Abslam_td*>();
114  obsThFactory["Abslam_cd"] = boost::factory<Abslam_cd*>();
115  obsThFactory["Abslam_ud"] = boost::factory<Abslam_ud*>();
116  obsThFactory["Abslam_ts"] = boost::factory<Abslam_ts*>();
117  obsThFactory["Abslam_cs"] = boost::factory<Abslam_cs*>();
118  obsThFactory["Abslam_us"] = boost::factory<Abslam_us*>();
119  //----- B(s) to mu mu -----
120  obsThFactory["BR_Bdmumu"] = boost::bind(boost::factory<Bdmumu*>(), _1, 1);
121  obsThFactory["BRbar_Bdmumu"] = boost::bind(boost::factory<Bdmumu*>(), _1, 2);
122  obsThFactory["Amumu_Bd"] = boost::bind(boost::factory<Bdmumu*>(), _1, 3);
123  obsThFactory["Smumu_Bd"] = boost::bind(boost::factory<Bdmumu*>(), _1, 4);
124  obsThFactory["BR_Bsmumu"] = boost::bind(boost::factory<Bsmumu*>(), _1, 1);
125  obsThFactory["BRbar_Bsmumu"] = boost::bind(boost::factory<Bsmumu*>(), _1, 2);
126  obsThFactory["Amumu_Bs"] = boost::bind(boost::factory<Bsmumu*>(), _1, 3);
127  obsThFactory["Smumu_Bs"] = boost::bind(boost::factory<Bsmumu*>(), _1, 4);
128  //----- b to s gamma -----
129  obsThFactory["BR_bsgamma"] = boost::bind(boost::factory<Bsgamma*>(), _1, 1);
130  obsThFactory["BR_CPodd_bsgamma"] = boost::bind(boost::factory<Bsgamma*>(), _1, 2);
131  //----- B to K* ll -----
132  obsThFactory["P_1_BdKstmu"] = boost::bind(boost::factory<P_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
133  obsThFactory["P_1_BdKste"] = boost::bind(boost::factory<P_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::ELECTRON);
134  obsThFactory["P_2_BdKstmu"] = boost::bind(boost::factory<P_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
135  obsThFactory["P_2_BdKste"] = boost::bind(boost::factory<P_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::ELECTRON);
136  obsThFactory["P_3_BdKstmu"] = boost::bind(boost::factory<P_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
137  obsThFactory["P_3_BdKste"] = boost::bind(boost::factory<P_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::ELECTRON);
138  obsThFactory["P_4p_BdKstmu"] = boost::bind(boost::factory<P_4Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
139  obsThFactory["P_5p_BdKstmu"] = boost::bind(boost::factory<P_5Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
140  obsThFactory["P_6p_BdKstmu"] = boost::bind(boost::factory<P_6Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
141  obsThFactory["P_8p_BdKstmu"] = boost::bind(boost::factory<P_8Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
142  obsThFactory["Gammap_BdKstmu"] = boost::bind(boost::factory<GammaPrime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
143  obsThFactory["A_FB_BdKstmu"] = boost::bind(boost::factory<A_FB*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
144  obsThFactory["BR_BdKstmu"] = boost::bind(boost::factory<BR_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
145  obsThFactory["BR_BdKste"] = boost::bind(boost::factory<BR_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::ELECTRON);
146  obsThFactory["RKst_BdKstll"] = boost::bind(boost::factory<R_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, StandardModel::ELECTRON);
147  obsThFactory["RKstL_BdKstll"] = boost::bind(boost::factory<RL_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, StandardModel::ELECTRON);
148  obsThFactory["RKstT_BdKstll"] = boost::bind(boost::factory<RT_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, StandardModel::ELECTRON);
149  obsThFactory["R6_BdKstll"] = boost::bind(boost::factory<R_6*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, StandardModel::ELECTRON);
150  obsThFactory["ACP_BdKstmu"] = boost::bind(boost::factory<ACP_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
151  obsThFactory["P3CP_BdKstmu"] = boost::bind(boost::factory<P3CP*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
152  obsThFactory["F_L_BdKstmu"] = boost::bind(boost::factory<F_L*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
153  obsThFactory["F_L_BdKste"] = boost::bind(boost::factory<F_L*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::ELECTRON);
154  obsThFactory["M_1p_BdKstmu"] = boost::bind(boost::factory<M_1Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
155  obsThFactory["M_2p_BdKstmu"] = boost::bind(boost::factory<M_2Prime*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
156  obsThFactory["S_3_BdKstmu"] = boost::bind(boost::factory<S_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
157  obsThFactory["S_4_BdKstmu"] = boost::bind(boost::factory<S_4*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
158  obsThFactory["S_5_BdKstmu"] = boost::bind(boost::factory<S_5*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
159  obsThFactory["S_7_BdKstmu"] = boost::bind(boost::factory<S_7*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
160  obsThFactory["S_8_BdKstmu"] = boost::bind(boost::factory<S_8*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
161  obsThFactory["S_9_BdKstmu"] = boost::bind(boost::factory<S_9*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
162  obsThFactory["A_6_BdKstmu"] = boost::bind(boost::factory<A_6*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
163  obsThFactory["A_9_BdKstmu"] = boost::bind(boost::factory<A_9*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
164 
165  obsThFactory["P_1f_BdKstmu"] = boost::bind(boost::factory<P_1f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
166  obsThFactory["P_2f_BdKstmu"] = boost::bind(boost::factory<P_2f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
167  obsThFactory["P_3f_BdKstmu"] = boost::bind(boost::factory<P_3f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
168  obsThFactory["P_4pf_BdKstmu"] = boost::bind(boost::factory<P_4Primef*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
169  obsThFactory["P_5pf_BdKstmu"] = boost::bind(boost::factory<P_5Primef*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
170  obsThFactory["P_6pf_BdKstmu"] = boost::bind(boost::factory<P_6Primef*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
171  obsThFactory["P_8pf_BdKstmu"] = boost::bind(boost::factory<P_8Primef*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
172  obsThFactory["Gammapf_BdKstmu"] = boost::bind(boost::factory<GammaPrimef*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
173  obsThFactory["BRf_BdKstmu"] = boost::bind(boost::factory<BRf_MVll*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
174  obsThFactory["A_FBf_BdKstmu"] = boost::bind(boost::factory<A_FBf*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
175  obsThFactory["F_Lf_BdKstmu"] = boost::bind(boost::factory<F_Lf*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
176  obsThFactory["S_3f_BdKstmu"] = boost::bind(boost::factory<S_3f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
177  obsThFactory["S_4f_BdKstmu"] = boost::bind(boost::factory<S_4f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
178  obsThFactory["S_5f_BdKstmu"] = boost::bind(boost::factory<S_5f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
179  obsThFactory["S_7f_BdKstmu"] = boost::bind(boost::factory<S_7f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
180  obsThFactory["S_8f_BdKstmu"] = boost::bind(boost::factory<S_8f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
181  obsThFactory["S_9f_BdKstmu"] = boost::bind(boost::factory<S_9f*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
182 
183  obsThFactory["V0_BdKstmu"] = boost::bind(boost::factory<V0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
184  obsThFactory["Vp_BdKstmu"] = boost::bind(boost::factory<Vp*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
185  obsThFactory["Vm_BdKstmu"] = boost::bind(boost::factory<Vm*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
186  obsThFactory["T0_BdKstmu"] = boost::bind(boost::factory<T0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
187  obsThFactory["Tp_BdKstmu"] = boost::bind(boost::factory<Tp*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
188  obsThFactory["Tm_BdKstmu"] = boost::bind(boost::factory<Tm*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
189  obsThFactory["S_BdKstmu"] = boost::bind(boost::factory<S*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
190 
191  obsThFactory["Regtilde_1_BdKstmu"] = boost::bind(boost::factory<gtilde_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
192  obsThFactory["Regtilde_2_BdKstmu"] = boost::bind(boost::factory<gtilde_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
193  obsThFactory["Regtilde_3_BdKstmu"] = boost::bind(boost::factory<gtilde_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
194 
195  obsThFactory["Imgtilde_1_BdKstmu"] = boost::bind(boost::factory<gtilde_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
196  obsThFactory["Imgtilde_2_BdKstmu"] = boost::bind(boost::factory<gtilde_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
197  obsThFactory["Imgtilde_3_BdKstmu"] = boost::bind(boost::factory<gtilde_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
198 
199  obsThFactory["Absgtilde_1_BdKstmu"] = boost::bind(boost::factory<gtilde_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
200  obsThFactory["Absgtilde_2_BdKstmu"] = boost::bind(boost::factory<gtilde_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
201  obsThFactory["Absgtilde_3_BdKstmu"] = boost::bind(boost::factory<gtilde_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
202 
203  obsThFactory["Arggtilde_1_BdKstmu"] = boost::bind(boost::factory<gtilde_1*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
204  obsThFactory["Arggtilde_2_BdKstmu"] = boost::bind(boost::factory<gtilde_2*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
205  obsThFactory["Arggtilde_3_BdKstmu"] = boost::bind(boost::factory<gtilde_3*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
206 
207  obsThFactory["Reh_0_BdKstmu"] = boost::bind(boost::factory<h_0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
208  obsThFactory["Reh_p_BdKstmu"] = boost::bind(boost::factory<h_p*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
209  obsThFactory["Reh_m_BdKstmu"] = boost::bind(boost::factory<h_m*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 1);
210 
211  obsThFactory["Imh_0_BdKstmu"] = boost::bind(boost::factory<h_0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
212  obsThFactory["Imh_p_BdKstmu"] = boost::bind(boost::factory<h_p*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
213  obsThFactory["Imh_m_BdKstmu"] = boost::bind(boost::factory<h_m*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 2);
214 
215  obsThFactory["Absh_0_BdKstmu"] = boost::bind(boost::factory<h_0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
216  obsThFactory["Absh_p_BdKstmu"] = boost::bind(boost::factory<h_p*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
217  obsThFactory["Absh_m_BdKstmu"] = boost::bind(boost::factory<h_m*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 3);
218 
219  obsThFactory["Argh_0_BdKstmu"] = boost::bind(boost::factory<h_0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
220  obsThFactory["Argh_p_BdKstmu"] = boost::bind(boost::factory<h_p*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
221  obsThFactory["Argh_m_BdKstmu"] = boost::bind(boost::factory<h_m*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU, 4);
222 
223  obsThFactory["DC7_1"] = boost::bind(boost::factory<DC7_1*>(), _1, StandardModel::B_D, StandardModel::K_star);
224  obsThFactory["DC7_2"] = boost::bind(boost::factory<DC7_2*>(), _1, StandardModel::B_D, StandardModel::K_star);
225  obsThFactory["hp0_hm0"] = boost::bind(boost::factory<hp0_hm0*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
226  obsThFactory["hm0_h00"] = boost::bind(boost::factory<hm0_h00*>(), _1, StandardModel::B_D, StandardModel::K_star, StandardModel::MU);
227 
228  //----- B to phi ll -----
229  obsThFactory["P_1_Bsphimu"] = boost::bind(boost::factory<P_1*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
230  obsThFactory["P_2_Bsphimu"] = boost::bind(boost::factory<P_2*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
231  obsThFactory["P_3_Bsphimu"] = boost::bind(boost::factory<P_3*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
232  obsThFactory["P_4p_Bsphimu"] = boost::bind(boost::factory<P_4Prime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
233  obsThFactory["P_5p_Bsphimu"] = boost::bind(boost::factory<P_5Prime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
234  obsThFactory["P_6p_Bsphimu"] = boost::bind(boost::factory<P_6Prime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
235  obsThFactory["P_8p_Bsphimu"] = boost::bind(boost::factory<P_8Prime*>(), _1, StandardModel::B_D, StandardModel::PHI, StandardModel::MU);
236  obsThFactory["Gammap_Bsphimu"] = boost::bind(boost::factory<GammaPrime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
237  obsThFactory["A_FB_Bsphimu"] = boost::bind(boost::factory<A_FB*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
238  obsThFactory["BR_Bsphimu"] = boost::bind(boost::factory<BR_MVll*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
239  obsThFactory["Rphi_Bsphill"] = boost::bind(boost::factory<R_MVll*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU, StandardModel::ELECTRON);
240  obsThFactory["RphiL_Bsphill"] = boost::bind(boost::factory<RL_MVll*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU, StandardModel::ELECTRON);
241  obsThFactory["RphiT_Bsphill"] = boost::bind(boost::factory<RT_MVll*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU, StandardModel::ELECTRON);
242  obsThFactory["R6_Bsphill"] = boost::bind(boost::factory<R_6*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU, StandardModel::ELECTRON);
243  obsThFactory["ACP_Bsphimu"] = boost::bind(boost::factory<ACP_MVll*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
244  obsThFactory["P3CP_Bsphimu"] = boost::bind(boost::factory<P3CP*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
245  obsThFactory["F_L_Bsphimu"] = boost::bind(boost::factory<F_L*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
246  obsThFactory["M_1p_Bsphimu"] = boost::bind(boost::factory<M_1Prime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
247  obsThFactory["M_2p_Bsphimu"] = boost::bind(boost::factory<M_2Prime*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
248  obsThFactory["S_3_Bsphimu"] = boost::bind(boost::factory<S_3*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
249  obsThFactory["S_4_Bsphimu"] = boost::bind(boost::factory<S_4*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
250  obsThFactory["S_5_Bsphimu"] = boost::bind(boost::factory<S_5*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
251  obsThFactory["S_7_Bsphimu"] = boost::bind(boost::factory<S_7*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
252  obsThFactory["S_8_Bsphimu"] = boost::bind(boost::factory<S_8*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
253  obsThFactory["S_9_Bsphimu"] = boost::bind(boost::factory<S_9*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
254  obsThFactory["A_6_Bsphimu"] = boost::bind(boost::factory<A_6*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
255  obsThFactory["A_9_Bsphimu"] = boost::bind(boost::factory<A_9*>(), _1, StandardModel::B_S, StandardModel::PHI, StandardModel::MU);
256  //----- B to K ll -----
257  obsThFactory["BR_BKmu"] = boost::bind(boost::factory<BR_MPll*>(), _1, StandardModel::B_P, StandardModel::K_P, StandardModel::MU);
258  obsThFactory["BR_BKe"] = boost::bind(boost::factory<BR_MPll*>(), _1, StandardModel::B_P, StandardModel::K_P, StandardModel::ELECTRON);
259  obsThFactory["RK_BKll"] = boost::bind(boost::factory<R_MPll*>(), _1, StandardModel::B_P, StandardModel::K_P, StandardModel::MU, StandardModel::ELECTRON);
260  //----- B to K* gamma -----
261  obsThFactory["BR_BKstgamma"] = boost::bind(boost::factory<BR_MVgamma*>(), _1, StandardModel::B_D, StandardModel::K_star);
262  obsThFactory["ACP_BKstgamma"] = boost::bind(boost::factory<ACP_MVgamma*>(), _1, StandardModel::B_D, StandardModel::K_star);
263  //----- B to PHI gamma -----
264  obsThFactory["BR_Bsphigamma"] = boost::bind(boost::factory<BR_MVgamma*>(), _1, StandardModel::B_S, StandardModel::PHI);
265  obsThFactory["ACP_Bsphigamma"] = boost::bind(boost::factory<ACP_MVgamma*>(), _1, StandardModel::B_S, StandardModel::PHI);
266 
267  //----- B to tau nu -----
268  obsThFactory["btaunu"] = boost::factory<Btaunu*>();
269 
270  //----- Lepton Flavour observables -----
271  obsThFactory["mu_e_gamma"] = boost::factory<mu_e_gamma*>();
272  obsThFactory["tau_mu_gamma"] = boost::factory<tau_mu_gamma*>();
273  obsThFactory["tau_e_gamma"] = boost::factory<tau_e_gamma*>();
274  obsThFactory["mu_3e"] = boost::factory<mu_3e*>();
275  obsThFactory["tau_3mu"] = boost::factory<tau_3mu*>();
276  obsThFactory["tau_3e"] = boost::factory<tau_3e*>();
277 
278  //----- SUSY spectra and observables -----
279  obsThFactory["MHl"] = boost::bind(boost::factory<Mhiggs*>(), _1, 0);
280  obsThFactory["MHh"] = boost::bind(boost::factory<Mhiggs*>(), _1, 1);
281  obsThFactory["MHa"] = boost::bind(boost::factory<Mhiggs*>(), _1, 2);
282  obsThFactory["MHp"] = boost::bind(boost::factory<Mhiggs*>(), _1, 3);
283  obsThFactory["Msu1"] = boost::bind(boost::factory<Msup*>(), _1, 0);
284  obsThFactory["Msu2"] = boost::bind(boost::factory<Msup*>(), _1, 1);
285  obsThFactory["Msu3"] = boost::bind(boost::factory<Msup*>(), _1, 2);
286  obsThFactory["Msu4"] = boost::bind(boost::factory<Msup*>(), _1, 3);
287  obsThFactory["Msu5"] = boost::bind(boost::factory<Msup*>(), _1, 4);
288  obsThFactory["Msu6"] = boost::bind(boost::factory<Msup*>(), _1, 5);
289  obsThFactory["Msd1"] = boost::bind(boost::factory<Msdown*>(), _1, 0);
290  obsThFactory["Msd2"] = boost::bind(boost::factory<Msdown*>(), _1, 1);
291  obsThFactory["Msd3"] = boost::bind(boost::factory<Msdown*>(), _1, 2);
292  obsThFactory["Msd4"] = boost::bind(boost::factory<Msdown*>(), _1, 3);
293  obsThFactory["Msd5"] = boost::bind(boost::factory<Msdown*>(), _1, 4);
294  obsThFactory["Msd6"] = boost::bind(boost::factory<Msdown*>(), _1, 5);
295  obsThFactory["Mch1"] = boost::bind(boost::factory<Mchargino*>(), _1, 0);
296  obsThFactory["Mch2"] = boost::bind(boost::factory<Mchargino*>(), _1, 1);
297  obsThFactory["Mneu1"] = boost::bind(boost::factory<Mneutralino*>(), _1, 0);
298  obsThFactory["Mneu2"] = boost::bind(boost::factory<Mneutralino*>(), _1, 1);
299  obsThFactory["Mneu3"] = boost::bind(boost::factory<Mneutralino*>(), _1, 2);
300  obsThFactory["Mneu4"] = boost::bind(boost::factory<Mneutralino*>(), _1, 3);
301 
302  //----- THDM observables -----
303  obsThFactory["globalminimum"] = boost::factory<globalminimum*>();
304 
305  obsThFactory["ggF_tth_htobb"] = boost::factory<ggF_tth_htobb*>();
306  obsThFactory["ggF_tth_htoWW"] = boost::factory<ggF_tth_htoWW*>();
307  obsThFactory["ggF_tth_htotautau"] = boost::factory<ggF_tth_htotautau*>();
308  obsThFactory["ggF_tth_htoZZ"] = boost::factory<ggF_tth_htoZZ*>();
309  obsThFactory["ggF_tth_htogaga"] = boost::factory<ggF_tth_htogaga*>();
310  obsThFactory["VBF_Vh_htobb"] = boost::factory<VBF_Vh_htobb*>();
311  obsThFactory["VBF_Vh_htoWW"] = boost::factory<VBF_Vh_htoWW*>();
312  obsThFactory["VBF_Vh_htotautau"] = boost::factory<VBF_Vh_htotautau*>();
313  obsThFactory["VBF_Vh_htoZZ"] = boost::factory<VBF_Vh_htoZZ*>();
314  obsThFactory["VBF_Vh_htogaga"] = boost::factory<VBF_Vh_htogaga*>();
315 
316  obsThFactory["Hobs_ggF_H_tautau_ATLAS"] = boost::factory<Hobs_ggF_H_tautau_ATLAS*>();
317  obsThFactory["Hobs_ggF_H_tautau_CMS"] = boost::factory<Hobs_ggF_H_tautau_CMS*>();
318  obsThFactory["Hobs_bbF_H_tautau_ATLAS"] = boost::factory<Hobs_bbF_H_tautau_ATLAS*>();
319  obsThFactory["Hobs_bbF_H_tautau_CMS"] = boost::factory<Hobs_bbF_H_tautau_CMS*>();
320  obsThFactory["Hobs_ggF_H_gaga_ATLAS"] = boost::factory<Hobs_ggF_H_gaga_ATLAS*>();
321  obsThFactory["Hobs_ggF_H_gaga_CMS"] = boost::factory<Hobs_ggF_H_gaga_CMS*>();
322  obsThFactory["Hobs_pp_H_ZZ_CMS"] = boost::factory<Hobs_pp_H_ZZ_CMS*>();
323  obsThFactory["Hobs_ggF_H_WW_ATLAS"] = boost::factory<Hobs_ggF_H_WW_ATLAS*>();
324  obsThFactory["Hobs_VBF_H_WW_ATLAS"] = boost::factory<Hobs_VBF_H_WW_ATLAS*>();
325  obsThFactory["Hobs_ggF_H_hh_ATLAS"] = boost::factory<Hobs_ggF_H_hh_ATLAS*>();
326  obsThFactory["Hobs_ggF_H_hh_bbtautau_CMS"] = boost::factory<Hobs_ggF_H_hh_bbtautau_CMS*>();
327  obsThFactory["Hobs_pp_H_hh_bbbb_CMS"] = boost::factory<Hobs_pp_H_hh_bbbb_CMS*>();
328  obsThFactory["Hobs_pp_H_hh_gagabb_CMS"] = boost::factory<Hobs_pp_H_hh_gagabb_CMS*>();
329  obsThFactory["Hobs_pp_H_tt_ATLAS"] = boost::factory<Hobs_pp_H_tt_ATLAS*>();
330  obsThFactory["Hobs_bbF_H_bb_CMS"] = boost::factory<Hobs_bbF_H_bb_CMS*>();
331 
332  obsThFactory["log10_ggF_H_tautau_TH"] = boost::factory<log10_ggF_H_tautau_TH*>();
333  obsThFactory["log10_bbF_H_tautau_TH"] = boost::factory<log10_bbF_H_tautau_TH*>();
334  obsThFactory["log10_ggF_H_gaga_TH"] = boost::factory<log10_ggF_H_gaga_TH*>();
335  obsThFactory["log10_pp_H_ZZ_TH"] = boost::factory<log10_pp_H_ZZ_TH*>();
336  obsThFactory["log10_ggF_H_WW_TH"] = boost::factory<log10_ggF_H_WW_TH*>();
337  obsThFactory["log10_VBF_H_WW_TH"] = boost::factory<log10_VBF_H_WW_TH*>();
338  obsThFactory["log10_ggF_H_hh_TH"] = boost::factory<log10_ggF_H_hh_TH*>();
339  obsThFactory["log10_ggF_H_hh_bbtautau_TH"] = boost::factory<log10_ggF_H_hh_bbtautau_TH*>();
340  obsThFactory["log10_pp_H_hh_bbbb_TH"] = boost::factory<log10_pp_H_hh_bbbb_TH*>();
341  obsThFactory["log10_pp_H_hh_gagabb_TH"] = boost::factory<log10_pp_H_hh_gagabb_TH*>();
342  obsThFactory["log10_pp_H_tt_TH"] = boost::factory<log10_pp_H_tt_TH*>();
343  obsThFactory["log10_bbF_H_bb_TH"] = boost::factory<log10_bbF_H_bb_TH*>();
344 
345  obsThFactory["Hobs_ggF_A_tautau_ATLAS"] = boost::factory<Hobs_ggF_A_tautau_ATLAS*>();
346  obsThFactory["Hobs_ggF_A_tautau_CMS"] = boost::factory<Hobs_ggF_A_tautau_CMS*>();
347  obsThFactory["Hobs_bbF_A_tautau_ATLAS"] = boost::factory<Hobs_bbF_A_tautau_ATLAS*>();
348  obsThFactory["Hobs_bbF_A_tautau_CMS"] = boost::factory<Hobs_bbF_A_tautau_CMS*>();
349  obsThFactory["Hobs_ggF_A_gaga_ATLAS"] = boost::factory<Hobs_ggF_A_gaga_ATLAS*>();
350  obsThFactory["Hobs_ggF_A_gaga_CMS"] = boost::factory<Hobs_ggF_A_gaga_CMS*>();
351  obsThFactory["Hobs_ggF_A_hZ_bbll_CMS"] = boost::factory<Hobs_ggF_A_hZ_bbll_CMS*>();
352  obsThFactory["Hobs_ggF_A_hZ_bbZ_ATLAS"] = boost::factory<Hobs_ggF_A_hZ_bbZ_ATLAS*>();
353  obsThFactory["Hobs_ggF_A_hZ_tautaull_CMS"] = boost::factory<Hobs_ggF_A_hZ_tautaull_CMS*>();
354  obsThFactory["Hobs_ggF_A_hZ_tautauZ_ATLAS"] = boost::factory<Hobs_ggF_A_hZ_tautauZ_ATLAS*>();
355  obsThFactory["Hobs_pp_A_tt_ATLAS"] = boost::factory<Hobs_pp_A_tt_ATLAS*>();
356  obsThFactory["Hobs_bbF_A_bb_CMS"] = boost::factory<Hobs_bbF_A_bb_CMS*>();
357 
358  obsThFactory["log10_ggF_A_tautau_TH"] = boost::factory<log10_ggF_A_tautau_TH*>();
359  obsThFactory["log10_bbF_A_tautau_TH"] = boost::factory<log10_bbF_A_tautau_TH*>();
360  obsThFactory["log10_ggF_A_gaga_TH"] = boost::factory<log10_ggF_A_gaga_TH*>();
361  obsThFactory["log10_ggF_A_hZ_bbll_TH"] = boost::factory<log10_ggF_A_hZ_bbll_TH*>();
362  obsThFactory["log10_ggF_A_hZ_bbZ_TH"] = boost::factory<log10_ggF_A_hZ_bbZ_TH*>();
363  obsThFactory["log10_ggF_A_hZ_tautaull_TH"] = boost::factory<log10_ggF_A_hZ_tautaull_TH*>();
364  obsThFactory["log10_ggF_A_hZ_tautauZ_TH"] = boost::factory<log10_ggF_A_hZ_tautauZ_TH*>();
365  obsThFactory["log10_pp_A_tt_TH"] = boost::factory<log10_pp_A_tt_TH*>();
366  obsThFactory["log10_bbF_A_bb_TH"] = boost::factory<log10_bbF_A_bb_TH*>();
367 
368  obsThFactory["mHh"] = boost::factory<mass_mHh*>();
369  obsThFactory["mA"] = boost::factory<mass_mA*>();
370  obsThFactory["mHp"] = boost::factory<mass_mHp*>();
371  obsThFactory["mHhmmA"] = boost::factory<massdifference_mHhmmA*>();
372  obsThFactory["mAmmHh"] = boost::factory<massdifference_mAmmHh*>();
373  obsThFactory["mHhmmHp"] = boost::factory<massdifference_mHhmmHp*>();
374  obsThFactory["mHpmmHh"] = boost::factory<massdifference_mHpmmHh*>();
375  obsThFactory["mAmmHp"] = boost::factory<massdifference_mAmmHp*>();
376  obsThFactory["mHpmmA"] = boost::factory<massdifference_mHpmmA*>();
377  obsThFactory["lambda1"] = boost::factory<lambda1*>();
378  obsThFactory["lambda2"] = boost::factory<lambda2*>();
379  obsThFactory["lambda3"] = boost::factory<lambda3*>();
380  obsThFactory["lambda4"] = boost::factory<lambda4*>();
381  obsThFactory["lambda5"] = boost::factory<lambda5*>();
382 
383  obsThFactory["positivity1"] = boost::factory<positivity1*>();
384  obsThFactory["positivity2"] = boost::factory<positivity2*>();
385 
386  obsThFactory["unitarity1"] = boost::factory<unitarity1*>();
387  obsThFactory["unitarity2"] = boost::factory<unitarity2*>();
388  obsThFactory["unitarity3"] = boost::factory<unitarity3*>();
389  obsThFactory["unitarity4"] = boost::factory<unitarity4*>();
390  obsThFactory["unitarity5"] = boost::factory<unitarity5*>();
391  obsThFactory["unitarity6"] = boost::factory<unitarity6*>();
392  obsThFactory["unitarity7"] = boost::factory<unitarity7*>();
393  obsThFactory["unitarity8"] = boost::factory<unitarity8*>();
394  obsThFactory["unitarity9"] = boost::factory<unitarity9*>();
395  obsThFactory["unitarity10"] = boost::factory<unitarity10*>();
396  obsThFactory["unitarity11"] = boost::factory<unitarity11*>();
397  obsThFactory["unitarity12"] = boost::factory<unitarity12*>();
398 
399  obsThFactory["DeltaS"] = boost::factory<DeltaS*>();
400  obsThFactory["DeltaT"] = boost::factory<DeltaT*>();
401  obsThFactory["DeltaU"] = boost::factory<DeltaU*>();
402 
403  obsThFactory["B_BtoXsgammaTHDM"] = boost::factory<bsgammaTHDM*>();
404 }
Definition: QCD.h:717
std::map< std::string, boost::function< ThObservable *(const StandardModel &) > > obsThFactory
Definition: ThObsFactory.h:50
Definition: QCD.h:720
Definition: QCD.h:721
Definition: QCD.h:722
Definition: QCD.h:719
ThObsFactory::ThObsFactory ( const ThObsFactory orig)
virtual ThObsFactory::~ThObsFactory ( )
inlinevirtual

Definition at line 33 of file ThObsFactory.h.

34  {
35  };

Member Function Documentation

void ThObsFactory::addObsToFactory ( const std::string  name,
boost::function< ThObservable *(const StandardModel &) >  funct 
)

Definition at line 406 of file ThObsFactory.cpp.

407 {
408  obsThFactory[name] = funct;
409 }
std::map< std::string, boost::function< ThObservable *(const StandardModel &) > > obsThFactory
Definition: ThObsFactory.h:50
ThObservable * ThObsFactory::CreateThMethod ( const std::string &  name,
const StandardModel model 
) const

This method checks for the existence of an observable of a specific name in the map thobs and returns a pointer to the particular ThObservable.

Parameters
[in]namethe name of the observable
[in]model
Returns
a pointer to an object of the type ThObservable

Definition at line 411 of file ThObsFactory.cpp.

412 {
413  if (model.isModelParam(name))
414  return new ParamObs(model, name);
415  if (obsThFactory.find(name) == obsThFactory.end())
416  throw std::runtime_error("ERROR: Wrong observable " + name + " passed to ThObsFactory");
417  return (obsThFactory.at(name)(model));
418 }
A class for setting a parameter as an observable.
Definition: ParamObs.h:21
bool isModelParam(std::string name) const
Definition: Model.h:170
std::map< std::string, boost::function< ThObservable *(const StandardModel &) > > obsThFactory
Definition: ThObsFactory.h:50

Member Data Documentation

std::map<std::string, boost::function<ThObservable* (const StandardModel &) > > ThObsFactory::obsThFactory
private

Definition at line 50 of file ThObsFactory.h.


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