SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
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 "flavoursoft.h"
22 #include "softsusy.h"
23 #include "linalg.h"
24 #include "rpvsusypars.h"
25 
26 namespace softsusy {
27 
29 static const int numRpvSoftPars = 99 + numSoftParsMssm;
30 
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 &);
57 
59  const DoubleVector display() const;
61  void set(const DoubleVector & v);
63  DoubleVector beta() const;
65  RpvSoftsusy beta2() const;
66 
68  inline const RpvSoftsusy & displayRpvSoftsusy() const { return *this; }
70  void setRpvSoftsusy(const RpvSoftsusy & s) { *this = s; };
71 
76  void rpvDisplay(DoubleVector & parameters) const;
77 
82  virtual void rpvSet(const DoubleVector & parameters);
83 
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; };
97 
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;
118 
121  void rpvAnomalousDeriv(DoubleMatrix & gEE, DoubleMatrix & gLL,
122  DoubleMatrix & gQQ, DoubleMatrix & gUU,
123  DoubleMatrix & gDD,
124  double & gH1H1, double & gH2H2,
125  DoubleVector & gH1L) const;
126 
130  void rpvyTildes(DoubleMatrix & ye, DoubleMatrix & yd, Tensor & letilde,
131  Tensor & ldtilde, Tensor & lutilde) const;
132 
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);
171 
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;
182 
186  void standardSugra(double m0, double m12, double a0);
187 
190 
193  void neutralinos(int accuracy, double piwwtMS, double pizztMS);
197  void methodBoundaryCondition(const DoubleVector & v);
201  virtual void sparticleThresholdCorrections(double tb);
202 
205  DoubleMatrix chargedLeptons(double vev);
213  void iterateChargedLeptons(double vev, DoubleMatrix & yeOld, double tol,
214  int maxTries, int & err, double mtau);
215 
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 };
245 
247 ostream & operator <<(ostream &left, const RpvSoftsusy & r);
248 
250 double neutrinoSum(const RpvSoftsusy & r);
251 
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 }
260 
262  : FlavourMssmSoftsusy(s.displayFlavourSoftsusy()),
265  nuMasses(s.displayNeutrinoMasses()),
266  neutralFermMixing(s.displayNeutralMixing()),
267  Uch(s.displayUch()),
268  Vch(s.displayVch()), numRpcBcs(s.displayNumRpcBcs()) {
269 
270  setPars(numRpvSoftPars);
271  setMu(s.displayMu());
272  setLoops(s.displayLoops());
274 }
275 
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);
282 
283 } // namespace softsusy
284 
285 #endif
void setThresholds(int t)
Definition: rge.h:40
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:105
Two loop corrections to the bottom mass. This file has been generated at Fri 7 Apr 2017 21:00:53 with...
const DoubleVector & displayNeutrinoMasses() const
Returns the neutrino masses.
Definition: rpvsoft.h:87
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:68
void setLoops(int l)
Set number of loops used.
Definition: rge.h:37
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:85
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
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:83
void setNeutrinoMasses(DoubleVector &v)
Set neutrino masses.
Definition: rpvsoft.h:103
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:107
void setSneutrinoVevs(DoubleVector &v)
Set vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:101
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:109
int displayThresholds() const
Return level of threshold approximation.
Definition: rge.h:45
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:32
void setPars(int i)
Set number of parameters in RGE object.
Definition: rge.h:64
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:99
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:67
RpvSoftsusy()
Default constructor fills object with zeroes.
Definition: rpvsoft.h:252
int displayLoops() const
Return number of loops.
Definition: rge.h:43
const DoubleMatrix & displayUch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:92
const DoubleMatrix & displayNeutralMixing() const
Returns the full neutral mixing matrix.
Definition: rpvsoft.h:89
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:70
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:77
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:27
const DoubleMatrix & displayVch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:94
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:59
void methodBoundaryCondition(const DoubleVector &v)
Definition: rpvsoft.cpp:853
virtual void higgs(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:1138
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
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:105
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:96