PYTHIA
8.312
|
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< LHdecayTable > | decays |
************************ 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. | |
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, |
T | 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, | ||
T | 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, | ||
T | 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, | ||
T | val | ||
) |
Make sure everything is interpreted as lower case (for safety)
Add new generic block if not already existing
Convert input value to string
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