CMS 3D CMS Logo

Pythia6Service.h
Go to the documentation of this file.
1 #ifndef gen_Pythia6Service_h
2 #define gen_Pythia6Service_h
3 
4 #include <vector>
5 
8 
10 
11 // #include "HepMC/PythiaWrapper6_2.h"
12 
13 namespace CLHEP {
14  class HepRandomEngine;
15 }
16 
17 namespace gen
18 {
19 
20  // the callbacks from Pythia which are passed on to the Pythia6Service
21  extern "C" {
22  double pyr_(int* idummy);
23  }
24 
26  {
27  public:
28  // ctor & dtor
31  ~Pythia6Service() override ;
32 
33  void setGeneralParams();
34  void setCSAParams();
35  void setSLHAParams();
36  void setPYUPDAParams(bool afterPyinit);
37  void setSLHAFromHeader( const std::vector<std::string> &lines );
38 
39  void openSLHA( const char* );
40  void closeSLHA();
41  void openPYUPDA( const char*, bool write_file );
42  void closePYUPDA();
43 
44  // initialise Pythia on first call from "dummy" instance
45  void enter() override;
46 
47  CLHEP::HepRandomEngine* randomEngine() const { return fRandomEngine; }
48  void setRandomEngine(CLHEP::HepRandomEngine* v) { fRandomEngine = v; }
49 
50  private:
51  friend double gen::pyr_(int*);
52 
54 
55  CLHEP::HepRandomEngine* fRandomEngine;
56 
57  std::vector<std::string> fParamGeneral;
58  std::vector<std::string> fParamCSA;
59  std::vector<std::string> fParamSLHA;
60  std::vector<std::string> fParamPYUPDA;
61  int fUnitSLHA;
63 
65  };
66 
67 }
68 
69 #endif
CLHEP::HepRandomEngine * randomEngine() const
std::vector< std::string > fParamPYUPDA
std::vector< std::string > fParamGeneral
static Pythia6Service * fPythia6Owner
CLHEP::HepRandomEngine * fRandomEngine
std::vector< std::string > fParamCSA
void setRandomEngine(CLHEP::HepRandomEngine *v)
std::vector< std::string > fParamSLHA
double pyr_(int *idummy)