00001 #ifndef MadGraph_Producer_h 00002 #define MadGraph_Producer_h 00003 00018 #include "FWCore/Framework/interface/EDFilter.h" 00019 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00020 #include <map> 00021 #include <string> 00022 #include "HepMC/GenEvent.h" 00023 #include "HepMC/PdfInfo.h" 00024 00025 namespace CLHEP { 00026 class HepRandomEngine; 00027 } 00028 00029 #include "GeneratorInterface/CommonInterface/interface/TauolaInterface.h" 00030 00031 namespace edm 00032 { 00033 class MadGraphProducer : public EDFilter { 00034 public: 00036 MadGraphProducer(const ParameterSet & ); 00038 virtual ~MadGraphProducer(); 00039 private: 00041 bool call_pygive(const std::string& iParm ); 00042 virtual bool beginRun(Run& run, const EventSetup& es); 00043 virtual bool endRun(Run& run, const EventSetup& es); 00044 virtual bool filter(Event & e, const EventSetup& es); 00045 void init(); 00046 void clear(); 00047 private: 00048 HepMC::GenEvent *evt; 00049 HepMC::PdfInfo* pdf_info; 00051 unsigned int pythiaPylistVerbosity_; 00053 bool pythiaHepMCVerbosity_; 00055 unsigned int maxEventsToPrint_; 00056 unsigned int firstEvent_; 00057 // Matching & MEMAIN 00058 double MEMAIN_etaclmax; 00059 double MEMAIN_qcut; 00060 unsigned int MEMAIN_iexcfile; // 1 = perform exclusive matching 00061 bool produceEventTreeFile_; 00062 // Flag to allow reading a simple LHE file using the minimal Les Houches functionality (ignoring reading parameters from the header) 00063 bool minimalLH_; 00064 bool initialized_; 00065 unsigned int eventNumber_; 00066 CLHEP::HepRandomEngine* fRandomEngine; 00067 ParameterSet pset_; 00068 00069 // external generators (tauola,...) 00070 bool useExternalGenerators_ ; 00071 bool useTauola_ ; 00072 bool useTauolaPolarization_ ; 00073 TauolaInterface tauola_ ; 00074 }; 00075 } 00076 #endif