ExhumeHadronizer

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
#ifndef gen_ExhumeHadronizer_h
#define gen_ExhumeHadronizer_h

#include <memory>
#include <string>
#include <vector>

#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"

#include "GeneratorInterface/Core/interface/BaseHadronizer.h"

namespace lhef {
  class LHERunInfo;
  class LHEEvent;
}  // namespace lhef

class LHEEventProduct;

namespace HepMC {
  class GenEvent;
}

namespace Exhume {
  class Event;
  class CrossSection;
}  // namespace Exhume

namespace CLHEP {
  class HepRandomEngine;
}

namespace gen {
  //class Pythia6Hadronizer;
  class Pythia6Service;

  class ExhumeHadronizer : public BaseHadronizer {
  public:
    ExhumeHadronizer(edm::ParameterSet const& ps);
    ~ExhumeHadronizer() override;

    // bool generatePartons();
    bool generatePartonsAndHadronize();
    bool hadronize();
    bool decay();
    bool residualDecay();
    bool readSettings(int);
    bool initializeForExternalPartons();
    bool initializeForInternalPartons();
    bool declareStableParticles(const std::vector<int>&);
    bool declareSpecialSettings(const std::vector<std::string>&);

    void finalizeEvent();

    void statistics();

    const char* classname() const;

  private:
    void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
    std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }

    static const std::vector<std::string> theSharedResources;

    Pythia6Service* pythia6Service_;

    CLHEP::HepRandomEngine* randomEngine_;

    double comEnergy_;

    //edm::ParameterSet processPSet_;
    //edm::ParameterSet paramsPSet_;
    edm::ParameterSet myPSet_;

    bool hepMCVerbosity_;
    unsigned int maxEventsToPrint_;
    unsigned int pythiaListVerbosity_;

    bool convertToPDG_;

    //Pythia6Hadronizer* pythia6Hadronizer_;
    Exhume::Event* exhumeEvent_;
    Exhume::CrossSection* exhumeProcess_;
  };
}  // namespace gen

#endif