00001 #ifndef GeneratorInterface_LHEInterface_LHESource_h 00002 #define GeneratorInterface_LHEInterface_LHESource_h 00003 00004 #include <memory> 00005 00006 #include <boost/shared_ptr.hpp> 00007 00008 #include "FWCore/Framework/interface/Event.h" 00009 #include "FWCore/Framework/interface/Run.h" 00010 #include "FWCore/Sources/interface/ExternalInputSource.h" 00011 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00012 00013 #include "SimDataFormats/GeneratorProducts/interface/LesHouches.h" 00014 00015 namespace lhef { 00016 class LHERunInfo; 00017 class LHEEvent; 00018 class LHEReader; 00019 } 00020 00021 class LHESource : public edm::ExternalInputSource { 00022 public: 00023 explicit LHESource(const edm::ParameterSet ¶ms, 00024 const edm::InputSourceDescription &desc); 00025 virtual ~LHESource(); 00026 00027 protected: 00028 virtual void endJob(); 00029 virtual void beginRun(edm::Run &run); 00030 virtual bool produce(edm::Event &event); 00031 00032 virtual void nextEvent(); 00033 00034 std::auto_ptr<lhef::LHEReader> reader; 00035 00036 boost::shared_ptr<lhef::LHERunInfo> runInfo; 00037 boost::shared_ptr<lhef::LHEEvent> partonLevel; 00038 00039 unsigned int skipEvents; 00040 }; 00041 00042 #endif // GeneratorInterface_LHEInterface_LHESource_h