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