00001 #ifndef MadGraph_Source_h 00002 #define MadGraph_Source_h 00003 00020 #define PYCOMP pycomp_ 00021 #include "FWCore/Sources/interface/ExternalInputSource.h" 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 #include <map> 00024 #include <string> 00025 #include "HepMC/GenEvent.h" 00026 #include "HepMC/PdfInfo.h" 00027 00028 #include "GeneratorInterface/CommonInterface/interface/TauolaInterface.h" 00029 00030 namespace edm 00031 { 00032 class MadGraphSource : public ExternalInputSource { 00033 public: 00035 MadGraphSource(const ParameterSet &, const InputSourceDescription &); 00037 virtual ~MadGraphSource(); 00038 00039 void endRun( Run& r); 00040 00041 private: 00043 bool call_pygive(const std::string& iParm ); 00044 virtual bool produce(Event & e); 00045 void clear(); 00046 private: 00047 HepMC::GenEvent *evt; 00048 HepMC::PdfInfo* pdf_info; 00050 unsigned int pythiaPylistVerbosity_; 00052 bool pythiaHepMCVerbosity_; 00054 unsigned int maxEventsToPrint_; 00056 std::string MGfile_; 00058 bool getInputFromMCDB_; 00060 int MCDBArticleID_; 00061 unsigned int firstEvent_; 00062 unsigned int lhe_event_counter_; 00063 // Matching & MEMAIN 00064 double MEMAIN_etaclmax; 00065 double MEMAIN_qcut; 00066 unsigned int MEMAIN_iexcfile; // 1 = perform exclusive matching 00067 int MEMAIN_maxjets; // allow possibility to set highest multiplicity in the CMSSW configuration 00068 bool produceEventTreeFile_; 00069 // Flag to allow reading a simple LHE file using the minimal Les Houches functionality (ignoring reading parameters from the header) 00070 bool minimalLH_; 00071 00072 // external generators (tauola,...) 00073 bool useExternalGenerators_ ; 00074 bool useTauola_ ; 00075 bool useTauolaPolarization_ ; 00076 TauolaInterface tauola_ ; 00077 00078 }; 00079 } 00080 #endif