Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace gen
0031 
0032 #endif