PYTHIA
8.312
|
#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. | |
Info * | infoPtr |
Pointers to PYTHIA objects. | |
Settings * | settingsPtr |
ParticleData * | particleDataPtr |
Rndm * | rndmPtr |
Logger * | loggerPtr |
CoupSM * | coupSMPtr |
SM couplings and SLHA derived couplings class. | |
CoupSUSY * | coupSUSYPtr |
int | meMode |
Internal data members. | |
The SLHAinterface class handles communication between Pythia and SusyLesHouches.
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).