StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SLHAinterface.h
1 // SLHAinterface.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2020 Torbjorn Sjostrand.
3 // Main authors of this file: N. Desai, P. Skands
4 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
5 // Please respect the MCnet Guidelines, see GUIDELINES for details.
6 
7 // Header file for SUSY Les Houches Accord Interface.
8 // Handles the communication between PYTHIA and the SusyLesHouches classes.
9 
10 #ifndef Pythia8_SLHAinterface_H
11 #define Pythia8_SLHAinterface_H
12 
13 #include "Pythia8/Basics.h"
14 #include "Pythia8/ParticleData.h"
15 #include "Pythia8/PythiaStdlib.h"
16 #include "Pythia8/Settings.h"
17 #include "Pythia8/StandardModel.h"
18 #include "Pythia8/SusyCouplings.h"
19 
20 namespace Pythia8 {
21 
22 //==========================================================================
23 
24 // The SLHAinterface class handles communication between Pythia and
25 // SusyLesHouches.
26 
27 class SLHAinterface {
28 
29 public:
30 
31  // Constructor.
32  SLHAinterface() : infoPtr(), settingsPtr(), particleDataPtr(),
33  rndmPtr(), coupSMPtr(), coupSUSYPtr(), meMode() {}
34 
35  // Set pointers
36  void setPtr( Info* infoPtrIn ) {infoPtr = infoPtrIn;
37  settingsPtr = infoPtr->settingsPtr;
38  particleDataPtr = infoPtr->particleDataPtr;
39  rndmPtr = infoPtr->rndmPtr;
40  coupSMPtr = infoPtr->coupSMPtr;
41  coupSUSYPtr = infoPtr->coupSUSYPtr;
42 }
43 
44  // Initialize and switch to SUSY couplings if reading SLHA spectrum
45  void init( bool& useSHLAcouplings, stringstream& ParticleDataBuffer );
46 
47  // Initialize SUSY Les Houches Accord data.
48  bool initSLHA();
49 
50  // Initialize SLHA blocks SMINPUTS and MASS from PYTHIA SM parameter values.
51  // E.g., to make sure that there are no important unfilled entries
52  void pythia2slha();
53 
54  // SusyLesHouches - SLHA object for interface to SUSY spectra.
55  SusyLesHouches slha;
56 
57  // Pointers to PYTHIA objects
58  Info* infoPtr;
59  Settings* settingsPtr;
60  ParticleData* particleDataPtr;
61  Rndm* rndmPtr;
62 
63  // SM couplings and SLHA derived couplings class.
64  CoupSM* coupSMPtr;
65  CoupSUSY* coupSUSYPtr;
66 
67  // Internal data members
68  int meMode;
69 
70 };
71 
72 //==========================================================================
73 
74 } // end namespace Pythia8
75 
76 #endif // Pythia8_SLHAinterface_H