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()),
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()) {
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
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:214
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
Three-index tensor for containing information on RPV couplings.
Definition: tensor.h:27
void setLoops(int l)
Set number of loops used.
Definition: rge.h:37
int displayLoops() const
Return number of loops.
Definition: rge.h:43
void setThresholds(int t)
Definition: rge.h:40
int displayThresholds() const
Return level of threshold approximation.
Definition: rge.h:45
This object is intended to be a flavoursome version of MssmSoftsusy.
Definition: flavoursoft.h:83
Contains all supersymmetric MSSM parameters, incorporating R_p MSSM.
Definition: softsusy.h:74
void setPars(int i)
Set number of parameters in RGE object.
Definition: rge.h:64
double displayMu() const
Return renomalisation scale.
Definition: rge.h:67
void setMu(double e)
Sets renormalisation scale to e.
Definition: rge.h:59
Contains RPV MSSM soft SUSY breaking parameters.
Definition: rpvsusypars.h:120
Real valued R-Parity violating MSSM object: use for UDD couplings.
Definition: rpvsoft.h:33
void setRpvSoftsusy(const RpvSoftsusy &s)
Sets whole object equal to another
Definition: rpvsoft.h:70
const RpvSoftsusy & operator=(const RpvSoftsusy &)
All data in object set equal to another one.
Definition: rpvsoft.cpp:15
RpvSoftsusy()
Default constructor fills object with zeroes.
Definition: rpvsoft.h:252
void rpvAnomalousDeriv(DoubleMatrix &gEE, DoubleMatrix &gLL, DoubleMatrix &gQQ, DoubleMatrix &gUU, DoubleMatrix &gDD, double &gH1H1, double &gH2H2, DoubleVector &gH1L) const
Definition: rpvsoft.cpp:228
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
DoubleVector beta() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:191
double calculateM3sq(const DoubleVector &sneutrinoVevs, double snuSq, double v1, double v2)
Definition: rpvsoft.cpp:719
void standardSugra(double m0, double m12, double a0)
Definition: rpvsoft.cpp:764
const RpvSoftsusy & displayRpvSoftsusy() const
Returns object as a const.
Definition: rpvsoft.h:68
void drbarRpv(ostream &out)
Does the RPV coupling SLHA1 outputs.
Definition: rpvsoft.cpp:1431
virtual void rpvSet(const DoubleVector &parameters)
Definition: rpvsoft.cpp:118
const DoubleVector & displaySneutrinoVevs() const
Returns the vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:85
virtual void higgs(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:1138
void neutralinos(int accuracy, double piwwtMS, double pizztMS)
Definition: rpvsoft.cpp:793
const DoubleVector & displayNeutrinoMasses() const
Returns the neutrino masses.
Definition: rpvsoft.h:87
void check(const DoubleVector &sneutrinoVevs) const
Checks to what extent REWSB conditions are satisfied.
Definition: rpvsoft.cpp:261
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 isawigInterface764(char herwigInputFile[80], char isajetOutputFile[80], char softOutputFile[80], double eps=0.) const
Definition: rpvsoft.cpp:866
const DoubleVector display() const
Displays all RGE parameters in a double vector.
Definition: rpvsoft.cpp:47
void set(const DoubleVector &v)
Sets all RGE parameters from elements of v.
Definition: rpvsoft.cpp:184
void setVch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:109
void outputNonZeroInputs(ostream &out)
Definition: rpvsoft.cpp:1378
RpvSoftsusy beta2() const
Beta functions of RPV MSSM.
Definition: rpvsoft.cpp:291
const DoubleMatrix & displayVch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:94
void setNeutrinoMasses(DoubleVector &v)
Set neutrino masses.
Definition: rpvsoft.h:103
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
DoubleMatrix chargedLeptons(double vev)
Calculates charged lepton-chargino mass matrix including sneutrino VEVs.
Definition: rpvsoft.cpp:1105
void setNeutralMixing(DoubleMatrix &v)
Set neutral fermion mixing matrix.
Definition: rpvsoft.h:105
virtual void rewsb(int sgnMu, double mt, const DoubleVector &pars, double muOld=-6.66e66, double eps=0.)
Definition: rpvsoft.cpp:562
void rpvyTildes(DoubleMatrix &ye, DoubleMatrix &yd, Tensor &letilde, Tensor &ldtilde, Tensor &lutilde) const
Definition: rpvsoft.cpp:535
DoubleMatrix neutralinoMassMatrix() const
Returns the 7 by 7 general RPV neutralino mass matrix.
Definition: rpvsoft.cpp:801
const DoubleMatrix & displayUch() const
5 x 5 charged fermion mixing
Definition: rpvsoft.h:92
void setNumRpcBcs(int pos)
Sets number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:99
void setSneutrinoVevs(DoubleVector &v)
Set vacuum expectation values of sneutrinos.
Definition: rpvsoft.h:101
void methodBoundaryCondition(const DoubleVector &v)
Definition: rpvsoft.cpp:853
virtual void sparticleThresholdCorrections(double tb)
Definition: rpvsoft.cpp:953
void rpvDisplay(DoubleVector &parameters) const
Definition: rpvsoft.cpp:59
void rotateAwayVevs(DoubleVector &snVevs)
Definition: rpvsoft.cpp:1585
void iterateChargedLeptons(double vev, DoubleMatrix &yeOld, double tol, int maxTries, int &err, double mtau)
Definition: rpvsoft.cpp:1033
double calculateMu(const DoubleVector &sneutrinoVevs, int sgnMu, double v1, double v2)
Definition: rpvsoft.cpp:664
void setUch(DoubleMatrix &v)
Set charged fermion mixing matrix.
Definition: rpvsoft.h:107
const DoubleMatrix & displayNeutralMixing() const
Returns the full neutral mixing matrix.
Definition: rpvsoft.h:89
int displayNumRpcBcs() const
Displays number of parameters in R-parity conserving BCs.
Definition: rpvsoft.h:96
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 RPV MSSM supersymmetric parameters.
Definition: rpvsusypars.h:26
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
global variable declaration
Definition: def.cpp:13
void rpvSugraBcs(MssmSoftsusy &m, const DoubleVector &inputParameters)
universal mSUGRA boundary conditions for RPV
Definition: rpvsoft.cpp:1534
double neutrinoSum(const RpvSoftsusy &r)
Sums up neutrino masses valid for cosmological bound.
Definition: rpvsoft.cpp:774
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
double a0(double m, double q)
inlined PV functions: real part
Definition: numerics.h:120
Contains all supersymmetric RPVMSSM parameters.
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38