File indexing completed on 2023-03-17 11:23:56
0001 #ifndef SimCalorimetry_HGCSimProducers_HGCDigiProducer_h
0002 #define SimCalorimetry_HGCSimProducers_HGCDigiProducer_h
0003
0004 #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixMod.h"
0005 #include "SimCalorimetry/HGCalSimProducers/interface/HGCDigitizer.h"
0006 #include "FWCore/Framework/interface/ProducesCollector.h"
0007
0008 #include <vector>
0009
0010 namespace edm {
0011 class ConsumesCollector;
0012 namespace stream {
0013 class EDProducerBase;
0014 }
0015 class ParameterSet;
0016 class StreamID;
0017 }
0018
0019 namespace CLHEP {
0020 class HepRandomEngine;
0021 }
0022
0023 class HGCDigiProducer : public DigiAccumulatorMixMod {
0024 public:
0025 HGCDigiProducer(edm::ParameterSet const& pset, edm::ProducesCollector, edm::ConsumesCollector& iC);
0026 HGCDigiProducer(edm::ParameterSet const& pset, edm::ConsumesCollector& iC);
0027
0028 void initializeEvent(edm::Event const&, edm::EventSetup const&) override;
0029 void finalizeEvent(edm::Event&, edm::EventSetup const&) override;
0030 void accumulate(edm::Event const&, edm::EventSetup const&) override;
0031 void accumulate(PileUpEventPrincipal const&, edm::EventSetup const&, edm::StreamID const&) override;
0032 ~HGCDigiProducer() override = default;
0033
0034 private:
0035
0036 bool premixStage1_, premixStage2_;
0037 HGCDigitizer theDigitizer_;
0038 CLHEP::HepRandomEngine* randomEngine_ = nullptr;
0039 };
0040
0041 #endif