![]() |
![]() |
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 readSettings( int ); 00053 bool initializeForExternalPartons(); 00054 bool initializeForInternalPartons(); 00055 bool declareStableParticles( const std::vector<int> ); 00056 bool declareSpecialSettings( const std::vector<std::string> ); 00057 00058 void finalizeEvent(); 00059 00060 void statistics(); 00061 00062 const char* classname() const; 00063 00064 private: 00065 Pythia6Service* pythia6Service_; 00066 00067 CLHEP::HepRandomEngine* randomEngine_; 00068 00069 double comEnergy_; 00070 00071 //edm::ParameterSet processPSet_; 00072 //edm::ParameterSet paramsPSet_; 00073 edm::ParameterSet myPSet_; 00074 00075 bool hepMCVerbosity_; 00076 unsigned int maxEventsToPrint_; 00077 unsigned int pythiaListVerbosity_; 00078 00079 bool convertToPDG_; 00080 00081 //Pythia6Hadronizer* pythia6Hadronizer_; 00082 Exhume::Event* exhumeEvent_; 00083 Exhume::CrossSection* exhumeProcess_; 00084 }; 00085 } 00086 00087 #endif