a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
pMSSM.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2013 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include <math.h>
9#include "pMSSM.h"
10
11const std::string pMSSM::pMSSMvars[NpMSSMvars] = {
12 "msQ12", "msQ3", "msU12", "msU3", "msD12", "msD3",
13 "msL12", "msL3", "msE12", "msE3",
14 "AU", "AD", "AE"
15};
16
18: SUSY()
19{
20}
21
23{
25 return (IsModelInitialized());
26}
27
28bool pMSSM::Init(const std::map<std::string, double>& DPars)
29{
30 return(SUSY::Init(DPars));
31}
32
34{
35 if(!SUSY::PreUpdate()) return (false);
36 return (true);
37}
38
39bool pMSSM::Update(const std::map<std::string, double>& DPars)
40{
41 if(!PreUpdate()) return (false);
42
43 UpdateError = false;
44
45 for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
46 setParameter(it->first, it->second);
47
48 if (UpdateError) return (false);
49
50 if(!PostUpdate()) return (false);
51
52 return (true);
53}
54
56{
57 if (!SUSY::PostUpdate()) return (false);
58 return (true);
59}
60
61void pMSSM::setParameter(const std::string name, const double& value)
62{
63 if(name.compare("msQ12") == 0)
64 msQ12 = value;
65 else if(name.compare("msQ3") == 0)
66 msQ3 = value;
67 else if(name.compare("msU12") == 0)
68 msU12 = value;
69 else if(name.compare("msU3") == 0)
70 msU3 = value;
71 else if(name.compare("msD12") == 0)
72 msD12 = value;
73 else if(name.compare("msD3") == 0)
74 msD3 = value;
75 else if(name.compare("msL12") == 0)
76 msL12 = value;
77 else if(name.compare("msL3") == 0)
78 msL3 = value;
79 else if(name.compare("msE12") == 0)
80 msE12 = value;
81 else if(name.compare("msE3") == 0)
82 msE3 = value;
83 else if(name.compare("AU") == 0)
84 AU = value;
85 else if(name.compare("AD") == 0)
86 AD = value;
87 else if(name.compare("AE") == 0)
88 AE = value;
89 else
91}
92
93bool pMSSM::CheckParameters(const std::map<std::string, double>& DPars)
94{
95 for (int i = 0; i < NpMSSMvars; i++) {
96 if (DPars.find(pMSSMvars[i]) == DPars.end()) {
97 std::cout << "missing mandatory pMSSM parameter " << pMSSMvars[i] << std::endl;
100 }
101 }
103}
104
106{
107 msQhat2.assign(0,0, msQ12*msQ12);
108 msQhat2.assign(1,1, msQ12*msQ12);
109 msQhat2.assign(2,2, msQ3*msQ3);
110
111 msUhat2.assign(0,0, msU12*msU12);
112 msUhat2.assign(1,1, msU12*msU12);
113 msUhat2.assign(2,2, msU3*msU3);
114
115 msDhat2.assign(0,0, msD12*msD12);
116 msDhat2.assign(1,1, msD12*msD12);
117 msDhat2.assign(2,2, msD3*msD3);
118
119 msLhat2.assign(0,0, msL12*msL12);
120 msLhat2.assign(1,1, msL12*msL12);
121 msLhat2.assign(2,2, msL3*msL3);
122
123 msEhat2.assign(0,0, msE12*msE12);
124 msEhat2.assign(1,1, msE12*msE12);
125 msEhat2.assign(2,2, msE3*msE3);
126
127 msNhat2.assign(0,0, 1.e20);
128 msNhat2.assign(1,1, 1.e20);
129 msNhat2.assign(2,2, 1.e20);
130
131 TUhat.assign(2,2, AU*Yu(2,2));
132
133 TDhat.assign(2,2, AD*Yd(2,2));
134
135 TEhat.assign(2,2, AE*Ye(2,2));
136}
137
std::map< std::string, double > DPars
Definition: Minimal.cpp:11
void addMissingModelParameter(const std::string &missingParameterName)
Definition: Model.h:250
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
Definition: Model.h:145
bool IsModelInitialized() const
A method to check if the model is initialized.
Definition: Model.h:136
std::string name
The name of the model.
Definition: Model.h:285
bool UpdateError
A boolean set to false if update is successful.
Definition: Model.h:272
void raiseMissingModelParameterCount()
Definition: Model.h:260
A base class for SUSY models.
Definition: SUSY.h:33
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:272
gslpp::matrix< gslpp::complex > msDhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > TEhat
Definition: SUSY.h:577
gslpp::matrix< gslpp::complex > msUhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > TUhat
Definition: SUSY.h:577
gslpp::matrix< gslpp::complex > msQhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > msNhat2
Definition: SUSY.h:576
gslpp::matrix< gslpp::complex > msLhat2
Definition: SUSY.h:576
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of SUSY.
Definition: SUSY.cpp:246
virtual bool PreUpdate()
Definition: SUSY.cpp:93
gslpp::matrix< gslpp::complex > msEhat2
Definition: SUSY.h:576
virtual bool PostUpdate()
Definition: SUSY.cpp:116
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: SUSY.cpp:88
virtual bool InitializeModel()
Definition: SUSY.cpp:68
gslpp::matrix< gslpp::complex > TDhat
Definition: SUSY.h:577
gslpp::matrix< gslpp::complex > Yu
The Yukawa matrix of the up-type quarks.
gslpp::matrix< gslpp::complex > Yd
The Yukawa matrix of the down-type quarks.
gslpp::matrix< gslpp::complex > Ye
The Yukawa matrix of the charged leptons.
double msL12
Definition: pMSSM.h:43
virtual bool PreUpdate()
Definition: pMSSM.cpp:33
virtual void setParameter(const std::string, const double &)
Definition: pMSSM.cpp:61
virtual bool PostUpdate()
Definition: pMSSM.cpp:55
double msE3
Definition: pMSSM.h:43
static const std::string pMSSMvars[NpMSSMvars]
Definition: pMSSM.h:29
double AD
Definition: pMSSM.h:44
virtual bool Init(const std::map< std::string, double > &DPars)
Definition: pMSSM.cpp:28
double msQ12
Definition: pMSSM.h:43
double msE12
Definition: pMSSM.h:43
virtual bool Update(const std::map< std::string, double > &DPars)
Definition: pMSSM.cpp:39
double msQ3
Definition: pMSSM.h:43
double msD12
Definition: pMSSM.h:43
double AU
Definition: pMSSM.h:44
double msU3
Definition: pMSSM.h:43
virtual bool InitializeModel()
Definition: pMSSM.cpp:22
virtual void SetSoftTerms()
Definition: pMSSM.cpp:105
pMSSM()
Definition: pMSSM.cpp:17
double msL3
Definition: pMSSM.h:43
static const int NpMSSMvars
Definition: pMSSM.h:28
double msU12
Definition: pMSSM.h:43
double AE
Definition: pMSSM.h:44
double msD3
Definition: pMSSM.h:43
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
Definition: pMSSM.cpp:93