a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
GeneralTHDMZ2 Class Reference

#include <GeneralTHDMZ2.h>

+ Inheritance diagram for GeneralTHDMZ2:

Detailed Description

Definition at line 14 of file GeneralTHDMZ2.h.

Public Member Functions

virtual bool CheckParameters (const std::map< std::string, double > &DPars)
 A method to check if all the mandatory parameters for GeneralTHDMZ2 have been provided in model initialization. More...
 
 GeneralTHDMZ2 ()
 GeneralTHDMZ2 constructor. More...
 
double getbeta_Z2 () const
 A getter for \(\beta\). More...
 
double getbma_Z2 () const
 A getter for the difference between \(\beta\) and \(\alpha\). More...
 
double getcosb_Z2 () const
 A getter for the cosine of \(\beta\). More...
 
double getlambda1_Z2 () const
 A getter for the parameter of the scalar potential \(\lambda_1\). More...
 
double getlambda2_Z2 () const
 A getter for the parameter of the scalar potential \(\lambda_2\). More...
 
double getlambda3_Z2 () const
 A getter for the parameter of the scalar potential \(\lambda_3\). More...
 
double getlambda4_Z2 () const
 A getter for the parameter of the scalar potential \(\lambda_4\). More...
 
double getlambda5_Z2 () const
 A getter for the parameter of the scalar potential \(\lambda_5\). More...
 
double getm12sq_Z2 () const
 A getter for the parameter of the scalar potential \(\m_{12}^2\). More...
 
double getsinb_Z2 () const
 A getter for the sine of \(\beta\). More...
 
double gettanb_Z2 () const
 A getter for the tangent of \(\beta\). More...
 
bool getWFRflag_Z2 () const
 A getter for the chosen option to include WFR in NLO unitarity. More...
 
std::string getZ2ModelType () const
 A getter for the chosen Z2-symmetric model type. More...
 
virtual bool InitializeModel ()
 The post-update method for GeneralTHDMZ2. More...
 
virtual bool PostUpdate ()
 The post-update method for GeneralTHDMZ2. More...
 
virtual bool PreUpdate ()
 The pre-update method for GeneralTHDMZ2. More...
 
virtual bool setFlag (const std::string name, const bool value)
 A method to set a flag of GeneralTHDMZ2. More...
 
virtual bool setFlagStr (const std::string name, const std::string value)
 A method to set a string flag of GeneralTHDMZ2. More...
 
virtual bool Update (const std::map< std::string, double > &DPars)
 The update method for GeneralTHDMZ2. More...
 
 ~GeneralTHDMZ2 ()
 GeneralTHDMZ2 destructor. More...
 

Static Public Attributes

static const std::string GeneralTHDMZ2vars [NGeneralTHDMZ2vars] = {"logtb", "bma", "m12_2"}
 
static const int NGeneralTHDMZ2vars = 3
 

Protected Member Functions

bool CheckModelType (const std::string modeltype) const
 A method to check if the model type name in string form is valid. More...
 
virtual void setParameter (const std::string, const double &)
 A method to set the value of a parameter of GeneralTHDMZ2. More...
 

Private Attributes

double beta
 
double bma
 
double cos2b
 
double cos2bma
 
double cos2bmbma
 
double cos4b
 
double cos6b
 
double cosb
 
std::string flag_model
 
bool flag_wfr
 
double logtb
 
double m12_2
 parameters exclusively in Z2 models: log(tan(beta)), beta-alpha, m_12^2 More...
 
double M2aux
 
double mA_2
 
double mh_2
 
double mH_2
 
double mHp_2
 
double sin2b
 
double sin2bma
 
double sin2bmbma
 
double sin4b
 
double sin6b
 
double sinb
 
double tanb
 
double vev
 

Constructor & Destructor Documentation

◆ GeneralTHDMZ2()

GeneralTHDMZ2::GeneralTHDMZ2 ( )

GeneralTHDMZ2 constructor.

Definition at line 12 of file GeneralTHDMZ2.cpp.

12 : GeneralTHDM()
13{
14 ModelParamMap.insert(std::make_pair("logtb", std::cref(logtb)));
15 ModelParamMap.insert(std::make_pair("bma", std::cref(bma)));
16 ModelParamMap.insert(std::make_pair("m12_2", std::cref(m12_2)));
17}
double m12_2
parameters exclusively in Z2 models: log(tan(beta)), beta-alpha, m_12^2

◆ ~GeneralTHDMZ2()

GeneralTHDMZ2::~GeneralTHDMZ2 ( )

GeneralTHDMZ2 destructor.

Definition at line 19 of file GeneralTHDMZ2.cpp.

20{
21 if (IsModelInitialized()) {
22 }
23}

Member Function Documentation

◆ CheckModelType()

bool GeneralTHDMZ2::CheckModelType ( const std::string  modeltype) const
protected

A method to check if the model type name in string form is valid.

Parameters
[in]modeltypeGeneralTHDMZ2 model type name
Returns
a boolean that is true if the model type name is valid

Definition at line 197 of file GeneralTHDMZ2.cpp.

198{
199 if (modeltype.compare("type1") == 0 ||
200 modeltype.compare("type2") == 0 ||
201 modeltype.compare("typeX") == 0 ||
202 modeltype.compare("typeY") == 0 ||
203 modeltype.compare("inert") == 0 )
204 return true;
205 else
206 return false;
207}

◆ CheckParameters()

bool GeneralTHDMZ2::CheckParameters ( const std::map< std::string, double > &  DPars)
virtual

A method to check if all the mandatory parameters for GeneralTHDMZ2 have been provided in model initialization.

Parameters
[in]DParsa map of the parameters that are being updated in the Monte Carlo run (including parameters that are varied and those that are held constant)
Returns
a boolean that is true if the execution is successful

Definition at line 159 of file GeneralTHDMZ2.cpp.

160{
161 for (int i = 0; i < NGeneralTHDMZ2vars; i++) {
162 if (DPars.find(GeneralTHDMZ2vars[i]) == DPars.end()) {
163 std::cout << "ERROR: missing mandatory GeneralTHDMZ2 parameter " << GeneralTHDMZ2vars[i] << std::endl;
164 raiseMissingModelParameterCount();
165 addMissingModelParameter(GeneralTHDMZ2vars[i]);
166 }
167 }
168 return(GeneralTHDM::CheckParameters(DPars));
169}
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
static const int NGeneralTHDMZ2vars
Definition: GeneralTHDMZ2.h:17
static const std::string GeneralTHDMZ2vars[NGeneralTHDMZ2vars]
Definition: GeneralTHDMZ2.h:19

◆ getbeta_Z2()

double GeneralTHDMZ2::getbeta_Z2 ( ) const
inline

A getter for \(\beta\).

Returns
\(\beta\)

Definition at line 91 of file GeneralTHDMZ2.h.

91 {
92 return (beta);
93 }

◆ getbma_Z2()

double GeneralTHDMZ2::getbma_Z2 ( ) const
inline

A getter for the difference between \(\beta\) and \(\alpha\).

Returns
\(\beta - \alpha\)

Definition at line 127 of file GeneralTHDMZ2.h.

127 {
128 return (bma);
129 }

◆ getcosb_Z2()

double GeneralTHDMZ2::getcosb_Z2 ( ) const
inline

A getter for the cosine of \(\beta\).

Returns
\(\cos \beta\)

Definition at line 118 of file GeneralTHDMZ2.h.

118 {
119 return (cosb);
120 }

◆ getlambda1_Z2()

double GeneralTHDMZ2::getlambda1_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\lambda_1\).

Returns
\(\lambda_1\) in the basis where the Z2 symmetry is imposed

Definition at line 145 of file GeneralTHDMZ2.h.

145 {
146 return ((mH_2 + mh_2 + (mH_2 - mh_2)*cos2bmbma -
147 2.*M2aux*sinb*sinb)/2./cosb/cosb/vev/vev);
148 }

◆ getlambda2_Z2()

double GeneralTHDMZ2::getlambda2_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\lambda_2\).

Returns
\(\lambda_2\) in the basis where the Z2 symmetry is imposed

Definition at line 155 of file GeneralTHDMZ2.h.

155 {
156 return ((mh_2 + mH_2 + (mh_2 - mH_2)*cos2bmbma -
157 2.*M2aux*cosb*cosb)/2./sinb/sinb/vev/vev);
158 }

◆ getlambda3_Z2()

double GeneralTHDMZ2::getlambda3_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\lambda_3\).

Returns
\(\lambda_3\) in the basis where the Z2 symmetry is imposed

Definition at line 165 of file GeneralTHDMZ2.h.

165 {
166 return ((2.*mHp_2 - M2aux + (mH_2 - mh_2)*sin2bmbma/sin2b)/vev/vev);
167 }

◆ getlambda4_Z2()

double GeneralTHDMZ2::getlambda4_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\lambda_4\).

Returns
\(\lambda_4\) in the basis where the Z2 symmetry is imposed

Definition at line 174 of file GeneralTHDMZ2.h.

174 {
175 return ((M2aux - 2.*mHp_2 + mA_2)/vev/vev);
176 }

◆ getlambda5_Z2()

double GeneralTHDMZ2::getlambda5_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\lambda_5\).

Returns
\(\lambda_5\) in the basis where the Z2 symmetry is imposed

Definition at line 183 of file GeneralTHDMZ2.h.

183 {
184 return ((M2aux - mA_2)/vev/vev);
185 }

◆ getm12sq_Z2()

double GeneralTHDMZ2::getm12sq_Z2 ( ) const
inline

A getter for the parameter of the scalar potential \(\m_{12}^2\).

Returns
\(\m_{12}^2\) in the basis where the Z2 symmetry is imposed

Definition at line 136 of file GeneralTHDMZ2.h.

136 {
137 return (m12_2);
138 }

◆ getsinb_Z2()

double GeneralTHDMZ2::getsinb_Z2 ( ) const
inline

A getter for the sine of \(\beta\).

Returns
\(\sin \beta\)

Definition at line 109 of file GeneralTHDMZ2.h.

109 {
110 return (sinb);
111 }

◆ gettanb_Z2()

double GeneralTHDMZ2::gettanb_Z2 ( ) const
inline

A getter for the tangent of \(\beta\).

Returns
\(\tan \beta\)

Definition at line 100 of file GeneralTHDMZ2.h.

100 {
101 return (tanb);
102 }

◆ getWFRflag_Z2()

bool GeneralTHDMZ2::getWFRflag_Z2 ( ) const
inline

A getter for the chosen option to include WFR in NLO unitarity.

Returns
a boolean that is true if WFR is to be used, false if not

Definition at line 199 of file GeneralTHDMZ2.h.

199 {
200 return flag_wfr;
201 }

◆ getZ2ModelType()

std::string GeneralTHDMZ2::getZ2ModelType ( ) const
inline

A getter for the chosen Z2-symmetric model type.

Returns
GeneralTHDMZ2 model type flag

Definition at line 191 of file GeneralTHDMZ2.h.

191 {
192 return flag_model;
193 }
std::string flag_model

◆ InitializeModel()

bool GeneralTHDMZ2::InitializeModel ( )
virtual

The post-update method for GeneralTHDMZ2.

This method runs all the procedures that are need to be executed after the model is successfully updated.

Returns
a boolean that is true if the execution is successful

Definition at line 28 of file GeneralTHDMZ2.cpp.

29{
30 setModelInitialized(GeneralTHDM::InitializeModel());
31 return (true);
32}

◆ PostUpdate()

bool GeneralTHDMZ2::PostUpdate ( )
virtual

The post-update method for GeneralTHDMZ2.

This method runs all the procedures that are need to be executed after the model is successfully updated.

Returns
a boolean that is true if the execution is successful

Definition at line 62 of file GeneralTHDMZ2.cpp.

63{
64 if (!GeneralTHDM::PostUpdate()) return (false);
65
66 return (true);
67}

◆ PreUpdate()

bool GeneralTHDMZ2::PreUpdate ( )
virtual

The pre-update method for GeneralTHDMZ2.

Returns
a boolean that is true if the execution is successful

Definition at line 34 of file GeneralTHDMZ2.cpp.

35{
36 if (!GeneralTHDM::PreUpdate()) return (false);
37
38 if(!getCPconservationflag())
39 throw std::runtime_error("ERROR: GeneralTHDMZ2 class requires CP conservation, check corresponding flag");
40
41 return (true);
42}

◆ setFlag()

bool GeneralTHDMZ2::setFlag ( const std::string  name,
const bool  value 
)
virtual

A method to set a flag of GeneralTHDMZ2.

Parameters
[in]namename of a model flag
[in]valuethe boolean to be assigned to the flag specified by name
Returns
a boolean that is true if the execution is successful

Definition at line 209 of file GeneralTHDMZ2.cpp.

210{
211 bool res = false;
212
213 if(name.compare("use_wf_renorm") == 0) {
214 flag_wfr = value;
215 res = true;
216 }
217 else
218 res = GeneralTHDM::setFlag(name,value);
219
220 return res;
221}

◆ setFlagStr()

bool GeneralTHDMZ2::setFlagStr ( const std::string  name,
const std::string  value 
)
virtual

A method to set a string flag of GeneralTHDMZ2.

Parameters
[in]namename of a model flag
[in]valuethe string to be assigned to the flag specified by name
Returns
a boolean that is true if the execution is successful

Definition at line 175 of file GeneralTHDMZ2.cpp.

176{
177 bool res = false;
178
179 if(name.compare("modelType") == 0) {
180 if (CheckModelType(value))
181 {
182 flag_model = value;
183 res = true;
184 }
185 else
186 {
187 throw std::runtime_error("GeneralTHDMZ2::setFlagStr(): invalid model-type flag"
188 + name + "=" + value);
189 }
190 }
191 else
192 res = GeneralTHDM::setFlagStr(name,value);
193
194 return res;
195}
bool CheckModelType(const std::string modeltype) const
A method to check if the model type name in string form is valid.

◆ setParameter()

void GeneralTHDMZ2::setParameter ( const std::string  name,
const double &  value 
)
protectedvirtual

A method to set the value of a parameter of GeneralTHDMZ2.

Parameters
[in]namename of a model parameter
[in]valuethe value to be assigned to the parameter specified by name

Definition at line 69 of file GeneralTHDMZ2.cpp.

70{
71 if (name.compare("logtb") == 0) {
72 tanb = pow(10., value); // Input is log(tanb), but we work with tanb
73 beta = atan(tanb);
74 cosb = cos(beta);
75 cos2b = cos(2.*beta);
76 cos4b = cos(4.*beta);
77 cos6b = cos(6.*beta);
78 sinb = sin(beta);
79 sin2b = sin(2.*beta);
80 sin4b = sin(4.*beta);
81 sin6b = sin(6.*beta);
82 }
83 else if (name.compare("bma") == 0) {
84 bma = value;
85 cos2bma = cos(2.*bma);
86 sin2bma = sin(2.*bma);
87 cos2bmbma = cos(2.*(beta-bma));
88 sin2bmbma = sin(2.*(beta-bma));
89 }
90 else if (name.compare("m12_2") == 0) {
91 m12_2 = value;
93
94 // Fix alpha1 in Higgs basis of Z2-symmetric model (cross-checked against 1509.06060)
95 GeneralTHDM::setParameter("alpha1", M_PI/2. - bma);
96
97 // Fix lambda2 in Higgs basis of Z2-symmetric model
98 mh_2 = getmH1sq();
99 mH_2 = getmH2sq();
100 mA_2 = getmH3sq();
101 mHp_2 = getmHp2();
102 vev = GeneralTHDM::v();
103 GeneralTHDM::setParameter("lambda2", (-8.*M2aux + 5.*(mh_2+mH_2) + (-8.*M2aux + 3.*(mh_2+mH_2))*cos4b
104 + (mh_2-mH_2)*(3.+5.*cos4b)*cos2bma + 4.*(mh_2-mH_2)*sin4b*sin2bma)/4./vev/vev/sin2b/sin2b);
105
106 // Fix lambda3 in Higgs basis of Z2-symmetric model
107 GeneralTHDM::setParameter("lambda3", (-4.*M2aux + mh_2 + mH_2 + 4.*mHp_2
108 - (mh_2-mH_2)*(cos2bma-2.*cos2b*sin2bma/sin2b))/2./vev/vev);
109
110 // Fix lambda7 in Higgs basis of Z2-symmetric model
111 GeneralTHDM::setParameter("Relambda7", (2.* cos2b * (-2.*M2aux + mh_2 + mH_2 + (mh_2-mH_2)*cos2bma)
112 + (mh_2-mH_2)*sin2bma*sin2b)/2./vev/vev/sin2b);
113
114 // Fix sigma_u,d,l in Higgs basis of Z2-symmetric model
115 if (flag_model == "type1") {
116 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
117 GeneralTHDM::setParameter("Nd_11r", 1./tanb);
118 GeneralTHDM::setParameter("Nl_11r", 1./tanb);
119 }
120 else if (flag_model == "type2") {
121 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
122 GeneralTHDM::setParameter("Nd_11r", -tanb);
123 GeneralTHDM::setParameter("Nl_11r", -tanb);
124 }
125 else if (flag_model == "typeX") {
126 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
127 GeneralTHDM::setParameter("Nd_11r", 1./tanb);
128 GeneralTHDM::setParameter("Nl_11r", -tanb);
129 }
130 else if (flag_model == "typeY") {
131 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
132 GeneralTHDM::setParameter("Nd_11r", -tanb);
133 GeneralTHDM::setParameter("Nl_11r", 1./tanb);
134 }
135 else if (flag_model == "inert") {
136 GeneralTHDM::setParameter("Nu_11r", 0.);
137 GeneralTHDM::setParameter("Nd_11r", 0.);
138 GeneralTHDM::setParameter("Nl_11r", 0.);
139 }
140 }
141 else if (name.compare("alpha1") == 0) {
142 }
143 else if (name.compare("lambda2") == 0) {
144 }
145 else if (name.compare("lambda3") == 0) {
146 }
147 else if (name.compare("Relambda7") == 0) {
148 }
149 else if (name.compare("Nu_11r") == 0) {
150 }
151 else if (name.compare("Nd_11r") == 0) {
152 }
153 else if (name.compare("Nl_11r") == 0) {
154 }
155 else
156 GeneralTHDM::setParameter(name, value);
157}

◆ Update()

bool GeneralTHDMZ2::Update ( const std::map< std::string, double > &  DPars)
virtual

The update method for GeneralTHDMZ2.

This method updates all the model parameters with given DPars.

Parameters
[in]DParsa map of the parameters that are being updated in the Monte Carlo run
Returns
a boolean that is true if the execution is successful

Definition at line 44 of file GeneralTHDMZ2.cpp.

45{
46 if (!PreUpdate()) return (false);
47
48 if (!GeneralTHDM::Update(DPars)) return (false);
49
50 UpdateError = false;
51
52 for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
53 setParameter(it->first, it->second);
54
55 if (UpdateError) return (false);
56
57 if (!PostUpdate()) return (false);
58
59 return (true);
60}
virtual bool PostUpdate()
The post-update method for GeneralTHDMZ2.
virtual void setParameter(const std::string, const double &)
A method to set the value of a parameter of GeneralTHDMZ2.
virtual bool PreUpdate()
The pre-update method for GeneralTHDMZ2.

Member Data Documentation

◆ beta

double GeneralTHDMZ2::beta
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ bma

double GeneralTHDMZ2::bma
private

Definition at line 222 of file GeneralTHDMZ2.h.

◆ cos2b

double GeneralTHDMZ2::cos2b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ cos2bma

double GeneralTHDMZ2::cos2bma
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ cos2bmbma

double GeneralTHDMZ2::cos2bmbma
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ cos4b

double GeneralTHDMZ2::cos4b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ cos6b

double GeneralTHDMZ2::cos6b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ cosb

double GeneralTHDMZ2::cosb
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ flag_model

std::string GeneralTHDMZ2::flag_model
private

Definition at line 225 of file GeneralTHDMZ2.h.

◆ flag_wfr

bool GeneralTHDMZ2::flag_wfr
private

Definition at line 226 of file GeneralTHDMZ2.h.

◆ GeneralTHDMZ2vars

const std::string GeneralTHDMZ2::GeneralTHDMZ2vars = {"logtb", "bma", "m12_2"}
static

Definition at line 19 of file GeneralTHDMZ2.h.

◆ logtb

double GeneralTHDMZ2::logtb
private

Definition at line 222 of file GeneralTHDMZ2.h.

◆ m12_2

double GeneralTHDMZ2::m12_2
private

parameters exclusively in Z2 models: log(tan(beta)), beta-alpha, m_12^2

Definition at line 222 of file GeneralTHDMZ2.h.

◆ M2aux

double GeneralTHDMZ2::M2aux
private

Definition at line 224 of file GeneralTHDMZ2.h.

◆ mA_2

double GeneralTHDMZ2::mA_2
private

Definition at line 224 of file GeneralTHDMZ2.h.

◆ mh_2

double GeneralTHDMZ2::mh_2
private

Definition at line 224 of file GeneralTHDMZ2.h.

◆ mH_2

double GeneralTHDMZ2::mH_2
private

Definition at line 224 of file GeneralTHDMZ2.h.

◆ mHp_2

double GeneralTHDMZ2::mHp_2
private

Definition at line 224 of file GeneralTHDMZ2.h.

◆ NGeneralTHDMZ2vars

const int GeneralTHDMZ2::NGeneralTHDMZ2vars = 3
static

Definition at line 17 of file GeneralTHDMZ2.h.

◆ sin2b

double GeneralTHDMZ2::sin2b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ sin2bma

double GeneralTHDMZ2::sin2bma
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ sin2bmbma

double GeneralTHDMZ2::sin2bmbma
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ sin4b

double GeneralTHDMZ2::sin4b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ sin6b

double GeneralTHDMZ2::sin6b
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ sinb

double GeneralTHDMZ2::sinb
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ tanb

double GeneralTHDMZ2::tanb
private

Definition at line 223 of file GeneralTHDMZ2.h.

◆ vev

double GeneralTHDMZ2::vev
private

Definition at line 224 of file GeneralTHDMZ2.h.


The documentation for this class was generated from the following files: