File indexing completed on 2024-09-08 23:51:46
0001 #ifndef gen_EvtGenInterface_EvtGenInterfaceBase_h
0002 #define gen_EvtGenInterface_EvtGenInterfaceBase_h
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "FWCore/Framework/interface/EventSetup.h"
0006 #include "HepMC/GenEvent.h"
0007 #include <vector>
0008
0009 namespace CLHEP {
0010 class HepRandomEngine;
0011 }
0012
0013 namespace gen {
0014 class EvtGenInterfaceBase {
0015 public:
0016 EvtGenInterfaceBase() {}
0017 virtual ~EvtGenInterfaceBase() {}
0018
0019 virtual void SetPhotosDecayRandomEngine(CLHEP::HepRandomEngine* decayRandomEngine) {}
0020 virtual void init() {}
0021 virtual const std::vector<int>& operatesOnParticles() { return m_PDGs; }
0022 virtual const std::vector<std::string>& specialSettings() { return fSpecialSettings; }
0023 virtual HepMC::GenEvent* decay(HepMC::GenEvent* evt) { return evt; }
0024 virtual void setRandomEngine(CLHEP::HepRandomEngine* v) = 0;
0025
0026 protected:
0027 std::vector<int> m_PDGs;
0028 std::vector<std::string> fSpecialSettings;
0029 };
0030 }
0031
0032 #endif