CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Decayer.h
Go to the documentation of this file.
1 #ifndef FASTSIM_DECAYER_H
2 #define FASTSIM_DECAYER_H
3 
4 #include <memory>
5 #include <vector>
6 
8 // Author: L. Vanelderen
9 // Date: 13 May 2014
10 //
11 // Revision: Class structure modified to match SimplifiedGeometryPropagator
12 // S. Kurz, 29 May 2017
14 
15 namespace gen {
16  class P8RndmEngine;
17 }
18 
19 namespace CLHEP {
20  class HepRandomEngine;
21 }
22 
23 namespace Pythia8 {
24  class Pythia;
25 }
26 
27 namespace fastsim {
28  class Particle;
29 
31 
34  class Decayer {
35  public:
37  Decayer();
38 
40  ~Decayer();
41 
43 
48  void decay(const Particle& particle,
49  std::vector<std::unique_ptr<Particle> >& secondaries,
50  CLHEP::HepRandomEngine& engine) const;
51 
52  private:
53  std::unique_ptr<Pythia8::Pythia> pythia_;
54  std::unique_ptr<gen::P8RndmEngine> pythiaRandomEngine_;
55  };
56 } // namespace fastsim
57 #endif
std::unique_ptr< gen::P8RndmEngine > pythiaRandomEngine_
Instance of pythia Random Engine.
Definition: Decayer.h:54
~Decayer()
Default destructor.
Definition: Decayer.cc:10
void decay(const Particle &particle, std::vector< std::unique_ptr< Particle > > &secondaries, CLHEP::HepRandomEngine &engine) const
Decay particle using pythia.
Definition: Decayer.cc:29
Decayer()
Default Constructor.
Definition: Decayer.cc:12
Implementation of non-stable particle decays.
Definition: Decayer.h:34
Definition of a generic FastSim Particle which can be propagated through the detector (formerly Parti...
Definition: Particle.h:16
std::unique_ptr< Pythia8::Pythia > pythia_
Instance of pythia.
Definition: Decayer.h:53