CMS 3D CMS Logo

ExternalDecayDriver.h
Go to the documentation of this file.
1 #ifndef gen_ExternalDecayDriver_h
2 #define gen_ExternalDecayDriver_h
3 
7 
8 #include <string>
9 #include <vector>
10 
11 namespace HepMC {
12  class GenEvent;
13 }
14 
15 namespace CLHEP {
16  class HepRandomEngine;
17 }
18 
19 namespace lhef {
20  class LHEEvent;
21 }
22 
23 namespace gen {
24 
25  class EvtGenInterfaceBase;
26  class TauolaInterfaceBase;
27  class PhotosInterfaceBase;
28 
30  public:
31  // ctor & dtor
34 
35  void init(const edm::EventSetup&);
36 
37  const std::vector<int>& operatesOnParticles() { return fPDGs; }
38  const std::vector<std::string>& specialSettings() { return fSpecialSettings; }
39 
42 
43  void statistics() const;
44 
45  void setRandomEngine(CLHEP::HepRandomEngine*);
46  std::vector<std::string> const& sharedResources() const { return exSharedResources; }
47 
48  private:
50  std::unique_ptr<TauolaInterfaceBase> fTauolaInterface;
51  std::unique_ptr<EvtGenInterfaceBase> fEvtGenInterface;
52  std::unique_ptr<PhotosInterfaceBase> fPhotosInterface;
53  std::vector<int> fPDGs;
54  std::vector<std::string> fSpecialSettings;
55 
56  std::vector<std::string> exSharedResources;
57  };
58 
59 } // namespace gen
60 
61 #endif
std::unique_ptr< PhotosInterfaceBase > fPhotosInterface
ExternalDecayDriver(const edm::ParameterSet &, edm::ConsumesCollector)
void init(const edm::EventSetup &)
const std::vector< int > & operatesOnParticles()
const std::vector< std::string > & specialSettings()
std::vector< std::string > exSharedResources
std::unique_ptr< EvtGenInterfaceBase > fEvtGenInterface
std::vector< std::string > fSpecialSettings
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
HepMC::GenEvent * decay(HepMC::GenEvent *evt)
void setRandomEngine(CLHEP::HepRandomEngine *)
std::vector< std::string > const & sharedResources() const