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 
26 
27 #include <vector>
28 
29 class APDSimParameters;
31 class CaloHitResponse;
33 class EcalLiteDTUCoder;
34 
36 class CaloGeometry;
39 
40 namespace edm {
41  class ConsumesCollector;
42  class ProducerBase;
43  class Event;
44  class EventSetup;
45  template <typename T>
46  class Handle;
47  class ParameterSet;
48  class StreamID;
49 } // namespace edm
50 
51 namespace CLHEP {
52  class HepRandomEngine;
53 }
54 
56 public:
59 
61  edm::ProducesCollector producesCollector,
64  ~EcalDigiProducer_Ph2() override;
65 
66  void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
67  void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
68  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, edm::StreamID const&) override;
69  void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
71 
73 
74 private:
75  virtual void cacheEBDigis(const EBDigiCollectionPh2* ebDigiPtr) const {}
76 
78 
84  void accumulateCaloHits(HitsHandle const& ebHandle, int bunchCrossing);
85 
87 
88  void updateGeometry();
89 
91 
95 
98 
100 
101  const bool m_apdSeparateDigi;
103 
104  const double m_EBs25notCont;
105 
106  const unsigned int m_readoutFrameSize;
107 
108 protected:
109  std::unique_ptr<const EcalSimParameterMap> m_ParameterMap;
110 
111 private:
113  std::unique_ptr<const APDSimParameters> m_apdParameters;
114 
116  std::unique_ptr<const ComponentSimParameterMap> m_componentParameters;
117 
118  std::unique_ptr<EBHitResponse_Ph2> m_APDResponse;
119 
120  std::unique_ptr<EBHitResponse_Ph2> m_ComponentResponse;
121 
122 protected:
123  std::unique_ptr<EBHitResponse_Ph2> m_EBResponse;
124 
125 private:
126  const bool m_PreMix1;
127  const bool m_PreMix2;
128 
130 
131  std::unique_ptr<EBDigitizer_Ph2> m_APDDigitizer;
132  std::unique_ptr<EBDigitizer_Ph2> m_ComponentDigitizer;
133  std::unique_ptr<EBDigitizer_Ph2> m_BarrelDigitizer;
134 
135  std::unique_ptr<EcalElectronicsSim_Ph2> m_ElectronicsSim;
136  std::unique_ptr<EcalLiteDTUCoder> m_Coder;
137 
139  std::unique_ptr<EcalElectronicsSim<EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2>> m_APDElectronicsSim;
140  std::unique_ptr<EcalLiteDTUCoder> m_APDCoder;
141  std::unique_ptr<EcalElectronicsSim<EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2>> m_ComponentElectronicsSim;
142  std::unique_ptr<EcalLiteDTUCoder> m_ComponentCoder;
143 
145 
146  std::array<std::unique_ptr<CorrelatedNoisifier<EcalCorrMatrix_Ph2>>, 2> m_EBCorrNoise;
147 
148  CLHEP::HepRandomEngine* randomEngine_ = nullptr;
149 };
150 
151 #endif
ComponentShapeCollection m_ComponentShapes
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< EBDigitizer_Ph2 > m_ComponentDigitizer
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::unique_ptr< EBHitResponse_Ph2 > m_ComponentResponse
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
std::unique_ptr< const ComponentSimParameterMap > m_componentParameters
std::unique_ptr< EcalElectronicsSim< EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2 > > m_ComponentElectronicsSim
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
const std::string m_componentDigiTag
void accumulateCaloHits(HitsHandle const &ebHandle, int bunchCrossing)
std::unique_ptr< EBDigitizer_Ph2 > m_BarrelDigitizer
Definition: event.py:1
std::unique_ptr< EcalLiteDTUCoder > m_ComponentCoder