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 
15 class LRSMquantities; // forward reference to the class that generates the neutral scalar spectrum
16 
30 public:
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 
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);
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 
385 protected:
386 
387  virtual void setParameter(const std::string, const double&);
388 
390 
391  double mH0sq[5];
392  double mH0sq_app[4];
394 
396 
397 private:
398 
403  bool flag_CPV;
404 
405 };
406 
407 #endif /* LEFTRIGHTSYMMETRICMODEL_H */
LeftRightSymmetricModel::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: LeftRightSymmetricModel.cpp:165
LeftRightSymmetricModel::setFlagStr
virtual bool setFlagStr(const std::string name, const std::string value)
Definition: LeftRightSymmetricModel.cpp:180
LeftRightSymmetricModel::getmH1p_2
double getmH1p_2() const
Definition: LeftRightSymmetricModel.h:187
gslpp::cos
complex cos(const complex &z)
Definition: gslpp_complex.cpp:429
LeftRightSymmetricModel::getmH0sq2_app
double getmH0sq2_app() const
Gets the approximate second scalar mass square.
Definition: LeftRightSymmetricModel.h:156
LeftRightSymmetricModel::phiR5_LRSM
double phiR5_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::getphiR2_LRSM
double getphiR2_LRSM() const
Definition: LeftRightSymmetricModel.h:320
LeftRightSymmetricModel::alpha_LRSM
double alpha_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::lambda3_LRSM
double lambda3_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::getphiR5_LRSM
double getphiR5_LRSM() const
Definition: LeftRightSymmetricModel.h:341
LeftRightSymmetricModel::setFlag
virtual bool setFlag(const std::string, const bool)
Definition: LeftRightSymmetricModel.cpp:198
LeftRightSymmetricModel::delta2_LRSM
double delta2_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::getmH0sq3_app
double getmH0sq3_app() const
Gets the approximate third scalar mass square.
Definition: LeftRightSymmetricModel.h:165
LeftRightSymmetricModel::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: LeftRightSymmetricModel.cpp:68
LeftRightSymmetricModel::getxi_LRSM
double getxi_LRSM() const
Definition: LeftRightSymmetricModel.h:208
LeftRightSymmetricModelMatching.h
LeftRightSymmetricModel::thetaR13_LRSM
double thetaR13_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::getlambda1_LRSM
double getlambda1_LRSM() const
Definition: LeftRightSymmetricModel.h:222
LeftRightSymmetricModel::mH0sq_app
double mH0sq_app[4]
Definition: LeftRightSymmetricModel.h:392
LeftRightSymmetricModel::InitializeModel
virtual bool InitializeModel()
Definition: LeftRightSymmetricModel.cpp:60
gslpp::sin
complex sin(const complex &z)
Definition: gslpp_complex.cpp:420
LeftRightSymmetricModel::alpha2_LRSM
double alpha2_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::flagLeftRightSymmetricModel
bool flagLeftRightSymmetricModel
Definition: LeftRightSymmetricModel.h:402
Matching::getObj
T & getObj()
Definition: Matching.h:14
LeftRightSymmetricModel::getQ_LRSM
double getQ_LRSM() const
Definition: LeftRightSymmetricModel.h:381
LeftRightSymmetricModel::mdeltappR_2
double mdeltappR_2
Definition: LeftRightSymmetricModel.h:399
LeftRightSymmetricModel::flag_CPV
bool flag_CPV
Definition: LeftRightSymmetricModel.h:403
LeftRightSymmetricModel::setParameter
virtual void setParameter(const std::string, const double &)
Definition: LeftRightSymmetricModel.cpp:102
LeftRightSymmetricModel::rho4_LRSM
double rho4_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::mH0sq
double mH0sq[5]
Definition: LeftRightSymmetricModel.h:391
StandardModel.h
gslpp.h
LeftRightSymmetricModel::~LeftRightSymmetricModel
~LeftRightSymmetricModel()
LeftRightSymmetricModel destructor.
Definition: LeftRightSymmetricModel.cpp:51
LeftRightSymmetricModel::getphiR6_LRSM
double getphiR6_LRSM() const
Definition: LeftRightSymmetricModel.h:348
LeftRightSymmetricModel::lambda2_LRSM
double lambda2_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::getlambda3_LRSM
double getlambda3_LRSM() const
Definition: LeftRightSymmetricModel.h:236
LeftRightSymmetricModel::lambda1_LRSM
double lambda1_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::U
gslpp::matrix< gslpp::complex > U
Definition: LeftRightSymmetricModel.h:393
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
Matching::setObj
void setObj(T &obji)
Definition: Matching.h:15
LeftRightSymmetricModel::getalpha1_LRSM
double getalpha1_LRSM() const
Definition: LeftRightSymmetricModel.h:264
StandardModel::s23
double s23
Definition: StandardModel.h:2577
LeftRightSymmetricModel::NLeftRightSymmetricModelvars
static const int NLeftRightSymmetricModelvars
Definition: LeftRightSymmetricModel.h:34
gslpp::matrix< gslpp::complex >
LeftRightSymmetricModel::setMatching
virtual void setMatching(LeftRightSymmetricModelMatching &LRSMMr)
Definition: LeftRightSymmetricModel.h:72
LeftRightSymmetricModel::getrho1_LRSM
double getrho1_LRSM() const
Definition: LeftRightSymmetricModel.h:250
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
LeftRightSymmetricModel::getlambda2_LRSM
double getlambda2_LRSM() const
Definition: LeftRightSymmetricModel.h:229
LeftRightSymmetricModel::LRSMM
Matching< LeftRightSymmetricModelMatching, LeftRightSymmetricModel > LRSMM
An object of type Matching.
Definition: LeftRightSymmetricModel.h:395
LeftRightSymmetricModel::getmdeltappR_2
double getmdeltappR_2() const
Definition: LeftRightSymmetricModel.h:201
LeftRightSymmetricModel::getmH0sq2
double getmH0sq2() const
Gets the second scalar mass square.
Definition: LeftRightSymmetricModel.h:110
LeftRightSymmetricModel::alpha1_LRSM
double alpha1_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::getalpha2_LRSM
double getalpha2_LRSM() const
Definition: LeftRightSymmetricModel.h:271
LeftRightSymmetricModel::getmWR
double getmWR() const
Definition: LeftRightSymmetricModel.h:215
LeftRightSymmetricModel::getlambda4_LRSM
double getlambda4_LRSM() const
Definition: LeftRightSymmetricModel.h:243
LeftRightSymmetricModel::Q_LRSM
double Q_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::mH2p_2
double mH2p_2
Definition: LeftRightSymmetricModel.h:399
LeftRightSymmetricModel::getthetaR13_LRSM
double getthetaR13_LRSM() const
Definition: LeftRightSymmetricModel.h:299
LeftRightSymmetricModelMatching
A class for the matching in the LeftRightSymmetricModel.
Definition: LeftRightSymmetricModelMatching.h:24
LeftRightSymmetricModel::getthetaR23_LRSM
double getthetaR23_LRSM() const
Definition: LeftRightSymmetricModel.h:306
LeftRightSymmetricModel
A base class for generic Left Right Symmetric Models.
Definition: LeftRightSymmetricModel.h:29
LeftRightSymmetricModel::getdelta2_LRSM
double getdelta2_LRSM() const
Definition: LeftRightSymmetricModel.h:285
LeftRightSymmetricModel::getMatching
virtual LeftRightSymmetricModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
Definition: LeftRightSymmetricModel.h:67
LeftRightSymmetricModel::getphiR3_LRSM
double getphiR3_LRSM() const
Definition: LeftRightSymmetricModel.h:327
LeftRightSymmetricModel::setModelLeftRightSymmetricModel
void setModelLeftRightSymmetricModel()
Definition: LeftRightSymmetricModel.h:59
LeftRightSymmetricModel::phiR2_LRSM
double phiR2_LRSM
Definition: LeftRightSymmetricModel.h:401
gslpp::complex::i
static const complex & i()
Definition: gslpp_complex.cpp:154
LeftRightSymmetricModel::LeftRightSymmetricModelvars
static const std::string LeftRightSymmetricModelvars[NLeftRightSymmetricModelvars]
Definition: LeftRightSymmetricModel.h:35
LeftRightSymmetricModel::rho1_LRSM
double rho1_LRSM
Definition: LeftRightSymmetricModel.h:400
LeftRightSymmetricModel::myLRSMquantities
LRSMquantities * myLRSMquantities
Definition: LeftRightSymmetricModel.h:389
LeftRightSymmetricModel::getCPVflag
bool getCPVflag() const
Definition: LeftRightSymmetricModel.h:90
LeftRightSymmetricModel::getmH0sq3
double getmH0sq3() const
Gets the third scalar mass square.
Definition: LeftRightSymmetricModel.h:119
StandardModel::s13
double s13
Definition: StandardModel.h:2577
LeftRightSymmetricModel::getalpha_LRSM
double getalpha_LRSM() const
Definition: LeftRightSymmetricModel.h:278
LeftRightSymmetricModel::phiR3_LRSM
double phiR3_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::phiR6_LRSM
double phiR6_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::getmH0sq1
double getmH0sq1() const
Gets the first scalar mass square.
Definition: LeftRightSymmetricModel.h:101
LeftRightSymmetricModel::getmH0sq1_app
double getmH0sq1_app() const
Gets the approximate first scalar mass square.
Definition: LeftRightSymmetricModel.h:147
LeftRightSymmetricModel::lambda4_LRSM
double lambda4_LRSM
Definition: LeftRightSymmetricModel.h:400
Matching< LeftRightSymmetricModelMatching, LeftRightSymmetricModel >
StandardModel::s12
double s12
Definition: StandardModel.h:2577
LeftRightSymmetricModel::getmH2p_2
double getmH2p_2() const
Definition: LeftRightSymmetricModel.h:194
LeftRightSymmetricModel::Update
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: LeftRightSymmetricModel.cpp:79
LeftRightSymmetricModel::getphiR1_LRSM
double getphiR1_LRSM() const
Definition: LeftRightSymmetricModel.h:313
LeftRightSymmetricModel::phiR1_LRSM
double phiR1_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::PostUpdate
virtual bool PostUpdate()
Definition: LeftRightSymmetricModel.cpp:91
LeftRightSymmetricModel::phiR4_LRSM
double phiR4_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::getmH0sq5
double getmH0sq5() const
Gets the fifth scalar mass square.
Definition: LeftRightSymmetricModel.h:137
LeftRightSymmetricModel::getthetaR12_LRSM
double getthetaR12_LRSM() const
Definition: LeftRightSymmetricModel.h:292
LeftRightSymmetricModel::getVCKMR
gslpp::matrix< gslpp::complex > getVCKMR() const
A get method to retrieve the CKMR matrix.
Definition: LeftRightSymmetricModel.h:356
LeftRightSymmetricModel::mH1p_2
double mH1p_2
Definition: LeftRightSymmetricModel.h:399
Model::name
std::string name
The name of the model.
Definition: Model.h:275
LeftRightSymmetricModel::thetaR23_LRSM
double thetaR23_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::xi_LRSM
double xi_LRSM
Definition: LeftRightSymmetricModel.h:399
LeftRightSymmetricModel::thetaR12_LRSM
double thetaR12_LRSM
Definition: LeftRightSymmetricModel.h:401
LeftRightSymmetricModel::PreUpdate
virtual bool PreUpdate()
Definition: LeftRightSymmetricModel.cpp:72
LeftRightSymmetricModel::getrho4_LRSM
double getrho4_LRSM() const
Definition: LeftRightSymmetricModel.h:257
LeftRightSymmetricModel::getphiR4_LRSM
double getphiR4_LRSM() const
Definition: LeftRightSymmetricModel.h:334
LeftRightSymmetricModel::mWR
double mWR
Definition: LeftRightSymmetricModel.h:399
LeftRightSymmetricModel::getmH0sq4
double getmH0sq4() const
Gets the fourth scalar mass square.
Definition: LeftRightSymmetricModel.h:128
LeftRightSymmetricModel::LeftRightSymmetricModel
LeftRightSymmetricModel()
LeftRightSymmetricModel constructor.
Definition: LeftRightSymmetricModel.cpp:20
LRSMquantities
A class for calculating the Higgs spectrum and other potential parameters at tree level.
Definition: LRSMquantities.h:27
LeftRightSymmetricModel::getmH0sq4_app
double getmH0sq4_app() const
Gets the approximate fourth scalar mass square.
Definition: LeftRightSymmetricModel.h:174