softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
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 "utils.h"
22 #include "numerics.h"
23 #include "physpars.h"
24 #include "lowe.h"
25 #include "softpars.h"
26 #include "twoloophiggs.h"
27 #include "softsusy.h"
28 
29 namespace softsusy {
30 
34 void convertFromWolfenstein(double lambdaW, double A, double rhobar,
35  double etabar, double & sin12, double & sin23,
36  double & sin13);
37 
43 int positionOfSym(int i, int j);
44 
50  DoubleVector msD, msU;
51  DoubleMatrix eSqMix, nuSqMix;
52  DoubleVector msE, msNu;
53 
54  flavourPhysical();
58  const flavourPhysical & displayFlavourPhysical() const { return *this; };
60  void setFlavourPhysical(const flavourPhysical &s) { *this = s; };
62  const flavourPhysical & operator = (const flavourPhysical & s);
63 };
64 
66 ostream & operator <<(ostream &, const flavourPhysical &);
68 istream & operator >>(istream & left, flavourPhysical &s);
69 
71  : dSqMix(6, 6), uSqMix(6, 6), msD(6), msU(6),
72  eSqMix(6, 6), nuSqMix(3, 3), msE(6), msNu(3)
73 {}
74 
76  : dSqMix(s.dSqMix), uSqMix(s.uSqMix), msD(s.msD), msU(s.msU),
77  eSqMix(s.eSqMix), nuSqMix(s.nuSqMix),
78  msE(s. msE), msNu(s.msNu)
79 {}
80 
81 class FlavourMssmSoftsusy;
84 private:
85  flavourPhysical fv;
86  double theta12, theta23, theta13, deltaCkm;
88  double thetaB12, thetaB23, thetaB13;
89  double mNuE, mNuMu, mNuTau;
90  double md2GeV, mu2GeV, ms2GeV, mcMc;
91  double mePole, mmuPole;
92 public:
94  inline FlavourMssmSoftsusy();
95  inline FlavourMssmSoftsusy(const FlavourMssmSoftsusy & s);
96  const FlavourMssmSoftsusy & operator=(const FlavourMssmSoftsusy & s);
97 
99  inline double displayTheta12() const { return theta12; };
100  inline double displayTheta13() const { return theta13; };
101  inline double displayTheta23() const { return theta23; };
102  inline double displayDelta() const { return deltaCkm; };
103  inline double displayThetaB12() const { return thetaB12; };
104  inline double displayThetaB13() const { return thetaB13; };
105  inline double displayThetaB23() const { return thetaB23; };
106  inline double displayMnuE() const { return mNuE; };
107  inline double displayMnuMu() const { return mNuMu; };
108  inline double displayPoleMe() const { return mePole; };
109  inline double displayPoleMmu() const { return mmuPole; };
110  inline double displayMd2GeV() const { return md2GeV; };
111  inline double displayMu2GeV() const { return mu2GeV; };
112  inline double displayMs2GeV() const { return ms2GeV; };
113  inline double displayMcMc() const { return mcMc; };
114  inline double displayMnuTau() const { return mNuTau; };
115  const flavourPhysical & displayFlavourPhysical() const { return fv; };
116  const FlavourMssmSoftsusy & displayFlavourSoftsusy() const { return *this; };
117 
118  inline void setFlavourSoftsusy(const FlavourMssmSoftsusy & s) { *this = s; }
119  inline void setTheta12(double d) { theta12 = d; };
120  inline void setTheta13(double d) { theta13 = d; };
121  inline void setTheta23(double d) { theta23 = d; };
122  inline void setDelta(double d) { deltaCkm = d; };
123  inline void setThetaB12(double d) { thetaB12 = d; };
124  inline void setThetaB13(double d) { thetaB13 = d; };
125  inline void setThetaB23(double d) { thetaB23 = d; };
126  inline void setMnuE(double d) { mNuE = d; };
127  inline void setMnuMu(double d) { mNuMu = d; };
128  inline void setMnuTau(double d) { mNuTau = d; };
129  inline void setPoleMe(double d) { mePole = d; };
130  inline void setPoleMmu(double d) { mmuPole = d; };
131  inline void setMd2GeV(double d) { md2GeV = d; };
132  inline void setMu2GeV(double d) { mu2GeV = d; };
133  inline void setMs2GeV(double d) { ms2GeV = d; };
134  inline void setMcMc(double d) { mcMc = d; };
136  void setFlavourPhys(const flavourPhysical & s) { fv = s; };
138  inline void setInitialData(const QedQcd & r) {
139  md2GeV = r.displayMass(mDown); mu2GeV = r.displayMass(mUp);
140  ms2GeV = r.displayMass(mStrange); mcMc = r.displayMass(mCharm);
141  mePole = r.displayMass(mElectron); mmuPole = r.displayMass(mMuon);
142  }
143 
146  const DoubleMatrix displayCkm() const;
148  const ComplexMatrix displayComplexCkm() const;
150  const DoubleMatrix displayMns() const;
151 
153  virtual void lesHouchesAccordOutput(ostream & out, const char model[],
154  const DoubleVector & pars,
155  int sgnMu, double tanb, double qMax,
156  int numPoints, bool ewsbBCscale);
158  void modselSLHA(ostream & out, const char model[]);
160  void sminputsSLHA(ostream & out);
162  void vckminSLHA(ostream & out);
164  void minparSLHA(ostream & out, const char model [],
165  const DoubleVector & pars, double tanb, int sgnMu,
166  bool ewsbBCscale);
168  virtual void extparSLHA(ostream & out, const DoubleVector & pars,
169  bool ewsbBCscale);
171  virtual void sfermionsSLHA(ostream & out);
173  virtual void sleptonsSLHA(ostream & out);
175  virtual void sfermionmixSLHA(ostream & out);
177  virtual void selmixSLHA(ostream & out);
179  virtual void snumixSLHA(ostream & out);
181  virtual void yukawasSLHA(ostream & out);
183  virtual void msoftSLHA(ostream & out);
184 
185 
187  virtual void doUpSquarks(double mt, double pizztMS, double sinthDRbarMS, int
188  accuracy);
190  virtual void doDownSquarks(double mb, double pizztMS, double sinthDRbarMS,
191  int accuracy, double mt);
193  virtual void doChargedSleptons(double mT, double pizztMS,
194  double sinthDRbarMS, int accuracy);
196  virtual void doSnu(double pizztMS, int accuracy = 0);
197 
200  virtual void doQuarkMixing(DoubleMatrix & mDon, DoubleMatrix & mUpq);
201 
202  virtual void calcDrBarPars();
203 
207  virtual MssmSusyRGE guessAtSusyMt(double tanb, const QedQcd & oneset);
208 
211 
214  void setAngles(double lambdaW, double aCkm, double rhobar, double etabar);
215 
218  void sCkm(DoubleMatrix & deltaULL, DoubleMatrix & deltaURR,
219  DoubleMatrix & deltaULR, DoubleMatrix & deltaDLL,
220  DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR) const;
221 
222 
225  void sCkmAnalytic(double m32, double & deltaULL23, double & deltaULR23,
226  double & deltaULL12, double & deltaDLL23,
227  double & deltaDLR23, double & deltaDLL12) const;
228 
231  void sCkmRunning
232  (DoubleMatrix & deltaULL, DoubleMatrix & deltaURR, DoubleMatrix & deltaULR,
233  DoubleMatrix & deltaDLL, DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR);
234 };
235 
237  : MssmSoftsusy(), fv(), theta12(0.), theta23(0.), theta13(0.), deltaCkm(0.),
238  thetaB12(0.), thetaB23(0.), thetaB13(0.), mNuE(0.), mNuMu(0.), mNuTau(0.),
239  md2GeV(0.), mu2GeV(0.), ms2GeV(0.), mcMc(0.), mePole(0.), mmuPole(0.)
240 {}
241 
243  : MssmSoftsusy(s.displaySoftsusy()), fv(s.displayFlavourPhysical()),
244  theta12(s.displayTheta12()), theta23(s.displayTheta23()),
245  theta13(s.displayTheta13()), deltaCkm(s.displayDelta()),
246  thetaB12(s.displayThetaB12()), thetaB23(s.displayThetaB23()),
247  thetaB13(s.displayThetaB13()), mNuE(s.displayMnuE()),
248  mNuMu(s.displayMnuMu()), mNuTau(s.displayMnuTau()),
249  md2GeV(s.displayMd2GeV()), mu2GeV(s.displayMu2GeV()),
250  ms2GeV(s.displayMs2GeV()), mcMc(s.displayMcMc()),
251  mePole(s.displayPoleMe()), mmuPole(s.displayPoleMmu()) {
252 }
253 
255 ostream & operator <<(ostream &, const FlavourMssmSoftsusy &);
256 
257 void flavourBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
258 
261 void ckmNormalise(DoubleMatrix & Vu, DoubleMatrix & Vd, DoubleMatrix & Uu,
262  DoubleMatrix & Ud);
263 
264 } // namespace softsusy
265 
266 #endif
267 
virtual void doDownSquarks(double mb, double pizztMS, double sinthDRbarMS, int accuracy, double mt)
flavour violating squark mass/mixing calculation
Definition: flavoursoft.cpp:907
virtual void sfermionsSLHA(ostream &out)
sfermion part of mass block output of SLHA2
Definition: flavoursoft.cpp:298
Contains two-loop routines from Slavich et al.
void sminputsSLHA(ostream &out)
SM inputs block of SLHA2.
Definition: flavoursoft.cpp:250
global variable declaration
Definition: def.cpp:13
virtual void snumixSLHA(ostream &out)
uncharged slepton mixing part
Definition: flavoursoft.cpp:344
virtual void sleptonsSLHA(ostream &out)
slepton part of mass block output of SLHA2
Definition: flavoursoft.cpp:275
virtual void msoftSLHA(ostream &out)
MSOFT block of SLHA.
Definition: flavoursoft.cpp:563
void setInitialData(const QedQcd &r)
Sets the initial data from a un-run QedQcd object.
Definition: flavoursoft.h:138
virtual void doUpSquarks(double mt, double pizztMS, double sinthDRbarMS, int accuracy)
flavour violating squark mass/mixing calculation
Definition: flavoursoft.cpp:800
FlavourMssmSoftsusy()
constructor functions
Definition: flavoursoft.h:236
const ComplexMatrix displayComplexCkm() const
same as displayCkm, except the phase is properly incorporated
Definition: flavoursoft.cpp:179
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
virtual void doQuarkMixing(DoubleMatrix &mDon, DoubleMatrix &mUpq)
Definition: flavoursoft.cpp:1183
Quark and lepton masses and gauge couplings in QEDxQCD effective theory.
Definition: lowe.h:55
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:72
flavourPhysical()
Definition: flavoursoft.h:70
void minparSLHA(ostream &out, const char model[], const DoubleVector &pars, double tanb, int sgnMu, bool ewsbBCscale)
Input SUSY parameters part of SLHA2.
Definition: flavoursoft.cpp:737
A few handy bits and pieces - little mathematical functions and the like.
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
Flags for potential problems in sProblem structure, and structure for containing physical MSSM parame...
Object containing the physical aspects of flavour mixing etc.
Definition: flavoursoft.h:46
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
void convertFromWolfenstein(double lambdaW, double A, double rhobar, double etabar, double &sin12, double &sin23, double &sin13)
Definition: flavoursoft.cpp:42
virtual void yukawasSLHA(ostream &out)
sfermionic part of mixing blocks
Definition: flavoursoft.cpp:530
Soft SUSY breaking parameters.
int positionOfSym(int i, int j)
Definition: flavoursoft.cpp:56
virtual MssmSusyRGE guessAtSusyMt(double tanb, const QedQcd &oneset)
Definition: flavoursoft.cpp:1472
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
void setFlavourPhysical(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.h:60
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
const DoubleMatrix displayMns() const
constructs a MNS matrix out of the angles stored within
Definition: flavoursoft.cpp:209
void sCkmAnalytic(double m32, double &deltaULL23, double &deltaULR23, double &deltaULL12, double &deltaDLL23, double &deltaDLR23, double &deltaDLL12) const
Definition: flavoursoft.cpp:1544
virtual void extparSLHA(ostream &out, const DoubleVector &pars, bool ewsbBCscale)
EXTPAR block of SLHA.
Definition: flavoursoft.cpp:400
const flavourPhysical & operator=(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.cpp:1170
DoubleMatrix dSqMix
Definition: flavoursoft.h:49
void sCkmRunning(DoubleMatrix &deltaULL, DoubleMatrix &deltaURR, DoubleMatrix &deltaULR, DoubleMatrix &deltaDLL, DoubleMatrix &deltaDRR, DoubleMatrix &deltaDLR)
Definition: flavoursoft.cpp:1682
void setFlavourPhys(const flavourPhysical &s)
Sets all squark flavour violating physical parameters.
Definition: flavoursoft.h:136
void vckminSLHA(ostream &out)
VCKMIN inputs block of SLHA2.
Definition: flavoursoft.cpp:375
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:83
numerical routines - differential equation solver, differentiator and function minimiser for instance
virtual void doChargedSleptons(double mT, double pizztMS, double sinthDRbarMS, int accuracy)
flavour violating slepton mass/mixing calculation
Definition: flavoursoft.cpp:1015
const DoubleVector & displayMass() const
Returns a vector of running fermion masses.
Definition: lowe.h:89
const flavourPhysical & displayFlavourPhysical() const
Displays the object in situations where a const is required.
Definition: flavoursoft.h:58
virtual void sfermionmixSLHA(ostream &out)
sfermion mixing output part of SLHA2
Definition: flavoursoft.cpp:354
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:218
virtual void lesHouchesAccordOutput(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
SLHA2 output format.
Definition: flavoursoft.cpp:698
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
void modselSLHA(ostream &out, const char model[])
MODSEL block of SLHA2.
Definition: flavoursoft.cpp:245
void setAngles(double lambdaW, double aCkm, double rhobar, double etabar)
Definition: flavoursoft.cpp:1493
virtual void calcDrBarPars()
Organises tree-level calculation of all sparticle masses and mixings.
Definition: flavoursoft.cpp:1288
void flavourBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: flavoursoft.cpp:72
virtual void doSnu(double pizztMS, int accuracy=0)
flavour violating slepton mass/mixing calculation
Definition: flavoursoft.cpp:1119
void ckmNormalise(DoubleMatrix &Vu, DoubleMatrix &Vd, DoubleMatrix &Uu, DoubleMatrix &Ud)
Definition: flavoursoft.cpp:1630
void sCkm(DoubleMatrix &deltaULL, DoubleMatrix &deltaURR, DoubleMatrix &deltaULR, DoubleMatrix &deltaDLL, DoubleMatrix &deltaDRR, DoubleMatrix &deltaDLR) const
Definition: flavoursoft.cpp:1510
virtual void selmixSLHA(ostream &out)
charged slepton mixing part
Definition: flavoursoft.cpp:334
double displayTheta12() const
standard set and display functions
Definition: flavoursoft.h:99
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
const DoubleMatrix displayCkm() const
Definition: flavoursoft.cpp:204