00001 #ifndef PomwigProducer_h 00002 #define PomwigProducer_h 00003 00011 #include "FWCore/Framework/interface/EDProducer.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "HepMC/GenEvent.h" 00014 00015 #include <HepMC/IO_HERWIG.h> 00016 00017 class Run; 00018 namespace CLHEP { 00019 class HepRandomEngine; 00020 } 00021 00022 namespace edm 00023 { 00024 class PomwigProducer : public EDProducer { 00025 00026 public: 00027 00028 PomwigProducer(const ParameterSet &); 00029 virtual ~PomwigProducer(); 00030 00031 void endRun( Run& r); 00032 00033 private: 00034 00035 virtual void produce(Event & e, const EventSetup& es); 00036 void clear(); 00037 00038 bool hwgive(const std::string& iParm ); 00039 bool setRngSeeds(int); 00040 00041 HepMC::GenEvent *evt; 00042 int herwigVerbosity_; 00043 bool herwigHepMCVerbosity_; 00044 int herwigLhapdfVerbosity_; 00045 int maxEventsToPrint_; 00046 double comEnergy_; 00047 bool useJimmy_; 00048 bool doMPInteraction_; 00049 bool printCards_; 00050 int numTrials_; 00051 00052 double extCrossSect_; 00053 double extFilterEff_; 00054 00055 double survivalProbability_; 00056 int diffTopology_; 00057 int h1fit_; 00058 bool enableForcedDecays_; 00059 00060 int eventNumber_; 00061 00062 CLHEP::HepRandomEngine* fRandomEngine; 00063 00064 HepMC::IO_HERWIG conv; 00065 }; 00066 } 00067 00068 #endif