a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
THDM.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  *
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 
14 class THDMcache; //forward reference to THDMcache class
15 
120 class THDM: public StandardModel {
121 public:
122 
123  static const int NTHDMvars = 16;
124  static std::string THDMvars[NTHDMvars];
125 
129  THDM();
130 
134  ~THDM();
135 
142  virtual bool InitializeModel();
143 
148  virtual bool Init(const std::map<std::string, double>& DPars);
149 
154  virtual bool PreUpdate();
155 
162  virtual bool Update(const std::map<std::string, double>& DPars);
163 
170  virtual bool PostUpdate();
171 
179  virtual bool CheckParameters(const std::map<std::string, double>& DPars);
180 
185  virtual THDMMatching& getMatching() const
186  {
187  return THDMM.getObj();
188  }
189 
191  // Flags
192 
199  virtual bool setFlagStr(const std::string name, const std::string value);
200 
207  virtual bool setFlag(const std::string name, const bool value);
208 
214  {
215  return myTHDMcache;
216  }
217 
219 
224  double getv1() const {
225  return v() * cosb;
226  }
227 
232  double getv2() const {
233  return v() * sinb;
234  }
235 
237 
242  std::string getModelTypeflag() const {
243  return flag_model;
244  }
245 
250  std::string getRGEorderflag() const {
251  return flag_RGEorder;
252  }
253 
258  bool getsqmassesflag() const {
259  return flag_use_sq_masses;
260  }
261 
267  bool getWFRflag() const {
268  return flag_wfr;
269  }
270 
275  double getlogtb() const {
276  return logtb;
277  }
278 
283  double gettanb() const {
284  return tanb;
285  }
286 
291  double getsinb() const {
292  return sinb;
293  }
294 
299  double getcosb() const {
300  return cosb;
301  }
302 
307  double getbma() const {
308  return bma;
309  }
310 
315  double getsin_ba() const {
316  return sin_ba;
317  }
318 
323  double getcosa() const{
324  return cos(atan(pow(10.,logtb))-bma);
325  }
326 
331  double getsina() const{
332  return sin(atan(pow(10.,logtb))-bma);
333  }
334 
339  double getmHl2() const {
340  if(flag_use_sq_masses) {
341  if(mHh2 < mHl2) {
342  return mHh2;
343  }
344  else
345  {
346  return mHl2;
347  }
348  }
349  else
350  {
351  if(mHh1*mHh1 < mHl2) {
352  return mHh1*mHh1;
353  }
354  else
355  {
356  return mHl2;
357  }
358  }
359  }
360 
365  double getmHh2() const {
366  if(flag_use_sq_masses) {
367  if(mHh2 < 0.) {
368  return 0.;
369  }
370  else if(mHh2 < mHl2) {
371  return mHl2;
372  }
373  else
374  {
375  return mHh2;
376  }
377  }
378  else
379  {
380  if(mHh1*mHh1 < mHl2) {
381  return mHl2;
382  }
383  else
384  {
385  return mHh1*mHh1;
386  }
387  }
388  }
389 
394  double getmHh() const {
395  if(flag_use_sq_masses) {
396  if(mHh2 < 0.) {
397  return 0.;
398  }
399  else if(mHh2 < mHl2) {
400  return sqrt(mHl2);
401  }
402  else
403  {
404  return sqrt(mHh2);
405  }
406  }
407  else
408  {
409  if(mHh1*mHh1 < mHl2) {
410  return sqrt(mHl2);
411  }
412  else
413  {
414  return mHh1;
415  }
416  }
417  }
418 
423  double getmA2() const {
424  if(flag_use_sq_masses) {
425  return mA2;
426  }
427  else
428  {
429  return mA1*mA1;
430  }
431  }
432 
437  double getmA() const {
438  if(flag_use_sq_masses) {
439  if(mA2 < 0.) {
440  return 0.;
441  }
442  else
443  {
444  return sqrt(mA2);
445  }
446  }
447  else
448  {
449  return mA1;
450  }
451  }
452 
457  double getmHp2() const {
458  if(flag_use_sq_masses) {
459  return mHp2;
460  }
461  else
462  {
463  return mHp1*mHp1;
464  }
465  }
466 
471  double getmHp() const {
472  if(flag_use_sq_masses) {
473  if(mHp2 < 0.) {
474  return 0.;
475  }
476  else
477  {
478  return sqrt(mHp2);
479  }
480  }
481  else
482  {
483  return mHp1;
484  }
485  }
486 
491  double getm12_2() const {
492  return m12_2;
493  }
494 
499  double getBDtaunu_SM() const {
500  return BDtaunu_SM;
501  }
502 
507  double getBDtaunu_A() const {
508  return BDtaunu_A;
509  }
510 
515  double getBDtaunu_B() const {
516  return BDtaunu_B;
517  }
518 
523  double getBDstartaunu_SM() const {
524  return BDstartaunu_SM;
525  }
526 
531  double getBDstartaunu_A() const {
532  return BDstartaunu_A;
533  }
534 
539  double getBDstartaunu_B() const {
540  return BDstartaunu_B;
541  }
542 
547  double getbsgamma_theoryerror() const {
548  return bsgamma_theoryerror;
549  }
550 
555  double getQ_THDM() const {
556  return Q_THDM;
557  }
558 
563  double getRpeps() const {
564  return Rpeps;
565  }
566 
571  double getNLOuniscale() const {
572  return NLOuniscale;
573  }
574 
575 protected:
576 
582  virtual void setParameter(const std::string name, const double& value);
583 // THDMcache * mycache;
584 
590  bool checkmodelType(const std::string modeltype) const
591  {
592  if (modeltype.compare("type1") == 0
593  || modeltype.compare("type2") == 0
594  || modeltype.compare("typeX") == 0
595  || modeltype.compare("typeY") == 0)
596  return true;
597  else
598  return false;
599  }
600 
606  bool checkRGEorder(const std::string RGEorder) const
607  {
608  if (RGEorder.compare("LO") == 0
609  || RGEorder.compare("approxNLO") == 0
610  || RGEorder.compare("NLO") == 0)
611  return true;
612  else
613  return false;
614  }
615 
617 
618 private:
619 
621 
623  double mHl2;
625  std::string flag_model, flag_RGEorder;
627 };
628 
629 #endif /* THDM_H */
THDM::getBDtaunu_B
double getBDtaunu_B() const
A method get the coefficient B.
Definition: THDM.h:515
gslpp::cos
complex cos(const complex &z)
Definition: gslpp_complex.cpp:429
THDM::flag_use_sq_masses
bool flag_use_sq_masses
Definition: THDM.h:626
THDM::getv1
double getv1() const
A method get the VEV .
Definition: THDM.h:224
THDM::THDM
THDM()
THDM constructor.
Definition: THDM.cpp:15
THDM::getsinb
double getsinb() const
A method get .
Definition: THDM.h:291
THDM::BDstartaunu_SM
double BDstartaunu_SM
Definition: THDM.h:624
StandardModel::v
virtual double v() const
The Higgs vacuum expectation value.
Definition: StandardModel.cpp:917
THDM::m12_2
double m12_2
Definition: THDM.h:622
THDM::BDstartaunu_A
double BDstartaunu_A
Definition: THDM.h:624
THDM::getmHh
double getmHh() const
A method get the mass of the "non-125 GeV" neutral scalar Higgs.
Definition: THDM.h:394
THDM::getv2
double getv2() const
A method get the VEV .
Definition: THDM.h:232
THDM::mA1
double mA1
Definition: THDM.h:622
THDM::checkRGEorder
bool checkRGEorder(const std::string RGEorder) const
A method to check if the RGE order name in string form is valid.
Definition: THDM.h:606
THDM::mHh2
double mHh2
Definition: THDM.h:622
THDM
A base class for symmetric Two-Higgs-Doublet models.
Definition: THDM.h:120
gslpp::sin
complex sin(const complex &z)
Definition: gslpp_complex.cpp:420
Matching::getObj
T & getObj()
Definition: Matching.h:14
THDM::getBDtaunu_A
double getBDtaunu_A() const
A method get the coefficient A.
Definition: THDM.h:507
THDM::getmA2
double getmA2() const
A method get the squared mass of the pseudoscalar Higgs A.
Definition: THDM.h:423
THDM::sin_ba
double sin_ba
Definition: THDM.h:622
THDM::mHh1
double mHh1
Definition: THDM.h:622
THDM::gettanb
double gettanb() const
A method get .
Definition: THDM.h:283
THDM::checkmodelType
bool checkmodelType(const std::string modeltype) const
A method to check if the model type name in string form is valid.
Definition: THDM.h:590
StandardModel.h
THDM::getm12_2
double getm12_2() const
A method get the parameter of the Higgs potential .
Definition: THDM.h:491
THDM::getRpeps
double getRpeps() const
A method get the minimal R' value.
Definition: THDM.h:563
THDM::getmHp2
double getmHp2() const
A method get the squared charged Higgs mass.
Definition: THDM.h:457
THDM::getRGEorderflag
std::string getRGEorderflag() const
A method get switch for NLO RGE and approximate NLO RGE.
Definition: THDM.h:250
THDMMatching.h
THDMcache
A class for the caching of some THDM objects.
Definition: THDMcache.h:29
THDM::getBDstartaunu_A
double getBDstartaunu_A() const
A method get the coefficient A.
Definition: THDM.h:531
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
THDM::getsina
double getsina() const
A method get .
Definition: THDM.h:331
THDM::flag_RGEorder
std::string flag_RGEorder
Definition: THDM.h:625
THDM::getmHh2
double getmHh2() const
A method get the squared mass of the "non-125 GeV" neutral scalar Higgs.
Definition: THDM.h:365
THDM::Q_THDM
double Q_THDM
Definition: THDM.h:622
THDM::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of THDM.
Definition: THDM.cpp:197
THDM::mA2
double mA2
Definition: THDM.h:622
THDM::myTHDMcache
THDMcache * myTHDMcache
An object of type THDMCache.
Definition: THDM.h:620
THDM::getMatching
virtual THDMMatching & getMatching() const
A get method to access the member reference of type THDMMatching.
Definition: THDM.h:185
THDM::InitializeModel
virtual bool InitializeModel()
A method to initialize the model.
Definition: THDM.cpp:48
THDM::mHp2
double mHp2
Definition: THDM.h:622
THDM::getlogtb
double getlogtb() const
A method get .
Definition: THDM.h:275
THDM::Rpeps
double Rpeps
Definition: THDM.h:622
THDM::BDtaunu_B
double BDtaunu_B
Definition: THDM.h:624
THDM::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the THDM parameters found in the argument.
Definition: THDM.cpp:56
THDM::THDMvars
static std::string THDMvars[NTHDMvars]
Definition: THDM.h:124
THDM::getQ_THDM
double getQ_THDM() const
A method get the THDM scale.
Definition: THDM.h:555
THDM::getNLOuniscale
double getNLOuniscale() const
A method get the minimal NLO unitarity check scale.
Definition: THDM.h:571
THDM::PostUpdate
virtual bool PostUpdate()
The post-update method for THDM.
Definition: THDM.cpp:83
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
THDM::BDtaunu_A
double BDtaunu_A
Definition: THDM.h:624
THDM::flag_model
std::string flag_model
Definition: THDM.h:625
THDM::getbma
double getbma() const
A method get .
Definition: THDM.h:307
THDM::~THDM
~THDM()
THDM destructor.
Definition: THDM.cpp:39
THDM::mHp1
double mHp1
Definition: THDM.h:622
THDM::NTHDMvars
static const int NTHDMvars
Definition: THDM.h:123
THDM::bsgamma_theoryerror
double bsgamma_theoryerror
Definition: THDM.h:622
THDM::tanb
double tanb
Definition: THDM.h:622
THDM::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of THDM.
Definition: THDM.cpp:92
THDM::mHl2
double mHl2
Definition: THDM.h:623
THDM::getbsgamma_theoryerror
double getbsgamma_theoryerror() const
A method get the nuisance parameter for the theoretical error on .
Definition: THDM.h:547
THDM::getsin_ba
double getsin_ba() const
A method get .
Definition: THDM.h:315
THDM::getBDtaunu_SM
double getBDtaunu_SM() const
A method get the SM expectation.
Definition: THDM.h:499
THDM::getModelTypeflag
std::string getModelTypeflag() const
A method get the THDM model type.
Definition: THDM.h:242
THDM::setFlagStr
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a string flag of THDM.
Definition: THDM.cpp:161
THDM::getBDstartaunu_SM
double getBDstartaunu_SM() const
A method get the SM expectation.
Definition: THDM.h:523
Matching< THDMMatching, THDM >
THDMMatching
A class for the Wilson coefficients in the THDM.
Definition: THDMMatching.h:24
THDM::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for THDM have been provided in model initialization...
Definition: THDM.cpp:147
THDM::BDstartaunu_B
double BDstartaunu_B
Definition: THDM.h:624
THDM::NLOuniscale
double NLOuniscale
Definition: THDM.h:622
THDM::getBDstartaunu_B
double getBDstartaunu_B() const
A method get the coefficient B.
Definition: THDM.h:539
THDM::bma
double bma
Definition: THDM.h:622
THDM::PreUpdate
virtual bool PreUpdate()
The pre-update method for THDM.
Definition: THDM.cpp:60
THDM::getcosa
double getcosa() const
A method get .
Definition: THDM.h:323
THDM::cosb
double cosb
Definition: THDM.h:622
THDM::getmHl2
double getmHl2() const
A method get the squared mass of the lighter neutral scalar Higgs.
Definition: THDM.h:339
THDM::BDtaunu_SM
double BDtaunu_SM
Definition: THDM.h:624
THDM::getMyTHDMCache
THDMcache * getMyTHDMCache() const
A method get the THDMCache.
Definition: THDM.h:213
THDM::flag_wfr
bool flag_wfr
Definition: THDM.h:626
THDM::getmA
double getmA() const
A method get the mass of the pseudoscalar Higgs A.
Definition: THDM.h:437
THDM::getcosb
double getcosb() const
A method get .
Definition: THDM.h:299
Model::name
std::string name
The name of the model.
Definition: Model.h:267
THDM::sinb
double sinb
Definition: THDM.h:622
THDM::THDMM
Matching< THDMMatching, THDM > THDMM
An object of type THDMMatching.
Definition: THDM.h:616
THDM::getsqmassesflag
bool getsqmassesflag() const
A method choose if you want to use the THDM masses or rather their squares.
Definition: THDM.h:258
THDM::getmHp
double getmHp() const
A method get the charged Higgs mass.
Definition: THDM.h:471
THDM::Update
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for THDM.
Definition: THDM.cpp:67
THDM::logtb
double logtb
Definition: THDM.h:622
THDM::getWFRflag
bool getWFRflag() const
A method get the flag to switch on wavefunction renormalization for the NLO unitarity conditions.
Definition: THDM.h:267