CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
15 #include <vector>
25 
26 class APDSimParameters;
27 class CaloHitResponse;
29 class EcalLiteDTUCoder;
30 
32 class CaloGeometry;
35 
36 namespace edm {
37  class ConsumesCollector;
38  class ProducerBase;
39  class Event;
40  class EventSetup;
41  template <typename T>
42  class Handle;
43  class ParameterSet;
44  class StreamID;
45 } // namespace edm
46 
47 namespace CLHEP {
48  class HepRandomEngine;
49 }
50 
52 public:
55 
57  edm::ProducesCollector producesCollector,
60  ~EcalDigiProducer_Ph2() override;
61 
62  void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
63  void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
64  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, edm::StreamID const&) override;
65  void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
67 
69 
70 private:
71  virtual void cacheEBDigis(const EBDigiCollectionPh2* ebDigiPtr) const {}
72 
74 
80  void accumulateCaloHits(HitsHandle const& ebHandle, int bunchCrossing);
81 
82  void checkGeometry(const edm::EventSetup& eventSetup);
83 
84  void updateGeometry();
85 
86  void checkCalibrations(const edm::Event& event, const edm::EventSetup& eventSetup);
87 
90 
93 
95 
96  const bool m_apdSeparateDigi;
97 
98  const double m_EBs25notCont;
99 
100  const unsigned int m_readoutFrameSize;
101 
102 protected:
103  std::unique_ptr<const EcalSimParameterMap> m_ParameterMap;
104 
105 private:
107  std::unique_ptr<const APDSimParameters> m_apdParameters;
108 
109  std::unique_ptr<EBHitResponse_Ph2> m_APDResponse;
110 
111 protected:
112  std::unique_ptr<EBHitResponse_Ph2> m_EBResponse;
113 
114 private:
115  const bool m_PreMix1;
116  const bool m_PreMix2;
117 
118  std::unique_ptr<EBDigitizer_Ph2> m_APDDigitizer;
119  std::unique_ptr<EBDigitizer_Ph2> m_BarrelDigitizer;
120 
121  std::unique_ptr<EcalElectronicsSim_Ph2> m_ElectronicsSim;
122  std::unique_ptr<EcalLiteDTUCoder> m_Coder;
123 
125  std::unique_ptr<EcalElectronicsSim<EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2> > m_APDElectronicsSim;
126  std::unique_ptr<EcalLiteDTUCoder> m_APDCoder;
127 
129 
130  std::array<std::unique_ptr<CorrelatedNoisifier<EcalCorrMatrix_Ph2> >, 2> m_EBCorrNoise;
131 
132  CLHEP::HepRandomEngine* randomEngine_ = nullptr;
133 };
134 
135 #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
const edm::EventSetup & c
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)
virtual void cacheEBDigis(const EBDigiCollectionPh2 *ebDigiPtr) const
std::array< std::unique_ptr< CorrelatedNoisifier< EcalCorrMatrix_Ph2 > >, 2 > m_EBCorrNoise
const std::string m_hitsProducerTag
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
list lumi
Definition: dqmdumpme.py:53
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)
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