Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-11-07 23:58:28

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 }  // namespace edm
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, edm::one::WatchRuns> {
0030 public:
0031   explicit HectorProducer(edm::ParameterSet const &p);
0032   ~HectorProducer() override;
0033   void beginRun(const edm::Run &r, const edm::EventSetup &c) override;
0034   void endRun(const edm::Run &r, const edm::EventSetup &c) override;
0035   void produce(edm::Event &e, const edm::EventSetup &c) override;
0036 
0037 private:
0038   HepMC::GenEvent *evt_;
0039   Hector *m_Hector;
0040 
0041   edm::ESGetToken<HepPDT::ParticleDataTable, PDTRecord> tok_pdt_;
0042   edm::EDGetTokenT<edm::HepMCProduct> m_HepMC;
0043   bool m_verbosity;
0044   bool m_FP420Transport;
0045   bool m_ZDCTransport;
0046   int m_evtAnalysed;  //!< just to count events that have been analysed
0047 };
0048 
0049 #endif