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
void ScalarMass(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1491
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
global variable declaration
Definition: def.cpp:13
void spinfoSLHA(ostream &out)
SPINFO block of SLHA output.
Definition: rpvneut.cpp:2786
virtual void physical(int accuracy)
Definition: rpvneut.cpp:2725
virtual void snumixSLHA(ostream &out)
uncharged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2958
void sparticleThresholdCorrections(double tb, const DoubleVector &pars)
Definition: rpvneut.cpp:1349
Updates an RPV object with loop-corrected neutrino data: use for L violation.
Definition: rpvneut.h:32
Header file for RP conserving MSSM object including all (real) soft SUSY breaking parameters and (rea...
Contains all supersymmetric RPVMSSM parameters.
virtual double doCalcTadpole2oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:755
DoubleMatrix calculateLNVUpSquarkMassMatrix(double sinthDRbar)
up squark mass matrix - order: q1_i, u_j
Definition: rpvneut.cpp:1237
DoubleVector is of variable length, and contains double precision.
Definition: linalg.h:35
void FermionMassSym(DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix)
Definition: rpvneut.cpp:1429
void neutrino(DoubleVector &neutrino, DoubleMatrix &mixMnu, DoubleMatrix &mNeutrino)
Definition: rpvneut.cpp:1599
const RpvNeutrino & operator=(const RpvNeutrino &)
All data in object set equal to another one.
Definition: rpvneut.cpp:16
virtual void higgsMSLHA(ostream &out)
higgs part of mass block of SLHA
Definition: rpvneut.cpp:3137
void massSLHA(ostream &out)
mass block of SLHA2 output
Definition: rpvneut.cpp:2770
DoubleVector calculateSneutrinoTadpoles(double sinthDRbar)
Definition: rpvneut.cpp:68
ostream & operator<<(ostream &left, const FlavourMssmSoftsusy &m)
Formatted output.
Definition: flavoursoft.cpp:217
virtual void sleptonsSLHA(ostream &out)
slepton part of mass block output of SLHA2
Definition: rpvneut.cpp:3148
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
void AnalyticDiagonalise(DoubleMatrix &Mass, DoubleMatrix &MassMix, DoubleMatrix &MassMix0, DoubleMatrix &MassMix1, DoubleMatrix &MassMix2)
Definition: rpvneut.cpp:1536
matrix of complex double values dimensions (rows x cols)
Definition: linalg.h:608
void headerSLHA(ostream &out)
Header part of SLHA output.
Definition: rpvneut.cpp:2762
DoubleMatrix calculateLNVDownSquarkMassMatrix(double sinthDRbar)
down squark mass matrix - order: q2_i, d_j
Definition: rpvneut.cpp:1166
DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies als...
const DoubleVector & displayPhysNuMasses() const
Display functions to read data.
Definition: rpvneut.h:61
QedQcd object contains Standard Model quark and lepton masses. It integrates them using 3 loop qcd x ...
void calculateLNVNeutralScalarMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:1000
virtual void selmixSLHA(ostream &out)
charged slepton-higgs mixing for RPV SLHA2
Definition: rpvneut.cpp:2963
virtual void hmixSLHA(ostream &out)
higgs part of DRbar couplings
Definition: rpvneut.cpp:2798
R-Parity violating MSSM object including real params/masses. Use RpvNeutrino for lepton-number violat...
void rvamixSLHA(ostream &out)
CP-odd higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2925
void modselSLHA(ostream &out, const char model[])
modsel block of SLHA output
Definition: rpvneut.cpp:2757
DoubleMatrix neutrinoSeesaw()
Definition: rpvneut.cpp:1286
numerical routines - differential equation solver, differentiator and function minimiser for instance
void rvhmixSLHA(ostream &out)
CP-even higgs mixing for RPV SLHA2.
Definition: rpvneut.cpp:2907
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
DoubleMatrix calculateLNVSleptonMassMatrix(double sinthDRbar)
Definition: rpvneut.cpp:1061
virtual double doCalcTadpole1oneLoop(double mt, double sinthDRbar)
Does the calculation of one-loop pieces of .
Definition: rpvneut.cpp:478
void neutrinoData()
returns neutrino mixing angles and sets mass eigenstates to one loop.
Definition: rpvneut.cpp:1311
void inomixingSLHA(ostream &out)
neutralino/chargino mixing for RPV
Definition: rpvneut.cpp:3009
RpvNeutrino()
Default constructor fills object with zeroes.
Definition: rpvneut.h:226
const double accuracy
Approximate accuracy with which 3 body decays are calculated.
Definition: threeBodyDecays.h:38
void FermionMassAsym(DoubleMatrix &MM, ComplexMatrix &M, ComplexMatrix &P, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mixM, DoubleMatrix &mixP)
Definition: rpvneut.cpp:1451