softsusy is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.1
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 "softsusy.h"
23 #include "linalg.h"
24 #include "rpvsusypars.h"
25 #include "lowe.h"
26 #include "rpvsoft.h"
27 #include "numerics.h"
28 
29 namespace softsusy {
30 
32 class RpvNeutrino : public RpvSoftsusy {
34  DoubleVector physNuMasses;
36  DoubleMatrix uPmns;
38  DoubleMatrix physNeutMix;
42  bool invertedOutput;
45  DoubleVector CPEmasses, CPOmasses;
48  DoubleMatrix CPEscalars, CPOscalars;
51  DoubleMatrix CPEscalarMixing, CPOscalarMixing;
52 public:
54  RpvNeutrino();
56  RpvNeutrino(const RpvNeutrino &);
58  const RpvNeutrino & operator = (const RpvNeutrino &);
59 
61  inline const DoubleVector & displayPhysNuMasses() const {
62  return physNuMasses;
63  }
64  inline const DoubleMatrix & displayUpmns() const { return uPmns; }
65  inline const DoubleMatrix & displayPhysNeutMix() const {
66  return physNeutMix; }
67  inline bool displayInvertedOutput() const { return invertedOutput; }
68  inline const DoubleVector & displayCPEMasses() const { return CPEmasses; }
69  inline const DoubleVector & displayCPOMasses() const { return CPOmasses; }
70  inline const DoubleMatrix & displayCPEMassSq() const { return CPEscalars; }
71  inline const DoubleMatrix & displayCPOMassSq() const { return CPOscalars; }
72  inline const DoubleMatrix & displayCPEMix() const { return CPEscalarMixing; }
73  inline const DoubleMatrix & displayCPOMix() const { return CPOscalarMixing; }
74 
75  inline void setInvertedOutput() { invertedOutput = true; }
76  inline void setNormalOutput() { invertedOutput = false; }
77  inline void setCPEMasses(const DoubleVector & a) { CPEmasses = a; }
78  inline void setCPOMasses(const DoubleVector & a) { CPOmasses = a; }
79  inline void setCPEMassSq(const DoubleMatrix & a) { CPEscalars = a; }
80  inline void setCPOMassSq(const DoubleMatrix & a) { CPOscalars = a; }
81  inline void setCPEMix(const DoubleMatrix & a) { CPEscalarMixing = a; }
82  inline void setCPOMix(const DoubleMatrix & a) { CPOscalarMixing = a; }
83  inline void setUpmns(const DoubleMatrix & a) { uPmns = a; }
84 
86  DoubleVector calculateSneutrinoVevs(const DoubleVector & sneutrinoVevs,
87  double tol, double snuSq, double v1,
88  double v2);
89 
105  DoubleVector calculateSneutrinoTadpoles(double sinthDRbar);
106  virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar);
107  virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar);
108 
111  void calculateLNVNeutralScalarMassMatrix(double sinthDRbar);
112 
116  DoubleMatrix calculateLNVSleptonMassMatrix(double sinthDRbar);
117 
120 
122  DoubleMatrix calculateLNVUpSquarkMassMatrix(double sinthDRbar);
123 
127 
129  void neutrinoData();
130 
137  void AnalyticDiagonalise(DoubleMatrix & Mass, DoubleMatrix & MassMix,
138  DoubleMatrix & MassMix0, DoubleMatrix & MassMix1,
139  DoubleMatrix & MassMix2);
140  void Positivise(DoubleMatrix & A);
144  void FermionMassSym(DoubleMatrix & MM, ComplexMatrix & Z,
145  DoubleVector & MassVector,
146  DoubleVector & PositiveMassVector,
147  DoubleVector & SquaredVector, DoubleMatrix & mix);
152  ComplexMatrix & P, DoubleVector & MassVector,
153  DoubleVector & PositiveMassVector,
154  DoubleVector & SquaredVector, DoubleMatrix & mixM,
155  DoubleMatrix & mixP);
159  void ScalarMass(DoubleMatrix & MM, ComplexMatrix & Z,
160  DoubleVector & MassVector,
161  DoubleVector & PositiveMassVector,
162  DoubleVector & SquaredVector, DoubleMatrix & mix);
163 
171  void neutrino(DoubleVector & neutrino, DoubleMatrix & mixMnu,
172  DoubleMatrix & mNeutrino);
173 
179  void sparticleThresholdCorrections(double tb, const DoubleVector & pars);
180  virtual void physical(int accuracy);
181  // virtual void rpvSet(const DoubleVector & parameters) { RpvSoftsusy::rpvSet(parameters); };
182 
195  virtual void lesHouchesAccordOutput(ostream & out, const char model[],
196  const DoubleVector & pars,
197  int sgnMu, double tanb, double qMax,
198  int numPoints,
199  bool ewsbBCscale);
201  void spinfoSLHA(ostream & out);
203  void headerSLHA(ostream & out);
205  void modselSLHA(ostream & out, const char model[]);
207  void massSLHA(ostream & out);
209  void inomixingSLHA(ostream & out);
211  void rvhmixSLHA(ostream & out);
213  void rvamixSLHA(ostream & out);
215  virtual void selmixSLHA(ostream & out);
217  virtual void snumixSLHA(ostream & out);
219  virtual void hmixSLHA(ostream & out);
221  virtual void higgsMSLHA(ostream & out);
223  virtual void sleptonsSLHA(ostream & out);
224 };
225 
227  : RpvSoftsusy(), physNuMasses(3), uPmns(3, 3), physNeutMix(7, 7),
228  invertedOutput(false), CPEmasses(5), CPOmasses(5),
229  CPEscalars(5, 5), CPOscalars(5, 5),
230  CPEscalarMixing(5, 5), CPOscalarMixing(5, 5) {};
231 
233  : RpvSoftsusy(s.displayRpvSoftsusy()),
234  physNuMasses(s.displayPhysNuMasses()),
235  uPmns(s.displayUpmns()),
236  physNeutMix(s.displayPhysNeutMix()),
237  invertedOutput(s.displayInvertedOutput()),
238  CPEmasses(s.displayCPEMasses()), CPOmasses(s.displayCPOMasses()),
239  CPEscalars(s.displayCPEMassSq()), CPOscalars(s.displayCPOMassSq()),
240  CPEscalarMixing(s.displayCPEMix()), CPOscalarMixing(s.displayCPOMix())
241 {};
242 
244 ostream & operator <<(ostream &left, const RpvNeutrino & r);
245 
246 } // namespace softsusy
247 
248 #endif
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
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
Updates an RPV object with loop-corrected neutrino data: use for L violation.
Definition: rpvneut.h:32
const DoubleVector & displayPhysNuMasses() const
Display functions to read data.
Definition: rpvneut.h:61
const RpvNeutrino & operator=(const RpvNeutrino &)
All data in object set equal to another one.
Definition: rpvneut.cpp:16
void modselSLHA(ostream &out, const char model[])
modsel block of SLHA output
Definition: rpvneut.cpp:2757
void inomixingSLHA(ostream &out)
neutralino/chargino mixing for RPV
Definition: rpvneut.cpp:3009
virtual void sleptonsSLHA(ostream &out)
slepton part of mass block output of SLHA2
Definition: rpvneut.cpp:3148
DoubleVector calculateSneutrinoTadpoles(double sinthDRbar)
Definition: rpvneut.cpp:68
void ScalarMass(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1491
void neutrinoData()
returns neutrino mixing angles and sets mass eigenstates to one loop.
Definition: rpvneut.cpp:1311
DoubleMatrix calculateLNVSleptonMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:1061
void headerSLHA(ostream &out)
Header part of SLHA output.
Definition: rpvneut.cpp:2762
void neutrino(DoubleVector &neutrino, DoubleMatrix &mixMnu, DoubleMatrix &mNeutrino)
Definition: rpvneut.cpp:1599
DoubleMatrix calculateLNVDownSquarkMassMatrix(double sinthDRbar)
down squark mass matrix - order: q2_i, d_j
Definition: rpvneut.cpp:1166
void spinfoSLHA(ostream &out)
SPINFO block of SLHA output.
Definition: rpvneut.cpp:2786
virtual void physical(int accuracy)
Definition: rpvneut.cpp:2725
DoubleMatrix calculateLNVUpSquarkMassMatrix(double sinthDRbar)
up squark mass matrix - order: q1_i, u_j
Definition: rpvneut.cpp:1237
void rvhmixSLHA(ostream &out)
CP-even higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2907
RpvNeutrino()
Default constructor fills object with zeroes.
Definition: rpvneut.h:226
virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:478
void FermionMassAsym(DoubleMatrix &MM, ComplexMatrix &M, ComplexMatrix &P, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mixM, DoubleMatrix &mixP)
Definition: rpvneut.cpp:1451
virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:755
void sparticleThresholdCorrections(double tb, const DoubleVector &pars)
Definition: rpvneut.cpp:1349
void AnalyticDiagonalise(DoubleMatrix &Mass, DoubleMatrix &MassMix, DoubleMatrix &MassMix0, DoubleMatrix &MassMix1, DoubleMatrix &MassMix2)
Definition: rpvneut.cpp:1536
void calculateLNVNeutralScalarMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:1000
void massSLHA(ostream &out)
mass block of SLHA2 output
Definition: rpvneut.cpp:2770
virtual void hmixSLHA(ostream &out)
higgs part of DRbar couplings
Definition: rpvneut.cpp:2798
virtual void selmixSLHA(ostream &out)
charged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2963
virtual void lesHouchesAccordOutput(ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale)
Definition: rpvneut.cpp:3043
virtual void snumixSLHA(ostream &out)
uncharged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2958
void FermionMassSym(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1429
void rvamixSLHA(ostream &out)
CP-odd higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2925
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:36
DoubleMatrix neutrinoSeesaw()
Definition: rpvneut.cpp:1286
virtual void higgsMSLHA(ostream &out)
higgs part of mass block of SLHA
Definition: rpvneut.cpp:3137
Real valued R-Parity violating MSSM object: use for UDD couplings.
Definition: rpvsoft.h:33
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
global variable declaration
Definition: def.cpp:13
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
numerical routines - differential equation solver, differentiator and function minimiser for instance
R-Parity violating MSSM object including real params/masses. Use RpvNeutrino for lepton-number violat...
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