00001 #ifndef gen_ExhumeHadronizer_h 00002 #define gen_ExhumeHadronizer_h 00003 00004 #include <memory> 00005 00006 #include <boost/shared_ptr.hpp> 00007 00008 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" 00009 00010 #include "GeneratorInterface/Core/interface/BaseHadronizer.h" 00011 00012 namespace lhef 00013 { 00014 class LHERunInfo; 00015 class LHEEvent; 00016 } 00017 00018 class LHEEventProduct; 00019 00020 namespace HepMC 00021 { 00022 class GenEvent; 00023 } 00024 00025 namespace Exhume{ 00026 class Event; 00027 class CrossSection; 00028 } 00029 00030 namespace CLHEP 00031 { 00032 class HepRandomEngine; 00033 } 00034 00035 namespace gen 00036 { 00037 //class Pythia6Hadronizer; 00038 class Pythia6Service; 00039 00040 class ExhumeHadronizer : public BaseHadronizer 00041 { 00042 00043 public: 00044 ExhumeHadronizer(edm::ParameterSet const& ps); 00045 ~ExhumeHadronizer(); 00046 00047 // bool generatePartons(); 00048 bool generatePartonsAndHadronize(); 00049 bool hadronize(); 00050 bool decay(); 00051 bool residualDecay(); 00052 bool initializeForExternalPartons(); 00053 bool initializeForInternalPartons(); 00054 bool declareStableParticles( const std::vector<int> ); 00055 bool declareSpecialSettings( const std::vector<std::string> ); 00056 00057 void finalizeEvent(); 00058 00059 void statistics(); 00060 00061 const char* classname() const; 00062 00063 private: 00064 Pythia6Service* pythia6Service_; 00065 00066 CLHEP::HepRandomEngine* randomEngine_; 00067 00068 double comEnergy_; 00069 00070 //edm::ParameterSet processPSet_; 00071 //edm::ParameterSet paramsPSet_; 00072 edm::ParameterSet myPSet_; 00073 00074 bool hepMCVerbosity_; 00075 unsigned int maxEventsToPrint_; 00076 unsigned int pythiaListVerbosity_; 00077 00078 bool convertToPDG_; 00079 00080 //Pythia6Hadronizer* pythia6Hadronizer_; 00081 Exhume::Event* exhumeEvent_; 00082 Exhume::CrossSection* exhumeProcess_; 00083 }; 00084 } 00085 00086 #endif