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] = {"tanb", "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 m12_2
 parameters exclusively in Z2 models: 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("tanb", std::cref(tanb)));
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: 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 203 of file GeneralTHDMZ2.cpp.

204{
205 if (modeltype.compare("type1") == 0 ||
206 modeltype.compare("type2") == 0 ||
207 modeltype.compare("typeX") == 0 ||
208 modeltype.compare("typeY") == 0 ||
209 modeltype.compare("inert") == 0 )
210 return true;
211 else
212 return false;
213}

◆ 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 165 of file GeneralTHDMZ2.cpp.

166{
167 for (int i = 0; i < NGeneralTHDMZ2vars; i++) {
168 if (DPars.find(GeneralTHDMZ2vars[i]) == DPars.end()) {
169 std::cout << "ERROR: missing mandatory GeneralTHDMZ2 parameter " << GeneralTHDMZ2vars[i] << std::endl;
170 raiseMissingModelParameterCount();
171 addMissingModelParameter(GeneralTHDMZ2vars[i]);
172 }
173 }
174 return(GeneralTHDM::CheckParameters(DPars));
175}
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 215 of file GeneralTHDMZ2.cpp.

216{
217 bool res = false;
218
219 if(name.compare("use_wf_renorm") == 0) {
220 flag_wfr = value;
221 res = true;
222 }
223 else
224 res = GeneralTHDM::setFlag(name,value);
225
226 return res;
227}

◆ 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 181 of file GeneralTHDMZ2.cpp.

182{
183 bool res = false;
184
185 if(name.compare("modelType") == 0) {
186 if (CheckModelType(value))
187 {
188 flag_model = value;
189 res = true;
190 }
191 else
192 {
193 throw std::runtime_error("GeneralTHDMZ2::setFlagStr(): invalid model-type flag"
194 + name + "=" + value);
195 }
196 }
197 else
198 res = GeneralTHDM::setFlagStr(name,value);
199
200 return res;
201}
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("tanb") == 0) {
72 tanb = value;
73 if(tanb > 0.) {
74 beta = atan(tanb);
75 cosb = cos(beta);
76 cos2b = cos(2.*beta);
77 cos4b = cos(4.*beta);
78 cos6b = cos(6.*beta);
79 sinb = sin(beta);
80 sin2b = sin(2.*beta);
81 sin4b = sin(4.*beta);
82 sin6b = sin(6.*beta);
83 }
84 else {
85 throw std::runtime_error("ERROR: in GeneralTHDMZ2::setParameter, tanb < 0!");
86 }
87 }
88 else if (name.compare("bma") == 0) {
89 bma = value;
90 cos2bma = cos(2.*bma);
91 sin2bma = sin(2.*bma);
92 cos2bmbma = cos(2.*(beta-bma));
93 sin2bmbma = sin(2.*(beta-bma));
94 }
95 else if (name.compare("m12_2") == 0) {
96 m12_2 = value;
98
99 // Fix alpha1 in Higgs basis of Z2-symmetric model
100 GeneralTHDM::setParameter("alpha1", bma - M_PI/2.);
101
102 // Fix lambda2 in Higgs basis of Z2-symmetric model
103 mh_2 = getmH1sq();
104 mH_2 = getmH2sq();
105 mA_2 = getmH3sq();
106 mHp_2 = getmHp2();
107 vev = GeneralTHDM::v();
108 GeneralTHDM::setParameter("lambda2", (4.*(mh_2 - mH_2)*(3. + 5.*cos4b)*cos2bma/cosb/sinb +
109 (-32.*m12_2*(1. + cos4b) + (mh_2 + mH_2)*(7.*sin2b + 3.*sin6b))/cosb/cosb/sinb/sinb +
110 64.*(mh_2 - mH_2)*cos2b*sin2bma)/64./cosb/sinb/vev/vev);
111
112 // Fix lambda3 in Higgs basis of Z2-symmetric model
113 GeneralTHDM::setParameter("lambda3", (mh_2 + mH_2 + mA_2 + (-2.*m12_2 +
114 (mh_2 - mH_2)*cos2b*cos(bma)*sin(bma))/cosb/sinb)/vev/vev);
115
116 // Fix lambda7 in Higgs basis of Z2-symmetric model
117 GeneralTHDM::setParameter("Relambda7", ((mh_2 - mH_2)*cos2b*cos2bma/cosb/sinb +
118 (mh_2 + mH_2 - 2.*m12_2/cosb/sinb)*sin4b/sin2b/sin2b + (mh_2 - mH_2)*sin2bma)/2./vev/vev);
119
120 // Fix sigma_u,d,l in Higgs basis of Z2-symmetric model
121 if (flag_model == "type1") {
122 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
123 GeneralTHDM::setParameter("Nd_11r", 1./tanb);
124 GeneralTHDM::setParameter("Nl_11r", 1./tanb);
125 }
126 else if (flag_model == "type2") {
127 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
128 GeneralTHDM::setParameter("Nd_11r", -tanb);
129 GeneralTHDM::setParameter("Nl_11r", -tanb);
130 }
131 else if (flag_model == "typeX") {
132 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
133 GeneralTHDM::setParameter("Nd_11r", 1./tanb);
134 GeneralTHDM::setParameter("Nl_11r", -tanb);
135 }
136 else if (flag_model == "typeY") {
137 GeneralTHDM::setParameter("Nu_11r", 1./tanb);
138 GeneralTHDM::setParameter("Nd_11r", -tanb);
139 GeneralTHDM::setParameter("Nl_11r", 1./tanb);
140 }
141 else if (flag_model == "inert") {
142 GeneralTHDM::setParameter("Nu_11r", 0.);
143 GeneralTHDM::setParameter("Nd_11r", 0.);
144 GeneralTHDM::setParameter("Nl_11r", 0.);
145 }
146 }
147 else if (name.compare("alpha1") == 0) {
148 }
149 else if (name.compare("lambda2") == 0) {
150 }
151 else if (name.compare("lambda3") == 0) {
152 }
153 else if (name.compare("Relambda7") == 0) {
154 }
155 else if (name.compare("Nu_11r") == 0) {
156 }
157 else if (name.compare("Nd_11r") == 0) {
158 }
159 else if (name.compare("Nl_11r") == 0) {
160 }
161 else
162 GeneralTHDM::setParameter(name, value);
163}

◆ 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 = {"tanb", "bma", "m12_2"}
static

Definition at line 19 of file GeneralTHDMZ2.h.

◆ m12_2

double GeneralTHDMZ2::m12_2
private

parameters exclusively in Z2 models: 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 222 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: