SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
rpvneut.h
Go to the documentation of this file.
1 
13 #ifndef RPVNEUT_H
14 #define RPVNEUT_H
15 
16 #include <iostream>
17 #include <math.h>
18 #include <cstring>
19 #include <sstream>
20 #include <fstream>
21 #include <vector>
22 #include "def.h"
23 #include "softsusy.h"
24 #include "linalg.h"
25 #include "rpvsusypars.h"
26 #include "lowe.h"
27 #include "rpvsoft.h"
28 #include "numerics.h"
29 
30 namespace softsusy {
31 
33 class RpvNeutrino : public RpvSoftsusy {
35  DoubleVector physNuMasses;
37  DoubleMatrix uPmns;
39  DoubleMatrix physNeutMix;
43  bool invertedOutput;
46  DoubleVector CPEmasses, CPOmasses;
49  DoubleMatrix CPEscalars, CPOscalars;
52  DoubleMatrix CPEscalarMixing, CPOscalarMixing;
53 public:
55  RpvNeutrino();
57  RpvNeutrino(const RpvNeutrino &);
59  const RpvNeutrino & operator = (const RpvNeutrino &);
60 
62  inline const DoubleVector & displayPhysNuMasses() const {
63  return physNuMasses;
64  }
65  inline const DoubleMatrix & displayUpmns() const { return uPmns; }
66  inline const DoubleMatrix & displayPhysNeutMix() const {
67  return physNeutMix; }
68  inline bool displayInvertedOutput() const { return invertedOutput; }
69  inline const DoubleVector & displayCPEMasses() const { return CPEmasses; }
70  inline const DoubleVector & displayCPOMasses() const { return CPOmasses; }
71  inline const DoubleMatrix & displayCPEMassSq() const { return CPEscalars; }
72  inline const DoubleMatrix & displayCPOMassSq() const { return CPOscalars; }
73  inline const DoubleMatrix & displayCPEMix() const { return CPEscalarMixing; }
74  inline const DoubleMatrix & displayCPOMix() const { return CPOscalarMixing; }
75 
76  inline void setInvertedOutput() { invertedOutput = true; }
77  inline void setNormalOutput() { invertedOutput = false; }
78  inline void setCPEMasses(const DoubleVector & a) { CPEmasses = a; }
79  inline void setCPOMasses(const DoubleVector & a) { CPOmasses = a; }
80  inline void setCPEMassSq(const DoubleMatrix & a) { CPEscalars = a; }
81  inline void setCPOMassSq(const DoubleMatrix & a) { CPOscalars = a; }
82  inline void setCPEMix(const DoubleMatrix & a) { CPEscalarMixing = a; }
83  inline void setCPOMix(const DoubleMatrix & a) { CPOscalarMixing = a; }
84  inline void setUpmns(const DoubleMatrix & a) { uPmns = a; }
85 
87  DoubleVector calculateSneutrinoVevs(const DoubleVector & sneutrinoVevs,
88  double tol, double snuSq, double v1,
89  double v2);
90 
106  DoubleVector calculateSneutrinoTadpoles(double sinthDRbar);
107  virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar);
108  virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar);
109 
112  void calculateLNVNeutralScalarMassMatrix(double sinthDRbar);
113 
117  DoubleMatrix calculateLNVSleptonMassMatrix(double sinthDRbar);
118 
121 
123  DoubleMatrix calculateLNVUpSquarkMassMatrix(double sinthDRbar);
124 
128 
130  void neutrinoData();
131 
138  void AnalyticDiagonalise(DoubleMatrix & Mass, DoubleMatrix & MassMix,
139  DoubleMatrix & MassMix0, DoubleMatrix & MassMix1,
140  DoubleMatrix & MassMix2);
141  void Positivise(DoubleMatrix & A);
145  void FermionMassSym(DoubleMatrix & MM, ComplexMatrix & Z,
146  DoubleVector & MassVector,
147  DoubleVector & PositiveMassVector,
148  DoubleVector & SquaredVector, DoubleMatrix & mix);
153  ComplexMatrix & P, DoubleVector & MassVector,
154  DoubleVector & PositiveMassVector,
155  DoubleVector & SquaredVector, DoubleMatrix & mixM,
156  DoubleMatrix & mixP);
160  void ScalarMass(DoubleMatrix & MM, ComplexMatrix & Z,
161  DoubleVector & MassVector,
162  DoubleVector & PositiveMassVector,
163  DoubleVector & SquaredVector, DoubleMatrix & mix);
164 
172  void neutrino(DoubleVector & neutrino, DoubleMatrix & mixMnu,
173  DoubleMatrix & mNeutrino);
174 
180  void sparticleThresholdCorrections(double tb, const DoubleVector & pars);
181  virtual void physical(int accuracy);
182  // virtual void rpvSet(const DoubleVector & parameters) { RpvSoftsusy::rpvSet(parameters); };
183 
196  virtual void lesHouchesAccordOutput(ostream & out, const char model[],
197  const DoubleVector & pars,
198  int sgnMu, double tanb, double qMax,
199  int numPoints,
200  bool ewsbBCscale);
202  void spinfoSLHA(ostream & out);
204  void headerSLHA(ostream & out);
206  void modselSLHA(ostream & out, const char model[]);
208  void massSLHA(ostream & out);
210  void inomixingSLHA(ostream & out);
212  void rvhmixSLHA(ostream & out);
214  void rvamixSLHA(ostream & out);
216  virtual void selmixSLHA(ostream & out);
218  virtual void snumixSLHA(ostream & out);
220  virtual void hmixSLHA(ostream & out);
222  virtual void higgsMSLHA(ostream & out);
224  virtual void sleptonsSLHA(ostream & out);
225 };
226 
228  : RpvSoftsusy(), physNuMasses(3), uPmns(3, 3), physNeutMix(7, 7),
229  invertedOutput(false), CPEmasses(5), CPOmasses(5),
230  CPEscalars(5, 5), CPOscalars(5, 5),
231  CPEscalarMixing(5, 5), CPOscalarMixing(5, 5) {};
232 
235  physNuMasses(s.displayPhysNuMasses()),
236  uPmns(s.displayUpmns()),
237  physNeutMix(s.displayPhysNeutMix()),
238  invertedOutput(s.displayInvertedOutput()),
239  CPEmasses(s.displayCPEMasses()), CPOmasses(s.displayCPOMasses()),
240  CPEscalars(s.displayCPEMassSq()), CPOscalars(s.displayCPOMassSq()),
241  CPEscalarMixing(s.displayCPEMix()), CPOscalarMixing(s.displayCPOMix())
242 {};
243 
245 ostream & operator <<(ostream &left, const RpvNeutrino & r);
246 
247 } // namespace softsusy
248 
249 #endif
global variable declaration
Definition: def.cpp:13
void neutrinoData()
returns neutrino mixing angles and sets mass eigenstates to one loop.
Definition: rpvneut.cpp:1307
DoubleVector calculateSneutrinoVevs(const DoubleVector &sneutrinoVevs, double tol, double snuSq, double v1, double v2)
replaces tree-level routine in rpvsoft.cpp - now includes 1-loop tadpoles
Definition: rpvneut.cpp:32
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: decays.h:33
const RpvSoftsusy & displayRpvSoftsusy() const
Returns object as a const.
Definition: rpvsoft.h:69
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
void FermionMassAsym(DoubleMatrix &MM, ComplexMatrix &M, ComplexMatrix &P, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mixM, DoubleMatrix &mixP)
Definition: rpvneut.cpp:1447
DoubleMatrix calculateLNVUpSquarkMassMatrix(double sinthDRbar)
up squark mass matrix - order: q1_i, u_j
Definition: rpvneut.cpp:1233
switches (options) and parameters such as default fermion masses, required accuracy etc ...
void sparticleThresholdCorrections(double tb, const DoubleVector &pars)
Definition: rpvneut.cpp:1345
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
const RpvNeutrino & operator=(const RpvNeutrino &)
All data in object set equal to another one.
Definition: rpvneut.cpp:12
void spinfoSLHA(ostream &out)
SPINFO block of SLHA output.
Definition: rpvneut.cpp:2781
void ScalarMass(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1487
void FermionMassSym(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1425
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
DoubleVector calculateSneutrinoTadpoles(double sinthDRbar)
Definition: rpvneut.cpp:64
virtual void higgsMSLHA(ostream &out)
higgs part of mass block of SLHA
Definition: rpvneut.cpp:3132
R-Parity violating MSSM object including real params/masses. Use RpvNeutrino for lepton-number violat...
Real valued R-Parity violating MSSM object: use for UDD couplings.
Definition: rpvsoft.h:33
virtual void sleptonsSLHA(ostream &out)
slepton part of mass block output of SLHA2
Definition: rpvneut.cpp:3143
numerical routines - differential equation solver, differentiator and function minimiser for instance...
Contains all supersymmetric RPVMSSM parameters.
virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:751
DoubleMatrix calculateLNVDownSquarkMassMatrix(double sinthDRbar)
down squark mass matrix - order: q2_i, d_j
Definition: rpvneut.cpp:1162
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:605
void headerSLHA(ostream &out)
Header part of SLHA output.
Definition: rpvneut.cpp:2758
void neutrino(DoubleVector &neutrino, DoubleMatrix &mixMnu, DoubleMatrix &mNeutrino)
Definition: rpvneut.cpp:1595
void massSLHA(ostream &out)
mass block of SLHA2 output
Definition: rpvneut.cpp:2765
void AnalyticDiagonalise(DoubleMatrix &Mass, DoubleMatrix &MassMix, DoubleMatrix &MassMix0, DoubleMatrix &MassMix1, DoubleMatrix &MassMix2)
Definition: rpvneut.cpp:1532
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
virtual void selmixSLHA(ostream &out)
charged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2958
Matrix from 1..rows, 1..cols of double values.
Definition: linalg.h:211
void rvamixSLHA(ostream &out)
CP-odd higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2920
DoubleMatrix calculateLNVSleptonMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:1057
virtual void lesHouchesAccordOutput(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
Definition: rpvneut.cpp:3038
DoubleMatrix neutrinoSeesaw()
Definition: rpvneut.cpp:1282
RpvNeutrino()
Default constructor fills object with zeroes.
Definition: rpvneut.h:227
void rvhmixSLHA(ostream &out)
CP-even higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2902
void calculateLNVNeutralScalarMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:996
virtual void hmixSLHA(ostream &out)
higgs part of DRbar couplings
Definition: rpvneut.cpp:2793
virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:474
void modselSLHA(ostream &out, const char model[])
modsel block of SLHA output
Definition: rpvneut.cpp:2753
const DoubleVector & displayPhysNuMasses() const
Display functions to read data.
Definition: rpvneut.h:62
void inomixingSLHA(ostream &out)
neutralino/chargino mixing for RPV
Definition: rpvneut.cpp:3004
virtual void physical(int accuracy)
Definition: rpvneut.cpp:2721
Updates an RPV object with loop-corrected neutrino data: use for L violation.
Definition: rpvneut.h:33
virtual void snumixSLHA(ostream &out)
uncharged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2953