SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
rpvsoft.h
Go to the documentation of this file.
1 
13 #ifndef RPVSOFT_H
14 #define RPVSOFT_H
15 
16 #include <iostream>
17 #include <math.h>
18 #include <cstring>
19 #include <sstream>
20 #include <fstream>
21 #include "def.h"
22 #include "flavoursoft.h"
23 #include "softsusy.h"
24 #include "linalg.h"
25 #include "rpvsusypars.h"
26 
27 namespace softsusy {
28 
30 static const int numRpvSoftPars = 99 + numSoftParsMssm;
31 
34  public RpvSusyPars {
39 private:
41  DoubleVector snuVevs;
43  DoubleVector nuMasses;
46  DoubleMatrix neutralFermMixing;
48  DoubleMatrix Uch, Vch;
50  int numRpcBcs;
51 public:
53  RpvSoftsusy();
55  RpvSoftsusy(const RpvSoftsusy &);
57  const RpvSoftsusy & operator = (const RpvSoftsusy &);
58 
60  const DoubleVector display() const;
62  void set(const DoubleVector & v);
64  DoubleVector beta() const;
66  RpvSoftsusy beta2() const;
67 
69  inline const RpvSoftsusy & displayRpvSoftsusy() const { return *this; }
71  void setRpvSoftsusy(const RpvSoftsusy & s) { *this = s; };
72 
77  void rpvDisplay(DoubleVector & parameters) const;
78 
83  virtual void rpvSet(const DoubleVector & parameters);
84 
86  const DoubleVector & displaySneutrinoVevs() const { return snuVevs; };
88  const DoubleVector & displayNeutrinoMasses() const { return nuMasses; };
91  return neutralFermMixing; };
93  const DoubleMatrix & displayUch() const { return Uch; };
95  const DoubleMatrix & displayVch() const { return Vch; };
97  int displayNumRpcBcs() const { return numRpcBcs; };
98 
100  void setNumRpcBcs(int pos) { numRpcBcs = pos; };
102  void setSneutrinoVevs(DoubleVector & v) { snuVevs = v; };
104  void setNeutrinoMasses(DoubleVector & v) { nuMasses = v; };
106  void setNeutralMixing(DoubleMatrix & v) { neutralFermMixing = v; };
108  void setUch(DoubleMatrix & v) { Uch = v; };
110  void setVch(DoubleMatrix & v) { Vch = v; };
112  void check(const DoubleVector & sneutrinoVevs) const;
115  DoubleMatrix & gQQ, DoubleMatrix & gUU,
116  DoubleMatrix & gDD,
117  double & gH1H1, double & gH2H2,
118  DoubleVector & gH1L) const;
119 
122  void rpvAnomalousDeriv(DoubleMatrix & gEE, DoubleMatrix & gLL,
123  DoubleMatrix & gQQ, DoubleMatrix & gUU,
124  DoubleMatrix & gDD,
125  double & gH1H1, double & gH2H2,
126  DoubleVector & gH1L) const;
127 
131  void rpvyTildes(DoubleMatrix & ye, DoubleMatrix & yd, Tensor & letilde,
132  Tensor & ldtilde, Tensor & lutilde) const;
133 
137  virtual void rewsb(int sgnMu, double mt, const DoubleVector & pars,
138  double muOld = -6.66e66, double eps = 0.);
144  void iterateRewsb(double & mu, double & m3sq, DoubleVector & sneutrinoVevs,
145  int sgnMu, int & numTries, int maxTries, double tol,
146  double mt, double oldMu, double eps);
151  double calculateMu(const DoubleVector & sneutrinoVevs, int sgnMu,
152  double v1, double v2);
156  virtual void higgs(int accuracy, double piwwtMS, double pizztMS);
162  double calculateM3sq(const DoubleVector & sneutrinoVevs,
163  double snuSq, double v1, double v2);
164  virtual DoubleVector calculateSneutrinoVevs(const DoubleVector &
165  sneutrinoVevs,
166  double tol,
167  double snuSq, double v1,
168  double v2);
171  void rotateAwayVevs(DoubleVector & snVevs);
172 
173  // Returns some functions of VEVs, gives 1 if there's a problem with the
174  // sneutrino VEVs (if they are incompatible with the W and Z masses)
176  // quadrature), v1 and
179  // inputs vSM and sneutrinoVevs.
181  int usefulVevs(double vSM, const DoubleVector & sneutrinoVevs,
182  double & snuSq, double & v1, double & v2) const;
183 
187  void standardSugra(double m0, double m12, double a0);
188 
191 
194  void neutralinos(int accuracy, double piwwtMS, double pizztMS);
198  void methodBoundaryCondition(const DoubleVector & v);
202  virtual void sparticleThresholdCorrections(double tb);
203 
206  DoubleMatrix chargedLeptons(double vev);
214  void iterateChargedLeptons(double vev, DoubleMatrix & yeOld, double tol,
215  int maxTries, int & err, double mtau);
216 
221  void isawigInterface764(char herwigInputFile [80],
222  char isajetOutputFile [80],
223  char softOutputFile [80], double eps = 0.) const;
226  void outputNonZeroInputs(ostream & out);
239  void slha1(ostream & out, const char model[],
240  const DoubleVector & pars, int sgnMu,
241  double tanb, double qMax, int numPoints, bool ewsbBCscale);
243  void drbarRpv(ostream & out);
244  bool leptonNumberViolation() const;
245 };
246 
248 ostream & operator <<(ostream &left, const RpvSoftsusy & r);
249 
251 double neutrinoSum(const RpvSoftsusy & r);
252 
254  : FlavourMssmSoftsusy(), RpvSoftPars(), RpvSusyPars(), snuVevs(3),
255  nuMasses(3), neutralFermMixing(7, 7), Uch(5, 5), Vch(5, 5), numRpcBcs(10) {
256  setPars(numRpvSoftPars);
257  setMu(0.0);
258  setLoops(0);
259  setThresholds(0);
260 }
261 
263  : FlavourMssmSoftsusy(s.displayFlavourSoftsusy()),
266  nuMasses(s.displayNeutrinoMasses()),
267  neutralFermMixing(s.displayNeutralMixing()),
268  Uch(s.displayUch()),
269  Vch(s.displayVch()), numRpcBcs(s.displayNumRpcBcs()) {
270 
271  setPars(numRpvSoftPars);
272  setMu(s.displayMu());
273  setLoops(s.displayLoops());
275 }
276 
278 void rpvSugraBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
279 void rpvAmsbBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
280 void rpvGmsbBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
281 void rpvExtendedSugraBcs(MssmSoftsusy & m,
282  const DoubleVector & inputParameters);
283 
284 } // namespace softsusy
285 
286 #endif
void setThresholds(int t)
Definition: rge.h:41
global variable declaration
Definition: def.cpp:13
const RpvSusyPars & displayRpvSusy() const
Returns all object as a const.
Definition: rpvsusypars.h:114
void drbarRpv(ostream &out)
Does the RPV coupling SLHA1 outputs.
Definition: rpvsoft.cpp:1431
Contains RPV MSSM supersymmetric parameters.
Definition: rpvsusypars.h:26
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:100
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
const DoubleVector & displayNeutrinoMasses() const
Returns the neutrino masses.
Definition: rpvsoft.h:88
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: decays.h:33
double calculateMu(const DoubleVector &sneutrinoVevs, int sgnMu, double v1, double v2)
Definition: rpvsoft.cpp:664
const RpvSoftsusy & displayRpvSoftsusy() const
Returns object as a const.
Definition: rpvsoft.h:69
void setLoops(int l)
Set number of loops used.
Definition: rge.h:38
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
double calculateM3sq(const DoubleVector &sneutrinoVevs, double snuSq, double v1, double v2)
Definition: rpvsoft.cpp:719
const DoubleVector & displaySneutrinoVevs() const
Returns the vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:86
DoubleVector beta() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:191
const RpvSoftsusy & operator=(const RpvSoftsusy &)
All data in object set equal to another one.
Definition: rpvsoft.cpp:15
switches (options) and parameters such as default fermion masses, required accuracy etc ...
void iterateChargedLeptons(double vev, DoubleMatrix &yeOld, double tol, int maxTries, int &err, double mtau)
Definition: rpvsoft.cpp:1033
RpvSoftsusy beta2() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:291
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:84
void setNeutrinoMasses(DoubleVector &v)
Set neutrino masses.
Definition: rpvsoft.h:104
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
DoubleMatrix chargedLeptons(double vev)
Calculates charged lepton-chargino mass matrix including sneutrino VEVs.
Definition: rpvsoft.cpp:1105
void setUch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:108
void setSneutrinoVevs(DoubleVector &v)
Set vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:102
void slha1(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
Definition: rpvsoft.cpp:1525
void setVch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:110
int displayThresholds() const
Return level of threshold approximation.
Definition: rge.h:46
void rpvAnomalousDeriv(DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gUU, DoubleMatrix &gDD, double &gH1H1, double &gH2H2, DoubleVector &gH1L) const
Definition: rpvsoft.cpp:228
Real valued R-Parity violating MSSM object: use for UDD couplings.
Definition: rpvsoft.h:33
void setPars(int i)
Set number of parameters in RGE object.
Definition: rge.h:65
void rpvSugraBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
universal mSUGRA boundary conditions for RPV
Definition: rpvsoft.cpp:1534
void rpvAnomalousDimension(DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gUU, DoubleMatrix &gDD, double &gH1H1, double &gH2H2, DoubleVector &gH1L) const
Anomalous dimensions of fields in RPV MSSM.
Definition: rpvsoft.cpp:198
void iterateRewsb(double &mu, double &m3sq, DoubleVector &sneutrinoVevs, int sgnMu, int &numTries, int maxTries, double tol, double mt, double oldMu, double eps)
Definition: rpvsoft.cpp:601
Contains all supersymmetric RPVMSSM parameters.
void neutralinos(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:793
virtual void rpvSet(const DoubleVector &parameters)
Definition: rpvsoft.cpp:118
void rpvyTildes(DoubleMatrix &ye, DoubleMatrix &yd, Tensor &letilde, Tensor &ldtilde, Tensor &lutilde) const
Definition: rpvsoft.cpp:535
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
void setNumRpcBcs(int pos)
Sets number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:100
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
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:211
DoubleMatrix neutralinoMassMatrix() const
Returns the 7 by 7 general RPV neutralino mass matrix.
Definition: rpvsoft.cpp:801
void check(const DoubleVector &sneutrinoVevs) const
Checks to what extent REWSB conditions are satisfied.
Definition: rpvsoft.cpp:261
double displayMu() const
Return renomalisation scale.
Definition: rge.h:68
RpvSoftsusy()
Default constructor fills object with zeroes.
Definition: rpvsoft.h:253
int displayLoops() const
Return number of loops.
Definition: rge.h:44
const DoubleMatrix & displayUch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:93
const DoubleMatrix & displayNeutralMixing() const
Returns the full neutral mixing matrix.
Definition: rpvsoft.h:90
int usefulVevs(double vSM, const DoubleVector &sneutrinoVevs, double &snuSq, double &v1, double &v2) const
IO parameters: vSM = total VEVs of Higgs+sneutrinos (added in.
Definition: rpvsoft.cpp:702
const DoubleVector display() const
Displays all RGE parameters in a double vector.
Definition: rpvsoft.cpp:47
void setRpvSoftsusy(const RpvSoftsusy &s)
Sets whole object equal to another.
Definition: rpvsoft.h:71
void isawigInterface764(char herwigInputFile[80], char isajetOutputFile[80], char softOutputFile[80], double eps=0.) const
Definition: rpvsoft.cpp:866
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:83
void rpvDisplay(DoubleVector &parameters) const
Definition: rpvsoft.cpp:59
Contains RPV MSSM soft SUSY breaking parameters.
Definition: rpvsusypars.h:120
Three-index tensor for containing information on RPV couplings.
Definition: tensor.h:30
const DoubleMatrix & displayVch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:95
virtual void rewsb(int sgnMu, double mt, const DoubleVector &pars, double muOld=-6.66e66, double eps=0.)
Definition: rpvsoft.cpp:562
void setMu(double e)
Sets renormalisation scale to e.
Definition: rge.h:60
void methodBoundaryCondition(const DoubleVector &v)
Definition: rpvsoft.cpp:853
virtual void higgs(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:1138
void rotateAwayVevs(DoubleVector &snVevs)
Definition: rpvsoft.cpp:1585
virtual void sparticleThresholdCorrections(double tb)
Definition: rpvsoft.cpp:953
void outputNonZeroInputs(ostream &out)
Definition: rpvsoft.cpp:1378
double neutrinoSum(const RpvSoftsusy &r)
Sums up neutrino masses valid for cosmological bound.
Definition: rpvsoft.cpp:774
void setNeutralMixing(DoubleMatrix &v)
Set neutral fermion mixing matrix.
Definition: rpvsoft.h:106
void standardSugra(double m0, double m12, double a0)
Definition: rpvsoft.cpp:764
int displayNumRpcBcs() const
Displays number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:97