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