Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace lhef
0016 
0017 class LHEEventProduct;
0018 
0019 namespace HepMC {
0020   class GenEvent;
0021 }
0022 
0023 namespace Exhume {
0024   class Event;
0025   class CrossSection;
0026 }  // namespace Exhume
0027 
0028 namespace CLHEP {
0029   class HepRandomEngine;
0030 }
0031 
0032 namespace gen {
0033   //class Pythia6Hadronizer;
0034   class Pythia6Service;
0035 
0036   class ExhumeHadronizer : public BaseHadronizer {
0037   public:
0038     ExhumeHadronizer(edm::ParameterSet const& ps);
0039     ~ExhumeHadronizer() override;
0040 
0041     // bool generatePartons();
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     //edm::ParameterSet processPSet_;
0071     //edm::ParameterSet paramsPSet_;
0072     edm::ParameterSet myPSet_;
0073 
0074     bool hepMCVerbosity_;
0075     unsigned int maxEventsToPrint_;
0076     unsigned int pythiaListVerbosity_;
0077 
0078     bool convertToPDG_;
0079 
0080     //Pythia6Hadronizer* pythia6Hadronizer_;
0081     Exhume::Event* exhumeEvent_;
0082     Exhume::CrossSection* exhumeProcess_;
0083   };
0084 }  // namespace gen
0085 
0086 #endif