CMS 3D CMS Logo

PythiaDecays.h
Go to the documentation of this file.
1 #ifndef PythiaDecays_h
2 #define PythiaDecays_h
3 
4 #include <memory>
5 #include <vector>
6 
7 // TrajectoryManager does not compile when forward declaring P8RndmEngine
9 
10 class ParticlePropagator;
11 class RawParticle;
12 
13 namespace gen {
14  class P8RndmEngine;
15 }
16 
17 namespace CLHEP {
18  class HepRandomEngine;
19 }
20 
21 namespace Pythia8 {
22  class Pythia;
23 }
24 
25 typedef std::vector<RawParticle> DaughterParticleList;
26 typedef DaughterParticleList::const_iterator DaughterParticleIterator;
27 
28 class PythiaDecays {
29 public:
30  PythiaDecays();
31  ~PythiaDecays();
32  const DaughterParticleList& particleDaughters(ParticlePropagator& particle, CLHEP::HepRandomEngine*);
33 
34 private:
36  std::unique_ptr<Pythia8::Pythia> decayer;
37  std::unique_ptr<gen::P8RndmEngine> p8RndmEngine;
38 };
39 #endif
const DaughterParticleList & particleDaughters(ParticlePropagator &particle, CLHEP::HepRandomEngine *)
Definition: PythiaDecays.cc:34
DaughterParticleList::const_iterator DaughterParticleIterator
Definition: PythiaDecays.h:26
DaughterParticleList theList
Definition: PythiaDecays.h:35
std::unique_ptr< Pythia8::Pythia > decayer
Definition: PythiaDecays.h:36
std::unique_ptr< gen::P8RndmEngine > p8RndmEngine
Definition: PythiaDecays.h:37
std::vector< RawParticle > DaughterParticleList
Definition: PythiaDecays.h:25