Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:06:31

0001 // SLHAinterface.h is a part of the PYTHIA event generator.
0002 // Copyright (C) 2024 Torbjorn Sjostrand.
0003 // Main authors of this file: N. Desai, P. Skands
0004 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
0005 // Please respect the MCnet Guidelines, see GUIDELINES for details.
0006 
0007 // Header file for SUSY Les Houches Accord Interface.
0008 // Handles the communication between PYTHIA and the SusyLesHouches classes.
0009 
0010 #ifndef Pythia8_SLHAinterface_H
0011 #define Pythia8_SLHAinterface_H
0012 
0013 #include "Pythia8/Basics.h"
0014 #include "Pythia8/ParticleData.h"
0015 #include "Pythia8/PythiaStdlib.h"
0016 #include "Pythia8/Settings.h"
0017 #include "Pythia8/StandardModel.h"
0018 #include "Pythia8/SusyCouplings.h"
0019 
0020 namespace Pythia8 {
0021 
0022 //==========================================================================
0023 
0024 // The SLHAinterface class handles communication between Pythia and
0025 // SusyLesHouches.
0026 
0027 class SLHAinterface {
0028 
0029 public:
0030 
0031   // Constructor.
0032   SLHAinterface() : infoPtr(), settingsPtr(), particleDataPtr(),
0033     rndmPtr(), coupSMPtr(), coupSUSYPtr(), meMode() {}
0034 
0035   // Set pointers
0036   void setPtr( Info* infoPtrIn ) {infoPtr  = infoPtrIn;
0037     settingsPtr     = infoPtr->settingsPtr;
0038     particleDataPtr = infoPtr->particleDataPtr;
0039     rndmPtr         = infoPtr->rndmPtr;
0040     loggerPtr       = infoPtr->loggerPtr;
0041     coupSMPtr       = infoPtr->coupSMPtr;
0042     coupSUSYPtr     = infoPtr->coupSUSYPtr;
0043 }
0044 
0045   // Initialize and switch to SUSY couplings if reading SLHA spectrum
0046   void init( bool& useSHLAcouplings, stringstream& ParticleDataBuffer );
0047 
0048   // Initialize SUSY Les Houches Accord data.
0049   bool initSLHA();
0050 
0051   // Initialize SLHA blocks SMINPUTS and MASS from PYTHIA SM parameter values.
0052   // E.g., to make sure that there are no important unfilled entries
0053   void pythia2slha();
0054 
0055   // SusyLesHouches - SLHA object for interface to SUSY spectra.
0056   SusyLesHouches slha;
0057 
0058   // Pointers to PYTHIA objects
0059   Info*                infoPtr;
0060   Settings*            settingsPtr;
0061   ParticleData*        particleDataPtr;
0062   Rndm*                rndmPtr;
0063   Logger*              loggerPtr;
0064 
0065   // SM couplings and SLHA derived couplings class.
0066   CoupSM*              coupSMPtr;
0067   CoupSUSY*            coupSUSYPtr;
0068 
0069   // Internal data members
0070   int                  meMode;
0071 
0072 };
0073 
0074 //==========================================================================
0075 
0076 } // end namespace Pythia8
0077 
0078 #endif // Pythia8_SLHAinterface_H