a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
THDMW.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#ifndef THDMW_H
9#define THDMW_H
10
11#include "StandardModel.h"
12#include "THDMWMatching.h"
13#include "NPbase.h"
14
15class THDMWcache; //forward reference to THDMWcache class
16
233class THDMW: public NPbase {
234public:
235
236 static const int NTHDMWvars = 34;
237 static const std::string THDMWvars[NTHDMWvars];
238
242 THDMW();
243
247 ~THDMW();
248
255 virtual bool InitializeModel();
256
261 virtual bool Init(const std::map<std::string, double>& DPars);
262
267 virtual bool PreUpdate();
268
275 virtual bool Update(const std::map<std::string, double>& DPars);
276
283 virtual bool PostUpdate();
284
292 virtual bool CheckParameters(const std::map<std::string, double>& DPars);
293
298 virtual THDMWMatching& getMatching() const
299 {
300 return THDMWM.getObj();
301 }
302
304 // Flags
305
312 virtual bool setFlagStr(const std::string name, const std::string value);
313
319 {
320 return myTHDMWcache;
321 }
322
324
329 std::string getModelTypeTHDMWflag() const {
330 return flag_modelTHDMW;
331 }
332
337 std::string getRGEorderflag() const {
338 return flag_RGEorder;
339 }
340
345 const double getTHDMW_logtb() const {
346 return THDMW_logtb;
347 }
348
353 const double getTHDMW_tanb() const {
354 return THDMW_tanb;
355 }
356
361 const double getTHDMW_sinb() const {
362 return THDMW_sinb;
363 }
364
369 const double getTHDMW_cosb() const {
370 return THDMW_cosb;
371 }
372
377 const double getTHDMW_bma() const {
378 return THDMW_bma;
379 }
380
385 const double getTHDMW_sin_ba() const {
386 return THDMW_sin_ba;
387 }
388
393 const double getTHDMW_cosa() const{
394 return cos(atan(pow(10.,THDMW_logtb))-THDMW_bma);
395 }
396
401 const double getTHDMW_sina() const{
402 return sin(atan(pow(10.,THDMW_logtb))-THDMW_bma);
403 }
404
409 const double getTHDMW_lambda1() const {
410 return THDMW_lambda1;
411 }
412
417 const double getTHDMW_lambda2() const {
418 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
419 return 0.0;
420 }
421 else {
422 return THDMW_lambda2;
423 }
424 }
425
430 const double getTHDMW_lambda3() const {
431 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
432 return 0.0;
433 }
434 else {
435 return THDMW_lambda3;
436 }
437 }
438
443 const double getTHDMW_lambda4() const {
444 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
445 return 0.0;
446 }
447 else {
448 return THDMW_lambda4;
449 }
450 }
451
456 const double getTHDMW_lambda5() const {
457 if (flag_modelTHDMW == "custodial1") {
458 return THDMW_lambda4;
459 }
460 else if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
461 return 0.0;
462 }
463 else {
464 return THDMW_lambda5;
465 }
466 }
467
472 const double getTHDMW_mS2() const {
473 return THDMW_mS2;
474 }
475
480 const double getTHDMW_mu1() const {
481 return THDMW_mu1;
482 }
483
488 const double getTHDMW_mu2() const {
489 if (flag_modelTHDMW == "custodial1" || flag_modelTHDMW == "custodialMW") {
490 return THDMW_mu1;
491 }
492 else {
493 return THDMW_mu2;
494 }
495 }
496
501 const double getTHDMW_mu3() const {
502 return THDMW_mu3;
503 }
508 const double getTHDMW_mu4() const {
509 return THDMW_mu4;
510 }
511
516 const double getTHDMW_mu5() const {
517 if (flag_modelTHDMW == "custodial1" || flag_modelTHDMW == "custodialMW") {
518 return THDMW_mu4;
519 }
520 else {
521 return THDMW_mu5;
522 }
523 }
524
529 const double getTHDMW_mu6() const {
530 if (flag_modelTHDMW == "custodial1" || flag_modelTHDMW == "custodialMW") {
531 return 2.0*THDMW_mu1;
532 }
533 else {
534 return THDMW_mu6;
535 }
536 }
537
542 const double getTHDMW_nu1() const {
543 return THDMW_nu1;
544 }
545
550 const double getTHDMW_nu2() const {
551 return THDMW_nu2;
552 }
553
558 const double getTHDMW_nu3() const {
559 if (flag_modelTHDMW == "custodial1" || flag_modelTHDMW == "custodialMW") {
560 return 0.5*THDMW_nu2;
561 }
562 else {
563 return THDMW_nu3;
564 }
565 }
570 const double getTHDMW_nu4() const {
571 return THDMW_nu4;
572 }
573
578 const double getTHDMW_nu5() const {
579 if (flag_modelTHDMW == "custodial1" || flag_modelTHDMW == "custodialMW") {
580 return THDMW_nu4;
581 }
582 else {
583 return THDMW_nu5;
584 }
585 }
586
591 const double getTHDMW_omega1() const {
592 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
593 return 0.0;
594 }
595 else {
596 return THDMW_omega1;
597 }
598 }
599
604 const double getTHDMW_omega2() const {
605 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
606 return 0.0;
607 }
608 else {
609 return THDMW_omega2;
610 }
611 }
612
617 const double getTHDMW_omega3() const {
618 if (flag_modelTHDMW == "custodial1") {
619 return 0.5*THDMW_omega2;
620 }
621 else if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
622 return 0.0;
623 }
624 else {
625 return THDMW_omega3;
626 }
627 }
628
633 const double getTHDMW_omega4() const {
634 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
635 return 0.0;
636 }
637 else {
638 return THDMW_omega4;
639 }
640 }
641
646 const double getTHDMW_omega5() const {
647 if (flag_modelTHDMW == "custodial1") {
648 return THDMW_omega4;
649 }
650 else if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
651 return 0.0;
652 }
653 else {
654 return THDMW_omega5;
655 }
656 }
657
662 const double getTHDMW_kappa1() const {
663 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
664 return 0.0;
665 }
666 else {
667 return THDMW_kappa1;
668 }
669 }
670
675 const double getTHDMW_kappa2() const {
676 if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
677 return 0.0;
678 }
679 else {
680 return THDMW_kappa2;
681 }
682 }
683
688 const double getTHDMW_kappa3() const {
689 if (flag_modelTHDMW == "custodial1") {
690 return THDMW_kappa2;
691 }
692 else if (flag_modelTHDMW == "ManoharWise" || flag_modelTHDMW == "custodialMW") {
693 return 0.0;
694 }
695 else {
696 return THDMW_kappa3;
697 }
698 }
699
704 const double getTHDMW_etaU() const {
705 return THDMW_etaU;
706 }
707
712 const double getTHDMW_etaD() const {
713 return THDMW_etaD;
714 }
715
716
721 const double getTHDMW_rho_b() const {
722 return THDMW_rho_b;
723 }
724
729 const double getTHDMW_S_b() const {
730 return THDMW_S_b;
731 }
732
733
734
739 const double getQ_THDMW() const {
740 return Q_THDMW;
741 }
742
747 const double getRpepsTHDMW() const {
748 return RpepsTHDMW;
749 }
750
755 const double getNLOuniscaleTHDMW() const {
756 return NLOuniscaleTHDMW;
757 }
758
759 virtual const double muggH(const double sqrt_s) const;
760 virtual const double muVBF(const double sqrt_s) const;
761 virtual const double mueeWBF(const double sqrt_s, const double Pol_em, const double Pol_ep) const;
762 virtual const double muWH(const double sqrt_s) const;
763 virtual const double muZH(const double sqrt_s) const;
764 virtual const double mueeZH(const double sqrt_s, const double Pol_em, const double Pol_ep) const;
765 virtual const double muVH(const double sqrt_s) const;
766 virtual const double muVBFpVH(const double sqrt_s) const;
767 virtual const double muttH(const double sqrt_s) const;
768 virtual const double GammaTotal() const;
769 virtual const double BrHggRatio() const;
770 virtual const double BrHWWRatio() const;
771 virtual const double BrHZZRatio() const;
772 virtual const double BrHZgaRatio() const;
773 virtual const double BrHgagaRatio() const;
774 virtual const double BrHmumuRatio() const;
775 virtual const double BrHtautauRatio() const;
776 virtual const double BrHccRatio() const;
777 virtual const double BrHbbRatio() const;
778 virtual const double muggHgaga(const double sqrt_s) const;
779 virtual const double muVBFHgaga(const double sqrt_s) const;
780 virtual const double muVHgaga(const double sqrt_s) const;
781 virtual const double muttHgaga(const double sqrt_s) const;
782 virtual const double muggHZZ(const double sqrt_s) const;
783 virtual const double muVBFHZZ(const double sqrt_s) const;
784 virtual const double muVHZZ(const double sqrt_s) const;
785 virtual const double muttHZZ(const double sqrt_s) const;
786 virtual const double muggHWW(const double sqrt_s) const;
787 virtual const double muVBFHWW(const double sqrt_s) const;
788 virtual const double muVHWW(const double sqrt_s) const;
789 virtual const double muttHWW(const double sqrt_s) const;
790 virtual const double muggHtautau(const double sqrt_s) const;
791 virtual const double muVBFHtautau(const double sqrt_s) const;
792 virtual const double muVHtautau(const double sqrt_s) const;
793 virtual const double muttHtautau(const double sqrt_s) const;
794 virtual const double muggHbb(const double sqrt_s) const;
795 virtual const double muVBFHbb(const double sqrt_s) const;
796 virtual const double muVHbb(const double sqrt_s) const;
797 virtual const double muttHbb(const double sqrt_s) const;
798 virtual const double muppHmumu(const double sqrt_s) const;
799 virtual const double muppHZga(const double sqrt_s) const;
800 virtual const double computeGammaTotalRatio() const;
801
802 /*
803 * @brief Method overriding the NPbase Mw with the tree-level W mass
804 */
805 virtual const double Mw() const;
806
807protected:
808
809 virtual void setParameter(const std::string, const double&);
810
816 bool checkmodelTypeTHDMW(const std::string modeltype) const
817 {
818 if (modeltype.compare("custodial1") == 0)
819 return true;
820 else if (modeltype.compare("ManoharWise") == 0)
821 return true;
822 else if (modeltype.compare("custodialMW") == 0)
823 return true;
824 else if (modeltype.compare("custodial2") == 0)
825 return true;
826 else
827 return false;
828 }
829
831
837 bool checkRGEorder(const std::string RGEorder) const
838 {
839 if (RGEorder.compare("LO") == 0
840 || RGEorder.compare("approxNLO") == 0)
841 return true;
842 else
843 return false;
844 }
845
846private:
847
849
860};
861
862#endif /* THDMW_H */
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
std::string name
The name of the model.
Definition: Model.h:285
The auxiliary base model class for other model classes.
Definition: NPbase.h:66
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233
const double getTHDMW_kappa1() const
A getter for .
Definition: THDMW.h:662
const double getTHDMW_nu3() const
A getter for .
Definition: THDMW.h:558
const double getTHDMW_kappa2() const
A getter for .
Definition: THDMW.h:675
virtual const double muVBFHgaga(const double sqrt_s) const
Definition: THDMW.cpp:366
const double getTHDMW_S_b() const
A getter for .
Definition: THDMW.h:729
THDMWcache * myTHDMWcache
Definition: THDMW.h:848
double THDMW_S_b
Definition: THDMW.h:857
const double getTHDMW_omega5() const
A getter for .
Definition: THDMW.h:646
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for THDMW have been provided in model initializatio...
Definition: THDMW.cpp:199
~THDMW()
THDMW destructor
Definition: THDMW.cpp:61
double THDMW_mu1
Definition: THDMW.h:852
static const int NTHDMWvars
Definition: THDMW.h:236
const double getTHDMW_mS2() const
A getter for .
Definition: THDMW.h:472
const double getTHDMW_lambda2() const
A getter for .
Definition: THDMW.h:417
double THDMW_mu5
Definition: THDMW.h:852
virtual void setParameter(const std::string, const double &)
Definition: THDMW.cpp:114
double THDMW_nu2
Definition: THDMW.h:853
virtual const double muggHbb(const double sqrt_s) const
Definition: THDMW.cpp:441
const double getNLOuniscaleTHDMW() const
A getter for the minimal NLO unitarity check scale.
Definition: THDMW.h:755
virtual const double muggHgaga(const double sqrt_s) const
Definition: THDMW.cpp:361
THDMW()
THDMW constructor
Definition: THDMW.cpp:21
const double getTHDMW_kappa3() const
A getter for .
Definition: THDMW.h:688
virtual const double muppHmumu(const double sqrt_s) const
Definition: THDMW.cpp:461
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a string flag of THDMW.
Definition: THDMW.cpp:213
virtual const double mueeZH(const double sqrt_s, const double Pol_em, const double Pol_ep) const
Definition: THDMW.cpp:285
std::string getRGEorderflag() const
A getter for the switch for NLO RGE and approximate NLO RGE.
Definition: THDMW.h:337
double THDMW_etaU
Definition: THDMW.h:856
double THDMW_sin_ba
Definition: THDMW.h:850
const double getTHDMW_nu4() const
A getter for .
Definition: THDMW.h:570
const double getTHDMW_nu2() const
A getter for .
Definition: THDMW.h:550
const double getQ_THDMW() const
A getter for the THDMW scale.
Definition: THDMW.h:739
virtual bool PostUpdate()
The post-update method for THDMW.
Definition: THDMW.cpp:105
virtual const double BrHccRatio() const
Definition: THDMW.cpp:351
virtual const double muZH(const double sqrt_s) const
Definition: THDMW.cpp:280
virtual const double muttHbb(const double sqrt_s) const
Definition: THDMW.cpp:456
virtual const double muggHZZ(const double sqrt_s) const
Definition: THDMW.cpp:381
double THDMW_tanb
Definition: THDMW.h:850
std::string getModelTypeTHDMWflag() const
A getter for the THDMW model type.
Definition: THDMW.h:329
virtual const double BrHgagaRatio() const
Definition: THDMW.cpp:335
THDMWcache * getMyTHDMWCache() const
A method get the THDMWCache.
Definition: THDMW.h:318
double RpepsTHDMW
Definition: THDMW.h:858
double THDMW_lambda5
Definition: THDMW.h:851
double THDMW_nu3
Definition: THDMW.h:853
const double getTHDMW_mu2() const
A getter for .
Definition: THDMW.h:488
virtual const double muggHWW(const double sqrt_s) const
Definition: THDMW.cpp:401
virtual bool InitializeModel()
A method to initialize the model.
Definition: THDMW.cpp:70
virtual const double muVBFHtautau(const double sqrt_s) const
Definition: THDMW.cpp:426
double THDMW_nu1
Definition: THDMW.h:853
virtual bool PreUpdate()
The pre-update method for THDMW.
Definition: THDMW.cpp:82
virtual const double muVHWW(const double sqrt_s) const
Definition: THDMW.cpp:411
const double getTHDMW_mu3() const
A getter for .
Definition: THDMW.h:501
double THDMW_mu3
Definition: THDMW.h:852
double THDMW_cosb
Definition: THDMW.h:850
virtual const double BrHWWRatio() const
Definition: THDMW.cpp:320
bool checkmodelTypeTHDMW(const std::string modeltype) const
A method to check if the model type name in string form is valid.
Definition: THDMW.h:816
virtual const double muVBFHWW(const double sqrt_s) const
Definition: THDMW.cpp:406
const double getTHDMW_sinb() const
A getter for .
Definition: THDMW.h:361
const double getTHDMW_lambda1() const
A getter for .
Definition: THDMW.h:409
const double getTHDMW_mu5() const
A getter for .
Definition: THDMW.h:516
double THDMW_kappa2
Definition: THDMW.h:855
const double getTHDMW_mu1() const
A getter for .
Definition: THDMW.h:480
virtual const double BrHZZRatio() const
Definition: THDMW.cpp:325
const double getTHDMW_rho_b() const
A getter for .
Definition: THDMW.h:721
std::string flag_RGEorder
Definition: THDMW.h:859
std::string flag_modelTHDMW
Definition: THDMW.h:859
const double getTHDMW_omega4() const
A getter for .
Definition: THDMW.h:633
double THDMW_nu4
Definition: THDMW.h:853
virtual const double BrHmumuRatio() const
Definition: THDMW.cpp:341
virtual const double muVBF(const double sqrt_s) const
Definition: THDMW.cpp:265
virtual THDMWMatching & getMatching() const
A get method to access the member reference of type THDMWMatching.
Definition: THDMW.h:298
double THDMW_mu2
Definition: THDMW.h:852
double THDMW_bma
Definition: THDMW.h:850
virtual const double muttHZZ(const double sqrt_s) const
Definition: THDMW.cpp:396
Matching< THDMWMatching, THDMW > THDMWM
An object of type Matching.
Definition: THDMW.h:830
virtual const double muVHgaga(const double sqrt_s) const
Definition: THDMW.cpp:371
const double getTHDMW_sin_ba() const
A getter for .
Definition: THDMW.h:385
virtual const double computeGammaTotalRatio() const
Definition: THDMW.cpp:305
double THDMW_etaD
Definition: THDMW.h:856
virtual const double muVBFpVH(const double sqrt_s) const
Definition: THDMW.cpp:295
virtual const double muVHZZ(const double sqrt_s) const
Definition: THDMW.cpp:391
double THDMW_omega4
Definition: THDMW.h:854
double THDMW_rho_b
Definition: THDMW.h:857
const double getTHDMW_etaU() const
A getter for .
Definition: THDMW.h:704
bool checkRGEorder(const std::string RGEorder) const
A method to check if the RGE order name in string form is valid.
Definition: THDMW.h:837
double THDMW_mS2
Definition: THDMW.h:852
double Q_THDMW
Definition: THDMW.h:858
const double getTHDMW_mu4() const
A getter for .
Definition: THDMW.h:508
virtual const double muttHtautau(const double sqrt_s) const
Definition: THDMW.cpp:436
double THDMW_mu4
Definition: THDMW.h:852
virtual const double muVHbb(const double sqrt_s) const
Definition: THDMW.cpp:451
virtual const double muVH(const double sqrt_s) const
Definition: THDMW.cpp:290
const double getTHDMW_nu5() const
A getter for .
Definition: THDMW.h:578
virtual const double Mw() const
Definition: THDMW.cpp:493
const double getTHDMW_omega3() const
A getter for .
Definition: THDMW.h:617
double THDMW_omega1
Definition: THDMW.h:854
double THDMW_kappa1
Definition: THDMW.h:855
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for THDMW.
Definition: THDMW.cpp:89
const double getTHDMW_lambda3() const
A getter for .
Definition: THDMW.h:430
virtual const double BrHggRatio() const
Definition: THDMW.cpp:315
const double getTHDMW_omega1() const
A getter for .
Definition: THDMW.h:591
const double getTHDMW_bma() const
A getter for .
Definition: THDMW.h:377
double THDMW_lambda3
Definition: THDMW.h:851
double THDMW_lambda1
Definition: THDMW.h:851
const double getTHDMW_sina() const
A getter for .
Definition: THDMW.h:401
double THDMW_lambda4
Definition: THDMW.h:851
const double getTHDMW_omega2() const
A getter for .
Definition: THDMW.h:604
virtual const double muggH(const double sqrt_s) const
Definition: THDMW.cpp:260
virtual const double muVBFHZZ(const double sqrt_s) const
Definition: THDMW.cpp:386
const double getTHDMW_etaD() const
A getter for .
Definition: THDMW.h:712
virtual const double GammaTotal() const
Definition: THDMW.cpp:310
virtual const double muttH(const double sqrt_s) const
Definition: THDMW.cpp:300
const double getTHDMW_mu6() const
A getter for .
Definition: THDMW.h:529
virtual const double muVHtautau(const double sqrt_s) const
Definition: THDMW.cpp:431
const double getTHDMW_nu1() const
A getter for .
Definition: THDMW.h:542
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the THDMW parameters found in the argument.
Definition: THDMW.cpp:78
double THDMW_omega5
Definition: THDMW.h:854
double THDMW_logtb
Definition: THDMW.h:850
double THDMW_kappa3
Definition: THDMW.h:855
double THDMW_lambda2
Definition: THDMW.h:851
virtual const double BrHZgaRatio() const
Definition: THDMW.cpp:330
const double getRpepsTHDMW() const
A getter for the minimal R' value.
Definition: THDMW.h:747
const double getTHDMW_lambda5() const
A getter for .
Definition: THDMW.h:456
virtual const double muppHZga(const double sqrt_s) const
Definition: THDMW.cpp:477
virtual const double BrHtautauRatio() const
Definition: THDMW.cpp:346
const double getTHDMW_lambda4() const
A getter for .
Definition: THDMW.h:443
virtual const double muggHtautau(const double sqrt_s) const
Definition: THDMW.cpp:421
double THDMW_sinb
Definition: THDMW.h:850
virtual const double muWH(const double sqrt_s) const
Definition: THDMW.cpp:275
static const std::string THDMWvars[NTHDMWvars]
Definition: THDMW.h:237
double THDMW_omega2
Definition: THDMW.h:854
virtual const double mueeWBF(const double sqrt_s, const double Pol_em, const double Pol_ep) const
Definition: THDMW.cpp:270
double THDMW_mu6
Definition: THDMW.h:852
const double getTHDMW_cosa() const
A getter for .
Definition: THDMW.h:393
virtual const double muVBFHbb(const double sqrt_s) const
Definition: THDMW.cpp:446
virtual const double muttHgaga(const double sqrt_s) const
Definition: THDMW.cpp:376
const double getTHDMW_logtb() const
A getter for .
Definition: THDMW.h:345
virtual const double BrHbbRatio() const
Definition: THDMW.cpp:356
double THDMW_nu5
Definition: THDMW.h:853
double NLOuniscaleTHDMW
Definition: THDMW.h:858
virtual const double muttHWW(const double sqrt_s) const
Definition: THDMW.cpp:416
double THDMW_omega3
Definition: THDMW.h:854
const double getTHDMW_cosb() const
A getter for .
Definition: THDMW.h:369
const double getTHDMW_tanb() const
A getter for .
Definition: THDMW.h:353
A class for the caching of some THDMW objects.
Definition: THDMWcache.h:27