hosted by CEDAR HepForge |
00001 00012 #ifndef FLAVOURSOFT_H 00013 #define FLAVOURSOFT_H 00014 00015 #include <iostream> 00016 #include <fstream> 00017 #include <sstream> 00018 #include <string> 00019 #include <cstdlib> 00020 #include <cmath> 00021 #include <def.h> 00022 #include <utils.h> 00023 #include <numerics.h> 00024 #include <physpars.h> 00025 #include <lowe.h> 00026 #include <softpars.h> 00027 #include <twoloophiggs.h> 00028 #include <softsusy.h> 00029 using namespace softsusy; 00030 00034 void convertFromWolfenstein(double lambda, double A, double rhobar, 00035 double etabar, double & sin12, double & sin23, 00036 double & sin13); 00037 00043 int positionOfSym(int i, int j); 00044 00045 struct flavourPhysical { 00048 DoubleMatrix dSqMix, uSqMix; 00049 DoubleVector msD, msU; 00050 DoubleMatrix eSqMix, nuSqMix; 00051 DoubleVector msE, msNu; 00052 00053 flavourPhysical(); 00054 00055 flavourPhysical(const flavourPhysical &); 00057 const flavourPhysical & displayFlavourPhysical() const { return *this; }; 00059 void setFlavourPhysical(const flavourPhysical &s) { *this = s; }; 00061 const flavourPhysical & operator = (const flavourPhysical & s); 00062 }; 00063 00065 ostream & operator <<(ostream &, const flavourPhysical &); 00067 istream & operator >>(istream & left, flavourPhysical &s); 00068 00069 inline flavourPhysical::flavourPhysical() 00070 : dSqMix(6, 6), uSqMix(6, 6), msD(6), msU(6), 00071 eSqMix(6, 6), nuSqMix(3, 3), msE(6), msNu(3) 00072 {} 00073 00074 inline flavourPhysical::flavourPhysical(const flavourPhysical & s) 00075 : dSqMix(s.dSqMix), uSqMix(s.uSqMix), msD(s.msD), msU(s.msU), 00076 eSqMix(s.eSqMix), nuSqMix(s.nuSqMix), 00077 msE(s. msE), msNu(s.msNu) 00078 {} 00079 00081 class FlavourMssmSoftsusy: public MssmSoftsusy { 00082 private: 00083 flavourPhysical fv; 00084 00085 double theta12, theta23, theta13, deltaCkm; 00086 double thetaB12, thetaB23, thetaB13; 00087 double mNuE, mNuMu, mNuTau; 00088 double md2GeV, mu2GeV, ms2GeV, mcMc; 00089 double mePole, mmuPole; 00090 public: 00092 inline FlavourMssmSoftsusy(); 00093 00095 inline double displayTheta12() const { return theta12; }; 00096 inline double displayTheta13() const { return theta13; }; 00097 inline double displayTheta23() const { return theta23; }; 00098 inline double displayDelta() const { return deltaCkm; }; 00099 inline double displayThetaB12() const { return thetaB12; }; 00100 inline double displayThetaB13() const { return thetaB13; }; 00101 inline double displayThetaB23() const { return thetaB23; }; 00102 inline double displayMnuE() const { return mNuE; }; 00103 inline double displayMnuMu() const { return mNuMu; }; 00104 inline double displayPoleMe() const { return mePole; }; 00105 inline double displayPoleMmu() const { return mmuPole; }; 00106 inline double displayMd2GeV() const { return md2GeV; }; 00107 inline double displayMu2GeV() const { return mu2GeV; }; 00108 inline double displayMs2GeV() const { return ms2GeV; }; 00109 inline double displayMcMc() const { return mcMc; }; 00110 inline double displayMnuTau() const { return mNuTau; }; 00111 const flavourPhysical & displayFlavourPhysical() const { return fv; }; 00112 const FlavourMssmSoftsusy & displayFlavourSoftsusy() const { return *this; }; 00113 00114 inline void setTheta12(double d) { theta12 = d; }; 00115 inline void setTheta13(double d) { theta13 = d; }; 00116 inline void setTheta23(double d) { theta23 = d; }; 00117 inline void setDelta(double d) { deltaCkm = d; }; 00118 inline void setThetaB12(double d) { thetaB12 = d; }; 00119 inline void setThetaB13(double d) { thetaB13 = d; }; 00120 inline void setThetaB23(double d) { thetaB23 = d; }; 00121 inline void setMnuE(double d) { mNuE = d; }; 00122 inline void setMnuMu(double d) { mNuMu = d; }; 00123 inline void setMnuTau(double d) { mNuTau = d; }; 00124 inline void setPoleMe(double d) { mePole = d; }; 00125 inline void setPoleMmu(double d) { mmuPole = d; }; 00126 inline void setMd2GeV(double d) { md2GeV = d; }; 00127 inline void setMu2GeV(double d) { mu2GeV = d; }; 00128 inline void setMs2GeV(double d) { ms2GeV = d; }; 00129 inline void setMcMc(double d) { mcMc = d; }; 00131 void setFlavourPhys(const flavourPhysical & s) { fv = s; }; 00133 inline void setInitialData(const QedQcd & r) { 00134 md2GeV = r.displayMass(mDown); mu2GeV = r.displayMass(mUp); 00135 ms2GeV = r.displayMass(mStrange); mcMc = r.displayMass(mCharm); 00136 mePole = r.displayMass(mElectron); mmuPole = r.displayMass(mMuon); 00137 } 00138 00141 DoubleMatrix displayCkm() const; 00143 ComplexMatrix displayComplexCkm() const; 00145 DoubleMatrix displayMns() const; 00146 00148 virtual void lesHouchesAccordOutput(ostream & out, const char model[], 00149 const DoubleVector & pars, 00150 int sgnMu, double tanb, double qMax, 00151 int numPoints, double mgut, 00152 bool altEwsb = false); 00153 00155 virtual void doUpSquarks(double mt, double pizztMS, double sinthDRbarMS, int 00156 accuracy); 00158 virtual void doDownSquarks(double mb, double pizztMS, double sinthDRbarMS, 00159 int accuracy, double mt); 00161 virtual void doChargedSleptons(double mT, double pizztMS, 00162 double sinthDRbarMS, int accuracy); 00164 virtual void doSnu(double pizztMS, int accuracy = 0); 00165 00168 virtual void doQuarkMixing(DoubleMatrix & mDon, DoubleMatrix & mUpq); 00169 00170 virtual void calcDrBarPars(); 00171 00175 virtual MssmSusy guessAtSusyMt(double tanb, const QedQcd & oneset); 00176 00179 00182 void setAngles(double lambda, double aCkm, double rhobar, double etabar); 00183 00186 void sCkm(DoubleMatrix & deltaULL, DoubleMatrix & deltaURR, 00187 DoubleMatrix & deltaULR, DoubleMatrix & deltaDLL, 00188 DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR) const; 00189 00190 00193 void sCkmAnalytic(double m32, double & deltaULL23, double & deltaULR23, 00194 double & deltaULL12, double & deltaDLL23, 00195 double & deltaDLR23, double & deltaDLL12) const; 00196 00199 void sCkmRunning 00200 (DoubleMatrix & deltaULL, DoubleMatrix & deltaURR, DoubleMatrix & deltaULR, 00201 DoubleMatrix & deltaDLL, DoubleMatrix & deltaDRR, DoubleMatrix & deltaDLR); 00202 }; 00203 00204 inline FlavourMssmSoftsusy::FlavourMssmSoftsusy() 00205 : MssmSoftsusy(), fv(), theta12(0.), theta23(0.), theta13(0.), deltaCkm(0.), 00206 thetaB12(0.), thetaB23(0.), thetaB13(0.), mNuE(0.), mNuMu(0.), mNuTau(0.), 00207 md2GeV(0.), mu2GeV(0.), ms2GeV(0.), mcMc(0.), mePole(0.), mmuPole(0.) 00208 {} 00209 00211 ostream & operator <<(ostream &, const FlavourMssmSoftsusy &); 00212 00213 void flavourBcs2(MssmSoftsusy & m, const DoubleVector & inputParameters); 00214 00217 void ckmNormalise(DoubleMatrix & Vu, DoubleMatrix & Vd, DoubleMatrix & Uu, 00218 DoubleMatrix & Ud); 00219 00220 #endif 00221
1.5.5