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);
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 
global variable declaration
Definition: def.cpp:13
Two loop corrections to the bottom mass. This file has been generated at Fri 7 Apr 2017 21:00:53 with...
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:58
double displayTheta12() const
standard set and display functions
Definition: flavoursoft.h:99
void ckmNormalise(DoubleMatrix &Vu, DoubleMatrix &Vd, DoubleMatrix &Uu, DoubleMatrix &Ud)
Definition: flavoursoft.cpp:1630
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:83
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:55
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:136
FlavourMssmSoftsusy()
constructor functions
Definition: flavoursoft.h:236
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:44
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:77
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:175
void setInitialData(const QedQcd &r)
Sets the initial data from a un-run QedQcd object.
Definition: flavoursoft.h:138
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 DoubleVector & displayMass() const
Returns a vector of running fermion masses.
Definition: lowe.h:87
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
Contains all supersymmetric RPC-MSSM parameters.
Definition: susy.h:222
Object containing the physical aspects of flavour mixing etc.
Definition: flavoursoft.h:46
flavourPhysical()
Definition: flavoursoft.h:70