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
14class THDMcache; //forward reference to THDMcache class
15
120class THDM: public StandardModel {
121public:
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 {
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 {
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 {
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 {
425 return mA2;
426 }
427 else
428 {
429 return mA1*mA1;
430 }
431 }
432
437 double getmA() const {
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 {
459 return mHp2;
460 }
461 else
462 {
463 return mHp1*mHp1;
464 }
465 }
466
471 double getmHp() const {
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
575protected:
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
618private:
619
621
623 double mHl2;
627};
628
629#endif /* THDM_H */
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
std::string name
The name of the model.
Definition: Model.h:285
A model class for the Standard Model.
const double v() const
The Higgs vacuum expectation value.
A base class for symmetric Two-Higgs-Doublet models.
Definition: THDM.h:120
double getv2() const
A method get the VEV .
Definition: THDM.h:232
double tanb
Definition: THDM.h:622
double getmHp() const
A method get the charged Higgs mass.
Definition: THDM.h:471
double mHh1
Definition: THDM.h:622
std::string flag_model
Definition: THDM.h:625
double getBDtaunu_SM() const
A method get the SM expectation.
Definition: THDM.h:499
Matching< THDMMatching, THDM > THDMM
An object of type THDMMatching.
Definition: THDM.h:616
double mHp1
Definition: THDM.h:622
std::string getModelTypeflag() const
A method get the THDM model type.
Definition: THDM.h:242
THDMcache * myTHDMcache
An object of type THDMCache.
Definition: THDM.h:620
double BDtaunu_A
Definition: THDM.h:624
double getmHh() const
A method get the mass of the "non-125 GeV" neutral scalar Higgs.
Definition: THDM.h:394
double gettanb() const
A method get .
Definition: THDM.h:283
double getBDstartaunu_B() const
A method get the coefficient B.
Definition: THDM.h:539
double getNLOuniscale() const
A method get the minimal NLO unitarity check scale.
Definition: THDM.h:571
double Q_THDM
Definition: THDM.h:622
double getBDstartaunu_A() const
A method get the coefficient A.
Definition: THDM.h:531
double getBDtaunu_A() const
A method get the coefficient A.
Definition: THDM.h:507
double sin_ba
Definition: THDM.h:622
double BDtaunu_B
Definition: THDM.h:624
double cosb
Definition: THDM.h:622
double getBDtaunu_B() const
A method get the coefficient B.
Definition: THDM.h:515
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of THDM.
Definition: THDM.cpp:235
double getbma() const
A method get .
Definition: THDM.h:307
virtual THDMMatching & getMatching() const
A get method to access the member reference of type THDMMatching.
Definition: THDM.h:185
~THDM()
THDM destructor.
Definition: THDM.cpp:41
static const int NTHDMvars
Definition: THDM.h:123
double BDstartaunu_SM
Definition: THDM.h:624
virtual bool InitializeModel()
A method to initialize the model.
Definition: THDM.cpp:50
double bma
Definition: THDM.h:622
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the THDM parameters found in the argument.
Definition: THDM.cpp:58
double getv1() const
A method get the VEV .
Definition: THDM.h:224
double getQ_THDM() const
A method get the THDM scale.
Definition: THDM.h:555
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
double m12_2
Definition: THDM.h:622
double BDstartaunu_A
Definition: THDM.h:624
double getmHh2() const
A method get the squared mass of the "non-125 GeV" neutral scalar Higgs.
Definition: THDM.h:365
static std::string THDMvars[NTHDMvars]
Definition: THDM.h:124
virtual bool PreUpdate()
The pre-update method for THDM.
Definition: THDM.cpp:62
double BDtaunu_SM
Definition: THDM.h:624
double sinb
Definition: THDM.h:622
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for THDM.
Definition: THDM.cpp:69
double getsinb() const
A method get .
Definition: THDM.h:291
double getmHl2() const
A method get the squared mass of the lighter neutral scalar Higgs.
Definition: THDM.h:339
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
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:185
double mHp2
Definition: THDM.h:622
bool getsqmassesflag() const
A method choose if you want to use the THDM masses or rather their squares.
Definition: THDM.h:258
double getmHp2() const
A method get the squared charged Higgs mass.
Definition: THDM.h:457
double BDstartaunu_B
Definition: THDM.h:624
double getmA() const
A method get the mass of the pseudoscalar Higgs A.
Definition: THDM.h:437
bool flag_wfr
Definition: THDM.h:626
double getRpeps() const
A method get the minimal R' value.
Definition: THDM.h:563
double mHl2
Definition: THDM.h:623
double bsgamma_theoryerror
Definition: THDM.h:622
bool flag_use_sq_masses
Definition: THDM.h:626
std::string getRGEorderflag() const
A method get switch for NLO RGE and approximate NLO RGE.
Definition: THDM.h:250
virtual bool PostUpdate()
The post-update method for THDM.
Definition: THDM.cpp:85
double logtb
Definition: THDM.h:622
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a string flag of THDM.
Definition: THDM.cpp:199
double getm12_2() const
A method get the parameter of the Higgs potential .
Definition: THDM.h:491
double getbsgamma_theoryerror() const
A method get the nuisance parameter for the theoretical error on .
Definition: THDM.h:547
double getcosb() const
A method get .
Definition: THDM.h:299
double getlogtb() const
A method get .
Definition: THDM.h:275
double mHh2
Definition: THDM.h:622
double Rpeps
Definition: THDM.h:622
double getsin_ba() const
A method get .
Definition: THDM.h:315
THDMcache * getMyTHDMCache() const
A method get the THDMCache.
Definition: THDM.h:213
bool getWFRflag() const
A method get the flag to switch on wavefunction renormalization for the NLO unitarity conditions.
Definition: THDM.h:267
double getcosa() const
A method get .
Definition: THDM.h:323
double getsina() const
A method get .
Definition: THDM.h:331
std::string flag_RGEorder
Definition: THDM.h:625
double NLOuniscale
Definition: THDM.h:622
double mA1
Definition: THDM.h:622
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of THDM.
Definition: THDM.cpp:94
double getmA2() const
A method get the squared mass of the pseudoscalar Higgs A.
Definition: THDM.h:423
double mA2
Definition: THDM.h:622
double getBDstartaunu_SM() const
A method get the SM expectation.
Definition: THDM.h:523
THDM()
THDM constructor.
Definition: THDM.cpp:16
A class for the Wilson coefficients in the THDM.
Definition: THDMMatching.h:24
A class for the caching of some THDM objects.
Definition: THDMcache.h:29