00001 #ifndef Exhume_Producer_h 00002 #define Exhume_Producer_h 00003 00011 #include "FWCore/Framework/interface/EDProducer.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "HepMC/GenEvent.h" 00014 00015 class Run; 00016 namespace CLHEP { 00017 class HepRandomEngine; 00018 class RandFlat; 00019 } 00020 00021 namespace Exhume { 00022 class Event; 00023 class CrossSection; 00024 } 00025 00026 namespace edm 00027 { 00028 class ExhumeProducer : public EDProducer { 00029 00030 public: 00031 00033 ExhumeProducer(const ParameterSet &); 00035 virtual ~ExhumeProducer(); 00036 00037 void endRun( Run& r); 00038 00039 private: 00040 00042 //bool call_pygive(const std::string& iParm ); 00043 //bool call_txgive(const std::string& iParm ); 00044 //bool call_txgive_init(); 00045 00046 private: 00047 00048 virtual void produce(edm::Event & e, const EventSetup& es); 00049 void clear(); 00050 00051 HepMC::GenEvent *evt; 00052 00054 unsigned int pythiaPylistVerbosity_; 00056 bool pythiaHepMCVerbosity_; 00058 unsigned int maxEventsToPrint_; 00059 00060 double comEnergy_; 00061 00062 // external cross section and filter efficiency 00063 double extCrossSect_; 00064 double extFilterEff_; 00065 00066 CLHEP::HepRandomEngine* fRandomEngine; 00067 CLHEP::RandFlat* fRandomGenerator; 00068 00069 Exhume::Event* exhumeEvent_; 00070 Exhume::CrossSection* exhumeProcess_; 00071 00072 int sigID_; 00073 00074 // Added by JMM 00075 unsigned int eventNumber_; 00076 // End of JMM insertion 00077 }; 00078 } 00079 00080 #endif