THDM.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #ifndef THDM_H
9 #define THDM_H
10 
11 #include "StandardModel.h"
12 #include "THDMMatching.h"
13 #include "THDMcache.h"
14 
15 //class THDMcache; //forward reference to THDMcache class
16 
94 class THDM: public StandardModel {
95 public:
96 
97  static const int NTHDMvars = 7;
98  static const std::string THDMvars[NTHDMvars];
99 
103  THDM();
104 
108  ~THDM();
109 
110  virtual bool InitializeModel();
111 
112  virtual bool Init(const std::map<std::string, double>& DPars);
113 
114  virtual bool PreUpdate();
115 
116  virtual bool Update(const std::map<std::string, double>& DPars);
117 
118  virtual bool PostUpdate();
119 
120  virtual bool CheckParameters(const std::map<std::string, double>& DPars);
121 
122 
124  // Flags
125 
126  virtual bool setFlagStr(const std::string name, const std::string value);
127 
128  virtual THDMMatching* getMyMatching() const
129  {
130  return myTHDMMatching;
131  }
132 
133 
135 
140  double getv1() const {
141  return v() * cosb;
142  }
143 
148  double getv2() const {
149  return v() * sinb;
150  }
151 
153 
158  std::string getModelTypeflag() const {
159  return flag_model;
160  }
161 
166  double getlogtb() const {
167  return logtb;
168  }
169 
174  double gettanb() const {
175  return tanb;
176  }
177 
182  double getsinb() const {
183  return sinb;
184  }
185 
190  double getcosb() const {
191  return cosb;
192  }
193 
198  double getbma() const {
199  return bma;
200  }
201 
206  double getsin_ba() const {
207  return sin_ba;
208  }
209 
214  double getcosa() const{
215  return cos(atan(pow(10.,logtb))-bma);
216  }
217 
222  double getsina() const{
223  return sin(atan(pow(10.,logtb))-bma);
224  }
225 
230  double getmHh2() const {
231  return mHh2;
232  }
233 
238  double getmHh() const {
239  return sqrt(mHh2);
240  }
241 
246  double getmA2() const {
247  return mHh2-mHh2mmA2;
248  }
249 
254  double getmA() const {
255  return sqrt(mHh2-mHh2mmA2);
256  }
257 
262  double getmHp2() const {
263  return mHh2-mHh2mmHp2;
264  }
265 
270  double getmHp() const {
271  return sqrt(mHh2-mHh2mmHp2);
272  }
273 
278  double getm12_2() const {
279  return m12_2;
280  }
281 
286  double getbsgamma_theoryerror() const {
287  return bsgamma_theoryerror;
288  }
289 
290 protected:
291 
292  virtual void setParameter(const std::string, const double&);
294 
300  bool checkmodelType(const std::string modeltype) const
301  {
302  if (modeltype.compare("type1") == 0
303  || modeltype.compare("type2") == 0
304  || modeltype.compare("typeX") == 0
305  || modeltype.compare("typeY") == 0)
306  return true;
307  else
308  return false;
309  }
310 
311 private:
312 
314 
316  std::string flag_model;
317 };
318 
319 #endif /* THDM_H */
complex cos(const complex &z)
~THDM()
THDM destructor.
Definition: THDM.cpp:24
double bsgamma_theoryerror
Definition: THDM.h:315
double getv2() const
Definition: THDM.h:148
virtual bool PostUpdate()
Definition: THDM.cpp:68
bool checkmodelType(const std::string modeltype) const
A method to check if the model type name in string form is valid.
Definition: THDM.h:300
double getm12_2() const
Definition: THDM.h:278
virtual THDMMatching * getMyMatching() const
Definition: THDM.h:128
double getsina() const
Definition: THDM.h:222
double getsinb() const
Definition: THDM.h:182
double sin_ba
Definition: THDM.h:315
double getsin_ba() const
Definition: THDM.h:206
double getbma() const
Definition: THDM.h:198
double mHh2mmA2
Definition: THDM.h:315
double mHh2
Definition: THDM.h:315
complex pow(const complex &z1, const complex &z2)
double getcosb() const
Definition: THDM.h:190
A class for the caching of some THDM objects.
Definition: THDMcache.h:27
virtual bool setFlagStr(const std::string name, const std::string value)
Definition: THDM.cpp:124
THDMMatching * myTHDMMatching
Definition: THDM.h:313
double sinb
Definition: THDM.h:315
double getmHp2() const
Definition: THDM.h:262
THDM()
THDM constructor.
Definition: THDM.cpp:13
std::string name
The name of the model.
Definition: Model.h:203
A model class for the Standard Model.
double gettanb() const
Definition: THDM.h:174
double mHh2mmHp2
Definition: THDM.h:315
double getmA() const
Definition: THDM.h:254
double getmHh2() const
Definition: THDM.h:230
double logtb
Definition: THDM.h:315
double getlogtb() const
Definition: THDM.h:166
double cosb
Definition: THDM.h:315
double getmA2() const
Definition: THDM.h:246
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: THDM.cpp:111
static const std::string THDMvars[NTHDMvars]
Definition: THDM.h:98
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
static const int NTHDMvars
Definition: THDM.h:97
virtual bool PreUpdate()
Definition: THDM.cpp:45
double tanb
Definition: THDM.h:315
double getmHh() const
Definition: THDM.h:238
THDMcache * mycache
Definition: THDM.h:293
double bma
Definition: THDM.h:315
double getbsgamma_theoryerror() const
Definition: THDM.h:286
std::string flag_model
Definition: THDM.h:316
virtual bool InitializeModel()
Definition: THDM.cpp:33
A base class symmetric Two-Higgs-Doublet models.
Definition: THDM.h:94
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: THDM.cpp:52
A class for the Wilson coefficients in the THDM.
Definition: THDMMatching.h:24
double m12_2
Definition: THDM.h:315
virtual void setParameter(const std::string, const double &)
Definition: THDM.cpp:80
complex sin(const complex &z)
double getv1() const
Definition: THDM.h:140
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: THDM.cpp:41
double getcosa() const
Definition: THDM.h:214
double getmHp() const
Definition: THDM.h:270
std::string getModelTypeflag() const
Definition: THDM.h:158
complex sqrt(const complex &z)