SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
decays.h File Reference

Code calculates decay modes and prints out an SLHA format file with them in. For R-parity conserving NMSSM/MSSM. See arXiv://1702.????? More...

#include "nmssmsoftsusy.h"
#include "softsusy.h"
#include "physpars.h"
#include "lowe.h"
#include "softpars.h"
#include "flavoursoft.h"
#include "susy.h"
#include "particle.h"
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <cmath>
#include <vector>

Go to the source code of this file.

Functions

int calculateDecays (ostream &out, MssmSoftsusy *r, const NmssmSoftsusy &nmssm, bool nmssmIsIt)
 Calculate Decays does all decay table calculations and outputs. More...
 
double fdgauss (double x)
 Dgauss numerical integration integrand. More...
 
double gluinoamplitudedecay (double m1, double m2, double m3, double alphastrong)
 Function Declarations used to calculate Partial Widths in decays.cpp. More...
 
double gluinoamplitudedecaymix (double m1, double m2, double m3, double alphastrong, double squarkmix, double theta)
 
double squarkamplitudedecaygluino (double m1, double m2, double m3, double alphastrong)
 
double squarkamplitudedecaygluinomix (double m1, double m2, double m3, double alphastrong, double squarkmix, double theta)
 
double squarkamplitudedecaycharginoW1 (double m1, double m2, double m3, double g, double gamma)
 
double squarkamplitudedecaycharginoW2 (double m1, double m2, double m3, double g, double gamma)
 
double squark1amplitudedecaycharginoW1mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW1 to AprimedW1 accordingly
 
double squark1amplitudedecaycharginoW2mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double runmt, double runmb, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW2 to AprimedW2 accordingly
 
double squark2amplitudedecaycharginoW1mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double mup, double mdown, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW1 to AprimedW1 accordingly
 
double squark2amplitudedecaycharginoW2mix (double m1, double m2, double m3, double g, double gammaL, double gammaR, double theta, double beta, double mWboson, double mup, double mdown, double torb)
 the variable torb depends on if it is stop (torb=1) or sbottom (torb =2) decaying and changes AprimeuW2 to AprimedW2 accordingly
 
double squarkLamplitudedecayneutralino (double m1, double m2, double m3, double g, double gprime, DoubleMatrix &mixNeut, int neutralino, int uord)
 neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign of the g*neutralinomixingmatrix[2][element] in AqZ accordingly
 
double squarkRamplitudedecayneutralino (double m1, double m2, double m3, double g, double gprime, DoubleMatrix &mixNeut, int neutralino, int uord)
 neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign and magnitude of the coefficient BqZ accordingly More...
 
double squark3amplitudedecayneutralino (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, double runmt, int squark, int oneortwo, int neutralino)
 
double squark3amplitudedecaysquark3Wboson (double m1, double m2, double m3, double g, double thetat, double thetab, int m1torb, int m1oneortwo, int m3torb, int m3oneortwo)
 m1torb tells the function if the initial squark is a stop or sbottom, m1oneortwo tells it whether it's the lighter or heavier squark, similarly for the final state squark with m3torb and m3oneortwo More...
 
double squark3amplitudedecaychargedHiggssquark3 (double m1, double m2, double m3, double g, double mWboson, double beta, double thetat, double thetab, double greekmu, double At, double Ab, double mt, double mb, int t1or2, int b1or2)
 
double squark32amplitudedecayneutralHiggssquark3 (double m1, double m2, double m3, double g, double gp, double mWboson, double beta, double alpha, double thetat, double thetab, double greekmu, double At, double Ab, double mt, double mb, int torb, char phi)
 
double squark32amplitudedecaysquark3Zboson (double m1, double m2, double m3, double g, double gp, double theta)
 
double sleptonamplitudedecayleptonneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, char LorR, int neutralino)
 
double sneutrinoamplitudedecayneutrinoneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
double sleptonamplitudedecaychargino (double m1, double m2, double m3, double g, double theta, int chargino)
 for both sleptonL decays to charginos + neutrinos and for sneutrino decays to lepton + charginos - just change theta from thetaL in first case to thetaR in second case More...
 
double stauamplitudedecaytauneutralino (double m1, double m2, double m3, double g, double gp, double mWboson, DoubleMatrix &mixNeut, double theta, double beta, int oneortwo, int neutralino)
 
double stausneutrinoamplitudedecaytauneutrinoneutralino (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
double stauamplitudedecaynutauchargino (double m1, double m2, double m3, double g, double mWboson, double theta, double thetaL, double beta, double mtau, int oneortwo, int chargino)
 
double stausneutrinoamplitudedecaytauchargino (double m1, double m2, double m3, double g, double mWboson, double beta, double thetaL, double thetaR, int chargino)
 
double stauamplitudedecaysnustauHminus (double m1, double m2, double m3, double g, double mWboson, double beta, double thetatau, double mtau, double mu, double Atau, int oneortwo)
 Also does decay mode snustau to Hplus and stau1/2 just with m1, m2 and m3 permuted.
 
double stauamplitudedecaysnustauWboson (double m1, double m2, double m3, double g, double thetatau, int oneortwo)
 m3 must be mw here
 
double stau2amplitudedecaystau1Zboson (double m1, double m2, double m3, double g, double gp, double thetatau)
 m3 must be mz here
 
double stau2amplitudedecaystau1phi (double m1, double m2, double m3, double g, double gp, double thetatau, double beta, double alpha, double mWboson, double mtau, double greekmu, double Atau, char phi)
 
double charginoamplitudedecayquarksquarkL (double m1, double m2, double m3, double g, double theta, int chargino)
 quark mass is m2 More...
 
double charginoamplitudedecayquarksquarkmix (double m1, double m2, double m3, double g, double theta, double thetaL, double thetaR, double beta, double runmt, double runmb, double mWboson, int chargino, int upordowntypesquark, int oneortwo)
 quark mass is m2 More...
 
double charginoamplitudedecayleptonsleptonL (double m1, double m2, double m3, double g, double thetaLorR, int chargino)
 lepton mass is m2, use thetaR for decays to sneutrinos and leptons, use thetaL for decays to sleptons neutrinos More...
 
double charginoamplitudedecaysnutautau (double m1, double m2, double m3, double g, double thetaL, double thetaR, double beta, double mWboson, int chargino)
 m2 must be tau mass More...
 
double charginoamplitudedecaystaunutau (double m1, double m2, double m3, double g, double thetaL, double thetaR, double thetatau, double beta, double mWboson, double mtau, int oneortwo, int chargino)
 m2 must be nutau mass (i.e. 0) More...
 
double charginoamplitudedecayWbosonneutralino (double m1, double m2, double m3, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int chargino, int neutralino)
 m2 must be Wboson mass
 
double charginoamplitudedecayHminusneutralino (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR, double beta, DoubleMatrix &mixNeut, int chargino, int neutralino)
 m2 must be Hminus mass
 
double chargino2amplitudedecaychargino1Zboson (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR)
 m2 must be Zboson mass
 
double chargino2amplitudedecaychargino1neutHiggs (double m1, double m2, double m3, double g, double gp, double thetaL, double thetaR, double beta, double alpha, char phi)
 m2 must be neutral Higgs mass More...
 
double neutralinoamplitudedecayquarksquarkLorR (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int uordtype, char LorR, int neutralino)
 m2 must be quark mass More...
 
double neutralinoamplitudedecayleptonsleptonLorR (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, char LorR, int neutralino)
 m2 must be lepton mass More...
 
double neutralinoamplitudedecayneutrinosneutrinoL (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 m2 must be neutrino mass (i.e. 0)
 
double neutralinoamplitudedecaysquark3quarkmix (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, double runmq, int squark, int oneortwo, int neutralino)
 m2 must be quark mass More...
 
double neutralinoamplitudedecaystautau (double m1, double m2, double m3, double mWboson, double theta, double beta, DoubleMatrix &mixNeut, double g, double gp, int oneortwo, int neutralino)
 m2 must be tau (i.e. lepton) mass More...
 
double neutralinoamplitudedecaycharginoWboson (double m1, double m2, double m3, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 m2 must be W boson mass (expect to be pole mass 80.4...), neutralino is i in T&B whilst chargino is j
 
double neutralinoamplitudedecaycharginoHplus (double m1, double m2, double m3, double g, double gp, double beta, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 m2 must be Hplus mass, neutralino is i in T&B whilst chargino is j
 
double neutralinoamplitudedecayneutralinoZboson (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, int ineutralino, int fneutralino)
 m2 must be Z mass, ineutralino is i in T&B whilst fneutralino is j
 
double neutralinoamplitudedecayneutralinoneutHiggs (double m1, double m2, double m3, double g, double gp, DoubleMatrix &mixNeut, double mixingangle, int ineutralino, int fneutralino, char phi)
 m2 must be phi mass, ineutralino is i in T&B whilst fneutralino is j More...
 
double higgslorHamplitudedecayquarkantiquark (double m1, double m2, double g, double alpha, double beta, double mWboson, int uord, char lorH, DoubleMatrix &CPEMix, bool nmssmIsIt, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), and int lorH tells the program if it's a light higgs (l) or heavy higgs (H) decaying in order to change the trig functions acting on the mixing angles; note can also use this formula for decays of higgs to leptons as these are in this sense down-type More...
 
double higgsAamplitudedecayquarkantiquark (double m1, double m2, double g, double beta, double mWboson, int uord, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), note can also use this formula for decays of higgs to leptons as these are in this sense down-type
 
double higgsAamplitudedecayquarkantiquarkNMSSM (double m1, double m2, double beta, DoubleMatrix &CPOMix, int uord, int higgs, bool QCD, double alphas)
 uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), note can also use this formula for decays of higgs to leptons as these are in this sense down-type
 
double higgsphiamplitudedecayneutralinoneutralino (double m1, double m2, double m3, double g, double tanthetaW, double mixingangle, DoubleMatrix &mixNeut, int ineutralino, int fneutralino, char phi)
 phi tells it whether a "h", "H" or "A" is decaying More...
 
double higgsphiamplitudedecaysamechargino (double m1, double m2, double g, double thetaL, double thetaR, double alpha, double beta, int chargino, char phi)
 phi tells it whether a "h", "H" or "A" is decaying More...
 
double higgsphiamplitudedecaydifchargino (double m1, double m2, double m3, double g, double thetaL, double thetaR, double alpha, double beta, char phi)
 this function calls the function higgsphicharginocouplings to calculate the couplings for it More...
 
double higgshamplitudedecayAA (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for h->AA More...
 
double higgsHamplitudedecayhh (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for h->hh More...
 
double higgsHamplitudedecayAA (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for H->AA More...
 
double higgsHamplitudedecayHplusHminus (double m1, double m2, double g, double gp, double alpha, double beta, double mWboson)
 calculates partial width for H->H+H- More...
 
double higgshamplitudedecayhiggsAZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for h->AZ, m2 must be Zboson mass
 
double higgsHamplitudedecayhiggsAZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for H->AZ, m2 must be Zboson mass
 
double higgsAamplitudedecayhiggshZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for A->hZ, m2 must be Zboson mass
 
double higgsAamplitudedecayhiggsHZboson (double m1, double m2, double m3, double g, double gp, double alpha, double beta)
 calculates partial width for A->HZ, m2 must be Zboson mass
 
double higgshamplitudedecay2squarksamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mupq, double mdownq, int sq)
 calculates partial width for h->squark squark with no mixing and squarks of same handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgshamplitudedecay2squarkdiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mupq, double mdownq, double greekmu, double Aup, double Adown, int sq)
 calculates partial width for h->squark squark with no mixing and squarks of different handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgsHamplitudedecay2squarksamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mupq, double mdownq, int sq)
 calculates partial width for H->squark squark with no mixing and squarks of same handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgsHamplitudedecay2squarkdiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mupq, double mdownq, double greekmu, double Aup, double Adown, int sq)
 calculates partial width for H->squark squark with no mixing and squarks of different handedness, therefore for first two generations, int sq tells the function which squarks it's decaying into - uL, dL, uR, dR for sq = 1,2,3,4 respectively
 
double higgshamplitudedecay2sleptonsamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mel, int sl)
 calculates partial width for h->slepton slepton with no mixing and sleptons of same handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgshamplitudedecay2sleptondiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mel, double greekmu, double Aelectron, int sl)
 calculates partial width for h->slepton slepton with no mixing and sleptons of different handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgsHamplitudedecay2sleptonsamehand (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mel, int sl)
 calculates partial width for H->slepton slepton with no mixing and sleptons of same handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgsHamplitudedecay2sleptondiffhand (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mel, double greekmu, double Aelectron, int sl)
 calculates partial width for H->slepton slepton with no mixing and sleptons of different handedness, therefore for first two generations, int sl tells the function which sleptons it's decaying into - nuL, eL, eR for sl = 1,2,3 respectively
 
double higgshamplitudedecaystop1stop1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop1 antistop1
 
double higgshamplitudedecaystop2stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop2 antistop2
 
double higgshamplitudedecaystop1stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->stop1 antistop2 or stop2 antistop1 as they are the same
 
double higgshamplitudedecaysbottom1sbottom1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom1 antisbottom1
 
double higgshamplitudedecaysbottom2sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom2 antisbottom2
 
double higgshamplitudedecaysbottom1sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for h->sbottom1 antisbottom2 or sbottom2 antisbottom1 as they are the same
 
double higgsHamplitudedecaystop1stop1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop1 antistop1
 
double higgsHamplitudedecaystop2stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop2 antistop2
 
double higgsHamplitudedecaystop1stop2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->stop1 antistop2 or stop2 antistop1 as they are the same
 
double higgsHamplitudedecaysbottom1sbottom1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom1 antisbottom1
 
double higgsHamplitudedecaysbottom2sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom2 antisbottom2
 
double higgsHamplitudedecaysbottom1sbottom2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double theta)
 calculates partial width for H->sbottom1 antisbottom2 or sbottom2 antisbottom1 as they are the same
 
double higgshamplitudedecaystau1stau1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau1 antistau1
 
double higgshamplitudedecaystau2stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau2 antistau2
 
double higgshamplitudedecaystau1stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for h->stau1 antistau2 or h->stau2 antistau1 as these widths have the same value
 
double higgshtestamplitudedecaystau1stau1 (double m1, double m2, double thetatau, double g, double gp, double mWboson, double alpha, double beta, double mtau, double greekmu, double Atau)
 
double higgsHamplitudedecaystau1stau1 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau1 antistau1
 
double higgsHamplitudedecaystau2stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau2 antistau2
 
double higgsHamplitudedecaystau1stau2 (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mtau, double greekmu, double Atau, double theta)
 calculates partial width for H->stau1 antistau2 or H->stau2 antistau1 as these widths have the same value
 
double higgsAamplitudedecaysfermions (double m1, double m2, double m3, double g, double mWboson, double mf, double greekmu, double Asf, double beta, char uord)
 calculates partial width for A->sfermion1 sfermion2, these sfermions must be of the same type, note can't have decays to sfermion1 and sfermion 1 or to sfermion2 and sfermion2 by CP conservation, also note there's no dependence on sfermion mixing angle in these decays, mf is the mass of the corresponding fermion. char uord tells it whether we have up type (so Asf*cot(beta)) or down type (so Asf*tan(beta)). Finally note that the extra factor of three from colour for squarks is added above by multiplying the answer this function gives by 3
 
double higgsHplusamplitudedecayquarkantiquark (double m1, double m2, double m3, double g, double mWboson, double beta, DoubleMatrix &VCKM, int quark, int antiquark)
 calculates partial width for H+ ->quark1 antiquark2, this is the same as H- -> antiquark1 quark2, note the up type quark (quark1) is m2, the down type quark (quark2) is m3, the int quark is 1,2,3 (u,c,t) and int antiquark is 1,2,3 (d,s,b) then this selects VCKM matrix element VCKM(quark, antiquark)
 
double higgsHplusamplitudedecayneutralinochargino (double m1, double m2, double m3, double g, double gp, double beta, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 Calculates the partial width for decays of the charged H+ higgs to a neutralino and a chragino Wtilda+ where neutralino is j in T&B whilst chargino is i.
 
double higgsHplusamplitudedecayneutralinocharginosusyhitway (double m1, double m2, double m3, double g, double gp, double beta, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double higgsHplusamplitudedecayWbosonhiggsh (double m1, double m2, double m3, double g, double alpha, double beta)
 Calculates the partial width for a charged Higgs boson H+ to decay to a Wboson and a neutral light scalar higgs (i.e. the SM-like higgs) h, m2 must be the W boson mass.
 
DoubleVector higgsHplusamplitudedecaysquarksquark (double m1, double m2, double m3, double g, double beta, double mWboson, double mup, double mdown, double greekmu, double Aup, double Adown)
 calculates partial width for Hplus->squarki antisquarkj where i,j are each L/R so no mixing, i.e. first two generations of squarks
 
DoubleVector higgsHplusamplitudedecaysquarksquarkmix (double m1, double m2, double m3, double g, double beta, double mWboson, double mtop, double mbottom, double greekmu, double Atop, double Abottom, double thetatop, double thetabottom)
 calculates partial width for Hplus->squarki antisquarkj where i,j are each 1/2 so mixing included, i.e. third generations of squarks
 
double higgsesamplitudedecaygammagammatotal (double m1, double g, double gprime, double alphaEmrun, double mWboson, double polemw, double alpha, double beta, double mtop, double mbottom, double mcharm, double mtau, double mHpm, double mstop1, double mstop2, double msbottom1, double msbottom2, double mstau1, double mstau2, double mchargino1, double mchargino2, double thetaL, double thetaR, double thetat, double thetab, double thetatau, double greekmu, double Atop, double Abottom, double Atau, char higgstype)
 function that calculates the partial width for h->gamma gamma at 1-loop (forbidden at tree-level)
 
double higgsesamplitudedecaygluongluontotal (double m1, double g, double gs, double gprime, double mWboson, double alpha, double beta, double mtop, double mbottom, double mcharm, double mstop1, double mstop2, double msbottom1, double msbottom2, double thetat, double thetab, double greekmu, double Atop, double Abottom, double mstrange, double mscharmL, double mscharmR, double msstrangeL, double msstrangeR, double Acharm, double Astrange, double mup, double mdown, double msupL, double msupR, double msdownL, double msdownR, double Aup, double Adown, char higgstype, bool QCD)
 function that calculates the partial width for h->gluon gluon at 1-loop (forbidden at tree-level) More...
 
DoubleVector higgshamplitudedecayVV (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 double higgsamplitudedecayVVstar (double m1, double mboson, double g, double gp, double beta, double alpha, char Vtype); More...
 
DoubleVector higgsHamplitudedecayVV (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell.
 
DoubleVector higgsH3amplitudedecayVVNMSSM (double m1, double mWboson, double mZboson, double g, double gp, double alpha, double beta, char Vtype, DoubleMatrix &CPEMix, bool nmssmIsIt)
 Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell. More...
 
double higgsAamplitudedecayHpmWboson (double m1, double mWboson, double mHpm, double g, double thetaA, int pseudoscalar, bool nmssmIsIt)
 Does A/A2 -> H+W- (note multiply by 2 if want to include H-W+ as well as H+W- in this)
 
double stop2amplitudedecaystop1CPevenhiggsNMSSM (double mst2, double mst1, double mh, double mt, double thetat, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double At, double mueff, double lam, int higgs)
 
double stop2amplitudedecaystop1CPoddhiggsNMSSM (double mst2, double mst1, double ma, double mt, double thetat, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double At, double mueff, double lam, int higgs)
 
double sbottom2amplitudedecaysbottom1CPevenhiggsNMSSM (double msb2, double msb1, double mh, double mb, double thetab, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double Ab, double mueff, double lam, int higgs)
 
double sbottom2amplitudedecaysbottom1CPoddhiggsNMSSM (double msb2, double msb1, double ma, double mb, double thetab, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double Ab, double mueff, double lam, int higgs)
 
double stau2amplitudedecaystau1CPevenhiggsNMSSM (double mstau2, double mstau1, double mh, double mtau, double thetatau, DoubleMatrix &CPEMix, double beta, double mWboson, double g, double gp, double Atau, double mueff, double lam, int higgs)
 
double stau2amplitudedecaystau1CPoddhiggsNMSSM (double mstau2, double mstau1, double ma, double mtau, double thetatau, DoubleMatrix &CPOMix, double beta, double mWboson, double g, double Atau, double mueff, double lam, int higgs)
 
double chargino2amplitudedecaychargino1CPevenhiggsNMSSM (double mchar2, double mchar1, double mh, double g, double lam, double thetaL, double thetaR, DoubleMatrix &CPEMix, int higgs)
 
double chargino2amplitudedecaychargino1CPoddhiggsNMSSM (double mchar2, double mchar1, double mA, double g, double lam, double thetaL, double thetaR, DoubleMatrix &CPOMix, int higgs)
 
double neutralinoamplitudedecaycharginoWNMSSM (double mneut, double mchar, double mWboson, double g, double thetaL, double thetaR, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double neutralinoamplitudedecayneutralinoZNMSSM (double mneuti, double mneutj, double mZboson, double g, double gp, DoubleMatrix &mixNeut, int neutralinoi, int neutralinoj)
 
double neutralinoamplitudecharginoHpmNMSSM (double mneut, double mchar, double mHp, double g, double gp, double beta, double thetaL, double thetaR, double lam, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double neutralinoamplitudedecayneutralinoCPevenhiggsNMSSM (double mneuti, double mneutj, double mhiggs, double g, double gp, double lam, double kappa, DoubleMatrix &mixNeut, DoubleMatrix &CPEMix, int neutralinoi, int neutralinoj, int higgs)
 
double neutralinoamplitudedecayneutralinoCPoddhiggsNMSSM (double mneuti, double mneutj, double ma, double g, double gp, double lam, double kappa, DoubleMatrix &mixNeut, DoubleMatrix &CPOMix, int neuti, int neutj, int higgsa)
 
double neutralinoamplitudedecaysfermionfermionfirst2genNMSSM (double mneut, double msf, double mf, double g, double gp, DoubleMatrix &mixNeut, int neut, char type, char LorR)
 type indicates type of fermion, 'u' for up type quark, 'd' for down type quark, 'l' for charged lepton, 'n' for neutrino, note ignoring yukawa of fermion here as first 2 gen
 
double neutralinoamplitudestoptopNMSSM (double mneut, double mst, double mt, double g, double gp, double thetat, double beta, double mWboson, DoubleMatrix &mixNeut, double runmt, int neut, int stop)
 
double neutralinoamplitudesbottombottomNMSSM (double mneut, double msb, double mb, double g, double gp, double thetab, double beta, double mWboson, DoubleMatrix &mixNeut, double runmb, int neut, int sbottom)
 
double neutralinoamplitudestautauNMSSM (double mneut, double mstau, double mtau, double g, double gp, double thetatau, double beta, double mWboson, DoubleMatrix &mixNeut, double runmtau, int neut, int stau)
 
double neutralinoamplitudestauneutrinotauneutrinoNMSSM (double mneut, double mstaunu, double mtaunu, double g, double gp, DoubleMatrix &mixNeut, int neut)
 
double squarkamplitudedecayquarkneutralinoNMSSM (double m1, double mq, double mneut, double g, double gp, DoubleMatrix &mixNeut, char uord, char LorR, int neut)
 
double sleptonamplitudedecayleptonneutralinoNMSSM (double m1, double ml, double mneut, double g, double gp, DoubleMatrix &mixNeut, char uord, char LorR, int neut)
 
double stopamplitudedecaytopneutralinoNMSSM (double m1, double mt, double mneut, double g, double gp, double thetat, DoubleMatrix &mixNeut, double runmt, double mWboson, double beta, int stop, int neut)
 
double sbottomamplitudedecaybottomneutralinoNMSSM (double m1, double mb, double mneut, double g, double gp, double thetab, DoubleMatrix &mixNeut, double runmb, double mWboson, double beta, int sbottom, int neut)
 
double stauamplitudedecaytauneutralinoNMSSM (double m1, double mtau, double mneut, double g, double gp, double thetatau, DoubleMatrix &mixNeut, double runmtau, double mWboson, double beta, int stau, int neut)
 
double charginoiamplitudedecayneutralinojHpmNMSSM (double mchar, double mneut, double mHpm, double g, double gp, double thetaL, double thetaR, double beta, DoubleMatrix &mixNeut, double lam, int chargino, int neut)
 
double charginoiamplitudedecayneutralinojWNMSSM (double mchar, double mneut, double mWboson, double g, double gp, double thetaL, double thetaR, DoubleMatrix &mixNeut, int chargino, int neut)
 
double HpmamplitudecharginojneutralinoiNMSSM (double mHp, double mchar, double mneut, double g, double gp, double beta, double thetaL, double thetaR, double lam, DoubleMatrix &mixNeut, int neutralino, int chargino)
 
double snutauamplitudedecaynutauneutralinoNMSSM (double m1, double mneut, double g, double gp, DoubleMatrix &mixNeut, int neutralino)
 
double higgsesamplitudedecayZbosonphotontotal (double m1, double mZboson, double g, double gprime, double alphaEmrun, double polemw, double runmw, double alpha, double beta, double mtop, double mbottom, double mcharm, double mstrange, double mstop1, double mstop2, double msbottom1, double msbottom2, double mHplus, double thetat, double thetab, double greekmu, double Atop, double Abottom, char higgstype)
 function that calculates the partial width for h->Z gamma at 1-loop (forbidden at tree-level)
 
double gluinoamplitudedecaydgausscharginoqqpbarfirsttwogen (double mgluino, double mchargino, double mquark, double mquarkp, double msqL, double msqpL, double g, double thetaL, double thetaR, double alphas, int charg, bool onetothree)
 Functions for 1->3 decays via dgauss: More...
 
double gluinoamplitudedecay1to3neutfirsttwogen (double m1, double m2, double m3, double m4, double m5, double g, double gp, DoubleMatrix &mixNeut, double alphas, char uord, int neut, int Nsteps, int adaptive, bool onetothree, double approx)
 BEN.
 
double gluinoamplitudedecay1to3charfirsttwogen (double m1, double m2, double m3, double m4, double m5, double m6, double g, double thetaL, double thetaR, double alphas, int charg, int Nsteps, int adaptive, bool onetothree, double approx)
 
double gluinoamplitudedecay1to3neutttbar (double m1, double m2, double m3, double m4, double m5, double mw, double g, double gp, double thetat, double beta, double alphas, DoubleMatrix &mixNeut, double runmq, int neutralino, int Nsteps, int adaptive, bool onetothree, double approx)
 
double gluinoamplitudedecay1to3neutbbbar (double m1, double m2, double m3, double m4, double m5, double mw, double g, double gp, double thetab, double beta, double alphas, DoubleMatrix &mixNeut, double runmq, int neutralino, int Nsteps, int adaptive, bool onetothree, double approx)
 
double gluinoamplitudedecaychartbbar (double m1, double m2, double m3, double m4, double m5, double m6, double m7, double m8, double alphas, double thetat, double thetab, double mw, double g, double gp, double gammaL, double gammaR, double beta, double runmt, double runmb, int chargino, int Nsteps, int adaptive, bool onetothree, double approx)
 
double neutralinoamplitudedecayneutffbar (double m1, double m2, double mf, double msf1, double msf2, double mz, double mh, double mH, double mA, double runmf, double mw, double thetaf, double beta, double alpha, double g, double gp, DoubleMatrix &mixNeut, int neutralinoj, int neutralinoi, char qorl, char uord, int Nsteps, int adaptive, bool onetothree, double approx)
 
double gluinoamplitudedecaygravitino (double m1, double mgrav, double MPlreduced, int gravonoff, int gluNLSP)
 Decays to gravitinos. More...
 
double squarkamplitudedecaygravitino (double m1, double mgrav, double mquark, double MPlreduced, int gravonoff, int squNLSP)
 Function that calculates the decays to gravitinos of squark if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayphotongravitino (double m1, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double g, double gp, int neutralino, int gravonoff, int neutNLSP)
 Function that calculates the decays to gravitino and photon of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayZgravitino (double m1, double mZ, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double g, double gp, double beta, int neutralino, int gravonoff, int neutNLSP)
 Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double neutralinoamplitudedecayphigravitino (double m1, double mphi, double mgrav, double MPlreduced, DoubleMatrix &mixNeut, double alpha, double beta, int neutralino, int gravonoff, char phi, int neutNLSP)
 Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off. More...
 
double higgsAamplitudedecaysfermionsNMSSM (double m1, double m2, double m3, double g, double mWboson, double mf, double Asf, double beta, double lam, double mueff, DoubleMatrix &CPOMix, char uord, int pseudoscalar)
 NMSSM functions (where MSSM functions haven't been recycled) More...
 
double higgsAamplitudedecaysamecharginoNMSSM (double m1, double m2, double g, double thetaL, double thetaR, double alpha, double lam, DoubleMatrix &CPOMix, int chargino, int pseudoscalar)
 
double higgsAamplitudedecaydifcharginoNMSSM (double m1, double m2, double m3, double g, double thetaL, double thetaR, double alpha, double lam, DoubleMatrix &CPOMix, int pseudoscalar)
 
double higgsAamplitudedecayneutralinoneutralinoNMSSM (double m1, double m2, double m3, double g, double tanthetaW, double lam, double kappa, DoubleMatrix &CPOMix, DoubleMatrix &mixNeut, int ineutralino, int fneutralino, int pseudoscalar)
 
double higgsAamplitudedecayhiggshorHZbosonNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double thetaA, DoubleMatrix &CPEMix, int pseudoscalar, int higgs)
 m2 must be Z mass
 
double higgslHamplitudedecayquarkantiquarkNMSSM (double MSSMamplitude, DoubleMatrix &CPEMix, double alpha, int higgs, char uord)
 
double higgshamplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 takes MSSM amplitude and applies relevant NMSSM prefactor to get NMSSM amplitude More...
 
double higgshamplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgsHamplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 
double higgsHamplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgsH3amplitudedecay2squarksamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sq)
 
double higgsH3amplitudedecay2sleptonsamehandNMSSM (double m1, double m2, double m3, double g, double gp, double alpha, double beta, double mWboson, double mq, DoubleMatrix &CPEMix, int sl)
 
double higgshamplitudedecay2squarkdiffhandNMSSM (double m1, double m2, double m3, double g, double alpha, double beta, double mWboson, double mq, double Aq, double mueff, double lam, DoubleMatrix &CPEMix, int sq, int higgs)
 
double higgsphiamplitudedecaysamecharginoNMSSM (double m1, double m2, double g, double thetaL, double thetaR, double lam, DoubleMatrix &CPEMix, int chargino, int higgs)
 
double higgsphiamplitudedecaydiffcharginoNMSSM (double m1, double m2, double m3, double g, double thetaL, double thetaR, double lam, DoubleMatrix &CPEMix, int higgs)
 
double higgsAamplitudedecaygammagammaNMSSM (double m1, double g, double gprime, double alpha, double mWboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double mtau, double mch1, double mch2, double thetaL, double thetaR, double lam, int higgs)
 
double higgsAamplitudedecaygluongluonNMSSM (double m1, double g, double gs, double alphas, double mWboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double lam, int higgs, bool QCD)
 
double higgsAamplitudedecayZgammaNMSSM (double m1, double g, double gp, double alpha, double mWboson, double mZboson, DoubleMatrix &CPOMix, double beta, double mtop, double mbottom, double mcharm, double mch1, double mch2, double thetaL, double thetaR, double lam, int higgs)
 
double higgsCPevenamplitudedecaygammagammaNMSSM (double m1, double mtop, double mbottom, double mcharm, double mtau, double mWboson, double mHpm, double mchar1, double mchar2, double mscharmL, double mscharmR, double mstop1, double mstop2, double msstrangeL, double msstrangeR, double msbottom1, double msbottom2, double msmuonL, double msmuonR, double mstau1, double mstau2, DoubleMatrix &CPEMix, double beta, double g, double gp, double alpha, double thetat, double thetab, double thetatau, double thetaL, double thetaR, double At, double Ab, double Atau, double mu, double mueff, double lam, double kappa, double Alambda, int higgs)
 
double higgsCPevenamplitudedecaygluongluonNMSSM (double m1, double mtop, double mbottom, double mcharm, double mWboson, double mscharmL, double mscharmR, double mstop1, double mstop2, double msstrangeL, double msstrangeR, double msbottom1, double msbottom2, double msupL, double msupR, double msdownL, double msdownR, double runmt, double runmb, DoubleMatrix &CPEMix, double beta, double g, double gp, double gs, double alphas, double thetat, double thetab, double thetaL, double thetaR, double At, double Ab, double mu, double mueff, double lam, double kappa, double Alambda, int higgs, bool QCD)
 
double higgshamplitudedecayZgammaNMSSM (double m1, double g, double gp, double alpha, double mWboson, double mZboson, double mHpm, DoubleMatrix &CPEMix, double beta, double mtop, double mbottom, double mcharm, double mch1, double mch2, double thetaL, double thetaR, double lam, double kappa, double Alambda, double greekmu, double mueff, int higgs)
 
double higgshamplitudedecayneutineutjNMSSM (double m1, double mneuti, double mneutj, double g, double gp, DoubleMatrix &CPEMix, DoubleMatrix &mixNeut, double lam, double kappa, int neuti, int neutj, int higgs)
 
double higgsCPevenamplitudedecayAANMSSM (double m1, double mA1, double mA2, double mWboson, double runmt, double runmb, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, double lam, double kappa, double Alambda, double Akappa, double mueff, int higgs, int pseudoscalar1, int pseudoscalar2)
 
double higgsCPevenamplitudedecaypseudoscalarZNMSSM (double m1, double mA, double mZboson, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs, int pseudoscalar)
 
double higgsCPevenamplitudedecayHpHmNMSSM (double m1, double mHpm, double mWboson, double g, double gp, double mtop, double mbottom, double beta, double lam, double mueff, double kappa, double Alambda, DoubleMatrix &CPEMix, int higgs)
 
double higgsCPevenamplitudedecayhhorhHorHH (double m1, double mh1, double mh2, double g, double gp, double runmw, double beta, double lam, double Alambda, double kappa, double Akappa, double mueff, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs1, int higgs2)
 
double higgsCPevenamplitudedecayhhorhHorHHNMSSM (double m1, double mh1, double mh2, double g, double gp, double mWboson, double mtop, double mbottom, double beta, double lam, double Alambda, double kappa, double Akappa, double mueff, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, int higgs1, int higgs2, int starthiggs)
 
double higgsA2amplitudedecayA1CPevenNMSSM (double m1, double mA1, double mh, double mWboson, double runmt, double runmb, double g, double gp, double beta, DoubleMatrix &CPEMix, DoubleMatrix &CPOMix, double lam, double kappa, double Alambda, double Akappa, double mueff, int higgs)
 
double higgsCPevenamplitudedecayWHpmNMSSM (double m1, double mWboson, double mHpm, double beta, double g, DoubleMatrix &CPEMix, int higgs)
 
double higgsCPevenamplitudedecaystopistopiNMSSM (double m1, double mstopi, double thetat, double runmt, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double At, double mueff, double lam, int stop, int higgs)
 
double higgsCPevenamplitudedecaystopistopjNMSSM (double m1, double mstopi, double mstopj, double thetat, double runmt, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double At, double mueff, double lam, int higgs)
 
double higgsCPevenamplitudedecaysbottomisbottomiNMSSM (double m1, double msbottomi, double thetab, double runmb, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Ab, double mueff, double lam, int sbottom, int higgs)
 
double higgsCPevenamplitudedecaysbottomisbottomjNMSSM (double m1, double msbottomi, double msbottomj, double thetab, double runmb, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Ab, double mueff, double lam, int higgs)
 
double higgsCPevenamplitudedecaystauistauiNMSSM (double m1, double mstaui, double thetatau, double runmtau, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Atau, double mueff, double lam, int stau, int higgs)
 
double higgsCPevenamplitudedecaystauistaujNMSSM (double m1, double mstaui, double mstauj, double thetatau, double runmtau, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, double Atau, double mueff, double lam, int higgs)
 
double higgsCPevenamplitudedecaysnusnuNMSSM (double m1, double msnu, double g, double gp, double mWboson, double beta, DoubleMatrix &CPEMix, int higgs)
 
DoubleVector squarkmixcharginocouplings (double g, double theta, double beta, double gammaL, double gammaR, double runmt, double runmb, double mWboson, int torb)
 
DoubleVector higgsphisamecharginocouplings (double alpha, double beta, double thetaL, double thetaR)
 calculates the couplings of a neutral higgs (h,H,A) to Wtildai Wtildai - i.e. to two charginos of the same type (mass)
 
DoubleVector higgsphidifcharginocouplings (double alpha, double beta, double thetaL, double thetaR)
 calculates the couplings of a netural higgs (h,H,A) to Wtildai Wtildaj - i.e. to two charginos of different type (mass)
 
DoubleVector higgshsquarksamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mupq, double mdownq)
 calculates the couplings of light scalar higgs h to two squarks of same handedness
 
DoubleVector higgshsquarkdiffhandcouplings (double mWboson, double g, double alpha, double beta, double mupq, double mdownq, double greekmu, double Aup, double Adown)
 calculates the couplings of light scalar higgs h to two squarks of different handedness
 
DoubleVector higgsHsquarksamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mupq, double mdownq)
 calculates the couplings of heavy scalar higgs H to two squarks of same handedness
 
DoubleVector higgsHsquarkdiffhandcouplings (double mWboson, double g, double alpha, double beta, double mupq, double mdownq, double greekmu, double Aup, double Adown)
 calculates the couplings of heavy scalar higgs H to two squarks of different handedness
 
DoubleVector higgshsleptonsamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mel)
 calculates the couplings of light scalar higgs h to two sleptons of same handedness
 
DoubleVector higgshsleptondiffhandcouplings (double mWboson, double g, double alpha, double beta, double mel, double greekmu, double Ae)
 calculates the couplings of light scalar higgs h to two sleptons of different handedness
 
DoubleVector higgsHsleptonsamehandcouplings (double mWboson, double g, double gp, double alpha, double beta, double mel)
 calculates the couplings of heavy scalar higgs H to two sleptons of same handedness
 
DoubleVector higgsHsleptondiffhandcouplings (double mWboson, double g, double alpha, double beta, double mel, double greekmu, double Ae)
 calculates the couplings of heavy scalar higgs H to two sleptons of different handedness
 
DoubleVector higgsHplussquarkcouplings (double mWboson, double g, double beta, double mup, double mdown, double greekmu, double Au, double Ad)
 calculates the couplings of charged scalar higgs H+ to two squarks
 
DoubleVector foftau (double mpart, double mcomp)
 f(tau) function for use in h->gamma gamma or Z gamma
 
void printRowPDG (ostream &cout, double x)
 
void OutputNoPWs (ostream &cout, Particle &P, double BRTol)
 Outputs the decay table into the leshouchesOutput file with no PWs (partial widths) given, just branching ratios.
 
void OutputYesPWs (ostream &cout, Particle &P, double BRTol)
 Outputs the decay table into the leshouchesOutput file with PWs (partial widths) given after the comments column so as not to affect SLHA form.
 
double Zsfintegralsum (double m1, double m2, double msf, double mf, double mz, double min, double max, double Nsteps, int adaptive, double approx)
 Integral calculating functions for 1->3 decays.
 
double Aintegralsum (double m1, double m2, double mz, double mA, double mf, double min, double max, double Nsteps, int adaptive, double approx)
 
double G3integralsum (double m1, double m2, double m3, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double G2integralsum (double m1, double m2, double m3, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double chiprimeintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double Yintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double Xintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double zetaintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double chiintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double rhointegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double xsiintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double phitildaintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double psitildaintegralsum (double m1, double m2, double m3, double m4, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double Zintegralsum (double m1, double m2, double mz, double mf, double min, double max, double Nsteps, int adaptive, double approx)
 
double G1integralsum (double m1, double m2, double m3, double mq, double min, double max, double Nsteps, int adaptive, double approx)
 
double G4integralsum (double m1, double m2, double m3, double m4, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double G5integralsum (double m1, double m2, double m3, double m4, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double G6integralsum (double m1, double m2, double m3, double m4, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double G7integralsum (double m1, double m2, double m3, double m4, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double G8integralsum (double m1, double m2, double m3, double m4, double mt, double mb, double min, double max, double Nsteps, int adaptive, double approx)
 
double Jintegralsum (double m1, double m2, double msf, double mphi, double mf, double min, double max, double Nsteps, double approx, int adaptive, int AorhorH)
 
double ghHintegral (double m1, double m2, double mf, double mh, double mH, double g, double gp, double alpha, int neutralinoi, int neutralinoj, DoubleMatrix &mixNeut, double E)
 
double hHintegral (double m1, double m2, double mf, double mh, double mH, double fromE, double toE, double stepE, double g, double gp, double alpha, DoubleMatrix &mixNeut, int neutralinoi, int neutralinoj)
 
double gluinoamplitudedecaydgaussneutralinoqqpbarfirsttwogen (double mgluino, double mneutralino, double msqL, double msqR, double mquark, double g, double gp, DoubleMatrix &mixNeut, double alphas, char uord, int neut, bool onetothree)
 only done via usual method (not via a separate integrating function compute_areai) as can't pass a DoubleMatrix & in a function pointer More...
 
double gluinoamplitudedecaydgaussneutralinottbar (double mgluino, double mst1, double mst2, double mneutralino, double mt, double mWboson, double g, double gp, double thetat, double beta, double alphas, DoubleMatrix &mixNeut, double runmt, int neutralino, bool onetothree, char torb)
 calculates PW for gluino -> neutralino + q qbar pair where q are t More...
 
double gluinoamplitudedecaydgausschartbbar (double mgluino, double mst1, double mst2, double msb1, double msb2, double mtop, double mbottom, double mchar, double alphas, double thetat, double thetab, double MWBoson, double g, double gp, double gammaL, double gammaR, double beta, double runmt, double runmb, int chargino, bool onetothree)
 
double neutralinoamplitudedecaydgaussneutralinoffbar (double mneutralinoi, double msf1, double msf2, double mZboson, double mhiggsl, double mhiggsH, double mhiggsA, double mneutralinoj, double mf, double alphas, double thetaq, double mWboson, double g, double gp, double alpha, double beta, double runmq, DoubleMatrix &mixNeut, int ineutralino, int jneutralino, bool onetothree, char uordornuorl)
 
double neutralinoamplitudedecaycharginoffprimebar (double mneutralinoi, double msfp1, double msfp2, double msf1, double msf2, double mWboson, double mHP, double mcharginoj, double mfp, double mf, double thetaq, double thetaqp, double g, double gp, double alpha, double beta, double thetaL2, double thetaR2, double runmqp, double runmq, DoubleMatrix &mixNeut, int ineutralino, int jchargino, bool onetothree, char qorl, char norc)
 
double gpsitildadgauss (double Et)
 
double gphitildadgauss (double Et)
 
double gxsidgauss (double Et)
 
double grhodgauss (double Et)
 
double gchidgauss (double Et)
 
double gzetadgauss (double Et)
 
double gXdgauss (double Et)
 
double gYdgauss (double Et)
 
double gchiprimedgauss (double Et)
 
double gG1dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m6 = mtop, m8 = mcharginoj
 
double gG4dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG5dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG6dgauss (double Et)
 m1 = mgluino, m2 = mstopi, m4 = msbottomi, m6 = mtop, m7 = mbottom , m8 = mcharginoj
 
double gG7dgauss (double Et)
 
double gG8dgauss (double Et)
 
double gG2dgauss (double Eb)
 
double gG3dgauss (double Eb)
 
double gZdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt, MZboson = mz
 
double ghHdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt, MZboson = mz
 
double gAdgauss (double E)
 m1 = mZi, m4 = mZj, m2 = mstop1, m3 = mstop2, mq = mt
 
double gZsfdgauss (double s)
 m2 = msfi where i is the sfermion contribution interference with Z you are considering
 
double gJdgauss (double s)
 
double gneutineutjffZ1dgauss (double s)
 m1 = mneuti, m4 = mneutj, mq = mf, MZboson = mZboson More...
 
double gneutineutjffZ2dgauss (double s)
 
double gneutineutjffZ3dgauss (double s)
 
double gneutineutjffZ4dgauss (double s)
 
double gintegralhdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralHdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralh1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralh4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralH1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mH = mhiggsH
 
double gintegralH4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl
 
double gintegralhH1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralhH4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mh = mhiggsl, mH = mhiggsH
 
double gintegralA1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegralA4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mt, MZboson = mz, mA = mhiggsA
 
double gintegral1Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8Zsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral2Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral3Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral4Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral5Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral6Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral7Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral8Hsfdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2) More...
 
double gintegral1ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral2ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral3ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gintegral4ZAdgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, m2 = msfi, MZboson = mz
 
double gneutineutjffgA1dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA2dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA3dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneutineutjffgA4dgauss (double E)
 m1 = mZi, m4 = mZj, mq = mf, mA = mhiggsA, MZboson = mz
 
double gneuticharjffpW1dgauss (double E)
 m1 = mZi, m2 = mWj, m3 = mf, m4 = mfp, MWboson = mw
 
double gneuticharjffpW2dgauss (double E)
 m1 = mZi, m2 = mWj, m3 = mf, m4 = mfp, MWboson = mw
 
double gneuticharjffpHpm1dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm;
 
double gneuticharjffpHpm2dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm;
 
double gneuticharjffpHpm3dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm;
 
double gneuticharjffpHpm4dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mHpm;
 
double gneuticharjffp1sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp2sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp3sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp4sf1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2 More...
 
double gneuticharjffp1sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp2sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp3sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp4sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp5sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp6sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp7sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp8sfp1sf2dgauss (double E)
 m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msfp1, m6 = msf2
 
double gneuticharjffp1WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp2WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp3WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffp4WHpmdgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHpm
 
double gneuticharjffpW1Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW2Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW3Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW4Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW5Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW6Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW7Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpW8Sfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp
 
double gneuticharjffpHg1dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg2dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg3dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffpHg4dgauss (double E)
 m1 = mneutralinoi, m2 = mcharginoj, m3 = mf, m4 = mfp, m5 = mWboson, m6 = mHP
 
double gneuticharjffp1gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp2gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp3gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp4gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp5gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp6gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp7gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp8gsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = mf, m4 = mcharginoj, m5 = mWboson, m6 = msfp1
 
double gneuticharjffp1sfpsfpdgauss (double E)
 m1 = mneutralinoi, m2 = mfp, m3 = -mf, m4 = charginoj, m5 = msfp1, m6 = msfp2
 
double gneuticharjffp21sfpsfpdgauss (double E)
 
double gneuticharjffp31sfpsfpdgauss (double E)
 
double gneuticharjffp41sfpsfpdgauss (double E)
 

Variables

const double accuracy = 0.01
 Approximate accuracy with which 3 body decays are calculated.
 
const double mcpole = 1.40
 
const double mspole = 0.19
 

Detailed Description

Code calculates decay modes and prints out an SLHA format file with them in. For R-parity conserving NMSSM/MSSM. See arXiv://1702.?????

Function Documentation

int calculateDecays ( ostream &  out,
MssmSoftsusy r,
const NmssmSoftsusy nmssm,
bool  nmssmIsIt 
)

Calculate Decays does all decay table calculations and outputs.

If there is a serious problem with the point, return an error code and /// warning

< Flags to turn off decays, default 1 = on, 0 = off

0 output if no issues, -1 if issues in calculating decays

Turns on QCD corrections to h->gg and h->qq

Switch on or off 1->3 decays

Turns on 1->3 decays, reads this in from input file, default is true

BR Tolerance

BRs less than this are not output, read in from SOFTSUSY Block in input file

Do this as nmssm is a const to ensure it can't be changed here (e.g. if run in RPV mode where NMSSM is not included don't want this to change NMSSM), copy to nmssmrun to allow me to run it to MSusy, 1000GeV or whatever scale for parameter extraction

CP even higgses mixing matrix which I will transform to match that in NMSSMTools

initialise CPEMix

initialise Ptemp

is pseudoscalar mixing matrix as in P in NMSSMTools (dropped first row as that's goldstones hence 2x3 - just made 3x3 to stop issue with DoubleMatrix, third row is all 0s)

initialise CPOMix

is P2 in NMSSMTools

initialise CPOMix2

Initialise matrices and vectors:

Quark pole masses for general use

Run to scale Msusy for parameter extraction

Must redo calcDrBarPars at each scale

CP even higgs 3x3 mixing matrix as from softsusy

Transform to match conventions in NMSSMTools

CP odd higgses mixing angle

CPOMix is the mixing matrix used in the partial width formulae, not Ptemp or CPOMix2

0s as never used as CPOMix is actually 2x3 as dropped goldstone row

Additional NMSSM parameters

Set masses from nmssmrun nmssmsoftsusy object passed from softpoint

Set mixing angles in my conventions, note shift in thetaL2 and thetaR2, which are the angles used in the PW formulae

"running" W mass, i.e. that used for couplings

Mixing angles taken from softsusy depend on the mass ordering, I have taken the Spheno method whereby the sfermions are always mass ordered, this isn't necessarily true of softsusy so if the mass ordering is reverse I must change the mixing angle and reorder the masses.

Trilinear couplings

Effective mu parameter of NMSSM - note resolves mu problem of MSSM

Run to mZ for fermion mass extraction

Pole masses for quarks necessary for scheme used for h -> qq QCD corrections

Masses used in general formulae for quarks

Must redo calcDrBarPars at new scale

"Running" masses used for couplings, e.g. in setting yukawas

Instead of using Softsusy to run gs to different scales (time inefficient) use the one-loop renormalisation group equations for gs directly to run to different scales, this is accurate enough for our purposes here - NOT WHAT IS USED IN CODE, FULL RUNNING OF SOFTSUSY IS USED, just left for potential use:

See later function definition

See later function definition

Or run fully to the mass of each decaying Higgs: - WHAT IS ACTUALLY USED, these are used for masses of quarks and for gauge couplings for the Higgs loop decays, here the scale at which you choose to set your masses can cause significant differences in the PWs determined:

If yukawa matrix elements are 0 (can occur if only include mixing in third generation in softsusy spectrum generator) then use a non-zero mass - avoids issues of inf in foftau for loop decays!

For mh should not use full susy running as susy not around this scale, instead use SM running as in QeDQcD object defined in lowe.h:

MSSM

Run to Msusy scale to extract parameters

Set masses

Set mixing angles - again note shift in thetaL2 and thetaR2 used in PW formulae

"Running" W mass, used for couplings

Ensure mass ordering of sfermions, requires shift of sfermion mixing angles if mass order initially wrong

Trilinear couplings

Run to mZ to extract quark masses

Masses used in general formulae for quarks

Need to recalc DrBarPars at each new scale

"Running" masses used for couplings, e.g. yukawa couplings

Instead of using Softsusy to run gs to different scales (time inefficient) use the one-loop renormalisation group equations for gs directly to run to different scales, this is accurate enough for our purposes here, NOT WHAT IS DONE - full running is done (see a few lines below) - just left for potential use:

See later function definition

See later function definition

Look into hdecay's alphas values via their running function - NOT USED:

Or run fully using softsusy runto: - THIS IS WHAT IS ACTUALLY USED NOT 1-LOOP RENORMALISATION GROUP EQUATIONS APPROXIMATE WAY OF A FEW LINES ABOVE Determine gauge couplings and quark masses at the mass of the decaying Higgses for use in the Higgs loop decays, here the choice of scale for evaluating the mass of the quarks and couplings can have a significant effect on the PWs

If yukawa matrix elements are 0 (can get if set mixing to 0 in softsusy spectrum generator) then use a non-zero mass - otherwise get inf issue in foftau function for loop decays!

For mh should not use full susy running as susy not around this scale, instead use SM running as in QeDQcD object defined in lowe.h:

gravitino stuff - For NLSP decays to LSP gravitino, occur often in GMSB scenarios

a gravitino switch, by default it's off (0), it's turned on (1) a few lines below if the gravitino is the LSP as then decays to it are important, if it's not the LSP decays to it are unimportant as they are Planck suppressed.

Set by hand, could read in a value from softsusy spectrum generator

A number which indicates which type of particle is the LSP

< LSP is a gravitino

< LSP is not a gravitino

default position

Default position is 1 so all SUSY dedcays to LSP gravitino considered unless you only want the NLSP decays to gravitino decays, then if below section uncommented it sets all but NLSP switch to 0.

Using the nlsp function from softsusy.cpp, Returns a label which says which particle is NLSP, 0 means NLSP is neutralino, 1=up squark, 2=down squark, 3=sleptons, 4=charginos, 5=sneutrinos, 6=gluino. Uncomment this if you only want the NLSP decays to the LSP gravitino to be considered, note one potential issue with this is particles only slightly heavier than the NLSP may still have only the decay to the LSPgravitino available and this function doesn't take account of this. If this section below is commented all SUSY decays to the LSP gravitino are considered and then they are not output if there BRs are less than BRTol

Obtaining the CKM Matrix from Yukawa Matrices:

Form hermitian conjugate of vdl - only need to transpose as must be real as taken Yukawa matrices as real:

CKM only used so far in H+ decays to q q'bar, otherwise taken as diagonal

Define Particle PDG codes - for SLHA output of decay tables

double PDGnuselectronR = 2000012, PDGnusmuonR = 2000014, PDGnustauR = 2000016

PDG codes for extra NMSSM particles:

Particle class used to store decay info in one place for ease of output into decay tables Create object ParticleGluino of class Particle, stores all decay info for gluino decays

initialise to 0

Create object ParticleSdownL, stores all decay info for sdownL decays

initialise to 0

Create object ParticleSdownR, stores all decay info for sdownR decays

initialise to 0

Create object ParticleSupL, stores all decay info for supL decays

initialise to 0

Create object ParticleSupR, stores all decay info for supR decays

initialise to 0

Create object ParticleSstrangeL, stores all decay info for sstrangeL decays

Create object ParticleSstrangeR, stores all decay info for sstrangeR decays

Create object ParticleScharmL, stores all decay info for scharmL decays

Create object ParticleScharmR, stores all decay info for scharmR decays

Create object ParticleSbottom1, stores all decay info for sbottom1 decays

Create object ParticleSbottom2, stores all decay info for sbottom2 decays

Create object ParticleStop1, stores all decay info for stop1 decays

Create object ParticleStop2, stores all decay info for stop2 decays

Create object ParticleSelectonL, stores all decay info for selectronL decays

Create object ParticleSelectronR, stores all decay info for selectronR decays

Create object ParticleSmuonL, stores all decay info for smuonL decays

Create object ParticleSmuonR, stores all decay info for smuonR decays

Create object ParticleSnue, stores all decay info for selectron sneutrino decays

Create object ParticleSnumu, stores all decay info for snumu decays

Create object ParticleStau1, stores all decay info for stau1 decays

Create object ParticleStau2, stores all decay info for stau2 decays

Create object ParticleSnutau, stores all decay info for snutau decays

Create object ParticleChargino1, stores all decay info for chargino1 decays

We consider decays of the W1+, the W1- decays then just follow with the same amplitudes but often particles swapped for their anitparticles

Create object ParticleChargino2, stores all decay info for chargino2 decays

has 4 additional decays cf chargino 1 as chargino2 -> chargino1 + Z/h/H/A as well

Create object ParticleNeutralino1, stores all decay info for neutralino1 decays (remember neutralinos are mass-ordered)

Create object ParticleNeutralino2, stores all decay info for neutralino2 decays (remember neutralinos are mass-ordered)

Create object ParticleNeutralino3, stores all decay info for neutralino3 decays (remember neutralinos are mass-ordered)

Create object ParticleNeutralin4, stores all decay info for neutralino4 decays (remember neutralinos are mass-ordered)

Create object Particlehiggsl, stores all decay info for higgsl (lightest CP even neutral Higgs) decays

Create object ParticleHiggsH, stores all decay info for HiggsH (heaviest CP even neutral Higgs of MSSM or second heaviest in NMSSM)

Create object ParticleHiggsA, stores all decay info for HiggsA (CP odd neutral Higgs, or lightest CP odd neutral Higgs in NMSSM)

Note A cannot decay into alike sfermion antisfermion paris because of CP conservation

Create object ParticleHiggsplus, stores all decay info for charged Higgs H+

Create also objects for NMSSM particles: Create object ParticleHiggsA2, stores all decay info for HiggsA2 (heaviest CP odd neutral Higgs of NMSSM)

Number of extra 1->2 decays when in NMSSM (47 like A1 then 5 similarly extra decays to neutralinos + A2 -> h3 Z + 3 A2 -> A1 h decays?????)

Create object ParticleHiggsH3, stores all decay info for HiggsH3 (Heaviest of the 3 CP even neutral Higgses of the NMSSM)

Create object ParticleNeutralino5, stores all decay info for neutralino5 decays (remember neutralinos are mass-ordered, so this is amix of singlino of NMSSM with the usual 4 neutralinos of MSSM)

1->3 decays not included in NMSSM, only in MSSM

Decays to gravitinos not included in NMSSM, only in MSSM

Initialise NeutMIX before using it in the integrals

Gluino Decays

Now need to calculate the partial decays of the gluino

1 to 3 decays of gluinos to neutralinos and first two gen quarks via dgauss method:

Note no 1to3 decays calculated in NMSSM, only in MSSM

1 to 3 decays of gluinos to charginos and q qpbar using dgauss method

Now fill up Array_Decays for the Gluino

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Sets BRs of gluino decays

Squark Decays

SdownL Decays

Gravitino decays only in MSSM

Extended neutralino sector of NMSSM means decays to neutralinos are different in NMSSM

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SdownR Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SupL Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SupR Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SstrangeL Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SstrangeR decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

ScharmL Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

ScharmR decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Sbottom1 Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Sbottom2 Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Stop1 Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Stop2 Decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no squark three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Slepton Decays

SelectonL decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SelectonR decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SmuonL decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

SmuonR decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Selectron sneutrino decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Smuon sneutrino decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Stau1 decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Stau2 decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Stau sneutrino decays

0 indicates no 3rd daughter so 1->2 decay.

Note currently no slepton three body decays included - may change in future versions

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Chargino Decays Chargino1 Decays

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Chargino2 Decays

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Neutralino Decays Neutralino1 Decays

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Neutralino2 Decays

Note set msf(2) very large as there is no msnuR so need this intermediate to decouple and not be present

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Neutralino3 Decays

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Neutralino4 Decays

0 indicates no 3rd daughter so 1->2 decay.

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Neutralino5 Decays

0 indicates no 3rd daughter so 1->2 decay.

0 as no 1->3 decays included yet in NMSSM

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Higgs decays higgsl decays

If QCDcorr off use these below -> running masses used to approximate some of QCD corrections at tree-level

No decays to u or d as PWs to u and d are tiny as proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

No decay to two tops as kinematically forbidden

With QCDcorr on then use actual pole masses for quarks as corrections being accounted for

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

No decay to two tops as kinematically forbidden

0 as leptons are like down-type quarks, divided by three as Nc is three for quarks but 1 for leptons

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Note not included for MSSM as h0 is always lighter than Hpm in that case

*2 as W+H- or W-H+

So read into other programs, e.g. PYTHIA, correctly

So read into other programs, e.g. PYTHIA, correctly

amplitude same as decay to ~chi1+ and ~chi2- by CP invariance

No higgs NLSP decays to gravitinos as they are unimportant as would be swamped by

0 indicates no 3rd daughter so 1->2 decay.

Could argue no need for test for nans here as the higgs 1 -> 3 decay formulae are all purely analytic algebraic expressions, therefore no numerical integration is involved so we can't get nans. Will check anyway as possibility of -ve sqrts in kinematics or -ve logs, or infs etc

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

higgsH decays

No decays to u or d as negligible as PW proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

use runmb here to reduce necessary corrections

may rather use mtPole here as closer to answer with corrections than runmt gives

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

0 as leptons are like down-type quarks, divide by 3 as No of colours is 1 for leptons cf 3 for quarks

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

use runmt and runmb here as mass used to set yukawa coupling, note however pole masses give greater agreement with susyhit as susyhit uses non-running masses here, similar for other higgs decays to third generation sfermions

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

*2 as W+H- or W-H+

So read into other programs, e.g. PYTHIA, correctly

So read into other programs, e.g. PYTHIA, correctly

amplitude same as decay to ~chi1+ and ~chi2- by CP invariance

As higgsH can't be NLSP as heavier than higgsl

0 indicates no 3rd daughter so 1->2 decay.

Could argue no need for test for nans here as the higgs 1 -> 3 decay formulae are all purely analytic algebraic expressions, therefore no numerical integration is involved so we can't get nans. Will check anyway as possibility of -ve sqrts in kinematics or -ve logs, or infs etc

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

higgsH3 decays

No decays to u or d as PWs to u and d are tiny as proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

use runmb here to reduce necessary corrections

may wish to use mtPole here rather than runmt as gives closer to answer with corrections

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

0 as leptons are like down-type quarks, divide by 3 as No of colours is 1 for leptons cf 3 for quarks

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

*2 as W+H- or W-H+

So read into other programs, e.g. PYTHIA, correctly

So read into other programs, e.g. PYTHIA, correctly

amplitude same as decay to W1+ and W2- by CP invariance

0 indicates no 3rd daughter so 1->2 decay.

Could argue no need for test for nans here as the higgs 1 -> 3 decay formulae are all purely analytic algebraic expressions, therefore no numerical integration is involved so we can't get nans. Will check anyway as possibility of -ve sqrts in kinematics or -ve logs, or infs etc

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

higgsA decays

No decays to u or d as PWs to u and d are tiny as proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

0 as leptons are like down-type quarks, divide by 3 as No of colours is 1 for leptons cf 3 for quarks

In general may wish to not allow the A -> HZ decay for heavy higgs as it's ruled out by SUSY constraints on the mass spectrum (Djouadi Tome II)?

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

NMSSM so need to modify by elements of pseudoscalar mixing matrix

No decays to u or d as PWs to u and d are tiny as proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

0 as leptons are like down-type quarks, divide by 3 as No of colours is 1 for leptons cf 3 for quarks

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

amplitude same as decay to W1+ and W2- by CP invariance

*2 so includes A -> W- H+

As higgsA can't be NLSP as heavier than higgsl

0 indicates no 3rd daughter so 1->2 decay.

Note no 3 body decays for HiggsA

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

NMSSM Pseudoscalar2 (A2) decays:

NMSSM

No decays to u or d as PWs to u and d are tiny as proportional to yukawas squared Use running masses here to try to approximate some of the correction (which aren't included)

mcpole and mspole set in decays.h, this values used are those appropriate for the scheme used for the h -> qq QCD corrections, as in hdecay

0 as leptons are like down-type quarks, divide by 3 as No of colours is 1 for leptons cf 3 for quarks

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

Use quark masses and gauge couplings run to the mass of the decaying higgs, exact scale these were evaluated may significantly alter the PW

amplitude same as decay to W1+ and W2- by CP invariance

*2 so includes A2 -> W- H+

0 indicates no 3rd daughter so 1->2 decay.

Note no 3 body decays for HiggsA2

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

Charged higgs+ decays

note Hplus -> H W is kinematically forbidden if we take tree-level mass formulae in the MSSM

for NMSSM

NMSSM

As higgsplus can't be NLSP as heavier than higgsl

0 indicates no 3rd daughter so 1->2 decay.

Note no 3 body decays for Higgsplus

Tests for a nan as only nans aren't equal to themselves

So only 1 to 2 decays are output if a 1 to 3 decay gives a nan

Tests for a nan as only nans aren't equal to themselves

double chargino2amplitudedecaychargino1neutHiggs ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  thetaL,
double  thetaR,
double  beta,
double  alpha,
char  phi 
)

m2 must be neutral Higgs mass

throw("DECAY to h\n");

throw("DECAY to H\n");

throw("DECAY to A\n");

double charginoamplitudedecayleptonsleptonL ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaLorR,
int  chargino 
)

lepton mass is m2, use thetaR for decays to sneutrinos and leptons, use thetaL for decays to sleptons neutrinos

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecayquarksquarkL ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
int  chargino 
)

quark mass is m2

altered as now + quarkmass/initialmass ^2 not minus

chargino1 decaying

theta is thetaL if sdownL and thetaR if supL

chargino2 decaying

theta is thetaL if sdownL and thetaR if supL

double charginoamplitudedecayquarksquarkmix ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
double  thetaL,
double  thetaR,
double  beta,
double  runmt,
double  runmb,
double  mWboson,
int  chargino,
int  upordowntypesquark,
int  oneortwo 
)

quark mass is m2

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecaysnutautau ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  beta,
double  mWboson,
int  chargino 
)

m2 must be tau mass

altered as now + quarkmass/initialmass ^2 not minus

double charginoamplitudedecaystaunutau ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  thetatau,
double  beta,
double  mWboson,
double  mtau,
int  oneortwo,
int  chargino 
)

m2 must be nutau mass (i.e. 0)

altered as now + quarkmass/initialmass ^2 not minus

reduces to 1 - pow(m3/m1,2) as m2 = 0

decaying to a stau1

decaying to a stau2

decaying to a stau1

decaying to a stau2

double fdgauss ( double  x)

Dgauss numerical integration integrand.

dgauss integrands for numerical integration of phase space in 1->3 decays Make sure you have set useInDGauss before calling this function

double gchidgauss ( double  Et)

avoid numerical error giving a negative and hence a nan for lambda at upper boundary of integration range

double gintegral1hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral1Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral1Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral2Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral3Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral4Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral5Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral6Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral7Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8Hsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, mhiggsl = mh, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gintegral8Zsfdgauss ( double  E)

m1 = mZi, m4 = mZj, mq = mf, MZboson = mz, m2 = msfi where i is the sfermion index you're considering for that interference (i = 1,2)

argument of the log

double gluinoamplitudedecay ( double  m1,
double  m2,
double  m3,
double  alphastrong 
)

Function Declarations used to calculate Partial Widths in decays.cpp.

Function Declarations used to calculate Partial Widths in decays.cpp.

double gluinoamplitudedecaydgausscharginoqqpbarfirsttwogen ( double  mgluino,
double  mchargino,
double  mquark,
double  mquarkp,
double  msqL,
double  msqpL,
double  g,
double  thetaL,
double  thetaR,
double  alphas,
int  charg,
bool  onetothree 
)

Functions for 1->3 decays via dgauss:

1->3 decay not relevant here if one to two decay open

chargino1 decaying

chargino2 decaying

Note mq isn't important really for these modes as they are first two gen quarks

double gluinoamplitudedecaydgausschartbbar ( double  mgluino,
double  mst1,
double  mst2,
double  msb1,
double  msb2,
double  mtop,
double  mbottom,
double  mchar,
double  alphas,
double  thetat,
double  thetab,
double  MWBoson,
double  g,
double  gp,
double  gammaL,
double  gammaR,
double  beta,
double  runmt,
double  runmb,
int  chargino,
bool  onetothree 
)

Different to T&B, they have + sin(2*thetat)*G8, I follow SPheno

Different to T&B, they have - sin(2*thetat)*G8, I follow SPheno

Global minus sign difference cf T&B, I follow SPheno

Different to T&B, they have - alphasb1ch*betasb1ch*G3sb1, I follow SPheno

Different to T&B, they have - alphasb2ch*betasb2ch*G3sb2, I follow SPheno

Taken mb -> 0 limit in squared matrix element (but not in phase space) so no sb1sb2 interference term

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

The sign in front of the G7st1sb1 and G5st1sb1 terms has been changed from that given in Baer and Tata in order to agree with SPheno.

double gluinoamplitudedecaydgaussneutralinoqqpbarfirsttwogen ( double  mgluino,
double  mneutralino,
double  msqL,
double  msqR,
double  mquark,
double  g,
double  gp,
DoubleMatrix mixNeut,
double  alphas,
char  uord,
int  neut,
bool  onetothree 
)

only done via usual method (not via a separate integrating function compute_areai) as can't pass a DoubleMatrix & in a function pointer

Hintegral1 to 3 decay functions calling dgauss

only done via usual method (not via a separate integrating function compute_areai) as can't pass a DoubleMatrix & in a function pointer

1->3 decay not relevant here if one to two decay open

double gluinoamplitudedecaydgaussneutralinottbar ( double  mgluino,
double  mst1,
double  mst2,
double  mneutralino,
double  mt,
double  mWboson,
double  g,
double  gp,
double  thetat,
double  beta,
double  alphas,
DoubleMatrix mixNeut,
double  runmt,
int  neutralino,
bool  onetothree,
char  torb 
)

calculates PW for gluino -> neutralino + q qbar pair where q are t

Note the effect of the complex couplings and the pm factors for negative masses cancel out as the couplings always appear in pairs so multiplying them gives an extra minus sign when they are purely imaginary, but this extra minus sign is cancelled out by the extra minus sign in the pm factor. Therefore really the additional minus signs come from the fact I've used the neutralino mass itself throughout my calculation (rather than its absolute value) which therefore naturally introduces additional minus signs.

Gammast1st2 terms as from T&B but with sign change for X term and also the factor of -(cos^2(thetat)-sin^2(thetat))(st1alpha1*st2alpha1+st1beta1*st2beta1) T&B has in the chiprime term has been changed to (cos^2(thetat)+sin^2(thetat))(st1alpha1*st2alpha1 - st1beta1*st2beta1) = 1*(st1alpha1*st2alpha1 - st1beta1*st2beta1), in order in both cases to agree with SPHENO

Extra terms SPHENO has in Gammast1st2 not present in T&B

double gluinoamplitudedecaygravitino ( double  m1,
double  mgrav,
double  MPlreduced,
int  gravonoff,
int  gluNLSP 
)

Decays to gravitinos.

Function that calculates the decays to gravitinos of gluinos if int gravonoff == 1, otherwise decays to gravitinos are off

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double gneuticharjffp1sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp2sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp3sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneuticharjffp4sf1sf2dgauss ( double  E)

m1 = mneutralinoi, m2 = mf, m3 = mcharginoj, m4 = mfp, m5 = msf1, m6 = msf2

Avoid small negative values of squareplus at upper boundary where theoretically s = 0 exactly.

double gneutineutjffZ1dgauss ( double  s)

m1 = mneuti, m4 = mneutj, mq = mf, MZboson = mZboson

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ2dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ3dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gneutineutjffZ4dgauss ( double  s)

Set to 0 to avoid numerical precision causing a very small but positive squareminus1 at smax when it should be exactly 0, this can cause problems as it would make lambda1 the sqrt of a negative number (as squareplus1 is negative), avoid this by setting to 0

double gpsitildadgauss ( double  Et)

< this can happen erronesouly at very end of range due to finite precision used, squareplus should actually then be very very small and +ve

double gXdgauss ( double  Et)

avoid numerical error giving a negative and hence a nan for lambda at upper boundary of integration range

double higgsAamplitudedecaygammagammaNMSSM ( double  m1,
double  g,
double  gprime,
double  alpha,
double  mWboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mtau,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
int  higgs 
)

CF(CA) in NMSSMTools

Initialise these components

double higgsAamplitudedecaygluongluonNMSSM ( double  m1,
double  g,
double  gs,
double  alphas,
double  mWboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  lam,
int  higgs,
bool  QCD 
)

CF(CA) in NMSSMTools

Initialise these components

No squark loop contributions as CP odd higgs

No squark loop contributions as CP odd higgs

Pass hggQCDcorrections 'A' as it just matters whether it is CPeven (so 95/4 in FQCD) or CPodd (so 97/4 in FQCD)

double higgsAamplitudedecaysamecharginoNMSSM ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  lam,
DoubleMatrix CPOMix,
int  chargino,
int  pseudoscalar 
)

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double higgsAamplitudedecaysfermionsNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  mf,
double  Asf,
double  beta,
double  lam,
double  mueff,
DoubleMatrix CPOMix,
char  uord,
int  pseudoscalar 
)

NMSSM functions (where MSSM functions haven't been recycled)

NMSSM functions (where MSSM functions haven't been recycled)

double higgsAamplitudedecayZgammaNMSSM ( double  m1,
double  g,
double  gp,
double  alpha,
double  mWboson,
double  mZboson,
DoubleMatrix CPOMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
int  higgs 
)

CF(CA) in NMSSMTools

Initialise these components

double higgsCPevenamplitudedecayAANMSSM ( double  m1,
double  mA1,
double  mA2,
double  mWboson,
double  runmt,
double  runmb,
double  g,
double  gp,
double  beta,
DoubleMatrix CPEMix,
DoubleMatrix CPOMix,
double  lam,
double  kappa,
double  Alambda,
double  Akappa,
double  mueff,
int  higgs,
int  pseudoscalar1,
int  pseudoscalar2 
)

Multiplied by 2 later if A A2 to account for indistinguishability

double higgsCPevenamplitudedecaygammagammaNMSSM ( double  m1,
double  mtop,
double  mbottom,
double  mcharm,
double  mtau,
double  mWboson,
double  mHpm,
double  mchar1,
double  mchar2,
double  mscharmL,
double  mscharmR,
double  mstop1,
double  mstop2,
double  msstrangeL,
double  msstrangeR,
double  msbottom1,
double  msbottom2,
double  msmuonL,
double  msmuonR,
double  mstau1,
double  mstau2,
DoubleMatrix CPEMix,
double  beta,
double  g,
double  gp,
double  alpha,
double  thetat,
double  thetab,
double  thetatau,
double  thetaL,
double  thetaR,
double  At,
double  Ab,
double  Atau,
double  mu,
double  mueff,
double  lam,
double  kappa,
double  Alambda,
int  higgs 
)

Initialise

CF(CA) in NMSSMTools

double higgsCPevenamplitudedecaygluongluonNMSSM ( double  m1,
double  mtop,
double  mbottom,
double  mcharm,
double  mWboson,
double  mscharmL,
double  mscharmR,
double  mstop1,
double  mstop2,
double  msstrangeL,
double  msstrangeR,
double  msbottom1,
double  msbottom2,
double  msupL,
double  msupR,
double  msdownL,
double  msdownR,
double  runmt,
double  runmb,
DoubleMatrix CPEMix,
double  beta,
double  g,
double  gp,
double  gs,
double  alphas,
double  thetat,
double  thetab,
double  thetaL,
double  thetaR,
double  At,
double  Ab,
double  mu,
double  mueff,
double  lam,
double  kappa,
double  Alambda,
int  higgs,
bool  QCD 
)

Initialise

CF(CA) in NMSSMTools

Pass hggQCDcorrections 'h' as it just matters whether it is CPeven (so 95/4 in FQCD) or CPodd (so 97/4 in FQCD)

double higgsesamplitudedecaygluongluontotal ( double  m1,
double  g,
double  gs,
double  gprime,
double  mWboson,
double  alpha,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mstop1,
double  mstop2,
double  msbottom1,
double  msbottom2,
double  thetat,
double  thetab,
double  greekmu,
double  Atop,
double  Abottom,
double  mstrange,
double  mscharmL,
double  mscharmR,
double  msstrangeL,
double  msstrangeR,
double  Acharm,
double  Astrange,
double  mup,
double  mdown,
double  msupL,
double  msupR,
double  msdownL,
double  msdownR,
double  Aup,
double  Adown,
char  higgstype,
bool  QCD 
)

function that calculates the partial width for h->gluon gluon at 1-loop (forbidden at tree-level)

Now as the only difference is in the prefactor I can use the same functions for each of the loop contributions as in the higgs to gamma gamma case.

double higgsH3amplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgsH3amplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

uLuL

dLdL

uRuR

dRdR

DoubleVector higgsH3amplitudedecayVVNMSSM ( double  m1,
double  mWboson,
double  mZboson,
double  g,
double  gp,
double  alpha,
double  beta,
char  Vtype,
DoubleMatrix CPEMix,
bool  nmssmIsIt 
)

Function that calculates the Heavy Higgs decays to two vector bosons, assuming both are on-shell.

Only get H3 in NMSSM

Only get H3 in NMSSM

double higgshamplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgsHamplitudedecay2sleptonsamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sl 
)

snuLsnuL - drop terms proportional to ml^2 here

slLslL

slRslR

double higgshamplitudedecay2squarkdiffhandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  alpha,
double  beta,
double  mWboson,
double  mq,
double  Aq,
double  mueff,
double  lam,
DoubleMatrix CPEMix,
int  sq,
int  higgs 
)

uLuR

dLdR

double higgshamplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

takes MSSM amplitude and applies relevant NMSSM prefactor to get NMSSM amplitude

uLuL

dLdL

uRuR

dRdR

double higgsHamplitudedecay2squarksamehandNMSSM ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson,
double  mq,
DoubleMatrix CPEMix,
int  sq 
)

uLuL

dLdL

uRuR

dRdR

double higgshamplitudedecayAA ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for h->AA

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayAA ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for H->AA

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayhh ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for h->hh

obviously 1, just for comparison and consistency with other decay modes

double higgsHamplitudedecayHplusHminus ( double  m1,
double  m2,
double  g,
double  gp,
double  alpha,
double  beta,
double  mWboson 
)

calculates partial width for H->H+H-

obviously 1, just for comparison and consistency with other decay modes

double higgshamplitudedecayneutineutjNMSSM ( double  m1,
double  mneuti,
double  mneutj,
double  g,
double  gp,
DoubleMatrix CPEMix,
DoubleMatrix mixNeut,
double  lam,
double  kappa,
int  neuti,
int  neutj,
int  higgs 
)

accounts for decay being neuti neutj or neutj neuti when i!=j

for same neutralino they are QM indistinguishable so don't get factor of 2

DoubleVector higgshamplitudedecayVV ( double  m1,
double  mWboson,
double  mZboson,
double  g,
double  gp,
double  alpha,
double  beta,
char  Vtype,
DoubleMatrix CPEMix,
bool  nmssmIsIt 
)

double higgsamplitudedecayVVstar (double m1, double mboson, double g, double gp, double beta, double alpha, char Vtype);

double higgsamplitudedecayVVstar (double m1, double mboson, double g, double gp, double beta, double alpha, char Vtype);

I don't calculate cases where both are off-shell

I don't calculate cases where both are off-shell

double higgshamplitudedecayZgammaNMSSM ( double  m1,
double  g,
double  gp,
double  alpha,
double  mWboson,
double  mZboson,
double  mHpm,
DoubleMatrix CPEMix,
double  beta,
double  mtop,
double  mbottom,
double  mcharm,
double  mch1,
double  mch2,
double  thetaL,
double  thetaR,
double  lam,
double  kappa,
double  Alambda,
double  greekmu,
double  mueff,
int  higgs 
)

CF(CA) in NMSSMTools

Initialise these components

ignored corrections for now - no top or bottom loop corrections ///MUP in NMSSMTools is a fine-tuning parameter - set 0

double higgslorHamplitudedecayquarkantiquark ( double  m1,
double  m2,
double  g,
double  alpha,
double  beta,
double  mWboson,
int  uord,
char  lorH,
DoubleMatrix CPEMix,
bool  nmssmIsIt,
bool  QCD,
double  alphas 
)

uord indicates if it's an up type quark (1) or down type quark (0) to choose which trig functions to act on the mixing angles (which parts of the mixing matrices), and int lorH tells the program if it's a light higgs (l) or heavy higgs (H) decaying in order to change the trig functions acting on the mixing angles; note can also use this formula for decays of higgs to leptons as these are in this sense down-type

M for max i.e. H3 heaviest higgs in NMSSM

u

d

double higgsphiamplitudedecaydifchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  beta,
char  phi 
)

this function calls the function higgsphicharginocouplings to calculate the couplings for it

this function calls the function higgsphicharginocouplings to calculate the couplings for it

double higgsphiamplitudedecayneutralinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  tanthetaW,
double  mixingangle,
DoubleMatrix mixNeut,
int  ineutralino,
int  fneutralino,
char  phi 
)

phi tells it whether a "h", "H" or "A" is decaying

here mixingangle is alpha

these are actually Xij/g and Xji/g really

here mixingangle is alpha

here mixingangle is beta

double higgsphiamplitudedecaysamechargino ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  alpha,
double  beta,
int  chargino,
char  phi 
)

phi tells it whether a "h", "H" or "A" is decaying

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double higgsphiamplitudedecaysamecharginoNMSSM ( double  m1,
double  m2,
double  g,
double  thetaL,
double  thetaR,
double  lam,
DoubleMatrix CPEMix,
int  chargino,
int  higgs 
)

so ofcourse squarminus is just 1, just keeping link with other amplitudes

double neutralinoamplitudedecaycharginoffprimebar ( double  mneutralinoi,
double  msfp1,
double  msfp2,
double  msf1,
double  msf2,
double  mWboson,
double  mHP,
double  mcharginoj,
double  mfp,
double  mf,
double  thetaq,
double  thetaqp,
double  g,
double  gp,
double  alpha,
double  beta,
double  thetaL2,
double  thetaR2,
double  runmqp,
double  runmq,
DoubleMatrix mixNeut,
int  ineutralino,
int  jchargino,
bool  onetothree,
char  qorl,
char  norc 
)

Just usual yukawa for up type

Just usual yukawa for down type

correction factor for negative masses

correction factor for negative masses

correction factor for if it's chargino -> neutralino fp fbar rather than neutralino -> chargino fpbar f

No snuR exists so only one sfp contribution

No snuR exists so only one sfp contribution

GammaW

Hpm1 contribution (W+ goldstone):

Hpm2 contribution (Actual Hpm):

Sfp Sfp diagonal (Remember fp is u-type fermion)

Sf Sf diagonal

Sfp t sf u interference Sfp 1 sf 2

Sfp 1 Sf 1 interference

Sfp 2 Sf 2 interference

Sfp 2 Sf 1 interference

W-Hpm interference

W-goldstone interference

W Sfp 1 interference

W Sfp 2 interference

W Sf1 interference

W Sf2 interference

H+ goldstone interference

goldstone - sfp1 interference

swap which integral goes with which couplingcombo

goldstone - sfp2 interference

H+ - sfp1 interference

H+ - sfp2 interference

goldstone - sf1 interference

goldstone - sf2 interference

Hpm - sf2 interference

Sfp Sfp interference

Sf - Sf interference

double neutralinoamplitudedecaydgaussneutralinoffbar ( double  mneutralinoi,
double  msf1,
double  msf2,
double  mZboson,
double  mhiggsl,
double  mhiggsH,
double  mhiggsA,
double  mneutralinoj,
double  mf,
double  alphas,
double  thetaq,
double  mWboson,
double  g,
double  gp,
double  alpha,
double  beta,
double  runmq,
DoubleMatrix mixNeut,
int  ineutralino,
int  jneutralino,
bool  onetothree,
char  uordornuorl 
)

correction factor for negative masses

correction factor for negative masses

First sf t sf u msf1-msf1, msf1-msf2, msf2-msf2 components:

sf sf diag contribution 2x as t and u same

sf sf non diag 2x as t and u same

Pseudoscalar A contribution:

Have an additional pseudoscalar goldstone with mass of Z due to being in Feynman gauge, to add in the longitudinal polarisation of the Z

set so can use same integrals as for pseudoscalar A boson but now with Z mass

here set mh = mA as using the integrands written for h with mh -> mA

here set mh = mA as using the integrands written for h with mh -> mA

Goldstone - sf interference:

here set mh = mZ as using the integrands written for h with mh -> mA -> mZ

here set mh = mZ as using the integrands written for h with mh -> mA -> mZ

Goldstone-A interference

Coupling combos:

double neutralinoamplitudedecayleptonsleptonLorR ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
char  LorR,
int  neutralino 
)

m2 must be lepton mass

so get wino and zino couplings as LH slepton

so get only Zino couplings as RH

double neutralinoamplitudedecayneutralinoneutHiggs ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
double  mixingangle,
int  ineutralino,
int  fneutralino,
char  phi 
)

m2 must be phi mass, ineutralino is i in T&B whilst fneutralino is j

here mixingangle is alpha

here mixingangle is alpha

here mixingangle is beta

double neutralinoamplitudedecayphigravitino ( double  m1,
double  mphi,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  alpha,
double  beta,
int  neutralino,
int  gravonoff,
char  phi,
int  neutNLSP 
)

Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double neutralinoamplitudedecayphotongravitino ( double  m1,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  g,
double  gp,
int  neutralino,
int  gravonoff,
int  neutNLSP 
)

Function that calculates the decays to gravitino and photon of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double neutralinoamplitudedecayquarksquarkLorR ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  uordtype,
char  LorR,
int  neutralino 
)

m2 must be quark mass

up type squark (i.e. u squark or c squark)

down type squark (i.e. d squark or s squark)

so get wino and zino couplings as LH squark

so get only Zino couplings as RH

double neutralinoamplitudedecaysquark3quarkmix ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  runmq,
int  squark,
int  oneortwo,
int  neutralino 
)

m2 must be quark mass

we have stops

we have stop1s

this is just simpler (rearranged) form of atopr(1,i) from susyhit *g

this is just simpler (rearranged) form of btopr(1,i) from susyhit * g

we have stop2s

again simplified form of atopr(2,i) * g from susyhit

again simplified form of btopr(2,i) * g from susyhit

we have sbottoms

we have sbottom1s

just simplified form of abot(1,i) * g from susyhit

we have sbottom2s

simplified abot(2,i)*g from susyhit

simplified bbot(2,i)*g from susyhit

double neutralinoamplitudedecaystautau ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
int  oneortwo,
int  neutralino 
)

m2 must be tau (i.e. lepton) mass

we are decaying into a stau1

we are decaying into a stau2

double neutralinoamplitudedecayZgravitino ( double  m1,
double  mZ,
double  mgrav,
double  MPlreduced,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  beta,
int  neutralino,
int  gravonoff,
int  neutNLSP 
)

Function that calculates the decays to gravitino and Z boson of a neutralino if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

void printRowPDG ( ostream &  cout,
double  x 
)

make it return a character when you've worked out the equivalent of printf

Traps -0.0

double sleptonamplitudedecaychargino ( double  m1,
double  m2,
double  m3,
double  g,
double  theta,
int  chargino 
)

for both sleptonL decays to charginos + neutrinos and for sneutrino decays to lepton + charginos - just change theta from thetaL in first case to thetaR in second case

note in the slepton decay to neutrinos case m2 is zero so lambda reduces to squareratio - giving squareratio squared

double sleptonamplitudedecayleptonneutralinoNMSSM ( double  m1,
double  ml,
double  mneut,
double  g,
double  gp,
DoubleMatrix mixNeut,
char  uord,
char  LorR,
int  neut 
)

no sneutrinoR

double sneutrinoamplitudedecayneutrinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

note here as m2=0 then lambda and squareratio each reduce to (1-pow(m3/m1,2))

double snutauamplitudedecaynutauneutralinoNMSSM ( double  m1,
double  mneut,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

c2 is c(2) from above formulae

double squark32amplitudedecayneutralHiggssquark3 ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  mWboson,
double  beta,
double  alpha,
double  thetat,
double  thetab,
double  greekmu,
double  At,
double  Ab,
double  mt,
double  mb,
int  torb,
char  phi 
)

possible minus sign issue here, both terms are same sign in susyhit -> changed second sign to - ?? whereas Tata and Baer has a signs of two terms opposite - note as it's squared anyway only relative sign between the two terms matters

stop2 decay

sbottom2 decay

double squark3amplitudedecaychargedHiggssquark3 ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  beta,
double  thetat,
double  thetab,
double  greekmu,
double  At,
double  Ab,
double  mt,
double  mb,
int  t1or2,
int  b1or2 
)

we have an initial stop1

we have a final state sbottom1

we have a final state sbottom2

we have an initial stop2

we have a final state sbottom1

we have a final state sbottom2

double squark3amplitudedecayneutralino ( double  m1,
double  m2,
double  m3,
double  mWboson,
double  theta,
double  beta,
DoubleMatrix mixNeut,
double  g,
double  gp,
double  runmt,
int  squark,
int  oneortwo,
int  neutralino 
)

we have stops

we have stop1s

this is just simpler (rearranged) form of atopr(1,i) from susyhit *g

this is just simpler (rearranged) form of btopr(1,i) from susyhit * g

we have stop2s

again simplified form of atopr(2,i) * g from susyhit

again simplified form of btopr(2,i) * g from susyhit

we have sbottoms

we have sbottom1s

just simplified form of abot(1,i) * g from susyhit

we have sbottom2s

simplified abot(2,i)*g from susyhit

simplified bbot(2,i)*g from susyhit

double squark3amplitudedecaysquark3Wboson ( double  m1,
double  m2,
double  m3,
double  g,
double  thetat,
double  thetab,
int  m1torb,
int  m1oneortwo,
int  m3torb,
int  m3oneortwo 
)

m1torb tells the function if the initial squark is a stop or sbottom, m1oneortwo tells it whether it's the lighter or heavier squark, similarly for the final state squark with m3torb and m3oneortwo

we have an initial stop

we have an initial stop1

we have an initial sbottom

we have an initial sbottom1

we have a final state stop

we have a final state stop2

we have a final state sbottom

we have a final state sbottom1

we have a final state sbottom2

double squarkamplitudedecaygravitino ( double  m1,
double  mgrav,
double  mquark,
double  MPlreduced,
int  gravonoff,
int  squNLSP 
)

Function that calculates the decays to gravitinos of squark if int gravonoff == 1, otherwise decays to gravitinos are off.

Comment this line, last line and line 3 below this out if always want decays to gravitinos output

double squarkRamplitudedecayneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gprime,
DoubleMatrix mixNeut,
int  neutralino,
int  uord 
)

neutralino takes values of 1, 2, 3, or 4 and denotes which neutralino mass eigenstate we decay into, uord takes value 1 for up quarks (or charm quarks) and -1 for down quarks (or strange quarks) in order to change the sign and magnitude of the coefficient BqZ accordingly

Following changes in AqZ suggested by SUSYHIT

need to check this formula, unsure about BqZ and also if it should be mod squared or just the squared I have done here!

double stau2amplitudedecaystau1phi ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  thetatau,
double  beta,
double  alpha,
double  mWboson,
double  mtau,
double  greekmu,
double  Atau,
char  phi 
)

is just -1 + 3*pow(tanthetaW,2)

double stauamplitudedecaynutauchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  theta,
double  thetaL,
double  beta,
double  mtau,
int  oneortwo,
int  chargino 
)

again lambda and squareratio reduce to same thing as m2 = 0

double stauamplitudedecaytauneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
double  mWboson,
DoubleMatrix mixNeut,
double  theta,
double  beta,
int  oneortwo,
int  neutralino 
)

we have a stau1 decaying

we have a stau2 decaying

double stausneutrinoamplitudedecaytauchargino ( double  m1,
double  m2,
double  m3,
double  g,
double  mWboson,
double  beta,
double  thetaL,
double  thetaR,
int  chargino 
)

as m2 is mtau which is what we need to calculate ftau

double stausneutrinoamplitudedecaytauneutrinoneutralino ( double  m1,
double  m2,
double  m3,
double  g,
double  gp,
DoubleMatrix mixNeut,
int  neutralino 
)

note lambda and squareratio reduce to same thing here as m2 = 0

Variable Documentation

const double mcpole = 1.40

Change mcpole to alter quark "pole" masses used in h -> qq with QCD corrections

const double mspole = 0.19

Change mspole to alter quark "pole" masses used in h -> qq with QCD corrections