Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-05-02 05:09:38

0001 #ifndef PythiaDecays_h
0002 #define PythiaDecays_h
0003 
0004 #include <memory>
0005 #include <vector>
0006 
0007 // TrajectoryManager does not compile when forward declaring P8RndmEngine
0008 #include "GeneratorInterface/Pythia8Interface/interface/P8RndmEngine.h"
0009 
0010 class ParticlePropagator;
0011 class RawParticle;
0012 
0013 namespace gen {
0014   class P8RndmEngine;
0015   typedef std::shared_ptr<P8RndmEngine> P8RndmEnginePtr;
0016 }  // namespace gen
0017 
0018 namespace CLHEP {
0019   class HepRandomEngine;
0020 }
0021 
0022 namespace Pythia8 {
0023   class Pythia;
0024 }
0025 
0026 typedef std::vector<RawParticle> DaughterParticleList;
0027 typedef DaughterParticleList::const_iterator DaughterParticleIterator;
0028 
0029 class PythiaDecays {
0030 public:
0031   PythiaDecays();
0032   ~PythiaDecays();
0033   const DaughterParticleList& particleDaughters(ParticlePropagator& particle, CLHEP::HepRandomEngine*);
0034 
0035 private:
0036   DaughterParticleList theList;
0037   std::unique_ptr<Pythia8::Pythia> decayer;
0038   gen::P8RndmEnginePtr p8RndmEngine;
0039 };
0040 #endif