![]() |
![]() |
00001 #ifndef gen_PomwigHadronizer_h 00002 #define gen_PomwigHadronizer_h 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" 00005 00006 #include "GeneratorInterface/Core/interface/BaseHadronizer.h" 00007 #include "GeneratorInterface/Core/interface/ParameterCollector.h" 00008 #include "GeneratorInterface/Herwig6Interface/interface/Herwig6Instance.h" 00009 00010 #include <HepMC/IO_HERWIG.h> 00011 00012 namespace gen 00013 { 00014 class PomwigHadronizer : public gen::BaseHadronizer, public gen::Herwig6Instance 00015 { 00016 public: 00017 PomwigHadronizer(const edm::ParameterSet ¶ms); 00018 ~PomwigHadronizer(); 00019 00020 bool readSettings( int ); 00021 bool initializeForInternalPartons(); 00022 bool initializeForExternalPartons(); 00023 00024 bool declareStableParticles(const std::vector<int> &pdgIds); 00025 bool declareSpecialSettings( const std::vector<std::string> ) { return true; } 00026 void statistics(); 00027 00028 bool generatePartonsAndHadronize(); 00029 bool hadronize(); 00030 bool decay(); 00031 bool residualDecay(); 00032 void finalizeEvent(); 00033 00034 const char *classname() const { return "PomwigHadronizer"; } 00035 00036 private: 00037 void clear(); 00038 bool initializeDPDF(); 00039 00040 bool needClear; 00041 00042 gen::ParameterCollector parameters; 00043 int herwigVerbosity; 00044 int hepmcVerbosity; 00045 int maxEventsToPrint; 00046 bool printCards; 00047 00048 double comEnergy; 00049 double survivalProbability; 00050 int diffTopology; 00051 int h1fit; 00052 00053 bool useJimmy; 00054 bool doMPInteraction; 00055 int numTrials; 00056 00057 bool doPDGConvert; 00058 00059 HepMC::IO_HERWIG conv; 00060 }; 00061 } 00062 #endif