softsusy is hosted by Hepforge, IPPP Durham
Go to the documentation of this file.
13 #ifndef RPVSOFT_H
14 #define RPVSOFT_H
16 #include <iostream>
17 #include <math.h>
18 #include <cstring>
19 #include <sstream>
20 #include <fstream>
21 #include "flavoursoft.h"
22 #include "softsusy.h"
23 #include "linalg.h"
24 #include "rpvsusypars.h"
26 namespace softsusy {
29 static const int numRpvSoftPars = 99 + numSoftParsMssm;
33  public RpvSusyPars {
38 private:
40  DoubleVector snuVevs;
42  DoubleVector nuMasses;
45  DoubleMatrix neutralFermMixing;
47  DoubleMatrix Uch, Vch;
49  int numRpcBcs;
50 public:
52  RpvSoftsusy();
54  RpvSoftsusy(const RpvSoftsusy &);
56  const RpvSoftsusy & operator = (const RpvSoftsusy &);
59  const DoubleVector display() const;
61  void set(const DoubleVector & v);
63  DoubleVector beta() const;
65  RpvSoftsusy beta2() const;
68  inline const RpvSoftsusy & displayRpvSoftsusy() const { return *this; }
70  void setRpvSoftsusy(const RpvSoftsusy & s) { *this = s; };
76  void rpvDisplay(DoubleVector & parameters) const;
82  virtual void rpvSet(const DoubleVector & parameters);
85  const DoubleVector & displaySneutrinoVevs() const { return snuVevs; };
87  const DoubleVector & displayNeutrinoMasses() const { return nuMasses; };
90  return neutralFermMixing; };
92  const DoubleMatrix & displayUch() const { return Uch; };
94  const DoubleMatrix & displayVch() const { return Vch; };
96  int displayNumRpcBcs() const { return numRpcBcs; };
99  void setNumRpcBcs(int pos) { numRpcBcs = pos; };
101  void setSneutrinoVevs(DoubleVector & v) { snuVevs = v; };
103  void setNeutrinoMasses(DoubleVector & v) { nuMasses = v; };
105  void setNeutralMixing(DoubleMatrix & v) { neutralFermMixing = v; };
107  void setUch(DoubleMatrix & v) { Uch = v; };
109  void setVch(DoubleMatrix & v) { Vch = v; };
111  void check(const DoubleVector & sneutrinoVevs) const;
114  DoubleMatrix & gQQ, DoubleMatrix & gUU,
115  DoubleMatrix & gDD,
116  double & gH1H1, double & gH2H2,
117  DoubleVector & gH1L) const;
121  void rpvAnomalousDeriv(DoubleMatrix & gEE, DoubleMatrix & gLL,
122  DoubleMatrix & gQQ, DoubleMatrix & gUU,
123  DoubleMatrix & gDD,
124  double & gH1H1, double & gH2H2,
125  DoubleVector & gH1L) const;
130  void rpvyTildes(DoubleMatrix & ye, DoubleMatrix & yd, Tensor & letilde,
131  Tensor & ldtilde, Tensor & lutilde) const;
136  virtual void rewsb(int sgnMu, double mt, const DoubleVector & pars,
137  double muOld = -6.66e66, double eps = 0.);
143  void iterateRewsb(double & mu, double & m3sq, DoubleVector & sneutrinoVevs,
144  int sgnMu, int & numTries, int maxTries, double tol,
145  double mt, double oldMu, double eps);
150  double calculateMu(const DoubleVector & sneutrinoVevs, int sgnMu,
151  double v1, double v2);
155  virtual void higgs(int accuracy, double piwwtMS, double pizztMS);
161  double calculateM3sq(const DoubleVector & sneutrinoVevs,
162  double snuSq, double v1, double v2);
163  virtual DoubleVector calculateSneutrinoVevs(const DoubleVector &
164  sneutrinoVevs,
165  double tol,
166  double snuSq, double v1,
167  double v2);
170  void rotateAwayVevs(DoubleVector & snVevs);
172  // Returns some functions of VEVs, gives 1 if there's a problem with the
173  // sneutrino VEVs (if they are incompatible with the W and Z masses)
175  // quadrature), v1 and
178  // inputs vSM and sneutrinoVevs.
180  int usefulVevs(double vSM, const DoubleVector & sneutrinoVevs,
181  double & snuSq, double & v1, double & v2) const;
186  void standardSugra(double m0, double m12, double a0);
193  void neutralinos(int accuracy, double piwwtMS, double pizztMS);
197  void methodBoundaryCondition(const DoubleVector & v);
201  virtual void sparticleThresholdCorrections(double tb);
205  DoubleMatrix chargedLeptons(double vev);
213  void iterateChargedLeptons(double vev, DoubleMatrix & yeOld, double tol,
214  int maxTries, int & err, double mtau);
220  void isawigInterface764(char herwigInputFile [80],
221  char isajetOutputFile [80],
222  char softOutputFile [80], double eps = 0.) const;
225  void outputNonZeroInputs(ostream & out);
238  void slha1(ostream & out, const char model[],
239  const DoubleVector & pars, int sgnMu,
240  double tanb, double qMax, int numPoints, bool ewsbBCscale);
242  void drbarRpv(ostream & out);
243  bool leptonNumberViolation() const;
244 };
247 ostream & operator <<(ostream &left, const RpvSoftsusy & r);
250 double neutrinoSum(const RpvSoftsusy & r);
253  : FlavourMssmSoftsusy(), RpvSoftPars(), RpvSusyPars(), snuVevs(3),
254  nuMasses(3), neutralFermMixing(7, 7), Uch(5, 5), Vch(5, 5), numRpcBcs(10) {
255  setPars(numRpvSoftPars);
256  setMu(0.0);
257  setLoops(2);
258  setThresholds(0);
259 }
262  : FlavourMssmSoftsusy(s.displayFlavourSoftsusy()),
263  RpvSoftPars(s.displayRpvSoft()),
264  RpvSusyPars(s.displayRpvSusy()), snuVevs(s.displaySneutrinoVevs()),
265  nuMasses(s.displayNeutrinoMasses()),
266  neutralFermMixing(s.displayNeutralMixing()),
267  Uch(s.displayUch()),
268  Vch(s.displayVch()), numRpcBcs(s.displayNumRpcBcs()) {
270  setPars(numRpvSoftPars);
271  setMu(s.displayMu());
272  setLoops(s.displayLoops());
274 }
277 void rpvSugraBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
278 void rpvAmsbBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
279 void rpvGmsbBcs(MssmSoftsusy & m, const DoubleVector & inputParameters);
280 void rpvExtendedSugraBcs(MssmSoftsusy & m,
281  const DoubleVector & inputParameters);
283 } // namespace softsusy
285 #endif
const DoubleMatrix & displayVch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:94
void iterateChargedLeptons(double vev, DoubleMatrix &yeOld, double tol, int maxTries, int &err, double mtau)
Definition: rpvsoft.cpp:1033
virtual void higgs(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:1138
void slha1(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
Definition: rpvsoft.cpp:1525
global variable declaration
Definition: def.cpp:13
void setSneutrinoVevs(DoubleVector &v)
Set vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:101
void setNeutralMixing(DoubleMatrix &v)
Set neutral fermion mixing matrix.
Definition: rpvsoft.h:105
const RpvSoftsusy & displayRpvSoftsusy() const
Returns object as a const.
Definition: rpvsoft.h:68
void setVch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:109
void standardSugra(double m0, double m12, double a0)
Definition: rpvsoft.cpp:764
void setPars(int i)
Set number of parameters in RGE object.
Definition: rge.h:64
double calculateM3sq(const DoubleVector &sneutrinoVevs, double snuSq, double v1, double v2)
Definition: rpvsoft.cpp:719
double calculateMu(const DoubleVector &sneutrinoVevs, int sgnMu, double v1, double v2)
Definition: rpvsoft.cpp:664
void drbarRpv(ostream &out)
Does the RPV coupling SLHA1 outputs.
Definition: rpvsoft.cpp:1431
void setNeutrinoMasses(DoubleVector &v)
Set neutrino masses.
Definition: rpvsoft.h:103
void rpvyTildes(DoubleMatrix &ye, DoubleMatrix &yd, Tensor &letilde, Tensor &ldtilde, Tensor &lutilde) const
Definition: rpvsoft.cpp:535
void isawigInterface764(char herwigInputFile[80], char isajetOutputFile[80], char softOutputFile[80], double eps=0.) const
Definition: rpvsoft.cpp:866
void rpvSugraBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
universal mSUGRA boundary conditions for RPV
Definition: rpvsoft.cpp:1534
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
Contains all supersymmetric RPVMSSM parameters.
const DoubleMatrix & displayNeutralMixing() const
Returns the full neutral mixing matrix.
Definition: rpvsoft.h:89
RpvSoftsusy beta2() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:291
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
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:119
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
virtual void rpvSet(const DoubleVector &parameters)
Definition: rpvsoft.cpp:118
const RpvSoftsusy & operator=(const RpvSoftsusy &)
All data in object set equal to another one.
Definition: rpvsoft.cpp:15
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:72
void neutralinos(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:793
void setThresholds(int t)
Definition: rge.h:40
DoubleMatrix chargedLeptons(double vev)
Calculates charged lepton-chargino mass matrix including sneutrino VEVs.
Definition: rpvsoft.cpp:1105
const DoubleMatrix & displayUch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:92
double neutrinoSum(const RpvSoftsusy &r)
Sums up neutrino masses valid for cosmological bound.
Definition: rpvsoft.cpp:774
void rpvAnomalousDeriv(DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gUU, DoubleMatrix &gDD, double &gH1H1, double &gH2H2, DoubleVector &gH1L) const
Definition: rpvsoft.cpp:228
void setUch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:107
DoubleVector beta() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:191
void rpvDisplay(DoubleVector &parameters) const
Definition: rpvsoft.cpp:59
int displayThresholds() const
Return level of threshold approximation.
Definition: rge.h:45
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
Real valued R-Parity violating MSSM object: use for UDD couplings.
Definition: rpvsoft.h:32
Three-index tensor for containing information on RPV couplings.
Definition: tensor.h:27
void setNumRpcBcs(int pos)
Sets number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:99
void set(const DoubleVector &v)
Sets all RGE parameters from elements of v.
Definition: rpvsoft.cpp:184
Contains RPV MSSM soft SUSY breaking parameters.
Definition: rpvsusypars.h:120
DoubleMatrix neutralinoMassMatrix() const
Returns the 7 by 7 general RPV neutralino mass matrix.
Definition: rpvsoft.cpp:801
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
void setRpvSoftsusy(const RpvSoftsusy &s)
Sets whole object equal to another
Definition: rpvsoft.h:70
void setMu(double e)
Sets renormalisation scale to e.
Definition: rge.h:59
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
void check(const DoubleVector &sneutrinoVevs) const
Checks to what extent REWSB conditions are satisfied.
Definition: rpvsoft.cpp:261
int displayLoops() const
Return number of loops.
Definition: rge.h:43
const DoubleVector & displaySneutrinoVevs() const
Returns the vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:85
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:83
Default constructor fills object with zeroes.
Definition: rpvsoft.h:252
const DoubleVector display() const
Displays all RGE parameters in a double vector.
Definition: rpvsoft.cpp:47
double displayMu() const
Return renomalisation scale.
Definition: rge.h:67
Contains RPV MSSM supersymmetric parameters.
Definition: rpvsusypars.h:26
void outputNonZeroInputs(ostream &out)
Definition: rpvsoft.cpp:1378
virtual void sparticleThresholdCorrections(double tb)
Definition: rpvsoft.cpp:953
int displayNumRpcBcs() const
Displays number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:96
void methodBoundaryCondition(const DoubleVector &v)
Definition: rpvsoft.cpp:853
void setLoops(int l)
Set number of loops used.
Definition: rge.h:37
const DoubleVector & displayNeutrinoMasses() const
Returns the neutrino masses.
Definition: rpvsoft.h:87
void rotateAwayVevs(DoubleVector &snVevs)
Definition: rpvsoft.cpp:1585
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
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
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
virtual void rewsb(int sgnMu, double mt, const DoubleVector &pars, double muOld=-6.66e66, double eps=0.)
Definition: rpvsoft.cpp:562