CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Py8InterfaceBase.h
Go to the documentation of this file.
1 #ifndef gen_Py8InterfaceBase_h
2 #define gen_Py8InterfaceBase_h
3 
4 #include <vector>
5 #include <string>
6 
9 
10 #include "HepMC/IO_AsciiParticles.h"
11 
12 #include <Pythia8/Pythia.h>
13 #include <Pythia8Plugins/HepMC2.h>
14 
15 class EvtGenDecays;
16 
17 namespace CLHEP {
18  class HepRandomEngine;
19 }
20 
21 namespace gen {
22 
24 
25  public:
26 
29 
30  virtual bool generatePartonsAndHadronize() = 0;
31  bool decay() { return true; } // NOT used - let's call it "design imperfection"
32  bool readSettings( int ); // common func
33  virtual bool initializeForInternalPartons() = 0;
34  bool declareStableParticles( const std::vector<int>& ); // common func
35  bool declareSpecialSettings( const std::vector<std::string>& ); // common func
36  virtual void finalizeEvent() = 0;
37  virtual void statistics();
38  virtual const char* classname() const = 0;
39 
40  void p8SetRandomEngine(CLHEP::HepRandomEngine* v) { p8RndmEngine_.setRandomEngine(v); }
42 
43  protected:
44 
45  std::auto_ptr<Pythia8::Pythia> fMasterGen;
46  std::auto_ptr<Pythia8::Pythia> fDecayer;
47  HepMC::Pythia8ToHepMC toHepMC;
49 
50  unsigned int pythiaPylistVerbosity;
53  unsigned int maxEventsToPrint;
54  HepMC::IO_AsciiParticles* ascii_io;
55 
56  // EvtGen plugin
57  //
58  bool useEvtGen;
59  EvtGenDecays* evtgenDecays;
62 
63  private:
64 
66  };
67 }
68 #endif
bool declareSpecialSettings(const std::vector< std::string > &)
virtual bool initializeForInternalPartons()=0
ParameterCollector fParameters
std::auto_ptr< Pythia8::Pythia > fMasterGen
HepMC::IO_AsciiParticles * ascii_io
void p8SetRandomEngine(CLHEP::HepRandomEngine *v)
Py8InterfaceBase(edm::ParameterSet const &ps)
double v[5][pyjets_maxn]
void setRandomEngine(CLHEP::HepRandomEngine *v)
Definition: P8RndmEngine.h:35
P8RndmEngine p8RndmEngine_
virtual void finalizeEvent()=0
virtual bool generatePartonsAndHadronize()=0
EvtGenDecays * evtgenDecays
unsigned int pythiaPylistVerbosity
bool declareStableParticles(const std::vector< int > &)
P8RndmEngine & randomEngine()
unsigned int maxEventsToPrint
std::auto_ptr< Pythia8::Pythia > fDecayer
virtual const char * classname() const =0
HepMC::Pythia8ToHepMC toHepMC