File indexing completed on 2024-04-06 12:13:28
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