a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
LeftRightSymmetricModel.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#ifndef LEFTRIGHTSYMMETRICMODEL_H
9#define LEFTRIGHTSYMMETRICMODEL_H
10
11#include "gslpp.h"
12#include "StandardModel.h"
14
15class LRSMquantities; // forward reference to the class that generates the neutral scalar spectrum
16
30public:
31
32 friend class LRSMquantities;
33
34 static const int NLeftRightSymmetricModelvars = 25;
36
41
46
47 virtual bool InitializeModel();
48
49 virtual bool Init(const std::map<std::string, double>& DPars);
50
51 virtual bool PreUpdate();
52
53 virtual bool Update(const std::map<std::string, double>& DPars);
54
55 virtual bool PostUpdate();
56
57 virtual bool CheckParameters(const std::map<std::string, double>& DPars);
58
61 }
62
68 {
69 return LRSMM.getObj();
70 }
71
73 {
74 LRSMM.setObj(LRSMMr);
75 }
76
77
78 /*------------------------------------------------------------------------*/
79 // Flags
80
81 virtual bool setFlagStr(const std::string name, const std::string value);
82 virtual bool setFlag(const std::string, const bool);
83
84 /*------------------------------------------------------------------------*/
85
90 bool getCPVflag() const {
91// if(alpha_LRSM==0.0 && delta2_LRSM==0.0 && thetaL==0.0) flag_CPV=false;
92 return flag_CPV;
93 }
94
95 //Parametrization according to 0712.4218
96
101 double getmH0sq1() const
102 {
103 return mH0sq[0];
104 }
105
110 double getmH0sq2() const
111 {
112 return mH0sq[1];
113 }
114
119 double getmH0sq3() const
120 {
121 return mH0sq[2];
122 }
123
128 double getmH0sq4() const
129 {
130 return mH0sq[3];
131 }
132
137 double getmH0sq5() const
138 {
139 return mH0sq[4];
140 }
141
142
147 double getmH0sq1_app() const
148 {
149 return mH0sq_app[0];
150 }
151
156 double getmH0sq2_app() const
157 {
158 return mH0sq_app[1];
159 }
160
165 double getmH0sq3_app() const
166 {
167 return mH0sq_app[2];
168 }
169
174 double getmH0sq4_app() const
175 {
176 return mH0sq_app[3];
177 }
178
179
180
181
182
183
187 double getmH1p_2() const {
188 return mH1p_2;
189 }
190
194 double getmH2p_2() const {
195 return mH2p_2;
196 }
197
201 double getmdeltappR_2() const {
202 return mdeltappR_2;
203 }
204
208 double getxi_LRSM() const {
209 return xi_LRSM;
210 }
211
215 double getmWR() const {
216 return mWR;
217 }
218
222 double getlambda1_LRSM() const {
223 return lambda1_LRSM;
224 }
225
229 double getlambda2_LRSM() const {
230 return lambda2_LRSM;
231 }
232
236 double getlambda3_LRSM() const {
237 return lambda3_LRSM;
238 }
239
243 double getlambda4_LRSM() const {
244 return lambda4_LRSM;
245 }
246
250 double getrho1_LRSM() const {
251 return rho1_LRSM;
252 }
253
257 double getrho4_LRSM() const {
258 return rho4_LRSM;
259 }
260
264 double getalpha1_LRSM() const {
265 return alpha1_LRSM;
266 }
267
271 double getalpha2_LRSM() const {
272 return alpha2_LRSM;
273 }
274
278 double getalpha_LRSM() const {
279 return alpha_LRSM;
280 }
281
285 double getdelta2_LRSM() const {
286 return delta2_LRSM;
287 }
288
292 double getthetaR12_LRSM() const {
293 return thetaR12_LRSM;
294 }
295
299 double getthetaR13_LRSM() const {
300 return thetaR13_LRSM;
301 }
302
306 double getthetaR23_LRSM() const {
307 return thetaR23_LRSM;
308 }
309
313 double getphiR1_LRSM() const {
314 return phiR1_LRSM;
315 }
316
320 double getphiR2_LRSM() const {
321 return phiR2_LRSM;
322 }
323
327 double getphiR3_LRSM() const {
328 return phiR3_LRSM;
329 }
330
334 double getphiR4_LRSM() const {
335 return phiR4_LRSM;
336 }
337
341 double getphiR5_LRSM() const {
342 return phiR5_LRSM;
343 }
344
348 double getphiR6_LRSM() const {
349 return phiR6_LRSM;
350 }
351
356 gslpp::matrix<gslpp::complex> getVCKMR() const
357 {
358 gslpp::matrix<gslpp::complex> VCKMR(3,3,0.);
359 double c12 = cos(thetaR12_LRSM);
360 double s12 = sin(thetaR12_LRSM);
361 double c13 = cos(thetaR13_LRSM);
362 double s13 = sin(thetaR13_LRSM);
363 double c23 = cos(thetaR23_LRSM);
364 double s23 = sin(thetaR23_LRSM);
365 gslpp::complex im = gslpp::complex::i();
366 VCKMR.assign(0,0, c12*c13*(cos(phiR4_LRSM)-im*sin(phiR4_LRSM)) );
367 VCKMR.assign(0,1, s12*c13*(cos(phiR5_LRSM)-im*sin(phiR5_LRSM)) );
368 VCKMR.assign(0,2, s13*(cos(phiR4_LRSM+phiR6_LRSM)-im*sin(phiR4_LRSM+phiR6_LRSM)) );
369 VCKMR.assign(1,0, -(s12*c23+c12*s13*s23*(cos(phiR1_LRSM)+im*sin(phiR1_LRSM)))*(cos(phiR2_LRSM-phiR4_LRSM)+im*sin(phiR2_LRSM-phiR4_LRSM)) );
370 VCKMR.assign(1,1, (c12*c23-s12*s13*s23*(cos(phiR1_LRSM)+im*sin(phiR1_LRSM)))*(cos(phiR2_LRSM-phiR5_LRSM)+im*sin(phiR2_LRSM-phiR5_LRSM)) );
371 VCKMR.assign(1,2, c13*s23*(cos(phiR2_LRSM-phiR6_LRSM)+im*sin(phiR2_LRSM-phiR6_LRSM)) );
372 VCKMR.assign(2,0, (s12*s23-c12*s13*c23*(cos(phiR1_LRSM)+im*sin(phiR1_LRSM)))*(cos(phiR3_LRSM-phiR4_LRSM)+im*sin(phiR3_LRSM-phiR4_LRSM)) );
373 VCKMR.assign(2,1, -(c12*s23+s12*s13*c23*(cos(phiR1_LRSM)+im*sin(phiR1_LRSM)))*(cos(phiR3_LRSM-phiR5_LRSM)+im*sin(phiR3_LRSM-phiR5_LRSM)) );
374 VCKMR.assign(2,2, c13*c23*(cos(phiR3_LRSM-phiR6_LRSM)+im*sin(phiR3_LRSM-phiR6_LRSM)) );
375 return VCKMR;
376 }
377
381 double getQ_LRSM() const {
382 return Q_LRSM;
383 }
384
385protected:
386
387 virtual void setParameter(const std::string, const double&);
388
390
391 double mH0sq[5];
392 double mH0sq_app[4];
393 gslpp::matrix<gslpp::complex> U;
394
396
397private:
398
404
405};
406
407#endif /* LEFTRIGHTSYMMETRICMODEL_H */
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
A class for calculating the Higgs spectrum and other potential parameters at tree level.
A base class for generic Left Right Symmetric Models.
~LeftRightSymmetricModel()
LeftRightSymmetricModel destructor.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
double getmH0sq1() const
Gets the first scalar mass square.
virtual bool Init(const std::map< std::string, double > &DPars)
double getmH0sq3() const
Gets the third scalar mass square.
virtual bool Update(const std::map< std::string, double > &DPars)
Matching< LeftRightSymmetricModelMatching, LeftRightSymmetricModel > LRSMM
An object of type Matching.
static const int NLeftRightSymmetricModelvars
double getmH0sq4() const
Gets the fourth scalar mass square.
virtual bool setFlag(const std::string, const bool)
double getmH0sq5() const
Gets the fifth scalar mass square.
gslpp::matrix< gslpp::complex > U
gslpp::matrix< gslpp::complex > getVCKMR() const
A get method to retrieve the CKMR matrix.
double getmH0sq2() const
Gets the second scalar mass square.
static const std::string LeftRightSymmetricModelvars[NLeftRightSymmetricModelvars]
double getmH0sq3_app() const
Gets the approximate third scalar mass square.
virtual bool setFlagStr(const std::string name, const std::string value)
double getmH0sq1_app() const
Gets the approximate first scalar mass square.
double getmH0sq2_app() const
Gets the approximate second scalar mass square.
virtual void setMatching(LeftRightSymmetricModelMatching &LRSMMr)
virtual void setParameter(const std::string, const double &)
LeftRightSymmetricModel()
LeftRightSymmetricModel constructor.
virtual LeftRightSymmetricModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
double getmH0sq4_app() const
Gets the approximate fourth scalar mass square.
A class for the matching in the LeftRightSymmetricModel.
std::string name
The name of the model.
Definition: Model.h:285
A model class for the Standard Model.