PYTHIA  8.312
Classes | Public Member Functions | Public Attributes | List of all members
SusyLesHouches Class Reference

Classes

class  Entry
 Class for SLHA data entry. More...
 

Public Member Functions

 SusyLesHouches (int verboseIn=1)
 Constructor, with and without filename.
 
 SusyLesHouches (string filename, int verboseIn=1)
 
*Read and write SLHA files *int readFile (string slhaFileIn="slha.spc", int verboseIn=1, bool useDecayIn=true)
 The SusyLesHouches class. More...
 
int readFile (istream &, int verboseIn=1, bool useDecayIn=true)
 
void listHeader ()
 Output utilities. More...
 
void listFooter ()
 print Header More...
 
void listSpectrum (int ifail=0)
 print Footer More...
 
int checkSpectrum ()
 print Spectrum More...
 
template<class T >
int set (string, T)
 Im{} (for future use) More...
 
template<class T >
int set (string, int, T)
 
template<class T >
int set (string, int, int, T)
 
template<class T >
int set (string, int, int, int, T)
 
*bool getEntry (name, indices, value)*
 
template<class T >
bool getEntry (string, T &)
 utilities to read generic blocks More...
 
template<class T >
bool getEntry (string, int, T &)
 
template<class T >
bool getEntry (string, int, int, T &)
 
template<class T >
bool getEntry (string, int, int, int, T &)
 
template<class T >
bool getEntry (string, vector< int >, T &)
 
int verbose ()
 Access/change verbose setting.
 
void verbose (int verboseIn)
 
void message (int, string, string, int line=0)
 Output of messages from SLHA interface. More...
 

Public Attributes

string slhaFile
 File Name (can be either SLHA or LHEF)
 
*Blocks for model definition: */ LHblock<int> modsel
 
LHblock< int > modsel21
 
LHblock< double > modsel12
 
LHblock< double > minpar
 
LHblock< double > extpar
 
LHblock< double > sminputs
 
LHblock< string > spinfo
 Blocks for RGE program specific output.
 
LHblock< string > spinfo3
 
LHblock< string > spinfo4
 
LHblock< string > dcinfo
 Blocks for DCY program specific output.
 
LHblock< string > dcinfo3
 
LHblock< string > dcinfo4
 
LHblock< double > mass
 Blocks for mass and coupling spectrum.
 
LHmatrixBlock< 4 > nmix
 
LHmatrixBlock< 2 > umix
 
LHmatrixBlock< 2 > vmix
 
LHmatrixBlock< 2 > stopmix
 
LHmatrixBlock< 2 > sbotmix
 
LHmatrixBlock< 2 > staumix
 
LHblock< double > alpha
 
LHblock< double > hmix
 
LHblock< double > gauge
 
LHblock< double > msoft
 
LHmatrixBlock< 3 > au
 
LHmatrixBlock< 3 > ad
 
LHmatrixBlock< 3 > ae
 
LHmatrixBlock< 3 > yu
 
LHmatrixBlock< 3 > yd
 
LHmatrixBlock< 3 > ye
 
vector< LHdecayTabledecays
 ************************ THE SLHA1 DECAY TABLES ************************///
 
map< int, int > decayIndices
 
vector< LHblock< double > > qnumbers
 ********************* THE BSM-SLHA QNUMBERS BLOCKS *********************///
 
vector< string > qnumbersName
 Zero'th entry is PDG code.
 
vector< string > qnumbersAntiName
 
*Additions to SLHA1 *LHblock< double > qextpar
 
LHblock< double > vckmin
 FLV Input.
 
LHblock< double > upmnsin
 The input CKM Wolfenstein parms.
 
LHmatrixBlock< 3 > msq2in
 The input PMNS PDG parms.
 
LHmatrixBlock< 3 > msu2in
 The input upper off-diagonal msq2.
 
LHmatrixBlock< 3 > msd2in
 The input upper off-diagonal msu2.
 
LHmatrixBlock< 3 > msl2in
 The input upper off-diagonal msd2.
 
LHmatrixBlock< 3 > mse2in
 The input upper off-diagonal msl2.
 
LHmatrixBlock< 3 > tuin
 The input upper off-diagonal mse2.
 
LHmatrixBlock< 3 > tdin
 The input upper off-diagonal TU.
 
LHmatrixBlock< 3 > tein
 The input upper off-diagonal TD.
 
LHmatrixBlock< 3 > vckm
 FLV Output. More...
 
LHmatrixBlock< 3 > upmns
 The output DRbar running Re{VCKM} at Q.
 
LHmatrixBlock< 3 > msq2
 The output DRbar running Re{UPMNS} at Q.
 
LHmatrixBlock< 3 > msu2
 The output DRbar running msq2 at Q.
 
LHmatrixBlock< 3 > msd2
 The output DRbar running msu2 at Q.
 
LHmatrixBlock< 3 > msl2
 The output DRbar running msd2 at Q.
 
LHmatrixBlock< 3 > mse2
 The output DRbar running msl2 at Q.
 
LHmatrixBlock< 3 > tu
 The output DRbar running mse2 at Q.
 
LHmatrixBlock< 3 > td
 The output DRbar running TU at Q.
 
LHmatrixBlock< 3 > te
 The output DRbar running TD at Q.
 
LHmatrixBlock< 6 > usqmix
 The output DRbar running TE at Q.
 
LHmatrixBlock< 6 > dsqmix
 The Re{} up squark mixing matrix.
 
LHmatrixBlock< 6 > selmix
 The Re{} down squark mixing matrix.
 
LHmatrixBlock< 3 > snumix
 The Re{} selectron mixing matrix.
 
LHmatrixBlock< 3 > snsmix
 The Re{} sneutrino mixing matrix.
 
LHmatrixBlock< 3 > snamix
 The scalar sneutrino mixing matrix.
 
LHtensor3Block< 3 > rvlamllein
 The pseudoscalar neutrino mixing matrix. More...
 
LHtensor3Block< 3 > rvlamlqdin
 The input LNV lambda couplings.
 
LHtensor3Block< 3 > rvlamuddin
 The input LNV lambda' couplings.
 
LHtensor3Block< 3 > rvtllein
 The input BNV lambda'' couplings.
 
LHtensor3Block< 3 > rvtlqdin
 The input LNV T couplings.
 
LHtensor3Block< 3 > rvtuddin
 The input LNV T' couplings.
 
LHblock< double > rvkappain
 The input BNV T'' couplings.
 
LHblock< double > rvdin
 The input LNV kappa couplings.
 
LHblock< double > rvm2lh1in
 The input LNV D terms.
 
LHblock< double > rvsnvevin
 The input LNV m2LH1 couplings.
 
LHtensor3Block< 3 > rvlamlle
 RPV Output. More...
 
LHtensor3Block< 3 > rvlamlqd
 The output LNV lambda couplings.
 
LHtensor3Block< 3 > rvlamudd
 The output LNV lambda' couplings.
 
LHtensor3Block< 3 > rvtlle
 The output BNV lambda'' couplings.
 
LHtensor3Block< 3 > rvtlqd
 The output LNV T couplings.
 
LHtensor3Block< 3 > rvtudd
 The output LNV T' couplings.
 
LHblock< double > rvkappa
 The output BNV T'' couplings.
 
LHblock< double > rvd
 The output LNV kappa couplings.
 
LHblock< double > rvm2lh1
 The output LNV D terms.
 
LHblock< double > rvsnvev
 The output LNV m2LH1 couplings.
 
LHmatrixBlock< 7 > rvnmix
 The output LNV sneutrino vevs.
 
LHmatrixBlock< 5 > rvumix
 The RPV neutralino mixing matrix.
 
LHmatrixBlock< 5 > rvvmix
 The RPV chargino L mixing matrix.
 
LHmatrixBlock< 5 > rvhmix
 The RPV chargino R mixing matrix.
 
LHmatrixBlock< 5 > rvamix
 The RPV neutral scalar mixing matrix.
 
LHmatrixBlock< 8 > rvlmix
 The RPV neutral pseudoscalar mixing matrix.
 
LHblock< double > imminpar
 The RPV charged fermion mixing matrix. More...
 
LHblock< double > imextpar
 
LHmatrixBlock< 4 > cvhmix
 CPV Output.
 
LHmatrixBlock< 4 > imcvhmix
 The CPV Higgs mixing matrix.
 
LHmatrixBlock< 3 > imau
 Optional: imaginary components.
 
LHmatrixBlock< 3 > imad
 
LHmatrixBlock< 3 > imae
 
LHblock< double > imhmix
 Im{} of AU, AD, AE.
 
LHblock< double > immsoft
 
LHmatrixBlock< 3 > immsq2in
 CPV + FLV Input.
 
LHmatrixBlock< 3 > immsu2in
 The Im{} input upper off-diagonal msq2.
 
LHmatrixBlock< 3 > immsd2in
 The Im{} input upper off-diagonal msu2.
 
LHmatrixBlock< 3 > immsl2in
 The Im{} input upper off-diagonal msd2.
 
LHmatrixBlock< 3 > immse2in
 The Im{} input upper off-diagonal msl2.
 
LHmatrixBlock< 3 > imtuin
 The Im{} input upper off-diagonal mse2.
 
LHmatrixBlock< 3 > imtdin
 
LHmatrixBlock< 3 > imtein
 
LHmatrixBlock< 3 > imvckm
 CPV + FLV Output. More...
 
LHmatrixBlock< 3 > imupmns
 The output DRbar running Im{VCKM} at Q.
 
LHmatrixBlock< 3 > immsq2
 The output DRbar running Im{UPMNS} at Q.
 
LHmatrixBlock< 3 > immsu2
 The output DRbar running msq2 at Q.
 
LHmatrixBlock< 3 > immsd2
 The output DRbar running msu2 at Q.
 
LHmatrixBlock< 3 > immsl2
 The output DRbar running msd2 at Q.
 
LHmatrixBlock< 3 > immse2
 The output DRbar running msl2 at Q.
 
LHmatrixBlock< 3 > imtu
 The output DRbar running mse2 at Q.
 
LHmatrixBlock< 3 > imtd
 
LHmatrixBlock< 3 > imte
 
LHmatrixBlock< 6 > imusqmix
 Im{} of TU, TD, TE.
 
LHmatrixBlock< 6 > imdsqmix
 The Im{} up squark mixing matrix.
 
LHmatrixBlock< 6 > imselmix
 The Im{} down squark mixing matrix.
 
LHmatrixBlock< 3 > imsnumix
 The Im{} selectron mixing matrix.
 
LHmatrixBlock< 4 > imnmix
 The Im{} sneutrino mixing matrix.
 
LHmatrixBlock< 4 > imumix
 The Im{} neutralino mixing matrix.
 
LHmatrixBlock< 4 > imvmix
 The Im{} chargino L mixing matrix.
 
LHblock< double > nmssmrun
 The Im{} chargino R mixing matrix. More...
 
LHmatrixBlock< 3 > nmhmix
 The LHblock of NMSSM running parameters.
 
LHmatrixBlock< 3 > nmamix
 The NMSSM scalar Higgs mixing.
 
LHmatrixBlock< 5 > nmnmix
 The NMSSM pseudoscalar Higgs mixing.
 
LHmatrixBlock< 5 > imnmnmix
 The NMSSM neutralino mixing.
 

Member Function Documentation

int checkSpectrum ( )

print Spectrum

Check spectrum and decays

Check consistency of spectrum, unitarity of matrices, etc. Return codes: 2 : no SUSY spectrum, and no MASS block either. 1 : no SUSY spectrum; but there is a MASS block. 0 : there is a SUSY spectrum and it looks ok. -1 : there is a SUSY spectrum but it does not look ok.

Step 1) Check MODSEL. Assign default values where applicable.

Step 2) Check for existence / duplication of blocks

Global

SLHA1

Check for required SLHA1 blocks

RPV (+ FLV)

Check for required SLHA2 blocks (or see if can be extracted from SLHA1)

FLV but not RPV (see above for FLV+RPV, below for FLV regardless of RPV)

Quark FLV

Lepton FLV

CPV

FLV (regardless of whether RPV or not)

Quark FLV

The following checks are not considered crucial since the entries may not be needed to compute required derived couplings.

Lepton FLV

Step 3) SLHA1 –> SLHA2 interoperability Note: the mass basis is NOT mass-ordered in SLHA1, so be careful! Here, the mass basis is hence by PDG code, not by mass-ordered value.

1000002 = ~uL, 1000004 = ~cL, 2000002 = ~uR, 2000004 = ~cR

Fill (1000006,2000006) sector from stopmix

1000001 = ~dL, 1000003 = ~sL, 2000001 = ~dR, 2000003 = ~sR

Fill (1000005,2000005) sector from sbotmix

1000011 = ~eL, 1000013 = ~muL, 2000011 = ~eR, 2000013 = ~muR

Fill (1000015,2000015) sector from staumix

1000012 = ~nu_e, 1000014 = ~nu_mu, 1000016 = ~nu_tau

Step 4) Check mass ordering and unitarity/orthogonality of mixing matrices

Check expected mass orderings

CP-even Higgs

CP-odd Higgs

Neutralinos

Charginos

NMIX

VMIX, UMIX

First check for non-standard "madgraph" convention (2,2) entry not given explicitly

Fix madgraph non-standard convention problem

Fix madgraph non-standard convention problem

STOPMIX, SBOTMIX

STAUMIX

DSQMIX

USQMIX

SELMIX

NMSSM:

NMNMIX

NMAMIX

NMHMIX

NMSSMRUN

Check for documentation

Give status

Print Footer

Return

bool getEntry ( string  blockName,
T &  val 
)

utilities to read generic blocks

Make sure everything is interpret as lower case (for safety)

Safety checks

Attempt to extract value as class T

If made it all the way here, value was successfully extracted. Return true.

bool getEntry ( string  blockName,
int  indx,
T &  val 
)

Make sure everything is interpret as lower case (for safety)

Safety checks

Attempt to extract indexed value as class T

Loop over block contents, search for indexed entry with index i

Buffer line according to format selected by T

If index found and value was readable, return true

If index not found or unreadable, return false

bool getEntry ( string  blockName,
int  indx,
int  jndx,
T &  val 
)

Make sure everything is interpret as lower case (for safety)

Safety checks

Attempt to extract matrix-indexed value as class T

Loop over block contents, search for indexed entry with indices i, j

Buffer line according to format selected by T

If index found and value was readable, return true

If index not found or unreadable, return false

bool getEntry ( string  blockName,
int  indx,
int  jndx,
int  kndx,
T &  val 
)

Make sure everything is interpret as lower case (for safety)

Safety checks

Attempt to extract tensor-indexed value as class T

Loop over block contents, search for indexed entry with indices i, j, k

Buffer line according to format selected by T

If index found and value was readable, return true

If index not found or unreadable, return false

void listFooter ( )

print Header

Print a footer.

cout << " *" << endl;

headerPrinted=false;

void listHeader ( )

Output utilities.

Print a header with information on version, last date of change, etc.

void listSpectrum ( int  ifail = 0)

print Footer

Print the current spectrum on stdout. Not yet fully implemented.

Exit if output switched off

Print header if not already done

Print Calculator and File name

Failed?

gluino

d squarks

u squarks

Charged scalars (sleptons)

R-conserving:

R-violating

Neutral scalars (sneutrinos)

R-conserving:

R-violating

Neutral pseudoscalars (RPV only)

Neutral fermions (neutralinos)

NMSSM

R-Conserving MSSM

R-violating MSSM

Charged fermions (charginos)

R-conserving:

R-violating

Higgs bosons

NMSSM

R-conserving MSSM (R-violating case handled above, with sneutrinos)

Running Higgs parameters

Gauge

Print footer

void message ( int  level,
string  place,
string  themessage,
int  line = 0 
)

Output of messages from SLHA interface.

Simple utility to print messages, warnings, and errors.

By default all output to cout, but lines below allow finer control.

Send normal messages and warnings to stdout, errors to stderr. ostream* outstream = if (level <= 1) outstream = if (level == 2) { *outstream << endl; }

if (level == 2) *outstream << endl;

int readFile ( string  slhaFileIn = "slha.spc",
int  verboseIn = 1,
bool  useDecayIn = true 
)

The SusyLesHouches class.

Main routine to read in SLHA and LHEF+SLHA files

Check that input file is OK.

Exit if input file not found. Else print file name.

int readFile ( istream &  is,
int  verboseIn = 1,
bool  useDecayIn = true 
)

Copy inputs to local

Array of particles read in.

Array of block names read in.

Initial values for read-in variables.

Initialize line counter

Read in one line at a time.

Rewrite string in lowercase, removing initial and tralining blanks as well as garbage characters

Detect whether read-in is from a Les Houches Event File (LHEF).

If LHEF

Ignore XML comments (only works for whole lines so far)

Detect when <slha> tag reached.

Print header if not already done

Stop looking when </header> or <init> tag reached

If <slha> tag not yet reached, skip

Ignore comment lines with # as first character

Ignore empty lines

Move comment to separate string

Remove blanks before and after an = sign. Also remove multiple blanks

New block.

Print header if not already done

QNUMBERS blocks (cf. arXiv:0712.3311 [hep-ph])

Extract ID code for new particle

Create and add new block with this code as zero'th entry

Default name: PDG code

Attempt to extract names from comment string

Now see if there is a separate name for antiparticle

If name given without specific antiname, set antiname to ""

Non-qnumbers blocks Skip if several copies of same block (facility to use interpolation of different q= not implemented) only first copy of a given block type is kept

Copy input file as generic blocks (containing strings) (more will be done with SLHA1 & 2 specific blocks below, this is just to make sure we have a complete copy of the input file, including also any unknown/user/generic blocks)

Find Q=... for DRbar running blocks

SLHA1 running blocks

SLHA2 running blocks

Skip to next line.

New decay table

Print header if not already done

If previous had zero length, print now

Set decay block name

Extract PDG code and width

Ignore decay if decay table read-in switched off

Set

Set PDG code and width

Skip to next line

Switch off SLHA read-in via LHEF if outside <slha> tag.

Skip not currently reading block data lines.

Replace an equal sign by a blank to make parsing simpler.

Parse data lines within given block Constructed explicitly so that each block can have its own types and own rules defined. For extra user blocks, just add more recognized blockNames at the end and implement user defined rules accordingly. string comment = line.substr(line.find("#"),line.length());

Read line in QNUMBERS block, add to end of qnumbers vector

MODEL

FLV

RPV

CPV

CPV +FLV

Info:

Rewrite string in uppercase

SPECTRUM Pole masses

Mixing

FLV

RPV

CPV

CPV + FLV

NMSSM

DRbar Lagrangian parameters

FLV

RPV

CPV

CPV+FLV

NMSSM

Diagnostics

Add line to generic block (carbon copy of input structure) NB: do not save empty lines, defined as having length <= 1

Decay table read-in

Stop reading decay channels if not consistent.

Append decay channel.

Print footer

Return 0 if read-in successful

int set ( string  blockName,
val 
)

Im{} (for future use)

utilities to set generic blocks

*************************** SET BLOCK VALUE ****************************///

Make sure everything is interpreted as lower case (for safety)

Add new generic block if not already existing

Convert input value to string

int set ( string  blockName,
int  indx,
val 
)

Make sure everything is interpreted as lower case (for safety)

Add new generic block if not already existing

Convert input value to string

int set ( string  blockName,
int  indx,
int  jndx,
val 
)

Make sure everything is interpreted as lower case (for safety)

Add new generic block if not already existing

Convert input value to string

int set ( string  blockName,
int  indx,
int  jndx,
int  kndx,
val 
)

Make sure everything is interpreted as lower case (for safety)

Add new generic block if not already existing

Convert input value to string

Member Data Documentation

LHblock<double> imminpar

The RPV charged fermion mixing matrix.

CPV Input

LHmatrixBlock<3> imvckm

CPV + FLV Output.

The Im{} input upper off-diagonal T

LHblock<double> nmssmrun

The Im{} chargino R mixing matrix.

NMSSM Input All input is in EXTPAR NMSSM Output

LHtensor3Block<3> rvlamlle

RPV Output.

The input LNV sneutrino vevs

LHtensor3Block<3> rvlamllein

The pseudoscalar neutrino mixing matrix.

RPV Input

LHmatrixBlock<3> vckm

FLV Output.

The input upper off-diagonal TE


The documentation for this class was generated from the following files: