File indexing completed on 2024-04-06 12:13:29
0001 #ifndef gen_ExhumeHadronizer_h
0002 #define gen_ExhumeHadronizer_h
0003
0004 #include <memory>
0005 #include <string>
0006 #include <vector>
0007
0008 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0009
0010 #include "GeneratorInterface/Core/interface/BaseHadronizer.h"
0011
0012 namespace lhef {
0013 class LHERunInfo;
0014 class LHEEvent;
0015 }
0016
0017 class LHEEventProduct;
0018
0019 namespace HepMC {
0020 class GenEvent;
0021 }
0022
0023 namespace Exhume {
0024 class Event;
0025 class CrossSection;
0026 }
0027
0028 namespace CLHEP {
0029 class HepRandomEngine;
0030 }
0031
0032 namespace gen {
0033
0034 class Pythia6Service;
0035
0036 class ExhumeHadronizer : public BaseHadronizer {
0037 public:
0038 ExhumeHadronizer(edm::ParameterSet const& ps);
0039 ~ExhumeHadronizer() override;
0040
0041
0042 bool generatePartonsAndHadronize();
0043 bool hadronize();
0044 bool decay();
0045 bool residualDecay();
0046 bool readSettings(int);
0047 bool initializeForExternalPartons();
0048 bool initializeForInternalPartons();
0049 bool declareStableParticles(const std::vector<int>&);
0050 bool declareSpecialSettings(const std::vector<std::string>&);
0051
0052 void finalizeEvent();
0053
0054 void statistics();
0055
0056 const char* classname() const;
0057
0058 private:
0059 void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
0060 std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
0061
0062 static const std::vector<std::string> theSharedResources;
0063
0064 Pythia6Service* pythia6Service_;
0065
0066 CLHEP::HepRandomEngine* randomEngine_;
0067
0068 double comEnergy_;
0069
0070
0071
0072 edm::ParameterSet myPSet_;
0073
0074 bool hepMCVerbosity_;
0075 unsigned int maxEventsToPrint_;
0076 unsigned int pythiaListVerbosity_;
0077
0078 bool convertToPDG_;
0079
0080
0081 Exhume::Event* exhumeEvent_;
0082 Exhume::CrossSection* exhumeProcess_;
0083 };
0084 }
0085
0086 #endif