00001 #ifndef MCatNLOSource_h 00002 #define MCatNLOSource_h 00003 00011 #include "FWCore/Framework/interface/GeneratedInputSource.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "FWCore/ServiceRegistry/interface/Service.h" 00014 #include <map> 00015 #include <string> 00016 #include "HepMC/GenEvent.h" 00017 00018 class Run; 00019 00020 namespace edm 00021 { 00022 class MCatNLOSource : public GeneratedInputSource { 00023 public: 00024 00025 MCatNLOSource(const ParameterSet &, const InputSourceDescription &); 00026 virtual ~MCatNLOSource(); 00027 00028 void endRun( Run& r); 00029 00030 private: 00031 00032 virtual bool produce(Event & e); 00033 void clear(); 00034 bool give(const std::string& iParm ); 00035 bool hwgive(const std::string& iParm ); 00036 void processHG(); 00037 void processLL(); 00038 void processVH(); 00039 void processVV(); 00040 void processQQ(); 00041 void processSB(); 00042 void processST(); 00043 void processUnknown(bool); 00044 void getVpar(); 00045 00046 void createStringFile(const std::string&); 00047 00048 HepMC::GenEvent *evt; 00049 00050 // include hard event generation ... 00051 bool doHardEvents_; 00052 00053 // Verbosity parameters 00054 int mcatnloVerbosity_; 00055 int herwigVerbosity_; 00056 bool herwigHepMCVerbosity_; 00057 int maxEventsToPrint_; 00058 00059 // run parameters 00060 double comenergy; 00061 int processNumber_; 00062 int numEvents_; 00063 std::string stringFileName_; 00064 00065 // needed for NLO ouput 00066 char directory[70]; 00067 char prefix_bases[10]; 00068 char prefix_events[10]; 00069 00070 std::string lhapdfSetPath_; 00071 bool useJimmy_; 00072 bool doMPInteraction_; 00073 bool printCards_; 00074 int eventCounter_; 00075 00076 double extCrossSect; 00077 double intCrossSect; 00078 double extFilterEff; 00079 00080 }; 00081 } 00082 00083 #endif