00001 #ifndef Comphep_Producer_h 00002 #define Comphep_Producer_h 00003 00017 #define PYCOMP pycomp_ 00018 00019 //#include "FWCore/Framework/interface/GeneratedInputSource.h" 00020 #include "FWCore/Framework/interface/EDProducer.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include <map> 00023 #include <string> 00024 #include "HepMC/GenEvent.h" 00025 00026 00027 namespace CLHEP 00028 { 00029 class RandFlat ; 00030 class HepRandomEngine; 00031 } 00032 00033 namespace edm 00034 { 00035 class ComphepProducer : public EDProducer { 00036 public: 00037 00039 ComphepProducer(const ParameterSet &); 00041 virtual ~ComphepProducer(); 00042 00043 00044 private: 00045 00047 bool call_pygive(const std::string& iParm ); 00048 bool call_txgive(const std::string& iParm ); 00049 bool call_txgive_init(); 00050 00051 private: 00052 00053 virtual void produce(Event & e, const EventSetup& es); 00054 void clear(); 00055 00056 HepMC::GenEvent *evt; 00057 00059 unsigned int pythiaPylistVerbosity_; 00061 bool pythiaHepMCVerbosity_; 00063 unsigned int maxEventsToPrint_; 00065 std::string CHFile_; 00067 bool getInputFromMCDB_; 00069 int MCDBArticleID_; 00070 00071 00072 00073 // for single particle generation in pythia 00074 int particleID; 00075 bool doubleParticle; 00076 double ptmin, ptmax; 00077 double etamin, etamax; 00078 double phimin, phimax; 00079 00080 CLHEP::HepRandomEngine* fRandomEngine; 00081 CLHEP::RandFlat* fRandomGenerator; 00082 00083 unsigned int eventNumber_; 00084 }; 00085 } 00086 00087 #endif