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 
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  void beginRun(edm::Run const& run, edm::EventSetup const& setup) override;
68 
70 
71 private:
72  virtual void cacheEBDigis(const EBDigiCollectionPh2* ebDigiPtr) const {}
73 
75 
81  void accumulateCaloHits(HitsHandle const& ebHandle, int bunchCrossing);
82 
83  void checkGeometry(const edm::EventSetup& eventSetup);
84 
85  void updateGeometry();
86 
87  void checkCalibrations(const edm::Event& event, const edm::EventSetup& eventSetup);
88 
91 
94 
96 
97  const bool m_apdSeparateDigi;
98 
99  const double m_EBs25notCont;
100 
101  const unsigned int m_readoutFrameSize;
102 
103 protected:
104  std::unique_ptr<const EcalSimParameterMap> m_ParameterMap;
105 
106 private:
108  std::unique_ptr<const APDSimParameters> m_apdParameters;
109 
110  std::unique_ptr<EBHitResponse_Ph2> m_APDResponse;
111 
112 protected:
113  std::unique_ptr<EBHitResponse_Ph2> m_EBResponse;
114 
115 private:
116  const bool m_PreMix1;
117  const bool m_PreMix2;
118 
119  std::unique_ptr<EBDigitizer_Ph2> m_APDDigitizer;
120  std::unique_ptr<EBDigitizer_Ph2> m_BarrelDigitizer;
121 
122  std::unique_ptr<EcalElectronicsSim_Ph2> m_ElectronicsSim;
123  std::unique_ptr<EcalLiteDTUCoder> m_Coder;
124 
126  std::unique_ptr<EcalElectronicsSim<EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2> > m_APDElectronicsSim;
127  std::unique_ptr<EcalLiteDTUCoder> m_APDCoder;
128 
130 
131  std::array<std::unique_ptr<CorrelatedNoisifier<EcalCorrMatrix_Ph2> >, 2> m_EBCorrNoise;
132 
133  CLHEP::HepRandomEngine* randomEngine_ = nullptr;
134 };
135 
136 #endif
EcalDigiProducer_Ph2::icalToken_
edm::ESGetToken< EcalIntercalibConstants, EcalIntercalibConstantsRcd > icalToken_
Definition: EcalDigiProducer_Ph2.h:79
edm::StreamID
Definition: StreamID.h:30
EcalDigiProducer_Ph2::m_EBs25notCont
const double m_EBs25notCont
Definition: EcalDigiProducer_Ph2.h:99
EcalDigiProducer_Ph2::m_EBCorrNoise
std::array< std::unique_ptr< CorrelatedNoisifier< EcalCorrMatrix_Ph2 > >, 2 > m_EBCorrNoise
Definition: EcalDigiProducer_Ph2.h:131
EcalTDigitizer.h
EcalIntercalibConstants.h
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
EBShape
Definition: EBShape.h:6
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
edm::Run
Definition: Run.h:45
Handle
edm
HLT enums.
Definition: AlignableModifier.h:19
EcalDigiProducer_Ph2::accumulate
void accumulate(edm::Event const &e, edm::EventSetup const &c) override
Definition: EcalDigiProducer_Ph2.cc:199
EcalDigiProducer_Ph2::accumulateCaloHits
void accumulateCaloHits(HitsHandle const &ebHandle, int bunchCrossing)
Definition: EcalDigiProducer_Ph2.cc:189
EcalDigiProducer_Ph2::randomEngine_
CLHEP::HepRandomEngine * randomEngine_
Definition: EcalDigiProducer_Ph2.h:133
PileUpEventPrincipal
Definition: PileUpEventPrincipal.h:19
EcalDigiProducer_Ph2::setEBNoiseSignalGenerator
void setEBNoiseSignalGenerator(EcalBaseSignalGenerator *noiseGenerator)
Definition: EcalDigiProducer_Ph2.cc:325
EcalLiteDTUPedestalsRcd.h
EBHitResponse.h
EcalDigitizerTraits.h
APDShape.h
EcalDigiProducer_Ph2::beginRun
void beginRun(edm::Run const &run, edm::EventSetup const &setup) override
Definition: EcalDigiProducer_Ph2.cc:329
APDSimParameters
Definition: APDSimParameters.h:8
EcalDigiProducer_Ph2::m_APDElectronicsSim
std::unique_ptr< EcalElectronicsSim< EcalLiteDTUCoder, EcalSamples_Ph2, EcalDataFrame_Ph2 > > m_APDElectronicsSim
Definition: EcalDigiProducer_Ph2.h:126
edm::Handle
Definition: AssociativeIterator.h:50
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
EcalDigiProducer_Ph2::pedestalToken_
edm::ESGetToken< EcalLiteDTUPedestalsMap, EcalLiteDTUPedestalsRcd > pedestalToken_
Definition: EcalDigiProducer_Ph2.h:76
EcalDigiProducer_Ph2::m_ElectronicsSim
std::unique_ptr< EcalElectronicsSim_Ph2 > m_ElectronicsSim
Definition: EcalDigiProducer_Ph2.h:122
EcalDigiProducer_Ph2::m_apdDigiTag
const std::string m_apdDigiTag
Definition: EcalDigiProducer_Ph2.h:107
ProducesCollector.h
EcalDigiProducer_Ph2::m_Coder
std::unique_ptr< EcalLiteDTUCoder > m_Coder
Definition: EcalDigiProducer_Ph2.h:123
EcalDigiProducer_Ph2::m_ParameterMap
std::unique_ptr< const EcalSimParameterMap > m_ParameterMap
Definition: EcalDigiProducer_Ph2.h:104
CorrelatedNoisifier.h
EBShape.h
EcalDigiProducer_Ph2::m_BarrelDigitizer
std::unique_ptr< EBDigitizer_Ph2 > m_BarrelDigitizer
Definition: EcalDigiProducer_Ph2.h:120
EcalDigiProducer_Ph2::initializeEvent
void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
Definition: EcalDigiProducer_Ph2.cc:176
EcalDigiProducer_Ph2::laserToken_
edm::ESGetToken< EcalLaserDbService, EcalLaserDbRecord > laserToken_
Definition: EcalDigiProducer_Ph2.h:77
CaloGeometry
Definition: CaloGeometry.h:21
EcalSimParameterMap
Definition: EcalSimParameterMap.h:11
EcalLiteDTUPedestals.h
EcalLiteDTUCoder
Definition: EcalLiteDTUCoder.h:24
EcalDigiProducer_Ph2::updateGeometry
void updateGeometry()
Definition: EcalDigiProducer_Ph2.cc:319
CaloTSamples
Definition: CaloTSamples.h:14
EcalBaseSignalGenerator
Definition: EcalBaseSignalGenerator.h:7
DigiAccumulatorMixMod.h
EcalDigiProducer_Ph2::HitsHandle
edm::Handle< std::vector< PCaloHit > > HitsHandle
Definition: EcalDigiProducer_Ph2.h:74
Event
EcalDigiProducer_Ph2::checkCalibrations
void checkCalibrations(const edm::Event &event, const edm::EventSetup &eventSetup)
Definition: EcalDigiProducer_Ph2.cc:263
DigiAccumulatorMixMod
Definition: DigiAccumulatorMixMod.h:41
CaloGeometryRecord.h
CLHEP
Definition: CocoaGlobals.h:27
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalADCToGeVConstant.h
EcalDigiProducer_Ph2::m_APDShape
APDShape m_APDShape
Definition: EcalDigiProducer_Ph2.h:89
Error.h
EcalDigiProducer_Ph2::EcalElectronicsSim_Ph2
EBDigitizerTraits_Ph2::ElectronicsSim EcalElectronicsSim_Ph2
Definition: EcalDigiProducer_Ph2.h:54
edm::ParameterSet
Definition: ParameterSet.h:47
EcalDigiProducer_Ph2::m_readoutFrameSize
const unsigned int m_readoutFrameSize
Definition: EcalDigiProducer_Ph2.h:101
EcalDigiProducer_Ph2::m_EBShape
EBShape m_EBShape
Definition: EcalDigiProducer_Ph2.h:90
ParameterSet
Definition: Functions.h:16
EcalElectronicsSim
Definition: EcalElectronicsSim.h:20
APDShape
Definition: APDShape.h:6
EcalDigiProducer_Ph2::m_EBResponse
std::unique_ptr< EBHitResponse_Ph2 > m_EBResponse
Definition: EcalDigiProducer_Ph2.h:113
EcalDigiProducer_Ph2::agcToken_
edm::ESGetToken< EcalADCToGeVConstant, EcalADCToGeVConstantRcd > agcToken_
Definition: EcalDigiProducer_Ph2.h:78
EcalDigiProducer_Ph2::EcalSamples_Ph2
CaloTSamples< float, ecalPh2::sampleSize > EcalSamples_Ph2
Definition: EcalDigiProducer_Ph2.h:125
EcalDigiProducer_Ph2
Definition: EcalDigiProducer_Ph2.h:51
EcalADCToGeVConstantRcd.h
CaloHitResponse
Creates electronics signals from hits.
Definition: CaloHitResponse.h:33
EcalDigiProducer_Ph2::beginLuminosityBlock
void beginLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
Definition: EcalDigiProducer_Ph2.cc:249
EcalDigiProducer_Ph2::m_EBdigiCollection
const std::string m_EBdigiCollection
Definition: EcalDigiProducer_Ph2.h:92
EcalDigiProducer_Ph2::m_useLCcorrection
bool m_useLCcorrection
Definition: EcalDigiProducer_Ph2.h:95
EcalDigiProducer_Ph2::m_apdParameters
std::unique_ptr< const APDSimParameters > m_apdParameters
Definition: EcalDigiProducer_Ph2.h:108
EcalDigiProducer_Ph2::EcalDigiProducer_Ph2
EcalDigiProducer_Ph2(const edm::ParameterSet &params, edm::ProducesCollector producesCollector, edm::ConsumesCollector &iC)
Definition: EcalDigiProducer_Ph2.cc:44
EcalDigiProducer_Ph2::geom_token_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geom_token_
Definition: EcalDigiProducer_Ph2.h:80
EcalDigiProducer_Ph2::checkGeometry
void checkGeometry(const edm::EventSetup &eventSetup)
Definition: EcalDigiProducer_Ph2.cc:308
edm::EventSetup
Definition: EventSetup.h:57
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
CaloTDigitizer.h
edm::ESGetToken
Definition: EventSetup.h:48
EcalTDigitizer
Definition: EcalTDigitizer.h:23
EcalDigiProducer_Ph2::~EcalDigiProducer_Ph2
~EcalDigiProducer_Ph2() override
Definition: EcalDigiProducer_Ph2.cc:174
EcalLaserDbRecord.h
EcalDigiProducer_Ph2::m_Geometry
const CaloGeometry * m_Geometry
Definition: EcalDigiProducer_Ph2.h:129
EcalDigiProducer_Ph2::m_APDCoder
std::unique_ptr< EcalLiteDTUCoder > m_APDCoder
Definition: EcalDigiProducer_Ph2.h:127
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::ProducesCollector
Definition: ProducesCollector.h:43
EcalDigiProducer_Ph2::m_PreMix1
const bool m_PreMix1
Definition: EcalDigiProducer_Ph2.h:116
CaloGeometry.h
EcalDigiProducer_Ph2::cacheEBDigis
virtual void cacheEBDigis(const EBDigiCollectionPh2 *ebDigiPtr) const
Definition: EcalDigiProducer_Ph2.h:72
EBDigiCollectionPh2
Definition: EcalDigiCollections.h:33
EcalDigiProducer_Ph2::m_PreMix2
const bool m_PreMix2
Definition: EcalDigiProducer_Ph2.h:117
EcalDigiProducer_Ph2::m_APDDigitizer
std::unique_ptr< EBDigitizer_Ph2 > m_APDDigitizer
Definition: EcalDigiProducer_Ph2.h:119
EventSetup
event
Definition: event.py:1
EcalDigiProducer_Ph2::m_hitsProducerTag
const std::string m_hitsProducerTag
Definition: EcalDigiProducer_Ph2.h:93
edm::Event
Definition: Event.h:73
lumi
Definition: LumiSectionData.h:20
EcalIntercalibConstantsRcd.h
EcalDigiProducer_Ph2::m_apdSeparateDigi
const bool m_apdSeparateDigi
Definition: EcalDigiProducer_Ph2.h:97
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
EcalCorrelatedNoiseMatrix.h
EcalDigiProducer_Ph2::finalizeEvent
void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
Definition: EcalDigiProducer_Ph2.cc:223
EcalDigiProducer_Ph2::m_APDResponse
std::unique_ptr< EBHitResponse_Ph2 > m_APDResponse
Definition: EcalDigiProducer_Ph2.h:110
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
EcalDigiProducer_Ph2::EBDigitizer_Ph2
EcalTDigitizer< EBDigitizerTraits_Ph2 > EBDigitizer_Ph2
Definition: EcalDigiProducer_Ph2.h:53