softsusy is hosted by Hepforge, IPPP Durham
 SOFTSUSY  4.1
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:1703.09717. More...

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

Go to the source code of this file.

## Functions

int calculateDecays (ostream &out, MssmSoftsusy *r, vector< Particle > &decayTable, const NmssmSoftsusy &nmssm, bool nmssmIsIt)
Calculate Decays does all decay table calculations and outputs. More...

## Variables

double m1
global decay variables More...

double m2

double m3

double m4

double mq

double m5

double m6

double m7

double m8

double MZboson

double MWboson

double mh

double mH

double mA

double mphi

double betavac

double g1

double g2

double alphamix

int neutralinoj

int neutralinoi

int AorhorH

DoubleMatrix NeutMIX

## Detailed Description

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

## ◆ calculateDecays()

 int calculateDecays ( ostream & out, MssmSoftsusy * r, vector< Particle > & decayTable, const NmssmSoftsusy & nmssm, bool nmssmIsIt )

Calculate Decays does all decay table calculations and outputs.

We work on the principle that any problem flags should already be set, and calculateDecays should not change them

Initialise global decay variables

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

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

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

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)

is P2 in NMSSMTools

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

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

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

Ben: added in the charged pion/neutralino decay here

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

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

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

Somehow, you need to sneak in the pion decay here and re-number the other decays

If at too low mass difference, use pions rather than quarks

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

*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

Construct decay table

calculate branching ratios

re-set problem flags to their values before decays were calculated

## ◆ m1

 double m1

global decay variables

global decay variables