SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
rpvsusypars.h
Go to the documentation of this file.
1 
11 #ifndef RPVSUSYPARS_H
12 #define RPVSUSYPARS_H
13 
14 #include <iostream>
15 #include <cmath>
16 #include <fstream>
17 #include "linalg.h"
18 #include "tensor.h"
19 
20 namespace softsusy {
21 
23 typedef enum {LU=1, LD, LE} RpvCouplings;
24 
26 class RpvSusyPars {
27 private:
30  Tensor lu, ld, le;
31  DoubleVector kappa;
32 
33 public:
35  RpvSusyPars();
37  RpvSusyPars(const RpvSusyPars &);
40  RpvSusyPars(const Tensor & hu, const Tensor & hd, const
41  Tensor & he, const DoubleVector & d);
42 
44  const RpvSusyPars & operator=(const RpvSusyPars & s);
45 
46  virtual ~RpvSusyPars() {};
47 
49  inline void setLam(int i, int j, int k, double f);
51  inline void setLamPrime(int i, int j, int k, double f);
53  inline void setLamPrimePrime(int i, int j, int k, double f);
55  inline void setKappa(int, double);
57  void setLambda(RpvCouplings, int, int, int, double);
59  inline void setKappa(const DoubleVector & k) { kappa = k; }
61  void setLambda(const RpvCouplings & r, const Tensor & t);
64  void set(const DoubleVector & v, int & k);
66  void setRpvSusyPars(const RpvSusyPars & s) { *this = s; };
67 
69  const Tensor & displayLambda(RpvCouplings) const;
71  inline const DoubleVector & displayKappa() const { return kappa; }
73  inline double displayLam(int i, int j, int k) const;
75  inline double displayLamPrime(int i, int j, int k) const;
77  inline double displayLamPrimePrime(int i, int j, int k) const;
79  inline const RpvSusyPars & displayRpvSusy() const;
82  void display(DoubleVector & v, int & k) const;
85  void checkOut(double tol) const;
86 };
87 
92 DoubleVector boundaryCondition(double m0, double m12, double a0,
93  const RpvSusyPars & r);
94 
95 inline void RpvSusyPars::setKappa(int i, double f) { kappa(i) = f; }
96 
97 inline double RpvSusyPars::displayLam(int i, int j, int k) const
98 { return displayLambda(LE).display(k, i, j); }
99 inline double RpvSusyPars::displayLamPrime(int i, int j, int k) const
100 { return displayLambda(LD).display(k, i, j); }
101 inline double RpvSusyPars::displayLamPrimePrime(int i, int j, int k) const
102 { return displayLambda(LU).display(i, j, k); }
103 inline void RpvSusyPars::setLam(int i, int j, int k, double f)
104 { setLambda(LE, k, i, j, f); }
105 inline void RpvSusyPars::setLamPrime(int i, int j, int k, double f)
106 { setLambda(LD, k, i, j, f); }
107 inline void RpvSusyPars::setLamPrimePrime(int i, int j, int k, double f)
108 { setLambda(LU, i, j, k, f); }
109 
110 inline RpvSusyPars::RpvSusyPars(const Tensor & hu, const Tensor & hd, const
111  Tensor & he, const DoubleVector & d)
112  : lu(hu), ld(hd), le(he), kappa(d) {}
113 
114 inline const RpvSusyPars & RpvSusyPars::displayRpvSusy() const { return *this; }
115 
117 ostream & operator << (ostream &, const RpvSusyPars &);
118 
120 class RpvSoftPars {
121 private:
122  DoubleVector mH1lsq;
123  Tensor hur, hdr, her;
125  DoubleVector dr;
126 
127 public:
128  RpvSoftPars();
129  RpvSoftPars(const RpvSoftPars &);
133  RpvSoftPars(const DoubleVector &m, const Tensor & hu, const Tensor & hd,
134  const Tensor & he, const DoubleVector & d);
135  virtual ~RpvSoftPars() {};
137  const RpvSoftPars & operator=(const RpvSoftPars & s);
138 
140  inline void setDr(const DoubleVector & V);
142  inline void setD(int, double);
144  inline void setMh1lSquared(int i, double f) { mH1lsq(i) = f; };
146  inline void setMh1lSquared(const DoubleVector & v) { mH1lsq = v; };
148  void setHr(RpvCouplings, int, int, int, double);
150  void setHr(RpvCouplings, const Tensor &);
154  void set(const DoubleVector & v, int & k);
156  void setRpvSoftPars(const RpvSoftPars & s) { *this = s; };
158  const RpvSoftPars & displayRpvSoft() const { return *this; };
159 
161  const Tensor & displayHr(RpvCouplings) const;
163  inline const DoubleVector & displayMh1lSquared() const { return mH1lsq; }
165  inline const DoubleVector & displayDr() const;
168  void checkOut(double tol) const;
169 
172  void display(DoubleVector & v, int & k) const;
173 };
174 
175 inline void RpvSoftPars::setDr(const DoubleVector & V) { dr = V; }
176 
177 inline void RpvSoftPars::setD(int i, double f) { dr(i) = f; }
178 
179 inline const DoubleVector & RpvSoftPars::displayDr() const { return dr; }
180 
181 inline RpvSoftPars::RpvSoftPars(const DoubleVector & m, const Tensor & hu,
182  const Tensor & hd, const Tensor & he, const
183  DoubleVector & d)
184  : mH1lsq(m), hur(hu), hdr(hd), her(he), dr(d) {}
185 
187 ostream & operator << (ostream &, const RpvSoftPars &);
188 
189 } // namespace softsusy
190 
191 #endif
192 
global variable declaration
Definition: def.cpp:13
const RpvSusyPars & displayRpvSusy() const
Returns all object as a const.
Definition: rpvsusypars.h:114
Contains RPV MSSM supersymmetric parameters.
Definition: rpvsusypars.h:26
void setMh1lSquared(const DoubleVector &v)
Sets all .
Definition: rpvsusypars.h:146
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:105
DoubleVector boundaryCondition(double m0, double m12, double a0, const RpvSusyPars &r)
Definition: rpvsusypars.cpp:373
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
void setLambda(RpvCouplings, int, int, int, double)
Set a single element of a lambda tensor.
Definition: rpvsusypars.cpp:135
void setRpvSoftPars(const RpvSoftPars &s)
Sets all parameters in object equal to those in another.
Definition: rpvsusypars.h:156
const DoubleMatrix & display(int) const
Returns a single matrix of the tensor.
Definition: tensor.cpp:73
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
void display(DoubleVector &v, int &k) const
Definition: rpvsusypars.cpp:83
void setLamPrimePrime(int i, int j, int k, double f)
Conventional couplings: lambda&#39;_{ijk}.
Definition: rpvsusypars.h:107
void setMh1lSquared(int i, double f)
Sets a single .
Definition: rpvsusypars.h:144
void setDr(const DoubleVector &V)
Sets bilinear RPV D parameters equal to a vector.
Definition: rpvsusypars.h:175
void setKappa(int, double)
Set one kappa value.
Definition: rpvsusypars.h:95
three-index tensor for containing information on R-parity violating couplings. Also contains linear a...
double displayLam(int i, int j, int k) const
Conventional couplings: lambda_{ijk}.
Definition: rpvsusypars.h:97
void setRpvSusyPars(const RpvSusyPars &s)
sets all parameters to be those in s
Definition: rpvsusypars.h:66
void setD(int, double)
Sets an individual bilinear RPV D parameter.
Definition: rpvsusypars.h:177
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
const RpvSoftPars & displayRpvSoft() const
Returns object as a const.
Definition: rpvsusypars.h:158
void checkOut(double tol) const
Definition: rpvsusypars.cpp:29
const Tensor & displayLambda(RpvCouplings) const
Returns one of the tensors LU, LD or LE.
Definition: rpvsusypars.cpp:37
RpvCouplings
Which flavour of coupling: UDD, LQD or LLE operator?
Definition: rpvsusypars.h:23
const DoubleVector & displayKappa() const
Returns all kappa values in a vector.
Definition: rpvsusypars.h:71
void setLam(int i, int j, int k, double f)
Conventional couplings: lambda_{ijk}.
Definition: rpvsusypars.h:103
void setLamPrime(int i, int j, int k, double f)
Conventional couplings: lambda&#39;_{ijk}.
Definition: rpvsusypars.h:105
double displayLamPrime(int i, int j, int k) const
Conventional couplings: lambda&#39;_{ijk}.
Definition: rpvsusypars.h:99
Contains RPV MSSM soft SUSY breaking parameters.
Definition: rpvsusypars.h:120
Three-index tensor for containing information on RPV couplings.
Definition: tensor.h:27
const RpvSusyPars & operator=(const RpvSusyPars &s)
Set all data in the object equal to another.
Definition: rpvsusypars.cpp:21
const DoubleVector & displayMh1lSquared() const
Returns vector of .
Definition: rpvsusypars.h:163
const DoubleVector & displayDr() const
Returns vector of $D$ parameters.
Definition: rpvsusypars.h:179
RpvSusyPars()
bilinear RPV parameters
Definition: rpvsusypars.cpp:15
double displayLamPrimePrime(int i, int j, int k) const
Conventional couplings: lambda&#39;&#39;_{ijk}.
Definition: rpvsusypars.h:101
void setKappa(const DoubleVector &k)
Set all kappa values.
Definition: rpvsusypars.h:59
RpvSoftPars()
bilinear RPV parameters: 1..3
Definition: rpvsusypars.cpp:213