CMS 3D CMS Logo

EcalDigiProducer_Ph2.h
Go to the documentation of this file.
1 #ifndef SimCalorimetry_EcalSimProducers_EcalDigiProducer_Ph2_h
2 #define SimCalorimetry_EcalSimProducers_EcalDigiProducer_Ph2_h
3 
25 
26 #include <vector>
27 
28 class APDSimParameters;
29 class CaloHitResponse;
31 class EcalLiteDTUCoder;
32 
34 class CaloGeometry;
37 
38 namespace edm {
39  class ConsumesCollector;
40  class ProducerBase;
41  class Event;
42  class EventSetup;
43  template <typename T>
44  class Handle;
45  class ParameterSet;
46  class StreamID;
47 } // namespace edm
48 
49 namespace CLHEP {
50  class HepRandomEngine;
51 }
52 
54 public:
57 
59  edm::ProducesCollector producesCollector,
62  ~EcalDigiProducer_Ph2() override;
63 
64  void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
65  void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
66  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, edm::StreamID const&) override;
67  void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
69 
71 
72 private:
73  virtual void cacheEBDigis(const EBDigiCollectionPh2* ebDigiPtr) const {}
74 
76 
82  void accumulateCaloHits(HitsHandle const& ebHandle, int bunchCrossing);
83 
85 
86  void updateGeometry();
87 
89 
92 
95 
97 
98  const bool m_apdSeparateDigi;
99 
100  const double m_EBs25notCont;
101 
102  const unsigned int m_readoutFrameSize;
103 
104 protected:
105  std::unique_ptr<const EcalSimParameterMap> m_ParameterMap;
106 
107 private:
109  std::unique_ptr<const APDSimParameters> m_apdParameters;
110 
111  std::unique_ptr<EBHitResponse_Ph2> m_APDResponse;
112 
113 protected:
114  std::unique_ptr<EBHitResponse_Ph2> m_EBResponse;
115 
116 private:
117  const bool m_PreMix1;
118  const bool m_PreMix2;
119 
121 
122  std::unique_ptr<EBDigitizer_Ph2> m_APDDigitizer;
123  std::unique_ptr<EBDigitizer_Ph2> m_BarrelDigitizer;
124 
125  std::unique_ptr<EcalElectronicsSim_Ph2> m_ElectronicsSim;
126  std::unique_ptr<EcalLiteDTUCoder> m_Coder;
127 
129  std::unique_ptr<EcalElectronicsSim<EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2>> m_APDElectronicsSim;
130  std::unique_ptr<EcalLiteDTUCoder> m_APDCoder;
131 
133 
134  std::array<std::unique_ptr<CorrelatedNoisifier<EcalCorrMatrix_Ph2>>, 2> m_EBCorrNoise;
135 
136  CLHEP::HepRandomEngine* randomEngine_ = nullptr;
137 };
138 
139 #endif
void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
std::unique_ptr< EBHitResponse_Ph2 > m_EBResponse
void accumulate(edm::Event const &e, edm::EventSetup const &c) override
CLHEP::HepRandomEngine * randomEngine_
const unsigned int m_readoutFrameSize
std::unique_ptr< EcalElectronicsSim_Ph2 > m_ElectronicsSim
const std::string m_apdDigiTag
edm::ESGetToken< EcalLaserDbService, EcalLaserDbRecord > laserToken_
std::unique_ptr< EBDigitizer_Ph2 > m_APDDigitizer
std::unique_ptr< EBHitResponse_Ph2 > m_APDResponse
edm::ESGetToken< EcalADCToGeVConstant, EcalADCToGeVConstantRcd > agcToken_
CaloTSamples< float, ecalPh2::sampleSize > EcalSamples_Ph2
std::unique_ptr< EcalLiteDTUCoder > m_APDCoder
std::unique_ptr< EcalLiteDTUCoder > m_Coder
std::unique_ptr< const APDSimParameters > m_apdParameters
void checkCalibrations(const edm::Event &event, const edm::EventSetup &eventSetup)
std::array< std::unique_ptr< CorrelatedNoisifier< EcalCorrMatrix_Ph2 > >, 2 > m_EBCorrNoise
const std::string m_hitsProducerTag
const edm::EDGetTokenT< std::vector< PCaloHit > > m_HitsEBToken
edm::Handle< std::vector< PCaloHit > > HitsHandle
Creates electronics signals from hits.
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geom_token_
const std::string m_EBdigiCollection
void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
std::unique_ptr< const EcalSimParameterMap > m_ParameterMap
virtual void cacheEBDigis(const EBDigiCollectionPh2 *ebDigiPtr) const
const CaloGeometry * m_Geometry
void checkGeometry(const edm::EventSetup &eventSetup)
Definition: EBShape.h:7
edm::ESGetToken< EcalIntercalibConstants, EcalIntercalibConstantsRcd > icalToken_
void beginLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
edm::ESGetToken< EcalLiteDTUPedestalsMap, EcalLiteDTUPedestalsRcd > pedestalToken_
EcalDigiProducer_Ph2(const edm::ParameterSet &params, edm::ProducesCollector producesCollector, edm::ConsumesCollector &iC)
HLT enums.
std::unique_ptr< EcalElectronicsSim< EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2 > > m_APDElectronicsSim
void setEBNoiseSignalGenerator(EcalBaseSignalGenerator *noiseGenerator)
EcalTDigitizer< EBDigitizerTraits_Ph2 > EBDigitizer_Ph2
EBDigitizerTraits_Ph2::ElectronicsSim EcalElectronicsSim_Ph2
void accumulateCaloHits(HitsHandle const &ebHandle, int bunchCrossing)
std::unique_ptr< EBDigitizer_Ph2 > m_BarrelDigitizer
Definition: event.py:1