PYTHIA  8.311
Public Member Functions | Public Attributes | List of all members
SLHAinterface Class Reference

#include <SLHAinterface.h>

Public Member Functions

 SLHAinterface ()
 Constructor.
 
void setPtr (Info *infoPtrIn)
 Set pointers.
 
void init (bool &useSHLAcouplings, stringstream &ParticleDataBuffer)
 Initialize and switch to SUSY couplings if reading SLHA spectrum. More...
 
bool initSLHA ()
 Initialize SUSY Les Houches Accord data. More...
 
void pythia2slha ()
 

Public Attributes

SusyLesHouches slha
 SusyLesHouches - SLHA object for interface to SUSY spectra.
 
InfoinfoPtr
 Pointers to PYTHIA objects.
 
SettingssettingsPtr
 
ParticleDataparticleDataPtr
 
RndmrndmPtr
 
LoggerloggerPtr
 
CoupSMcoupSMPtr
 SM couplings and SLHA derived couplings class.
 
CoupSUSYcoupSUSYPtr
 
int meMode
 Internal data members.
 

Detailed Description

The SLHAinterface class handles communication between Pythia and SusyLesHouches.

Member Function Documentation

void init ( bool &  useSLHAcouplings,
stringstream &  particleDataBuffer 
)

Initialize and switch to SUSY couplings if reading SLHA spectrum.

The SLHAinterface class.

Initialize and switch to SUSY couplings if reading SLHA spectrum.

By default no SLHA couplings.

Check if SUSY couplings need to be read in

Reset any particle-related user settings.

SLHA sets isSUSY flag to tell us if there was an SLHA SUSY spectrum

Initialize the derived SUSY couplings class.

Make sure coupSUSY has a pointer to slha.

Make sure SLHA blocks are consistent with (updated) PYTHIA values.

bool initSLHA ( )

Initialize SUSY Les Houches Accord data.

Initial and settings values.

Set internal data members

No SUSY by default

Option with no SLHA read-in at all.

First check LHEF header (if reading from LHEF)

Check if there is a <slha> tag in the LHEF header Note: if the <slha> tag is NOT inside the <header>, it will be ignored.

If there is an <slha> tag, read file.

If LHEF read successful, everything needed should already be ready

If no LHEF file or no SLHA info in header, read from SLHA:file

In case of problems, print error and fail init.

Check spectrum for consistency. Switch off SUSY if necessary.

ifail >= 1 : no MODSEL found -> don't switch on SUSY

no SUSY, but MASS ok

no SUSY, but problems

ifail = 0 : MODSEL found, spectrum OK

Print spectrum. Done.

SLHA1 : SLHA2 compatibility Check whether scalar particle masses are ordered

If ordered, change sparticle labels to mass-ordered enumeration

NMSSM spectrum (modify existing Higgs names and add particles)

Modify Higgs names

SLHA2 spectrum with flavour mixing (modify squark and/or slepton names)

Squark flavour violation

Modify squark names

Slepton flavour violation

Modify slepton names

Neutrino flavour violation

Modify neutrino names (note that SM processes may not use UPMNS)

Sneutrino flavour violation

Modify sneutrino names

Optionally allow for separate scalar and pseudoscalar sneutrinos

Scalar sneutrinos

Add the pseudoscalar sneutrinos

SLHA2 spectrum with RPV

Neutralinos -> neutrinos Maintain R-conserving names since mass-ordering unlikely to change.

Charginos -> charged leptons (note sign convention) Maintain R-conserving names since mass-ordering unlikely to change.

Sneutrinos -> higgses (general mass-ordered names)

Sneutrinos -> higgses (general mass-ordered names)

sleptons -> charged higgses (note sign convention)

SLHA2 spectrum with CPV

no scalar/pseudoscalar distinction

Import qnumbers

Always use positive id codes

Note: qnumbers entries stored internally as doubles to allow for millicharged particles. Round to nearest int when handing to PYTHIA. (So charge ~ 0 treated as charge = 0; good enough for showers.)

Translate colRep to PYTHIA colType

Default name: PDG code

Store list of particle codes added by QNUMBERS

Inform user that BSM particles should ideally be assigned id codes > 1M

Import mass spectrum.

Start at beginning of mass array

Loop through to update particle data.

Step to next mass entry

Check if this ID was added by qnumbers

Ignore masses for known SM particles or particles with default masses < minMassSM; overwrite masses for rest. SM particles: (idRes < 25 || idRes > 80 && idRes < 1000000); Top and Higgs (25) can be overwritten if mass > minMassSM Extra higgses (26 - 40) & DM (51 - 60) not SM minMassSM : mass above which SM masses may be overwritten

Catch multiple re-inits of SLHA data

If the mMin and mMax cutoffs on Breit-Wigner tails were not already set by user, set default bounds to at most m0 +- m0/2. Treat these values as new defaults: do not set hasChanged flags. Note: tighter bounds may apply if a width is given later; see below.

Give summary of any imported/ignored MASS entries, and state reason

Update decay data.

Pointer to this SLHA table

Extract ID and create pointer to corresponding particle data object

Check if this ID was added by qnumbers

Ignore decay channels for known SM particles or particles with default masses < minMassSM; overwrite masses for rest. Let extra Higgses & Dark Matter sector be non-SM

Extract and store total width (absolute value, neg -> switch off)

If the mMin and mMax cutoffs on Breit-Wigner tails were not already set by user, set default values for them to 5*width though at most m0/2. Treat these values as defaults, ie do not set hasChanged flags. (After all channels have been read in, we also check that mMin is high enough to allow at least one channel to be on shell; see below.)

Set lifetime for displaced vertex calculations (convert GeV^-1 to mm).

Reset decay table of the particle. Allow decays, treat as resonance.

Let user know we are using these tables.

Reset to stable if width <= 0.0

Loop over SLHA channels, import into Pythia, treating channels with negative branching fractions as having the equivalent positive branching fraction, but being switched off for this run

Check phase space, including margin ~ sqrt(sum(widths^2))

Negative mass difference: intrinsically off shell

String containing decay name

Could mass fluctuations at all give the needed deltaM ?

If ~ OK within fluctuations

Ignore user-selected meMode

Add channel

Add to list of particles that have been modified

Give summary of imported/ignored DECAY tables, and state reason

Sort the IDs by masses.

Sanity check of all decay tables with modified MASS or DECAY info.

Always set massless particles stable.

Declare zero-width particles to be stable (for now).

Check at least one on-shell channel is available.

Check that at least one decay channel is on.

If at least one channel is open, then off-shell decays allowed.

Require that the fluctuation for this to occur is reasonable.

Set only the allowed channels if necessary.

No channels are open.

Only off-shell channels.

Set particle stable if only off-shell channels and on-shell required.

Allow decay if only off-shell channels allowed.

mMin: lower cutoff on Breit-Wigner; see above. Increase minimum if needed to ensure at least one channel on shell

void pythia2slha ( )

Initialize SLHA blocks SMINPUTS and MASS from PYTHIA SM parameter values. E.g., to make sure that there are no important unfilled entries

Initialize SLHA blocks SMINPUTS and MASS from PYTHIA SM parameter values. E.g., to make sure that there are no important unfilled entries. Also fill SLHA CKM blocks if not done already.

Initialize block SMINPUTS.

b mass (should be running mass, here pole for time being)

Force 3 lightest quarks massless

c mass (should be running mass, here pole for time being)

Initialize block MASS.

Initialize block VCKMIN

Copy CKM to block "wolfenstein" (used by MG5 instead of VCKMIN).


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