File indexing completed on 2023-10-25 10:05:14
0001 #ifndef SimTransport_HectorProducer_H
0002 #define SimTransport_HectorProducer_H
0003
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/one/EDProducer.h"
0006
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 #include "FWCore/Framework/interface/MakerMacros.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "FWCore/Utilities/interface/EDGetToken.h"
0011
0012 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
0013
0014 namespace edm {
0015 class ParameterSet;
0016 class Event;
0017 class EventSetup;
0018 class ConsumesCollector;
0019 class HepMCProduct;
0020 }
0021
0022 class HectorManager;
0023
0024 class Hector;
0025
0026 namespace HepMC {
0027 class GenEvent;
0028 }
0029 class HectorProducer : public edm::one::EDProducer<edm::one::SharedResources> {
0030 public:
0031 explicit HectorProducer(edm::ParameterSet const &p);
0032 ~HectorProducer() override;
0033 void produce(edm::Event &e, const edm::EventSetup &c) override;
0034
0035 private:
0036 std::unique_ptr<Hector> m_Hector;
0037
0038 edm::ESGetToken<HepPDT::ParticleDataTable, PDTRecord> tok_pdt_;
0039 edm::EDGetTokenT<edm::HepMCProduct> m_HepMC;
0040 bool m_verbosity;
0041 bool m_FP420Transport;
0042 bool m_ZDCTransport;
0043 int m_evtAnalysed;
0044 };
0045
0046 #endif