SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
flavoursoft.h
Go to the documentation of this file.
1 
12 #ifndef FLAVOURSOFT_H
13 #define FLAVOURSOFT_H
14 
15 #include <iostream>
16 #include <fstream>
17 #include <sstream>
18 #include <string>
19 #include <cstdlib>
20 #include <cmath>
21 #include "def.h"
22 #include "utils.h"
23 #include "numerics.h"
24 #include "physpars.h"
25 #include "lowe.h"
26 #include "softpars.h"
27 #include "twoloophiggs.h"
28 #include "softsusy.h"
29 
30 namespace softsusy {
31 
35 void convertFromWolfenstein(double lambdaW, double A, double rhobar,
36  double etabar, double & sin12, double & sin23,
37  double & sin13);
38 
44 int positionOfSym(int i, int j);
45 
51  DoubleVector msD, msU;
52  DoubleMatrix eSqMix, nuSqMix;
53  DoubleVector msE, msNu;
54 
55  flavourPhysical();
59  const flavourPhysical & displayFlavourPhysical() const { return *this; };
61  void setFlavourPhysical(const flavourPhysical &s) { *this = s; };
63  const flavourPhysical & operator = (const flavourPhysical & s);
64 };
65 
67 ostream & operator <<(ostream &, const flavourPhysical &);
69 istream & operator >>(istream & left, flavourPhysical &s);
70 
72  : dSqMix(6, 6), uSqMix(6, 6), msD(6), msU(6),
73  eSqMix(6, 6), nuSqMix(3, 3), msE(6), msNu(3)
74 {}
75 
77  : dSqMix(s.dSqMix), uSqMix(s.uSqMix), msD(s.msD), msU(s.msU),
78  eSqMix(s.eSqMix), nuSqMix(s.nuSqMix),
79  msE(s. msE), msNu(s.msNu)
80 {}
81 
82 class FlavourMssmSoftsusy;
85 private:
86  flavourPhysical fv;
87  double theta12, theta23, theta13, deltaCkm;
89  double thetaB12, thetaB23, thetaB13;
90  double mNuE, mNuMu, mNuTau;
91  double md2GeV, mu2GeV, ms2GeV, mcMc;
92  double mePole, mmuPole;
93 public:
95  inline FlavourMssmSoftsusy();
96  inline FlavourMssmSoftsusy(const FlavourMssmSoftsusy & s);
98 
100  inline double displayTheta12() const { return theta12; };
101  inline double displayTheta13() const { return theta13; };
102  inline double displayTheta23() const { return theta23; };
103  inline double displayDelta() const { return deltaCkm; };
104  inline double displayThetaB12() const { return thetaB12; };
105  inline double displayThetaB13() const { return thetaB13; };
106  inline double displayThetaB23() const { return thetaB23; };
107  inline double displayMnuE() const { return mNuE; };
108  inline double displayMnuMu() const { return mNuMu; };
109  inline double displayPoleMe() const { return mePole; };
110  inline double displayPoleMmu() const { return mmuPole; };
111  inline double displayMd2GeV() const { return md2GeV; };
112  inline double displayMu2GeV() const { return mu2GeV; };
113  inline double displayMs2GeV() const { return ms2GeV; };
114  inline double displayMcMc() const { return mcMc; };
115  inline double displayMnuTau() const { return mNuTau; };
116  const flavourPhysical & displayFlavourPhysical() const { return fv; };
117  const FlavourMssmSoftsusy & displayFlavourSoftsusy() const { return *this; };
118 
119  inline void setFlavourSoftsusy(const FlavourMssmSoftsusy & s) { *this = s; }
120  inline void setTheta12(double d) { theta12 = d; };
121  inline void setTheta13(double d) { theta13 = d; };
122  inline void setTheta23(double d) { theta23 = d; };
123  inline void setDelta(double d) { deltaCkm = d; };
124  inline void setThetaB12(double d) { thetaB12 = d; };
125  inline void setThetaB13(double d) { thetaB13 = d; };
126  inline void setThetaB23(double d) { thetaB23 = d; };
127  inline void setMnuE(double d) { mNuE = d; };
128  inline void setMnuMu(double d) { mNuMu = d; };
129  inline void setMnuTau(double d) { mNuTau = d; };
130  inline void setPoleMe(double d) { mePole = d; };
131  inline void setPoleMmu(double d) { mmuPole = d; };
132  inline void setMd2GeV(double d) { md2GeV = d; };
133  inline void setMu2GeV(double d) { mu2GeV = d; };
134  inline void setMs2GeV(double d) { ms2GeV = d; };
135  inline void setMcMc(double d) { mcMc = d; };
137  void setFlavourPhys(const flavourPhysical & s) { fv = s; };
139  inline void setInitialData(const QedQcd & r) {
140  md2GeV = r.displayMass(mDown); mu2GeV = r.displayMass(mUp);
141  ms2GeV = r.displayMass(mStrange); mcMc = r.displayMass(mCharm);
142  mePole = r.displayMass(mElectron); mmuPole = r.displayMass(mMuon);
143  }
144 
147  const DoubleMatrix displayCkm() const;
149  const ComplexMatrix displayComplexCkm() const;
151  const DoubleMatrix displayMns() const;
152 
154  virtual void lesHouchesAccordOutput(ostream & out, const char model[],
155  const DoubleVector & pars,
156  int sgnMu, double tanb, double qMax,
157  int numPoints, bool ewsbBCscale);
159  void modselSLHA(ostream & out, const char model[]);
161  void sminputsSLHA(ostream & out);
163  void vckminSLHA(ostream & out);
165  void minparSLHA(ostream & out, const char model [],
166  const DoubleVector & pars, double tanb, int sgnMu,
167  bool ewsbBCscale);
169  virtual void extparSLHA(ostream & out, const DoubleVector & pars,
170  bool ewsbBCscale);
172  virtual void sfermionsSLHA(ostream & out);
174  virtual void sleptonsSLHA(ostream & out);
176  virtual void sfermionmixSLHA(ostream & out);
178  virtual void selmixSLHA(ostream & out);
180  virtual void snumixSLHA(ostream & out);
182  virtual void yukawasSLHA(ostream & out);
184  virtual void msoftSLHA(ostream & out);
185 
186 
188  virtual void doUpSquarks(double mt, double pizztMS, double sinthDRbarMS, int
189  accuracy);
191  virtual void doDownSquarks(double mb, double pizztMS, double sinthDRbarMS,
192  int accuracy, double mt);
194  virtual void doChargedSleptons(double mT, double pizztMS,
195  double sinthDRbarMS, int accuracy);
197  virtual void doSnu(double pizztMS, int accuracy = 0);
198 
201  virtual void doQuarkMixing(DoubleMatrix & mDon, DoubleMatrix & mUpq);
202 
203  virtual void calcDrBarPars();
204 
208  virtual MssmSusyRGE guessAtSusyMt(double tanb, const QedQcd & oneset);
209 
212 
215  void setAngles(double lambdaW, double aCkm, double rhobar, double etabar);
216 
219  void sCkm(DoubleMatrix & deltaULL, DoubleMatrix & deltaURR,
220  DoubleMatrix & deltaULR, DoubleMatrix & deltaDLL,
221  DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR) const;
222 
223 
226  void sCkmAnalytic(double m32, double & deltaULL23, double & deltaULR23,
227  double & deltaULL12, double & deltaDLL23,
228  double & deltaDLR23, double & deltaDLL12) const;
229 
232  void sCkmRunning
233  (DoubleMatrix & deltaULL, DoubleMatrix & deltaURR, DoubleMatrix & deltaULR,
234  DoubleMatrix & deltaDLL, DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR);
235 };
236 
238  : MssmSoftsusy(), fv(), theta12(0.), theta23(0.), theta13(0.), deltaCkm(0.),
239  thetaB12(0.), thetaB23(0.), thetaB13(0.), mNuE(0.), mNuMu(0.), mNuTau(0.),
240  md2GeV(0.), mu2GeV(0.), ms2GeV(0.), mcMc(0.), mePole(0.), mmuPole(0.)
241 {}
242 
244  : MssmSoftsusy(s.displaySoftsusy()), fv(s.displayFlavourPhysical()),
245  theta12(s.displayTheta12()), theta23(s.displayTheta23()),
246  theta13(s.displayTheta13()), deltaCkm(s.displayDelta()),
247  thetaB12(s.displayThetaB12()), thetaB23(s.displayThetaB23()),
248  thetaB13(s.displayThetaB13()), mNuE(s.displayMnuE()),
249  mNuMu(s.displayMnuMu()), mNuTau(s.displayMnuTau()),
250  md2GeV(s.displayMd2GeV()), mu2GeV(s.displayMu2GeV()),
251  ms2GeV(s.displayMs2GeV()), mcMc(s.displayMcMc()),
252  mePole(s.displayPoleMe()), mmuPole(s.displayPoleMmu()) {
253 }
254 
256 ostream & operator <<(ostream &, const FlavourMssmSoftsusy &);
257 
258 void flavourBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
259 
262 void ckmNormalise(DoubleMatrix & Vu, DoubleMatrix & Vd, DoubleMatrix & Uu,
263  DoubleMatrix & Ud);
264 
265 } // namespace softsusy
266 
267 #endif
268 
global variable declaration
Definition: def.cpp:13
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: decays.h:33
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
const flavourPhysical & displayFlavourPhysical() const
Displays the object in situations where a const is required.
Definition: flavoursoft.h:59
double displayTheta12() const
standard set and display functions
Definition: flavoursoft.h:100
void ckmNormalise(DoubleMatrix &Vu, DoubleMatrix &Vd, DoubleMatrix &Uu, DoubleMatrix &Ud)
Definition: flavoursoft.cpp:1630
switches (options) and parameters such as default fermion masses, required accuracy etc ...
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:84
void flavourBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: flavoursoft.cpp:72
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
void convertFromWolfenstein(double lambdaW, double A, double rhobar, double etabar, double &sin12, double &sin23, double &sin13)
Definition: flavoursoft.cpp:42
int positionOfSym(int i, int j)
Definition: flavoursoft.cpp:56
Quark and lepton masses and gauge couplings in QEDxQCD effective theory.
Definition: lowe.h:56
numerical routines - differential equation solver, differentiator and function minimiser for instance...
A few handy bits and pieces - little mathematical functions and the like.
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:605
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
void setFlavourPhys(const flavourPhysical &s)
Sets all squark flavour violating physical parameters.
Definition: flavoursoft.h:137
FlavourMssmSoftsusy()
constructor functions
Definition: flavoursoft.h:237
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:211
Contains two-loop routines from Slavich et al.
MssmSoftsusy()
Default constructor fills object with zeroes.
Definition: softsusy.cpp:57
Flags for potential problems in sProblem structure, and structure for containing physical MSSM parame...
Soft SUSY breaking parameters.
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:83
const flavourPhysical & operator=(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.cpp:1170
const MssmSoftsusy & displaySoftsusy() const
Returns object as a const.
Definition: softsusy.h:177
void setInitialData(const QedQcd &r)
Sets the initial data from a un-run QedQcd object.
Definition: flavoursoft.h:139
DoubleMatrix dSqMix
Definition: flavoursoft.h:50
void setFlavourPhysical(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.h:61
const DoubleVector & displayMass() const
Returns a vector of running fermion masses.
Definition: lowe.h:88
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:216
Object containing the physical aspects of flavour mixing etc.
Definition: flavoursoft.h:47
flavourPhysical()
Definition: flavoursoft.h:71