Updates an RPV object with loop-corrected neutrino data: use for L violation. More...
#include <rpvneut.h>
Public Member Functions | |
RpvNeutrino () | |
Default constructor fills object with zeroes. | |
RpvNeutrino (const RpvNeutrino &) | |
Constructor initialises object equal to another one. | |
const RpvNeutrino & | operator= (const RpvNeutrino &) |
All data in object set equal to another one. | |
const DoubleVector & | displayPhysNuMasses () const |
Display functions to read data. | |
const DoubleMatrix & | displayUpmns () const |
const DoubleMatrix & | displayPhysNeutMix () const |
const bool | displayInvertedOutput () const |
const DoubleVector & | displayCPEMasses () const |
const DoubleVector & | displayCPOMasses () const |
const DoubleMatrix & | displayCPEMassSq () const |
const DoubleMatrix & | displayCPOMassSq () const |
const DoubleMatrix & | displayCPEMix () const |
const DoubleMatrix & | displayCPOMix () const |
void | setInvertedOutput () |
void | setNormalOutput () |
void | setCPEMasses (const DoubleVector &a) |
void | setCPOMasses (const DoubleVector &a) |
void | setCPEMassSq (const DoubleMatrix &a) |
void | setCPOMassSq (const DoubleMatrix &a) |
void | setCPEMix (const DoubleMatrix &a) |
void | setCPOMix (const DoubleMatrix &a) |
void | setUpmns (const DoubleMatrix &a) |
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 | |
DoubleVector | calculateSneutrinoTadpoles (double sinthDRbar) |
double | doCalcTadpole1oneLoop (double mt, double sinthDRbar) |
Does the calculation of one-loop pieces of ![]() | |
double | doCalcTadpole2oneLoop (double mt, double sinthDRbar) |
Does the calculation of one-loop pieces of ![]() | |
void | calculateLNVNeutralScalarMassMatrix (double sinthDRbar) |
DoubleMatrix | calculateLNVSleptonMassMatrix (double sinthDRbar) |
DoubleMatrix | calculateLNVDownSquarkMassMatrix (double sinthDRbar) |
down squark mass matrix - order: q2_i, d_j | |
DoubleMatrix | calculateLNVUpSquarkMassMatrix (double sinthDRbar) |
up squark mass matrix - order: q1_i, u_j | |
DoubleMatrix | neutrinoSeesaw () |
void | neutrinoData () |
returns neutrino mixing angles and sets mass eigenstates to one loop. | |
void | AnalyticDiagonalise (DoubleMatrix &Mass, DoubleMatrix &MassMix, DoubleMatrix &MassMix0, DoubleMatrix &MassMix1, DoubleMatrix &MassMix2) |
void | Positivise (DoubleMatrix &A) |
void | FermionMassSym (DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix) |
void | FermionMassAsym (DoubleMatrix &MM, ComplexMatrix &M, ComplexMatrix &P, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mixM, DoubleMatrix &mixP) |
void | ScalarMass (DoubleMatrix &MM, ComplexMatrix &Z, DoubleVector &MassVector, DoubleVector &PositiveMassVector, DoubleVector &SquaredVector, DoubleMatrix &mix) |
void | neutrino (DoubleVector &neutrino, DoubleMatrix &mixMnu, DoubleMatrix &mNeutrino) |
void | sparticleThresholdCorrections (double tb, const DoubleVector &pars) |
virtual void | physical (int accuracy) |
virtual void | lesHouchesAccordOutput (ostream &out, const char model[], const DoubleVector &pars, int sgnMu, double tanb, double qMax, int numPoints, bool ewsbBCscale) |
void | spinfoSLHA (ostream &out) |
SPINFO block of SLHA output. | |
void | headerSLHA (ostream &out) |
Header part of SLHA output. | |
void | modselSLHA (ostream &out, const char model[]) |
modsel block of SLHA output | |
void | massSLHA (ostream &out) |
mass block of SLHA2 output | |
void | inomixingSLHA (ostream &out) |
neutralino/chargino mixing for RPV | |
void | rvhmixSLHA (ostream &out) |
CP-even higgs mixing for RPV SLHA2. | |
void | rvamixSLHA (ostream &out) |
CP-odd higgs mixing for RPV SLHA2. | |
virtual void | selmixSLHA (ostream &out) |
charged slepton-higgs mixing for RPV SLHA2 | |
virtual void | snumixSLHA (ostream &out) |
uncharged slepton-higgs mixing for RPV SLHA2 | |
virtual void | hmixSLHA (ostream &out) |
higgs part of DRbar couplings | |
virtual void | higgsMSLHA (ostream &out) |
higgs part of mass block of SLHA | |
virtual void | sleptonsSLHA (ostream &out) |
slepton part of mass block output of SLHA2 |
Updates an RPV object with loop-corrected neutrino data: use for L violation.
void RpvNeutrino::AnalyticDiagonalise | ( | DoubleMatrix & | Mass, |
DoubleMatrix & | MassMix, | ||
DoubleMatrix & | MassMix0, | ||
DoubleMatrix & | MassMix1, | ||
DoubleMatrix & | MassMix2 | ||
) |
routines defined specifically for "neutrino" below. Given a DoubleMatrix (Mass), perform analytic diagonalisation, assuming all off diagonal elements are much smaller than the difference between any diagonal entries. The resulting mixing matrices are returned used in RpvNeutrino::neutrino
Unit mixing matrix
Corrections of order (OffD/D) to the off diagonal entries
Corrections of order (OffD^2/D^2) to the diagonal entries
Off diagonal terms required to diagonalize completely to order OffD^2/D
void RpvNeutrino::calculateLNVNeutralScalarMassMatrix | ( | double | sinthDRbar | ) |
LNV neutral scalar mass matrices (CPE/CPO) in Feynman gauge (xi=1), c.f. paper Allanach Kom
< Identity matrix
lower 3x3 part (sneutrinos)
DoubleMatrix RpvNeutrino::calculateLNVSleptonMassMatrix | ( | double | sinthDRbar | ) |
charged higgs - slepton mass matrix in xi=1 (feynman) gauge order: Hu1, Hd2, tildeLi, tildeEbarj gauge can be changed in the code
xi=1 Feynman gauge for loop calculations (m_G+=m+W); xi=0 gauge - m_G+=0
DoubleVector RpvNeutrino::calculateSneutrinoTadpoles | ( | double | sinthDRbar | ) |
next 3 routines calculate snu_i,h_d^0, h_u^0 tadpoles for minimisation of one-loop scalar potential snu_i tadpoles are also used for corrections to sneutrino vevs procedure: get full LNV mass matrices from routines below, for 1. CPE/CPO scalars 2. charged higgs-sleptons 3. up- and down-type squarks 4. quarks 5. gauge bosons 6. charginos-charged leptons 7. neutralinos-neutrinos then diagonalise to obtain mass eigenvalues and mixings then set-up couplings snu_i XY (or corresponding for h_d^0, h_u^0) in format matrix(X,Y) for 1. to 7. Use mixing matrices to rotate couplings to mass eigenbasis calculate tadpoles: for scalars: Sum (rotatedCoupling* a0(massEigenvalue))
CPE/CPO scalar couplings
snu-higgs1-higg1 (down-type)
snu-higgs2-higg2 (up-type)
charged higgs-slepton mass matrix - order: Hu1, Hd2, tildeLi, tildeEbarj
slepton couplings
squark mass matrices
squark couplings
initialise
Quarks
root2 in last term?? (not in softsusy manual - I think we discussed this issue last year and agreed that it was missing in the manual)
Weak bosons
chargino-charged lepton mass matrix in basis (W-, Hd-, l-) M (W+, hu+, ebar+)
chargino couplings
neutralino-neutrino mass matrix
Swap rows and columns to the format (Bino, Wino, Hu, Hd, nui)
neutralino couplings
DoubleVector RpvNeutrino::calculateSneutrinoVevs | ( | const DoubleVector & | sneutrinoVevs, |
double | tol, | ||
double | snuSq, | ||
double | v1, | ||
double | v2 | ||
) | [virtual] |
replaces tree-level routine in rpvsoft.cpp - now includes 1-loop tadpoles
An adaption of the original rpvsoftsusy version (Input a set of values for sneutrino VEVs and it returns a more accurate set)
Identity matrix
tree level sneutrino vevs (as before)
adding the 1-loop correction
Reimplemented from RpvSoftsusy.
double RpvNeutrino::doCalcTadpole1oneLoop | ( | double | mt, |
double | sinthDRbar | ||
) | [virtual] |
Does the calculation of one-loop pieces of .
From hep-ph/9606211's appendix. It should be done at MSusy to minimize the 1-loop contributions. Only call if you've calculated drbarpars. inputs are running top/bottom masses: call at MSusy only
CPE/CPO scalar masses in order (Hu,Hd,snu_i)
neutral scalar couplings
higgs1-higgs2-higg2 (up-type)
charged higgs-slepton mass matrix - order: Hu1, Hd2, tildeLi, tildeEbarj
slepton couplings
squark mass matrices
squark couplings
if I include kk=1,2 3 and not only kk=3 as in softsusy.cpp, result changes by 0.6%. Keep this??
SM quarks
Weak bosons
chargino-charged lepton mass matrix in basis (W-, Hd-, l-) M (W+, hu+, ebar+)
chargino couplings
neutralino-neutrino mass matrix
neutralino couplings
sneutrino coupling
stop couplings
sbottom couplings
stau couplings
bottom quark and tau, ignore others - factor (10^-2)^3 down I have included the bottom pole mass in the propagators and the Yukawa for the coupling, hence BPMZ's hb is written mb * root2 / v1
third generation squarks
third generation sleptons
first two families of squarks
sleptons
Higgs
Neutralinos
Charginos
Weak bosons
Reimplemented from MssmSoftsusy.
double RpvNeutrino::doCalcTadpole2oneLoop | ( | double | mt, |
double | sinthDRbar | ||
) | [virtual] |
Does the calculation of one-loop pieces of .
From hep-ph/9311269's appendix. It should be done at MSusy to minimize the 1-loop contributions. Only call if you've calculated physpars inputs are running top/bottom masses. Call at MSusy
neutral scalar couplings
charged higgs-slepton mass matrix order: Hu1, Hd2, tildeLi, tildeEbarj
slepton couplings
squark mass matrices
squark couplings
SM quarks
Weak bosons
chargino-charged lepton mass matrix in basis (W-, Hd-, l-) M (W+,hu+,ebar+)
chargino couplings
neutralino-neutrino mass matrix
Swap rows and columns to the format (Bino,Wino, Hu, Hd, nui)
neutralino couplings
CHECKED
Stop couplings
sneutrino coupling
sbottom couplings
stau couplings
top quark, ignore others - factor (10^-2)^3 down
third generation squarks
third generation sleptons
first two families of squarks
sleptons
Higgs
Neutralinos
Weak bosons
Reimplemented from MssmSoftsusy.
void RpvNeutrino::FermionMassAsym | ( | DoubleMatrix & | MM, |
ComplexMatrix & | M, | ||
ComplexMatrix & | P, | ||
DoubleVector & | MassVector, | ||
DoubleVector & | PositiveMassVector, | ||
DoubleVector & | SquaredVector, | ||
DoubleMatrix & | mixM, | ||
DoubleMatrix & | mixP | ||
) |
given an asymmetric fermion mass matrix, output mixing matrix, mass eigenvector, positive mass eigenvector, squared mass eigenvector used in RpvNeutrino::neutrino
force the largest component of every mass eigenvector in the mixing matrices P and M to be positive. Since an asymmetric matrix is diagonalised by a bi-unitary diagonalisation, the diagonal values can always be made positive by changing phases of the mixing matrices. What we are really doing here is to 'un-do' these phase changes, and compensate this by forcing the mixing matrices to be imaginary. In this case the matrix MM is diagonalised by M.hermitianConjugate * MM * P = diag MM, where all eigenvalues are positive.
void RpvNeutrino::FermionMassSym | ( | DoubleMatrix & | MM, |
ComplexMatrix & | Z, | ||
DoubleVector & | MassVector, | ||
DoubleVector & | PositiveMassVector, | ||
DoubleVector & | SquaredVector, | ||
DoubleMatrix & | mix | ||
) |
given a symmetric fermion mass matrix, output mixing matrix, mass eigenvector, positive mass eigenvector, squared mass eigenvector used in RpvNeutrino::neutrino
void RpvNeutrino::inomixingSLHA | ( | ostream & | out | ) |
neutralino/chargino mixing for RPV
need charginos too
We must re-order the rows and columns of the chargino mass matrix. SOFTSUSY is in the basis U = [ wino higgsino e_Ri ], whereas SLHA2 is in the basis U~ = [ e_Ri wino higgsino ].
Reimplemented from MssmSoftsusy.
void RpvNeutrino::lesHouchesAccordOutput | ( | ostream & | out, |
const char | model[], | ||
const DoubleVector & | pars, | ||
int | sgnMu, | ||
double | tanb, | ||
double | qMax, | ||
int | numPoints, | ||
bool | ewsbBCscale | ||
) | [virtual] |
Outputs with Les Houches accord conventions to standard output. Inputs: out should be something like cout or fout depending on whether you want output in a file or not. model contains what form of model is used for the SUSY breaking terms (eg sugra, gmsb, amsb, nonUniversal). qMax is only relevant if you want a gridded output of running parameters up to some scale qMax. Put numPoints = 1 if you don't want to use this option - then qMaz is immaterial. mb is mb(mb) in the MSbar scheme used to produce the output, whereas mtau is the pole mass used (eg 1.777). mgut is the GUT scale that has been determined, and altEwsb is true if you specified mu and mA as input parameters (not tan beta and mH1, mH2).
There are some re-orderings of masses required in the SLHA 2 version. CP+ scalars
goldstone boson in last place
charged scalars excluding goldstone
Reimplemented from FlavourMssmSoftsusy.
void RpvNeutrino::neutrino | ( | DoubleVector & | neutrino, |
DoubleMatrix & | mixMnu, | ||
DoubleMatrix & | mNeutrino | ||
) |
Steve's "neutrino" calculates the full 1 loop 7x7 neutralino-neutrino mass matrix (now in rpvsoft.cpp basis) MH: corrected Higgs vevs; now in rpvsoftsusy basis Return tree + 1 loop neutrino--neutralino masses and mixings. calculation performed in ADD basis where Hd and L_i fields are on equal footing. At the end of the code the results are rotated to the rpvsoftsusy basis
square root of -1.
'zero'
loop integral external momentum scale
no. of colours
gauge fixing parameter (for reference only so do not change !)
OBTAIN TREE LEVEL PARAMETERS FROM MAIN SOFTSUSY CODE
gauge couplings and EW mixing angles
< = sqrt(oneset.displayAlpha(ALPHA)
* 4. * PI)/g2;
the Yukawa matrices
third family approximation: Useful when cross checked with RPC softsusy yu(1, 1) = 0.; yu(2, 2) = 0.; yd(1, 1) = 0.; yd(2, 2) = 0.; ye(1, 1) = 0.; ye(2, 2) = 0.; the VEVs
various VEVs
the tree level gauge boson msasses
the supersymmetric bilinear parameters
< (susy.h)
< (rpvsusypars.h)
the soft bilinear parameters
< (rpvsusypars.h)
< (softpars.h)
the msass mixing between down-higgs and sleptons
< (rpvsusypars.h)
the up- and down- type higgs squared, tadpoles included
the 4x4x3 lamda and 4x3x3 lamda' tensors
the 4x4x3 lambda and 4x3x3 lambda' rpv soft trilinear tensors
DEFINE TREE LEVEL MASS MATRICES up type quarks
down type quarks
up type squarks
down type squarks
neutralino-neutrino
a modified chargino-charged lepton matrix, Hd and Leptons are on equal footing
4x4 lepton doublet - down higgs doublet for CPeven, CPodd, and Charged scalar matrices
4x4 'sneutrino-neutral down higgs matrix for CPeven and CPodd msasses
CP even scalars
CP odd scalars (gauge-independent part)
Charged scalars (gauge-independent part)
gauge DEPENDENT part of the mass matrices (CP odd and charged scalars)
combine the gauge dependent and the gauge independent parts
OBTAIN THE MIXING MATRICES AND MASS EIGENVALUES convention as in Dedes et al, hep-ph/0603225
get to the same convention as Dedes
SET ELECTRON AND MUON MASSES TO ZERO for easy comparison with BPMZ
< get to the same notation as Dedes (hep-ph/0603225)
< get to the same notation as Dedes
define the renormalization scales note actual renormalisation needs to be done at msusy otherwise get negative goldstone masses
define neutral fermion feynman rules all external neutrino/neutralino legs are in flavour basis all internal legs are in mass basis in these feynman rules, 'k' denotes neutral fermion the first index correspond to a scalar, while the next two indices are fermions for vector boson feynman rules, only two indices, and both are fermions CP even neutral scalar -- neutral fermion(external) -- neutral fermion(internal)
CP odd neutral scalar -- neutral fermion(external) -- neutral fermion(internal)
in +ve scalar -- in -ve LH fermion -- neutral fermion
in -ve scalar -- in +ve LH fermion -- neutral fermion
in -ve scalar down -- neutral fermion -- in +ve LH down type (anti) quark
out +ve scalar up -- neutral fermion -- in +ve LH up type quark
in +ve scalar up -- neutral fermion -- in -ve LH up type (anti) quark
Z -- neutral fermion(external) -- neutral fermion(internal)
in W+ -- in -ve LH fermion -- out neutral fermion
in W- -- in +ve LH fermion -- out neutral fermion
calculate the loop corrections note in rpc softsusy a different qq is used for neutrino mass calculation pp=0 is a suitable choice in fact, pp=0 must be used in the present calculation, for consistency with mia approx. (we only have c0 at zero external momentum) sigma d, scalar contribution
CP even/odd scalar -neutral fermion -neutral fermion because the large cancellation between these two contributions lead to numerical instability in the 3x3 neutrino--neutrino block. that part will later be replaced by a cpe-cpo analytic mia calculation
charged scalar -charged fermion -neutral fermion
down squark -neutral fermion - down quark
up squark -neutral fermion -up quark
CPE+CPO scalar -neutral fermion -neutral fermion
charged scalar -charged fermion -neutral fermion
down squark -neutral fermion - down quark
up squark -neutral fermion -up quark
Sigma D, gauge boson contribution initializsation
Z boson -neutral fermion -neutral fermion
W boson -charged fermion -neutral fermion
Sigma L, gauge boson contribution
Z boson -neutral fermion -neutral fermion
W boson -charged fermion -neutral fermion
mia approximation for the cpe+cpo contribution to the 3x3 neutrino-neutrino block This is a systematic procedure to expand the combined CPE+CPO contributions in powers of RPV parameters (call it B), that is the (2x3) off block-diagonal part of the full 5x5 mass matrix. Currently the approximation is to order B^2, but is generalisable to include higher corrections if desired. The external mass scale is set to zero. CPE MIA approximation
put the h-H, sneutrinos and RPV contributions to different blocks
RPC rotation
the 5x5 mass matrix to be further diagonalised, after the RPC rotation
the 5x5 mixing (RPC part) (h-H mixing, sneutrino mixing)
CPO MIA approximation
put the G-A, sneutrinos and RPV contributions to different blocks
RPC rotation
the 5x5 mass matrix to be further diagonalised, after the RPC rotation
the 5x5 mixing (RPC part) (G-A mixing, sneutrino mixing)
define the full (RPC + RPV using MIA) mixing matrices in different orders of perturbations
define the sneutrino mass^2 differences (CPE minus CPO)
compatibility with wsr2-wsa2 : CHECKED
define the hH, GA, CPE-sneutrino, CPO-sneutrino masses after MIA
Check for Tachyonic states
sum over the loop contributions (the 3x3 block)
sneutrino mixing difference contributions wCPOsneuttot is used here, while using wCPEsneuttot will give practically the same results
sneutrino mass difference contributions
H, h, A cancellations.
combine all the loop corrections and obtain the corrected mass matrix the output loop corrected mass matrix is in flavour basis combine the sigma D CPE+CPO scalar contribution ONLY
combine all the sigma D scalar contribution except the cpe+cpo contributions (i=1, 2)
combine all the sigma L scalar contribution
combine all the (sigma D+L) gauge boson contribution
Use formal matrix manipulations to calc gauge basis correction
This is for FULL FLAVOR BASIS LOOP CALCULATION
overwrite the neutrino-neutrino cpecpo part by the mia results
combine all loop contributions
include CPE-CPO cancellations
Calculate the loop corrected neutrino-neutralino masses
rotate to the RPV softsusy basis
obtain loop corrected eigenvalues etc
Main calculation ends here.
void RpvNeutrino::neutrinoData | ( | ) |
returns neutrino mixing angles and sets mass eigenstates to one loop.
in case of IH, swapping of rows in U & NeutrinoMasses needed
Calculate PMNS matrix by multiplying U by the charged lepton mixing matrix (transposed).
We may re-organise the signs in the mixing matrices to keep the diagonal elements positive
using Steve's neutrino routine to obtain 3x3 effective neutrino mass matrix via seesaw
calculate 3x3 effective neutrino mass matrix via seesaw from 7x7 neutralino matrix
Set full 7 by 7 physical mixing matrix: defined at zero external momentum
void RpvNeutrino::physical | ( | int | accuracy | ) | [virtual] |
Calculates physical sparticle masses to accuracy number of loops. Should be called at M_{SUSY}.
Organises calculation of physical quantities such as sparticle masses etc Call AT MSusy
Running masses at MSUSY
Re-calculate the 1-loop tadpoles for the calculation
Sfermion masses: all three families in each
Charginos/neutralinos/higgs
Iterate Higgs calculation (unless accuracy=0, in which case we just need a rough calculation) until the Higgs masses all converge to better than TOLERANCE fractional accuracy
iterate
Reimplemented from MssmSoftsusy.
void RpvNeutrino::rvamixSLHA | ( | ostream & | out | ) |
CP-odd higgs mixing for RPV SLHA2.
Need to find out what basis ordering we should really be in for SLHA2. CP- scalars: find lightest boson that's not the goldstone etc
This is a check to see if the eigenvalues are in the right order cout << slhaMix * CPOscalars * slhaMix.transpose();
H1 <-> H2 difference in positioning of basis vectors
void RpvNeutrino::rvhmixSLHA | ( | ostream & | out | ) |
CP-even higgs mixing for RPV SLHA2.
This is a check to see if the eigenvalues are in the right order cout << slhaMix * CPEscalars * slhaMix.transpose();
H1 <-> H2 difference in positioning of basis vectors
void RpvNeutrino::ScalarMass | ( | DoubleMatrix & | MM, |
ComplexMatrix & | Z, | ||
DoubleVector & | MassVector, | ||
DoubleVector & | PositiveMassVector, | ||
DoubleVector & | SquaredVector, | ||
DoubleMatrix & | mix | ||
) |
given squared mass matrix (MM), output mixing matrix, mass eigenvector, positive mass eigenvector, squared mass eigenvector used in RpvNeutrino::neutrino
FORCE the squared mass vector to be positive. This does not change anything if renormalization is done in Msusy. However this is potentially inconsistent if renormalization done at MZ ! This can be traced as the SquaredVector is still negative. At Mu(~MZ), some elements of wsa2, wsr2, wsch2 may become negative.
void RpvNeutrino::selmixSLHA | ( | ostream & | out | ) | [virtual] |
charged slepton-higgs mixing for RPV SLHA2
charged higgs-slepton mass matrix - order: Hu, Hd, tildeLi, tildeEbarj
swap to SLHA2 order: Hu, Hd, tildeLi, tildeEbarj
Don't print out the line corresponding to the goldstone mode: line 8
Reimplemented from FlavourMssmSoftsusy.
void RpvNeutrino::sparticleThresholdCorrections | ( | double | tb, |
const DoubleVector & | pars | ||
) |
next two routines are copy of old code which was taken out of the softsusy version when flavorsoft was implemented for objects RpvSoftsusy2, MIXING=1 sets CKM mixing in the up-sector, MIXING=2 sets CKM mixing in the down-sector pars contains RPV SUSY parameters for the point in question
Set the RPV couplings here if we need to: currently only works with CMSSM