hosted by CEDAR HepForge |
00001 00011 #ifndef RPVSUSYPARS_H 00012 #define RPVSUSYPARS_H 00013 00014 #include <iostream> 00015 #include <cmath> 00016 #include <fstream> 00017 #include <linalg.h> 00018 #include <tensor.h> 00019 using namespace softsusy; 00020 00022 typedef enum {LU=1, LD, LE} RpvCouplings; 00023 00025 class RpvSusyPars 00026 { 00027 private: 00030 Tensor lu, ld, le; 00031 DoubleVector kappa; 00032 00033 public: 00035 RpvSusyPars(); 00037 RpvSusyPars(const RpvSusyPars &); 00040 RpvSusyPars(const Tensor & hu, const Tensor & hd, const 00041 Tensor & he, const DoubleVector & d); 00042 00044 const RpvSusyPars & operator=(const RpvSusyPars & s); 00045 00046 virtual ~RpvSusyPars() {}; 00047 00049 inline void setLam(int i, int j, int k, double f); 00051 inline void setLamPrime(int i, int j, int k, double f); 00053 inline void setLamPrimePrime(int i, int j, int k, double f); 00055 inline void setKappa(int, double); 00057 void setLambda(RpvCouplings, int, int, int, double); 00059 inline void setKappa(const DoubleVector & k) { kappa = k; } 00061 void setLambda(const RpvCouplings & r, const Tensor & t); 00064 void set(const DoubleVector & v, int & k); 00066 void setRpvSusyPars(const RpvSusyPars & s) { *this = s; }; 00067 00069 Tensor displayLambda(RpvCouplings) const; 00071 inline DoubleVector displayKappa() const { return kappa; } 00073 inline double displayLam(int i, int j, int k) const; 00075 inline double displayLamPrime(int i, int j, int k) const; 00077 inline double displayLamPrimePrime(int i, int j, int k) const; 00079 inline RpvSusyPars displayRpvSusy() const; 00082 void display(DoubleVector & v, int & k) const; 00085 void checkOut(double tol) const; 00086 }; 00087 00092 DoubleVector boundaryCondition(double m0, double m12, double a0, 00093 const RpvSusyPars & r); 00094 00095 inline void RpvSusyPars::setKappa(int i, double f) { kappa(i) = f; } 00096 00097 inline double RpvSusyPars::displayLam(int i, int j, int k) const 00098 { return displayLambda(LE)(k, i, j); } 00099 inline double RpvSusyPars::displayLamPrime(int i, int j, int k) const 00100 { return displayLambda(LD)(k, i, j); } 00101 inline double RpvSusyPars::displayLamPrimePrime(int i, int j, int k) const 00102 { return displayLambda(LU)(i, j, k); } 00103 inline void RpvSusyPars::setLam(int i, int j, int k, double f) 00104 { setLambda(LE, k, i, j, f); } 00105 inline void RpvSusyPars::setLamPrime(int i, int j, int k, double f) 00106 { setLambda(LD, k, i, j, f); } 00107 inline void RpvSusyPars::setLamPrimePrime(int i, int j, int k, double f) 00108 { setLambda(LU, i, j, k, f); } 00109 00110 inline RpvSusyPars::RpvSusyPars(const Tensor & hu, const Tensor & hd, const 00111 Tensor & he, const DoubleVector & d) 00112 : lu(hu), ld(hd), le(he), kappa(d) {} 00113 00114 inline RpvSusyPars RpvSusyPars::displayRpvSusy() const { return *this; } 00115 00117 ostream & operator << (ostream &, const RpvSusyPars &); 00118 00120 class RpvSoftPars { 00121 private: 00122 DoubleVector mH1lsq; 00123 00124 Tensor hur, hdr, her; 00125 DoubleVector dr; 00126 00127 public: 00128 RpvSoftPars(); 00129 00130 RpvSoftPars(const RpvSoftPars &); 00133 RpvSoftPars(const DoubleVector &m, const Tensor & hu, const Tensor & hd, 00134 const Tensor & he, const DoubleVector & d); 00135 virtual ~RpvSoftPars() {}; 00137 const RpvSoftPars & operator=(const RpvSoftPars & s); 00138 00140 inline void setDr(const DoubleVector & V); 00142 inline void setD(int, double); 00144 inline void setMh1lSquared(int i, double f) { mH1lsq(i) = f; }; 00146 inline void setMh1lSquared(const DoubleVector & v) { mH1lsq = v; }; 00148 void setHr(RpvCouplings, int, int, int, double); 00150 void setHr(RpvCouplings, const Tensor &); 00154 void set(const DoubleVector & v, int & k); 00156 void setRpvSoftPars(const RpvSoftPars & s) { *this = s; }; 00158 RpvSoftPars displayRpvSoft() const { return *this; }; 00159 00161 Tensor displayHr(RpvCouplings) const; 00163 inline DoubleVector displayMh1lSquared() const { return mH1lsq; } 00165 inline DoubleVector displayDr() const; 00168 void checkOut(double tol) const; 00169 00172 void display(DoubleVector & v, int & k) const; 00173 }; 00174 00175 inline void RpvSoftPars::setDr(const DoubleVector & V) { dr = V; } 00176 00177 inline void RpvSoftPars::setD(int i, double f) { dr(i) = f; } 00178 00179 inline DoubleVector RpvSoftPars::displayDr() const { return dr; } 00180 00181 inline RpvSoftPars::RpvSoftPars(const DoubleVector & m, const Tensor & hu, 00182 const Tensor & hd, const Tensor & he, const 00183 DoubleVector & d) 00184 : mH1lsq(m), hur(hu), hdr(hd), her(he), dr(d) {} 00185 00187 ostream & operator << (ostream &, const RpvSoftPars &); 00188 00189 #endif 00190
1.5.5