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;
87  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 
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:83
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
void modselSLHA(ostream &out, const char model[])
MODSEL block of SLHA2.
Definition: flavoursoft.cpp:245
virtual void msoftSLHA(ostream &out)
MSOFT block of SLHA.
Definition: flavoursoft.cpp:563
void sCkmRunning(DoubleMatrix &deltaULL, DoubleMatrix &deltaURR, DoubleMatrix &deltaULR, DoubleMatrix &deltaDLL, DoubleMatrix &deltaDRR, DoubleMatrix &deltaDLR)
Definition: flavoursoft.cpp:1682
const ComplexMatrix displayComplexCkm() const
same as displayCkm, except the phase is properly incorporated
Definition: flavoursoft.cpp:179
void sminputsSLHA(ostream &out)
SM inputs block of SLHA2.
Definition: flavoursoft.cpp:250
double displayTheta12() const
standard set and display functions
Definition: flavoursoft.h:99
void vckminSLHA(ostream &out)
VCKMIN inputs block of SLHA2.
Definition: flavoursoft.cpp:375
void setFlavourPhys(const flavourPhysical &s)
Sets all squark flavour violating physical parameters.
Definition: flavoursoft.h:136
virtual void selmixSLHA(ostream &out)
charged slepton mixing part
Definition: flavoursoft.cpp:334
void sCkm(DoubleMatrix &deltaULL, DoubleMatrix &deltaURR, DoubleMatrix &deltaULR, DoubleMatrix &deltaDLL, DoubleMatrix &deltaDRR, DoubleMatrix &deltaDLR) const
Definition: flavoursoft.cpp:1510
virtual void doSnu(double pizztMS, int accuracy=0)
flavour violating slepton mass/mixing calculation
Definition: flavoursoft.cpp:1119
const DoubleMatrix displayMns() const
constructs a MNS matrix out of the angles stored within
Definition: flavoursoft.cpp:209
virtual void doDownSquarks(double mb, double pizztMS, double sinthDRbarMS, int accuracy, double mt)
flavour violating squark mass/mixing calculation
Definition: flavoursoft.cpp:907
void setAngles(double lambdaW, double aCkm, double rhobar, double etabar)
Definition: flavoursoft.cpp:1493
FlavourMssmSoftsusy()
constructor functions
Definition: flavoursoft.h:236
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
virtual void sfermionsSLHA(ostream &out)
sfermion part of mass block output of SLHA2
Definition: flavoursoft.cpp:298
virtual void doQuarkMixing(DoubleMatrix &mDon, DoubleMatrix &mUpq)
Definition: flavoursoft.cpp:1183
virtual MssmSusyRGE guessAtSusyMt(double tanb, const QedQcd &oneset)
Definition: flavoursoft.cpp:1472
virtual void calcDrBarPars()
Organises tree-level calculation of all sparticle masses and mixings.
Definition: flavoursoft.cpp:1288
const DoubleMatrix displayCkm() const
Definition: flavoursoft.cpp:204
void setInitialData(const QedQcd &r)
Sets the initial data from a un-run QedQcd object.
Definition: flavoursoft.h:138
virtual void extparSLHA(ostream &out, const DoubleVector &pars, bool ewsbBCscale)
EXTPAR block of SLHA.
Definition: flavoursoft.cpp:400
virtual void sleptonsSLHA(ostream &out)
slepton part of mass block output of SLHA2
Definition: flavoursoft.cpp:275
virtual void sfermionmixSLHA(ostream &out)
sfermion mixing output part of SLHA2
Definition: flavoursoft.cpp:354
virtual void snumixSLHA(ostream &out)
uncharged slepton mixing part
Definition: flavoursoft.cpp:344
virtual void yukawasSLHA(ostream &out)
sfermionic part of mixing blocks
Definition: flavoursoft.cpp:530
virtual void doChargedSleptons(double mT, double pizztMS, double sinthDRbarMS, int accuracy)
flavour violating slepton mass/mixing calculation
Definition: flavoursoft.cpp:1015
virtual void doUpSquarks(double mt, double pizztMS, double sinthDRbarMS, int accuracy)
flavour violating squark mass/mixing calculation
Definition: flavoursoft.cpp:800
void sCkmAnalytic(double m32, double &deltaULL23, double &deltaULR23, double &deltaULL12, double &deltaDLL23, double &deltaDLR23, double &deltaDLL12) const
Definition: flavoursoft.cpp:1544
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:74
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:218
Quark and lepton masses and gauge couplings in QEDxQCD effective theory.
Definition: lowe.h:55
const DoubleVector & displayMass() const
Returns a vector of running fermion masses.
Definition: lowe.h:89
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
global variable declaration
Definition: def.cpp:13
void ckmNormalise(DoubleMatrix &Vu, DoubleMatrix &Vd, DoubleMatrix &Uu, DoubleMatrix &Ud)
Definition: flavoursoft.cpp:1630
int positionOfSym(int i, int j)
Definition: flavoursoft.cpp:56
void flavourBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
Definition: flavoursoft.cpp:72
void convertFromWolfenstein(double lambdaW, double A, double rhobar, double etabar, double &sin12, double &sin23, double &sin13)
Definition: flavoursoft.cpp:42
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
istream & operator>>(istream &left, flavourPhysical &s)
Formatted input of physical parameters.
Definition: flavoursoft.cpp:1220
numerical routines - differential equation solver, differentiator and function minimiser for instance
Flags for potential problems in sProblem structure, and structure for containing physical MSSM parame...
Soft SUSY breaking parameters.
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
Object containing the physical aspects of flavour mixing etc.
Definition: flavoursoft.h:46
const flavourPhysical & displayFlavourPhysical() const
Displays the object in situations where a const is required.
Definition: flavoursoft.h:58
flavourPhysical()
Definition: flavoursoft.h:70
DoubleMatrix dSqMix
Definition: flavoursoft.h:49
void setFlavourPhysical(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.h:60
const flavourPhysical & operator=(const flavourPhysical &s)
Sets whole contents to those of another object s.
Definition: flavoursoft.cpp:1170
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
Contains two-loop routines from Slavich et al.
A few handy bits and pieces - little mathematical functions and the like.