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  typedef std::shared_ptr<P8RndmEngine> P8RndmEnginePtr;
16 } // namespace gen
17 
18 namespace CLHEP {
19  class HepRandomEngine;
20 }
21 
22 namespace Pythia8 {
23  class Pythia;
24 }
25 
26 typedef std::vector<RawParticle> DaughterParticleList;
27 typedef DaughterParticleList::const_iterator DaughterParticleIterator;
28 
29 class PythiaDecays {
30 public:
31  PythiaDecays();
32  ~PythiaDecays();
33  const DaughterParticleList& particleDaughters(ParticlePropagator& particle, CLHEP::HepRandomEngine*);
34 
35 private:
37  std::unique_ptr<Pythia8::Pythia> decayer;
39 };
40 #endif
const DaughterParticleList & particleDaughters(ParticlePropagator &particle, CLHEP::HepRandomEngine *)
Definition: PythiaDecays.cc:34
DaughterParticleList::const_iterator DaughterParticleIterator
Definition: PythiaDecays.h:27
DaughterParticleList theList
Definition: PythiaDecays.h:36
gen::P8RndmEnginePtr p8RndmEngine
Definition: PythiaDecays.h:38
std::shared_ptr< P8RndmEngine > P8RndmEnginePtr
Definition: PythiaDecays.h:14
std::unique_ptr< Pythia8::Pythia > decayer
Definition: PythiaDecays.h:37
std::vector< RawParticle > DaughterParticleList
Definition: PythiaDecays.h:26