CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
HcalDigitizer Class Reference

#include <HcalDigitizer.h>

Public Member Functions

void accumulate (edm::Event const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
void accumulate (PileUpEventPrincipal const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
void finalizeEvent (edm::Event &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
 
 HcalDigitizer (const edm::ParameterSet &ps, edm::ConsumesCollector &iC)
 
void initializeEvent (edm::Event const &e, edm::EventSetup const &c)
 
void setHBHENoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setHFNoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setHONoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setQIE10NoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setQIE11NoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
void setZDCNoiseSignalGenerator (HcalBaseSignalGenerator *noiseGenerator)
 
virtual ~HcalDigitizer ()
 

Private Types

typedef CaloTDigitizer< HBHEDigitizerTraits, CaloTDigitizerQIE8RunHBHEDigitizer
 
typedef CaloTDigitizer< HFDigitizerTraits, CaloTDigitizerQIE8RunHFDigitizer
 
typedef CaloTDigitizer< HODigitizerTraits, CaloTDigitizerQIE8RunHODigitizer
 
typedef CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE1011RunQIE10Digitizer
 
typedef CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011RunQIE11Digitizer
 
typedef CaloTDigitizer< ZDCDigitizerTraits, CaloTDigitizerQIE8RunZDCDigitizer
 

Private Member Functions

void accumulateCaloHits (edm::Handle< std::vector< PCaloHit >> const &hcalHits, edm::Handle< std::vector< PCaloHit >> const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h, const ZdcTopology *z)
 
void buildHBHEQIECells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void buildHFQIECells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void buildHOSiPMCells (const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
 
void checkGeometry (const edm::EventSetup &eventSetup)
 
void darkening (std::vector< PCaloHit > &hcalHits)
 
void fillFakeHits ()
 some hits in each subdetector, just for testing purposes More...
 
void setup (const edm::EventSetup &es)
 
void updateGeometry (const edm::EventSetup &eventSetup)
 

Private Attributes

bool agingFlagHB
 
bool agingFlagHE
 
const edm::ESGetToken< HcalDbService, HcalDbRecordconditionsToken_
 
bool debugCS_
 
double deliveredLumi
 
bool doHFWindow_
 
std::vector< DetIdhbheCells
 
bool hbhegeo
 
const HcalTimeSlewhcalTimeSlew_delay_
 
const edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecordhcalTimeSlew_delay_token_
 
edm::EDGetTokenT< std::vector< PCaloHit > > hcalToken_
 
bool hfgeo
 
std::string hitsProducer_
 
bool hogeo
 
bool ignoreTime_
 
std::vector< PCaloHitinjectedHits_
 
std::vector< int > injectedHitsCells_
 
std::vector< double > injectedHitsEnergy_
 
std::vector< double > injectedHitsTime_
 
bool injectTestHits_
 
bool isHCAL
 
bool isZDC
 
bool killHE_
 
const HBHEDarkeningm_HBDarkening
 
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecordm_HBDarkeningToken
 
const HBHEDarkeningm_HEDarkening
 
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecordm_HEDarkeningToken
 
std::unique_ptr< HFRecalibrationm_HFRecalibration
 
edm::ESGetToken< HcalMCParams, HcalMCParamsRcdmcParamsToken_
 
const edm::ESGetToken< HcalQIETypes, HcalQIETypesRcdqieTypesToken_
 
bool testNumbering_
 
std::unique_ptr< HcalCoderFactorytheCoderFactory
 
const CaloGeometrytheGeometry
 
const edm::ESGetToken< CaloGeometry, CaloGeometryRecordtheGeometryToken
 
edm::ESWatcher< CaloGeometryRecordtheGeometryWatcher_
 
std::unique_ptr< HcalAmplifiertheHBHEAmplifier
 
std::unique_ptr< HBHEDigitizertheHBHEDigitizer
 
std::unique_ptr< HcalElectronicsSimtheHBHEElectronicsSim
 
HBHEHitFilter theHBHEHitFilter
 
std::unique_ptr< HcalAmplifiertheHBHEQIE11Amplifier
 
std::vector< DetIdtheHBHEQIE11DetIds
 
std::unique_ptr< QIE11DigitizertheHBHEQIE11Digitizer
 
std::unique_ptr< HcalElectronicsSimtheHBHEQIE11ElectronicsSim
 
HBHEHitFilter theHBHEQIE11HitFilter
 
std::vector< DetIdtheHBHEQIE8DetIds
 
std::unique_ptr< CaloHitResponsetheHBHEResponse
 
std::unique_ptr< HcalSiPMHitResponsetheHBHESiPMResponse
 
std::unique_ptr< HcalAmplifiertheHFAmplifier
 
std::unique_ptr< HFDigitizertheHFDigitizer
 
std::unique_ptr< HcalElectronicsSimtheHFElectronicsSim
 
HFHitFilter theHFHitFilter
 
std::unique_ptr< HcalAmplifiertheHFQIE10Amplifier
 
std::vector< DetIdtheHFQIE10DetIds
 
std::unique_ptr< QIE10DigitizertheHFQIE10Digitizer
 
std::unique_ptr< HcalElectronicsSimtheHFQIE10ElectronicsSim
 
HFHitFilter theHFQIE10HitFilter
 
std::unique_ptr< CaloHitResponsetheHFQIE10Response
 
std::vector< DetIdtheHFQIE8DetIds
 
std::unique_ptr< CaloHitResponsetheHFResponse
 
std::unique_ptr< HcalAmplifiertheHOAmplifier
 
std::unique_ptr< HODigitizertheHODigitizer
 
std::unique_ptr< HcalElectronicsSimtheHOElectronicsSim
 
HOHitFilter theHOHitFilter
 
std::vector< DetIdtheHOHPDDetIds
 
std::unique_ptr< CaloHitResponsetheHOResponse
 
int theHOSiPMCode
 
std::vector< DetIdtheHOSiPMDetIds
 
std::unique_ptr< HODigitizertheHOSiPMDigitizer
 
HOHitFilter theHOSiPMHitFilter
 
std::unique_ptr< HcalSiPMHitResponsetheHOSiPMResponse
 
std::unique_ptr< HPDIonFeedbackSimtheIonFeedback
 
HcalSimParameterMap theParameterMap
 
const HcalDDDRecConstantstheRecNumber
 
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtheRecNumberToken
 
edm::ESWatcher< HcalRecNumberingRecordtheRecNumberWatcher_
 
std::unique_ptr< HcalHitRelabellertheRelabeller
 
HcalShapes theShapes
 
std::unique_ptr< HcalTimeSlewSimtheTimeSlewSim
 
std::unique_ptr< HcalAmplifiertheZDCAmplifier
 
std::unique_ptr< ZDCDigitizertheZDCDigitizer
 
std::unique_ptr< HcalElectronicsSimtheZDCElectronicsSim
 
ZDCHitFilter theZDCHitFilter
 
std::unique_ptr< CaloHitResponsetheZDCResponse
 
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecordtopoToken_
 
const edm::ESGetToken< ZdcTopology, HcalRecNumberingRecordtopoZToken_
 
bool zdcgeo
 
edm::EDGetTokenT< std::vector< PCaloHit > > zdcToken_
 

Detailed Description

Definition at line 47 of file HcalDigitizer.h.

Member Typedef Documentation

◆ HBHEDigitizer

Reconstruction algorithm

Definition at line 106 of file HcalDigitizer.h.

◆ HFDigitizer

Definition at line 108 of file HcalDigitizer.h.

◆ HODigitizer

Definition at line 107 of file HcalDigitizer.h.

◆ QIE10Digitizer

Definition at line 110 of file HcalDigitizer.h.

◆ QIE11Digitizer

Definition at line 111 of file HcalDigitizer.h.

◆ ZDCDigitizer

Definition at line 109 of file HcalDigitizer.h.

Constructor & Destructor Documentation

◆ HcalDigitizer()

HcalDigitizer::HcalDigitizer ( const edm::ParameterSet ps,
edm::ConsumesCollector iC 
)
explicit

Definition at line 35 of file HcalDigitizer.cc.

References agingFlagHB, agingFlagHE, HcalCoderFactory::DB, debugCS_, deliveredLumi, DataMixerDataOnData_cff::doEmpty, DigiDM_cff::doNoise, hcalUnsuppressedDigis_cfi::doTimeSlew, edm::ConsumesCollector::esConsumes(), Exception, edm::ParameterSet::getParameter(), hcalTimeSlew_delay_, ignoreTime_, isZDC, m_HBDarkeningToken, m_HEDarkeningToken, m_HFRecalibration, mcParamsToken_, hcalUnsuppressedDigis_cfi::minFCToDelay, testNumbering_, theCoderFactory, theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, theHBHEHitFilter, theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, theHBHEQIE11HitFilter, theHBHEResponse, theHBHESiPMResponse, theHFAmplifier, theHFDigitizer, theHFElectronicsSim, theHFHitFilter, theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, theHFQIE10HitFilter, theHFQIE10Response, theHFResponse, theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOHitFilter, theHOResponse, theHOSiPMCode, theHOSiPMDigitizer, theHOSiPMHitFilter, theHOSiPMResponse, theIonFeedback, theParameterMap, theRelabeller, theShapes, theTimeSlewSim, theZDCAmplifier, theZDCDigitizer, theZDCElectronicsSim, theZDCHitFilter, and theZDCResponse.

37  topoToken_(iC.esConsumes()),
38  topoZToken_(iC.esConsumes()),
43  theGeometry(nullptr),
44  theRecNumber(nullptr),
45  theParameterMap(ps),
46  theShapes(),
47  theHBHEResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
48  theHBHESiPMResponse(std::make_unique<HcalSiPMHitResponse>(
49  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), true)),
50  theHOResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
51  theHOSiPMResponse(std::make_unique<HcalSiPMHitResponse>(
52  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), false)),
53  theHFResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
54  theHFQIE10Response(std::make_unique<CaloHitResponse>(
55  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), true)),
56  theZDCResponse(std::make_unique<CaloHitResponse>(
57  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), false)),
58  theHBHEAmplifier(nullptr),
59  theHFAmplifier(nullptr),
60  theHOAmplifier(nullptr),
61  theZDCAmplifier(nullptr),
62  theHFQIE10Amplifier(nullptr),
63  theHBHEQIE11Amplifier(nullptr),
64  theIonFeedback(nullptr),
65  theCoderFactory(nullptr),
66  theHBHEElectronicsSim(nullptr),
67  theHFElectronicsSim(nullptr),
68  theHOElectronicsSim(nullptr),
69  theZDCElectronicsSim(nullptr),
70  theHFQIE10ElectronicsSim(nullptr),
79  theHBHEDigitizer(nullptr),
80  theHODigitizer(nullptr),
81  theHOSiPMDigitizer(nullptr),
82  theHFDigitizer(nullptr),
83  theZDCDigitizer(nullptr),
84  theHFQIE10Digitizer(nullptr),
85  theHBHEQIE11Digitizer(nullptr),
86  theRelabeller(nullptr),
87  isZDC(ps.getParameter<bool>("doZDCDigi")),
88  isHCAL(true),
89  zdcgeo(true),
90  hbhegeo(true),
91  hogeo(true),
92  hfgeo(true),
93  doHFWindow_(ps.getParameter<bool>("doHFWindow")),
94  killHE_(ps.getParameter<bool>("killHE")),
95  debugCS_(ps.getParameter<bool>("debugCaloSamples")),
96  ignoreTime_(ps.getParameter<bool>("ignoreGeantTime")),
97  injectTestHits_(ps.getParameter<bool>("injectTestHits")),
98  hitsProducer_(ps.getParameter<std::string>("hitsProducer")),
99  theHOSiPMCode(ps.getParameter<edm::ParameterSet>("ho").getParameter<int>("siPMCode")),
100  deliveredLumi(0.),
101  agingFlagHB(ps.getParameter<bool>("HBDarkening")),
102  agingFlagHE(ps.getParameter<bool>("HEDarkening")),
105  m_HBDarkening(nullptr),
106  m_HEDarkening(nullptr),
107  m_HFRecalibration(nullptr),
108  injectedHitsEnergy_(ps.getParameter<std::vector<double>>("injectTestHitsEnergy")),
109  injectedHitsTime_(ps.getParameter<std::vector<double>>("injectTestHitsTime")),
110  injectedHitsCells_(ps.getParameter<std::vector<int>>("injectTestHitsCells")) {
111  if (agingFlagHB) {
113  }
114  if (agingFlagHE) {
116  }
117  if (theHOSiPMCode == 2) {
118  mcParamsToken_ = iC.esConsumes();
119  }
120 
121  bool doNoise = ps.getParameter<bool>("doNoise");
122 
123  bool PreMix1 = ps.getParameter<bool>("HcalPreMixStage1"); // special threshold/pedestal treatment
124  bool PreMix2 = ps.getParameter<bool>("HcalPreMixStage2"); // special threshold/pedestal treatment
125  bool doEmpty = ps.getParameter<bool>("doEmpty");
126  deliveredLumi = ps.getParameter<double>("DelivLuminosity");
127  bool agingFlagHF = ps.getParameter<bool>("HFDarkening");
128  double minFCToDelay = ps.getParameter<double>("minFCToDelay");
129 
130  if (PreMix1 && PreMix2) {
131  throw cms::Exception("Configuration") << "HcalDigitizer cannot operate in PreMixing digitization and "
132  "PreMixing\n"
133  "digi combination modes at the same time. Please set one mode to "
134  "False\n"
135  "in the configuration file.";
136  }
137 
138  // need to make copies, because they might get different noise generators
139  theHBHEAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
140  theHFAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
141  theHOAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
142  theZDCAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
143  theHFQIE10Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
144  theHBHEQIE11Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
145 
146  theCoderFactory = std::make_unique<HcalCoderFactory>(HcalCoderFactory::DB);
147 
149  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHBHEAmplifier.get(), theCoderFactory.get(), PreMix1);
151  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHFAmplifier.get(), theCoderFactory.get(), PreMix1);
153  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHOAmplifier.get(), theCoderFactory.get(), PreMix1);
155  std::make_unique<HcalElectronicsSim>(&theParameterMap, theZDCAmplifier.get(), theCoderFactory.get(), PreMix1);
157  std::make_unique<HcalElectronicsSim>(&theParameterMap,
158  theHFQIE10Amplifier.get(),
159  theCoderFactory.get(),
160  PreMix1); // should this use a different coder factory?
162  std::make_unique<HcalElectronicsSim>(&theParameterMap,
163  theHBHEQIE11Amplifier.get(),
164  theCoderFactory.get(),
165  PreMix1); // should this use a different coder factory?
166 
167  bool doHOHPD = (theHOSiPMCode != 1);
168  bool doHOSiPM = (theHOSiPMCode != 0);
169  if (doHOHPD) {
170  theHOResponse = std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes);
171  theHOResponse->setHitFilter(&theHOHitFilter);
172  theHODigitizer = std::make_unique<HODigitizer>(theHOResponse.get(), theHOElectronicsSim.get(), doEmpty);
173  }
174  if (doHOSiPM) {
175  theHOSiPMResponse->setHitFilter(&theHOSiPMHitFilter);
176  theHOSiPMDigitizer = std::make_unique<HODigitizer>(theHOSiPMResponse.get(), theHOElectronicsSim.get(), doEmpty);
177  }
178 
179  theHBHEResponse->setHitFilter(&theHBHEHitFilter);
181 
182  // QIE8 and QIE11 can coexist in HBHE
184  std::make_unique<QIE11Digitizer>(theHBHESiPMResponse.get(), theHBHEQIE11ElectronicsSim.get(), doEmpty);
185  theHBHEDigitizer = std::make_unique<HBHEDigitizer>(theHBHEResponse.get(), theHBHEElectronicsSim.get(), doEmpty);
186 
187  bool doTimeSlew = ps.getParameter<bool>("doTimeSlew");
188  // initialize: they won't be called later if flag is set
189  hcalTimeSlew_delay_ = nullptr;
190  theTimeSlewSim.reset(nullptr);
191  if (doTimeSlew) {
192  // no time slewing for HF
193  theTimeSlewSim = std::make_unique<HcalTimeSlewSim>(&theParameterMap, minFCToDelay);
194  theHBHEAmplifier->setTimeSlewSim(theTimeSlewSim.get());
195  theHBHEQIE11Amplifier->setTimeSlewSim(theTimeSlewSim.get());
196  theHOAmplifier->setTimeSlewSim(theTimeSlewSim.get());
197  theZDCAmplifier->setTimeSlewSim(theTimeSlewSim.get());
198  }
199 
200  theHFResponse->setHitFilter(&theHFHitFilter);
201  theHFQIE10Response->setHitFilter(&theHFQIE10HitFilter);
202  theZDCResponse->setHitFilter(&theZDCHitFilter);
203 
204  // QIE8 and QIE10 can coexist in HF
206  std::make_unique<QIE10Digitizer>(theHFQIE10Response.get(), theHFQIE10ElectronicsSim.get(), doEmpty);
207  theHFDigitizer = std::make_unique<HFDigitizer>(theHFResponse.get(), theHFElectronicsSim.get(), doEmpty);
208 
209  // temporary move until Run3 ZDC will be added
210  if (isZDC) {
211  theZDCDigitizer = std::make_unique<ZDCDigitizer>(theZDCResponse.get(), theZDCElectronicsSim.get(), doEmpty);
212  } else {
213  theZDCDigitizer = nullptr;
214  edm::LogVerbatim("HcalDigitizer") << "Inhibit ZDC Digitization";
215  }
216  edm::LogVerbatim("HcalDigitizer") << "iszDC: " << isZDC << " theZDCDigitizer: " << theZDCDigitizer;
217 
218  testNumbering_ = ps.getParameter<bool>("TestNumbering");
219 #ifdef EDM_ML_DEBUG
220  edm::LogVerbatim("HcalSim") << "Flag to see if Hit Relabeller to be initiated " << testNumbering_;
221 #endif
222  if (testNumbering_)
223  theRelabeller = std::make_unique<HcalHitRelabeller>(ps.getParameter<bool>("doNeutralDensityFilter"));
224 
225  if (ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
226  theIonFeedback = std::make_unique<HPDIonFeedbackSim>(ps, &theShapes);
227  theHBHEResponse->setPECorrection(theIonFeedback.get());
228  if (ps.getParameter<bool>("doThermalNoise")) {
229  theHBHEAmplifier->setIonFeedbackSim(theIonFeedback.get());
230  }
231  }
232 
233  // option to save CaloSamples as event product for debugging
234  if (debugCS_) {
235  if (theHBHEDigitizer)
236  theHBHEDigitizer->setDebugCaloSamples(true);
238  theHBHEQIE11Digitizer->setDebugCaloSamples(true);
239  if (theHODigitizer)
240  theHODigitizer->setDebugCaloSamples(true);
241  if (theHOSiPMDigitizer)
242  theHOSiPMDigitizer->setDebugCaloSamples(true);
243  if (theHFDigitizer)
244  theHFDigitizer->setDebugCaloSamples(true);
246  theHFQIE10Digitizer->setDebugCaloSamples(true);
247  if (theZDCDigitizer)
248  theZDCDigitizer->setDebugCaloSamples(true);
249  }
250 
251  // option to ignore Geant time distribution in SimHits, for debugging
252  if (ignoreTime_) {
253  theHBHEResponse->setIgnoreGeantTime(ignoreTime_);
254  theHBHESiPMResponse->setIgnoreGeantTime(ignoreTime_);
255  theHOResponse->setIgnoreGeantTime(ignoreTime_);
256  theHOSiPMResponse->setIgnoreGeantTime(ignoreTime_);
257  theHFResponse->setIgnoreGeantTime(ignoreTime_);
258  theHFQIE10Response->setIgnoreGeantTime(ignoreTime_);
259  theZDCResponse->setIgnoreGeantTime(ignoreTime_);
260  }
261 
262  if (agingFlagHF)
263  m_HFRecalibration = std::make_unique<HFRecalibration>(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock"));
264 }
HFHitFilter theHFQIE10HitFilter
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Log< level::Info, true > LogVerbatim
std::vector< int > injectedHitsCells_
HBHEHitFilter theHBHEHitFilter
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const HcalDDDRecConstants * theRecNumber
std::unique_ptr< CaloHitResponse > theHFResponse
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > theRecNumberToken
Definition: HcalDigitizer.h:96
std::unique_ptr< HcalTimeSlewSim > theTimeSlewSim
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
HOHitFilter theHOHitFilter
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HcalHitRelabeller > theRelabeller
HFHitFilter theHFHitFilter
std::unique_ptr< HFDigitizer > theHFDigitizer
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > theGeometryToken
Definition: HcalDigitizer.h:95
std::unique_ptr< HODigitizer > theHODigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > m_HBDarkeningToken
Definition: HcalDigitizer.h:92
std::unique_ptr< HcalCoderFactory > theCoderFactory
std::unique_ptr< HcalElectronicsSim > theZDCElectronicsSim
std::unique_ptr< HFRecalibration > m_HFRecalibration
edm::EDGetTokenT< std::vector< PCaloHit > > zdcToken_
std::vector< double > injectedHitsEnergy_
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
const HBHEDarkening * m_HEDarkening
std::unique_ptr< HcalElectronicsSim > theHFElectronicsSim
std::string hitsProducer_
double deliveredLumi
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
const HcalTimeSlew * hcalTimeSlew_delay_
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
ZDCHitFilter theZDCHitFilter
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
std::vector< double > injectedHitsTime_
HcalShapes theShapes
std::unique_ptr< CaloHitResponse > theHBHEResponse
edm::EDGetTokenT< std::vector< PCaloHit > > hcalToken_
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > m_HEDarkeningToken
Definition: HcalDigitizer.h:93
HcalSimParameterMap theParameterMap
std::unique_ptr< HcalElectronicsSim > theHBHEElectronicsSim
const edm::ESGetToken< HcalQIETypes, HcalQIETypesRcd > qieTypesToken_
Definition: HcalDigitizer.h:97
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
std::unique_ptr< CaloHitResponse > theHOResponse
std::unique_ptr< HPDIonFeedbackSim > theIonFeedback
std::unique_ptr< HcalAmplifier > theZDCAmplifier
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
HOHitFilter theHOSiPMHitFilter
std::unique_ptr< CaloHitResponse > theZDCResponse
const CaloGeometry * theGeometry
std::unique_ptr< HcalAmplifier > theHOAmplifier
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
const HBHEDarkening * m_HBDarkening
std::unique_ptr< HcalElectronicsSim > theHOElectronicsSim
HBHEHitFilter theHBHEQIE11HitFilter
std::unique_ptr< CaloHitResponse > theHFQIE10Response
edm::ESGetToken< HcalMCParams, HcalMCParamsRcd > mcParamsToken_
Definition: HcalDigitizer.h:98
const edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
Definition: HcalDigitizer.h:89
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
const edm::ESGetToken< ZdcTopology, HcalRecNumberingRecord > topoZToken_
Definition: HcalDigitizer.h:91
const edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > hcalTimeSlew_delay_token_
Definition: HcalDigitizer.h:94

◆ ~HcalDigitizer()

HcalDigitizer::~HcalDigitizer ( )
virtual

Definition at line 266 of file HcalDigitizer.cc.

266 {}

Member Function Documentation

◆ accumulate() [1/2]

void HcalDigitizer::accumulate ( edm::Event const &  e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 459 of file HcalDigitizer.cc.

References accumulateCaloHits(), MillePedeFileConverter_cfg::e, options_cfi::eventSetup, hcalToken_, injectTestHits_, isHCAL, edm::HandleBase::isValid(), isZDC, or, topoToken_, topoZToken_, and zdcToken_.

Referenced by HcalDigiProducer::accumulate().

459  {
460  // Step A: Get Inputs
461  const edm::Handle<std::vector<PCaloHit>> &zdcHandle = e.getHandle(zdcToken_);
462  isZDC = zdcHandle.isValid();
463 
464  const edm::Handle<std::vector<PCaloHit>> &hcalHandle = e.getHandle(hcalToken_);
465  isHCAL = hcalHandle.isValid() or injectTestHits_;
466 
467  const HcalTopology *htopoP = &eventSetup.getData(topoToken_);
468  const ZdcTopology *ztopoP = &eventSetup.getData(topoZToken_);
469 
470  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP, ztopoP);
471 }
edm::EDGetTokenT< std::vector< PCaloHit > > zdcToken_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::EDGetTokenT< std::vector< PCaloHit > > hcalToken_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
bool isValid() const
Definition: HandleBase.h:70
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit >> const &hcalHits, edm::Handle< std::vector< PCaloHit >> const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h, const ZdcTopology *z)
const edm::ESGetToken< ZdcTopology, HcalRecNumberingRecord > topoZToken_
Definition: HcalDigitizer.h:91

◆ accumulate() [2/2]

void HcalDigitizer::accumulate ( PileUpEventPrincipal const &  e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 473 of file HcalDigitizer.cc.

References accumulateCaloHits(), MillePedeFileConverter_cfg::e, options_cfi::eventSetup, hitsProducer_, isHCAL, edm::HandleBase::isValid(), isZDC, topoToken_, and topoZToken_.

475  {
476  // Step A: Get Inputs
477  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
479  e.getByLabel(zdcTag, zdcHandle);
480  isZDC = zdcHandle.isValid();
481 
482  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
484  e.getByLabel(hcalTag, hcalHandle);
485  isHCAL = hcalHandle.isValid();
486 
487  const HcalTopology *htopoP = &eventSetup.getData(topoToken_);
488  const ZdcTopology *ztopoP = &eventSetup.getData(topoZToken_);
489 
490  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP, ztopoP);
491 }
std::string hitsProducer_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
bool isValid() const
Definition: HandleBase.h:70
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit >> const &hcalHits, edm::Handle< std::vector< PCaloHit >> const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h, const ZdcTopology *z)
const edm::ESGetToken< ZdcTopology, HcalRecNumberingRecord > topoZToken_
Definition: HcalDigitizer.h:91

◆ accumulateCaloHits()

void HcalDigitizer::accumulateCaloHits ( edm::Handle< std::vector< PCaloHit >> const &  hcalHits,
edm::Handle< std::vector< PCaloHit >> const &  zdcHits,
int  bunchCrossing,
CLHEP::HepRandomEngine *  engine,
const HcalTopology h,
const ZdcTopology z 
)
private

Definition at line 357 of file HcalDigitizer.cc.

References darkening(), TauDecayModes::dec, doHFWindow_, hbhegeo, HcalEndcap, HcalForward, hfgeo, hogeo, mps_fire::i, EcalPhiSymFlatTableProducers_cfi::id, injectedHits_, injectTestHits_, isHCAL, isZDC, killHE_, m_HBDarkening, m_HEDarkening, m_HFRecalibration, HcalDetId::newForm(), HcalDetId::oldFormat(), DetId::rawId(), HcalDetId::subdet(), testNumbering_, theHBHEDigitizer, theHBHEQIE11Digitizer, theHFDigitizer, theHFQIE10Digitizer, theHODigitizer, theHOSiPMDigitizer, theRelabeller, theZDCDigitizer, ZdcTopology::valid(), HcalTopology::validHcal(), and zdcgeo.

Referenced by accumulate().

362  {
363  // Step A: pass in inputs, and accumulate digis
364  if (isHCAL) {
365  std::vector<PCaloHit> hcalHitsOrig = *hcalHandle.product();
366  if (injectTestHits_)
367  hcalHitsOrig = injectedHits_;
368  std::vector<PCaloHit> hcalHits;
369  hcalHits.reserve(hcalHitsOrig.size());
370 
371  // evaluate darkening before relabeling
372  if (testNumbering_) {
374  darkening(hcalHitsOrig);
375  }
376  // Relabel PCaloHits if necessary
377  edm::LogVerbatim("HcalDigitizer") << "Calling Relabeller";
378  theRelabeller->process(hcalHitsOrig);
379  }
380 
381  // eliminate bad hits
382  for (unsigned int i = 0; i < hcalHitsOrig.size(); i++) {
383  DetId id(hcalHitsOrig[i].id());
384  HcalDetId hid(id);
385  if (!htopoP->validHcal(hid)) {
386  edm::LogError("HcalDigitizer") << "bad hcal id found in digitizer. Skipping " << id.rawId() << " " << hid;
387  continue;
388  } else if (hid.subdet() == HcalForward && !doHFWindow_ && hcalHitsOrig[i].depth() != 0) {
389  // skip HF window hits unless desired
390  continue;
391  } else if (killHE_ && hid.subdet() == HcalEndcap) {
392  // remove HE hits if asked for (phase 2)
393  continue;
394  } else {
395 #ifdef EDM_ML_DEBUG
396  edm::LogVerbatim("HcalSim") << "HcalDigitizer format " << hid.oldFormat() << " for " << hid;
397 #endif
398  DetId newid = DetId(hid.newForm());
399 #ifdef EDM_ML_DEBUG
400  edm::LogVerbatim("HcalSim") << "Hit " << i << " out of " << hcalHits.size() << " " << std::hex << id.rawId()
401  << " --> " << newid.rawId() << std::dec << " " << HcalDetId(newid.rawId()) << '\n';
402 #endif
403  hcalHitsOrig[i].setID(newid.rawId());
404  hcalHits.push_back(hcalHitsOrig[i]);
405  }
406  }
407 
408  if (hbhegeo) {
409  if (theHBHEDigitizer)
410  theHBHEDigitizer->add(hcalHits, bunchCrossing, engine);
412  theHBHEQIE11Digitizer->add(hcalHits, bunchCrossing, engine);
413  }
414 
415  if (hogeo) {
416  if (theHODigitizer)
417  theHODigitizer->add(hcalHits, bunchCrossing, engine);
418  if (theHOSiPMDigitizer)
419  theHOSiPMDigitizer->add(hcalHits, bunchCrossing, engine);
420  }
421 
422  if (hfgeo) {
423  if (theHFDigitizer)
424  theHFDigitizer->add(hcalHits, bunchCrossing, engine);
426  theHFQIE10Digitizer->add(hcalHits, bunchCrossing, engine);
427  }
428  } else {
429  edm::LogVerbatim("HcalDigitizer") << "We don't have HCAL hit collection available ";
430  }
431 
432  if (isZDC) {
433  if (zdcgeo && theZDCDigitizer) {
434  std::vector<PCaloHit> zdcHitsOrig = *zdcHandle.product();
435  std::vector<PCaloHit> zdcHits;
436  zdcHits.reserve(zdcHitsOrig.size());
437  // eliminate bad hits
438  for (unsigned int i = 0; i < zdcHitsOrig.size(); i++) {
439  DetId id(zdcHitsOrig[i].id());
440  HcalZDCDetId hid(id);
441  if (!ztopoP->valid(hid)) {
442  edm::LogError("HcalDigitizer") << "bad zdc id found in digitizer. Skipping " << std::hex << id.rawId()
443  << std::dec << " " << hid;
444  continue;
445  }
446  zdcHits.push_back(zdcHitsOrig[i]);
447 #ifdef EDM_ML_DEBUG
448  edm::LogVerbatim("HcalSim") << "Hit " << i << " out of " << zdcHitsOrig.size() << " " << std::hex << id.rawId()
449  << " " << hid;
450 #endif
451  }
452  theZDCDigitizer->add(zdcHits, bunchCrossing, engine);
453  }
454  } else {
455  edm::LogVerbatim("HcalDigitizer") << "We don't have ZDC hit collection available ";
456  }
457 }
Log< level::Info, true > LogVerbatim
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
void darkening(std::vector< PCaloHit > &hcalHits)
std::unique_ptr< HcalHitRelabeller > theRelabeller
Log< level::Error, false > LogError
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HODigitizer > theHODigitizer
std::unique_ptr< HFRecalibration > m_HFRecalibration
const HBHEDarkening * m_HEDarkening
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
Definition: DetId.h:17
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
const HBHEDarkening * m_HBDarkening
std::vector< PCaloHit > injectedHits_

◆ buildHBHEQIECells()

void HcalDigitizer::buildHBHEQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 756 of file HcalDigitizer.cc.

References options_cfi::eventSetup, HcalQIEType::getValue(), HcalCondObjectContainer< Item >::getValues(), QIE11, QIE8, Hcal_Conditions_forGlobalTag_cff::qieType, qieTypesToken_, HcalHitFilter< subdets >::setDetIds(), HcalCondObjectContainerBase::setTopo(), theHBHEDigitizer, theHBHEHitFilter, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHEQIE11HitFilter, theHBHEQIE8DetIds, HcalCondObjectContainerBase::topo(), and topoToken_.

Referenced by updateGeometry().

756  {
757  // if results are already cached, no need to look again
758  if (!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty())
759  return;
760 
761  // get the QIETypes
762  // intentional copy
763  HcalQIETypes qieTypes = eventSetup.getData(qieTypesToken_);
764  if (qieTypes.topo() == nullptr) {
765  qieTypes.setTopo(&eventSetup.getData(topoToken_));
766  }
767 
768  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
769  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
770  if (qieType == QIE8) {
771  theHBHEQIE8DetIds.push_back(*detItr);
772  } else if (qieType == QIE11) {
773  theHBHEQIE11DetIds.push_back(*detItr);
774  } else { // default is QIE8
775  theHBHEQIE8DetIds.push_back(*detItr);
776  }
777  }
778 
779  if (!theHBHEQIE8DetIds.empty())
781  else {
782  theHBHEDigitizer.reset();
783  }
784 
785  if (!theHBHEQIE11DetIds.empty())
787  else {
788  theHBHEQIE11Digitizer.reset();
789  }
790 
791  if (!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()) {
794  }
795 }
HBHEHitFilter theHBHEHitFilter
int getValue() const
Definition: HcalQIEType.h:19
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
Definition: HcalQIENum.h:4
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalTopology * topo() const
HcalQIENum
Definition: HcalQIENum.h:4
const edm::ESGetToken< HcalQIETypes, HcalQIETypesRcd > qieTypesToken_
Definition: HcalDigitizer.h:97
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
HBHEHitFilter theHBHEQIE11HitFilter
std::vector< DetId > theHBHEQIE8DetIds
std::vector< DetId > theHBHEQIE11DetIds
void setTopo(const HcalTopology *topo)

◆ buildHFQIECells()

void HcalDigitizer::buildHFQIECells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 720 of file HcalDigitizer.cc.

References options_cfi::eventSetup, HcalQIEType::getValue(), HcalCondObjectContainer< Item >::getValues(), QIE10, QIE8, Hcal_Conditions_forGlobalTag_cff::qieType, qieTypesToken_, HcalCondObjectContainerBase::setTopo(), theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, theHFQIE8DetIds, HcalCondObjectContainerBase::topo(), and topoToken_.

Referenced by updateGeometry().

720  {
721  // if results are already cached, no need to look again
722  if (!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty())
723  return;
724 
725  // get the QIETypes
726  // intentional copy
727  HcalQIETypes qieTypes = eventSetup.getData(qieTypesToken_);
728  if (qieTypes.topo() == nullptr) {
729  qieTypes.setTopo(&eventSetup.getData(topoToken_));
730  }
731 
732  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
733  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
734  if (qieType == QIE8) {
735  theHFQIE8DetIds.push_back(*detItr);
736  } else if (qieType == QIE10) {
737  theHFQIE10DetIds.push_back(*detItr);
738  } else { // default is QIE8
739  theHFQIE8DetIds.push_back(*detItr);
740  }
741  }
742 
743  if (!theHFQIE8DetIds.empty())
744  theHFDigitizer->setDetIds(theHFQIE8DetIds);
745  else {
746  theHFDigitizer.reset();
747  }
748 
749  if (!theHFQIE10DetIds.empty())
751  else {
752  theHFQIE10Digitizer.reset();
753  }
754 }
std::vector< DetId > theHFQIE10DetIds
int getValue() const
Definition: HcalQIEType.h:19
Definition: HcalQIENum.h:4
std::unique_ptr< HFDigitizer > theHFDigitizer
const Item * getValues(DetId fId, bool throwOnFail=true) const
const HcalTopology * topo() const
HcalQIENum
Definition: HcalQIENum.h:4
const edm::ESGetToken< HcalQIETypes, HcalQIETypesRcd > qieTypesToken_
Definition: HcalDigitizer.h:97
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
std::vector< DetId > theHFQIE8DetIds
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
void setTopo(const HcalTopology *topo)

◆ buildHOSiPMCells()

void HcalDigitizer::buildHOSiPMCells ( const std::vector< DetId > &  allCells,
const edm::EventSetup eventSetup 
)
private

Definition at line 797 of file HcalDigitizer.cc.

References options_cfi::eventSetup, HcalCondObjectContainer< Item >::getValues(), HcalShapes::HAMAMATSU, mcParamsToken_, HcalHitFilter< subdets >::setDetIds(), HcalSimParameterMap::setHOHamamatsuDetIds(), HcalSimParameterMap::setHOZecotekDetIds(), HcalCondObjectContainerBase::setTopo(), HcalMCParam::signalShape(), theHODigitizer, theHOHitFilter, theHOHPDDetIds, theHOSiPMCode, theHOSiPMDetIds, theHOSiPMDigitizer, theHOSiPMHitFilter, theParameterMap, HcalCondObjectContainerBase::topo(), topoToken_, and HcalShapes::ZECOTEK.

Referenced by updateGeometry().

797  {
798  // all HPD
799 
800  if (theHOSiPMCode == 0) {
801  theHODigitizer->setDetIds(allCells);
802  } else if (theHOSiPMCode == 1) {
803  theHOSiPMDigitizer->setDetIds(allCells);
804  // FIXME pick Zecotek or hamamatsu?
805  } else if (theHOSiPMCode == 2) {
806  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
807 
808  // intentional copy
809  HcalMCParams mcParams = eventSetup.getData(mcParamsToken_);
810  if (mcParams.topo() == nullptr) {
811  mcParams.setTopo(&eventSetup.getData(topoToken_));
812  }
813 
814  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
815  int shapeType = mcParams.getValues(*detItr)->signalShape();
816  if (shapeType == HcalShapes::ZECOTEK) {
817  zecotekDetIds.emplace_back(*detItr);
818  theHOSiPMDetIds.push_back(*detItr);
819  } else if (shapeType == HcalShapes::HAMAMATSU) {
820  hamamatsuDetIds.emplace_back(*detItr);
821  theHOSiPMDetIds.push_back(*detItr);
822  } else {
823  theHOHPDDetIds.push_back(*detItr);
824  }
825  }
826 
827  if (!theHOHPDDetIds.empty())
828  theHODigitizer->setDetIds(theHOHPDDetIds);
829  else {
830  theHODigitizer.reset();
831  }
832 
833  if (!theHOSiPMDetIds.empty())
835  else {
836  theHOSiPMDigitizer.reset();
837  }
838 
839  if (!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()) {
842  }
843 
844  theParameterMap.setHOZecotekDetIds(zecotekDetIds);
845  theParameterMap.setHOHamamatsuDetIds(hamamatsuDetIds);
846 
847  // make sure we don't got through this exercise again
848  theHOSiPMCode = -2;
849  }
850 }
HOHitFilter theHOHitFilter
std::unique_ptr< HODigitizer > theHODigitizer
const Item * getValues(DetId fId, bool throwOnFail=true) const
void setHOZecotekDetIds(const std::vector< HcalDetId > &ids)
const HcalTopology * topo() const
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
std::vector< DetId > theHOHPDDetIds
unsigned int signalShape() const
Definition: HcalMCParam.h:38
HcalSimParameterMap theParameterMap
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
Definition: HcalDigitizer.h:90
void setHOHamamatsuDetIds(const std::vector< HcalDetId > &ids)
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:17
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
edm::ESGetToken< HcalMCParams, HcalMCParamsRcd > mcParamsToken_
Definition: HcalDigitizer.h:98
void setTopo(const HcalTopology *topo)

◆ checkGeometry()

void HcalDigitizer::checkGeometry ( const edm::EventSetup eventSetup)
private

make sure the digitizer has the correct list of all cells that exist in the geometry

Definition at line 612 of file HcalDigitizer.cc.

References edm::ESWatcher< T >::check(), options_cfi::eventSetup, or, theGeometry, theGeometryToken, theGeometryWatcher_, theHBHEResponse, theHBHESiPMResponse, theHFQIE10Response, theHFResponse, theHOResponse, theHOSiPMResponse, theRecNumber, theRecNumberToken, theRecNumberWatcher_, theRelabeller, theZDCResponse, and updateGeometry().

Referenced by setup().

612  {
615 
616  if (theHBHEResponse)
617  theHBHEResponse->setGeometry(theGeometry);
619  theHBHESiPMResponse->setGeometry(theGeometry);
620  if (theHOResponse)
621  theHOResponse->setGeometry(theGeometry);
622  if (theHOSiPMResponse)
623  theHOSiPMResponse->setGeometry(theGeometry);
624  theHFResponse->setGeometry(theGeometry);
625  theHFQIE10Response->setGeometry(theGeometry);
626  theZDCResponse->setGeometry(theGeometry);
627  if (theRelabeller)
628  theRelabeller->setGeometry(theRecNumber);
629 
630  // See if it's been updated
631  bool check1 = theGeometryWatcher_.check(eventSetup);
632  bool check2 = theRecNumberWatcher_.check(eventSetup);
633  if (check1 or check2) {
635  }
636 }
const HcalDDDRecConstants * theRecNumber
std::unique_ptr< CaloHitResponse > theHFResponse
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > theRecNumberToken
Definition: HcalDigitizer.h:96
std::unique_ptr< HcalHitRelabeller > theRelabeller
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > theGeometryToken
Definition: HcalDigitizer.h:95
edm::ESWatcher< HcalRecNumberingRecord > theRecNumberWatcher_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
std::unique_ptr< CaloHitResponse > theHBHEResponse
std::unique_ptr< CaloHitResponse > theHOResponse
edm::ESWatcher< CaloGeometryRecord > theGeometryWatcher_
Definition: HcalDigitizer.h:99
std::unique_ptr< CaloHitResponse > theZDCResponse
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
const CaloGeometry * theGeometry
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
std::unique_ptr< CaloHitResponse > theHFQIE10Response
void updateGeometry(const edm::EventSetup &eventSetup)

◆ darkening()

void HcalDigitizer::darkening ( std::vector< PCaloHit > &  hcalHits)
private

Definition at line 852 of file HcalDigitizer.cc.

References HBHEDarkening::degradation(), deliveredLumi, hcalRecHitTable_cff::depth, HBHEDarkening_cff::energy, HcalBarrel, HcalEndcap, HcalForward, hcalRecHitTable_cff::ieta, cuy::ii, m_HBDarkening, m_HEDarkening, m_HFRecalibration, phi, HcalTestNumbering::unpackHcalIndex(), and z.

Referenced by accumulateCaloHits().

852  {
853  for (unsigned int ii = 0; ii < hcalHits.size(); ++ii) {
854  uint32_t tmpId = hcalHits[ii].id();
855  int det, z, depth, ieta, phi, lay;
856  HcalTestNumbering::unpackHcalIndex(tmpId, det, z, depth, ieta, phi, lay);
857 
858  bool darkened = false;
859  float dweight = 1.;
860 
861  if (det == int(HcalBarrel) && m_HBDarkening) {
862  // HB darkening
863  dweight = m_HBDarkening->degradation(deliveredLumi, ieta, lay);
864  darkened = true;
865  } else if (det == int(HcalEndcap) && m_HEDarkening) {
866  // HE darkening
867  dweight = m_HEDarkening->degradation(deliveredLumi, ieta, lay);
868  darkened = true;
869  } else if (det == int(HcalForward) && m_HFRecalibration) {
870  // HF darkening - approximate: invert recalibration factor
871  dweight = 1.0 / m_HFRecalibration->getCorr(ieta, depth, deliveredLumi);
872  darkened = true;
873  }
874 
875  // reset hit energy
876  if (darkened)
877  hcalHits[ii].setEnergy(hcalHits[ii].energy() * dweight);
878  }
879 }
float degradation(float intlumi, int ieta, int lay) const
std::unique_ptr< HFRecalibration > m_HFRecalibration
const HBHEDarkening * m_HEDarkening
double deliveredLumi
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
ii
Definition: cuy.py:589
const HBHEDarkening * m_HBDarkening

◆ fillFakeHits()

void HcalDigitizer::fillFakeHits ( )
private

some hits in each subdetector, just for testing purposes

◆ finalizeEvent()

void HcalDigitizer::finalizeEvent ( edm::Event e,
edm::EventSetup const &  c,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 493 of file HcalDigitizer.cc.

References debugCS_, MillePedeFileConverter_cfg::e, hbhegeo, hfgeo, hogeo, injectedHits_, injectTestHits_, isHCAL, isZDC, HcalDataFrameContainer< Digi >::MAXSAMPLES, eostools::move(), theHBHEDigitizer, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHESiPMResponse, theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, theHFQIE10Response, theHODigitizer, theHOSiPMDigitizer, theZDCDigitizer, and zdcgeo.

Referenced by HcalDigiProducer::finalizeEvent().

493  {
494  // Step B: Create empty output
495  std::unique_ptr<HBHEDigiCollection> hbheResult(new HBHEDigiCollection());
496  std::unique_ptr<HODigiCollection> hoResult(new HODigiCollection());
497  std::unique_ptr<HFDigiCollection> hfResult(new HFDigiCollection());
498  std::unique_ptr<ZDCDigiCollection> zdcResult(new ZDCDigiCollection());
499  std::unique_ptr<QIE10DigiCollection> hfQIE10Result(new QIE10DigiCollection(
500  !theHFQIE10DetIds.empty() ? theHFQIE10Response.get()->getReadoutFrameSize(theHFQIE10DetIds[0])
502  std::unique_ptr<QIE11DigiCollection> hbheQIE11Result(new QIE11DigiCollection(
503  !theHBHEQIE11DetIds.empty() ? theHBHESiPMResponse.get()->getReadoutFrameSize(theHBHEQIE11DetIds[0]) :
504  // theParameterMap->simParameters(theHBHEQIE11DetIds[0]).readoutFrameSize()
505  // :
507 
508  // Step C: Invoke the algorithm, getting back outputs.
509  if (isHCAL && hbhegeo) {
510  if (theHBHEDigitizer)
511  theHBHEDigitizer->run(*hbheResult, engine);
513  theHBHEQIE11Digitizer->run(*hbheQIE11Result, engine);
514  }
515  if (isHCAL && hogeo) {
516  if (theHODigitizer)
517  theHODigitizer->run(*hoResult, engine);
518  if (theHOSiPMDigitizer)
519  theHOSiPMDigitizer->run(*hoResult, engine);
520  }
521  if (isHCAL && hfgeo) {
522  if (theHFDigitizer)
523  theHFDigitizer->run(*hfResult, engine);
525  theHFQIE10Digitizer->run(*hfQIE10Result, engine);
526  }
527  if (isZDC && zdcgeo && theZDCDigitizer) {
528  theZDCDigitizer->run(*zdcResult, engine);
529  }
530 
531  edm::LogVerbatim("HcalDigitizer") << "HCAL HBHE digis : " << hbheResult->size();
532  edm::LogVerbatim("HcalDigitizer") << "HCAL HO digis : " << hoResult->size();
533  edm::LogVerbatim("HcalDigitizer") << "HCAL HF digis : " << hfResult->size();
534  edm::LogVerbatim("HcalDigitizer") << "HCAL ZDC digis : " << zdcResult->size();
535  edm::LogVerbatim("HcalDigitizer") << "HCAL HF QIE10 digis : " << hfQIE10Result->size();
536  edm::LogVerbatim("HcalDigitizer") << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size();
537 
538 #ifdef EDM_ML_DEBUG
539  edm::LogVerbatim("HcalSim") << "\nHCAL HBHE digis : " << hbheResult->size();
540  edm::LogVerbatim("HcalSim") << "HCAL HO digis : " << hoResult->size();
541  edm::LogVerbatim("HcalSim") << "HCAL HF digis : " << hfResult->size();
542  edm::LogVerbatim("HcalSim") << "HCAL ZDC digis : " << zdcResult->size();
543  edm::LogVerbatim("HcalSim") << "HCAL HF QIE10 digis : " << hfQIE10Result->size();
544  edm::LogVerbatim("HcalSim") << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size();
545 #endif
546 
547  // Step D: Put outputs into event
548  e.put(std::move(hbheResult));
549  e.put(std::move(hoResult));
550  e.put(std::move(hfResult));
551  e.put(std::move(zdcResult));
552  e.put(std::move(hfQIE10Result), "HFQIE10DigiCollection");
553  e.put(std::move(hbheQIE11Result), "HBHEQIE11DigiCollection");
554 
555  if (debugCS_) {
556  std::unique_ptr<CaloSamplesCollection> csResult(new CaloSamplesCollection());
557  // smush together all the results
558  if (theHBHEDigitizer)
559  csResult->insert(
560  csResult->end(), theHBHEDigitizer->getCaloSamples().begin(), theHBHEDigitizer->getCaloSamples().end());
562  csResult->insert(csResult->end(),
563  theHBHEQIE11Digitizer->getCaloSamples().begin(),
564  theHBHEQIE11Digitizer->getCaloSamples().end());
565  if (theHODigitizer)
566  csResult->insert(
567  csResult->end(), theHODigitizer->getCaloSamples().begin(), theHODigitizer->getCaloSamples().end());
568  if (theHOSiPMDigitizer)
569  csResult->insert(
570  csResult->end(), theHOSiPMDigitizer->getCaloSamples().begin(), theHOSiPMDigitizer->getCaloSamples().end());
571  if (theHFDigitizer)
572  csResult->insert(
573  csResult->end(), theHFDigitizer->getCaloSamples().begin(), theHFDigitizer->getCaloSamples().end());
575  csResult->insert(
576  csResult->end(), theHFQIE10Digitizer->getCaloSamples().begin(), theHFQIE10Digitizer->getCaloSamples().end());
577  if (theZDCDigitizer)
578  csResult->insert(
579  csResult->end(), theZDCDigitizer->getCaloSamples().begin(), theZDCDigitizer->getCaloSamples().end());
580  e.put(std::move(csResult), "HcalSamples");
581  }
582 
583  if (injectTestHits_) {
584  std::unique_ptr<edm::PCaloHitContainer> pcResult(new edm::PCaloHitContainer());
585  pcResult->insert(pcResult->end(), injectedHits_.begin(), injectedHits_.end());
586  e.put(std::move(pcResult), "HcalHits");
587  }
588 
589 #ifdef EDM_ML_DEBUG
590  edm::LogVerbatim("HcalSim") << "\n========> HcalDigitizer e.put\n";
591 #endif
592 }
std::vector< DetId > theHFQIE10DetIds
Log< level::Info, true > LogVerbatim
std::vector< PCaloHit > PCaloHitContainer
std::vector< CaloSamples > CaloSamplesCollection
Definition: CaloSamples.h:99
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HODigitizer > theHODigitizer
edm::SortedCollection< ZDCDataFrame > ZDCDigiCollection
HcalDataFrameContainer< QIE10DataFrame > QIE10DigiCollection
edm::SortedCollection< HODataFrame > HODigiCollection
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
static const size_type MAXSAMPLES
HcalDataFrameContainer< QIE11DataFrame > QIE11DigiCollection
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
std::unique_ptr< CaloHitResponse > theHFQIE10Response
edm::SortedCollection< HFDataFrame > HFDigiCollection
std::vector< DetId > theHBHEQIE11DetIds
def move(src, dest)
Definition: eostools.py:511
edm::SortedCollection< HBHEDataFrame > HBHEDigiCollection
std::vector< PCaloHit > injectedHits_

◆ initializeEvent()

void HcalDigitizer::initializeEvent ( edm::Event const &  e,
edm::EventSetup const &  c 
)

Produces the EDM products,

Definition at line 319 of file HcalDigitizer.cc.

References PixelBaryCentreAnalyzer_cfg::conditions, conditionsToken_, options_cfi::eventSetup, HcalShapes::setDbService(), HcalSimParameterMap::setDbService(), setup(), theCoderFactory, theHBHEAmplifier, theHBHEDigitizer, theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, theHFAmplifier, theHFDigitizer, theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, theHOAmplifier, theHODigitizer, theHOSiPMDigitizer, theParameterMap, theShapes, theZDCAmplifier, and theZDCDigitizer.

Referenced by HcalDigiProducer::initializeEvent().

319  {
320  setup(eventSetup);
321 
322  // get the appropriate gains, noises, & widths for this event
324 
326 
327  theHBHEAmplifier->setDbService(conditions);
328  theHFAmplifier->setDbService(conditions);
329  theHOAmplifier->setDbService(conditions);
330  theZDCAmplifier->setDbService(conditions);
331  theHFQIE10Amplifier->setDbService(conditions);
332  theHBHEQIE11Amplifier->setDbService(conditions);
333 
334  theHFQIE10ElectronicsSim->setDbService(conditions);
335  theHBHEQIE11ElectronicsSim->setDbService(conditions);
336 
337  theCoderFactory->setDbService(conditions);
339 
340  // initialize hits
341  if (theHBHEDigitizer)
342  theHBHEDigitizer->initializeHits();
344  theHBHEQIE11Digitizer->initializeHits();
345  if (theHODigitizer)
346  theHODigitizer->initializeHits();
347  if (theHOSiPMDigitizer)
348  theHOSiPMDigitizer->initializeHits();
350  theHFQIE10Digitizer->initializeHits();
351  if (theHFDigitizer)
352  theHFDigitizer->initializeHits();
353  if (theZDCDigitizer)
354  theZDCDigitizer->initializeHits();
355 }
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HODigitizer > theHODigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
std::unique_ptr< HcalCoderFactory > theCoderFactory
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
HcalShapes theShapes
HcalSimParameterMap theParameterMap
std::unique_ptr< HcalAmplifier > theZDCAmplifier
void setDbService(const HcalDbService *service)
Definition: HcalShapes.h:24
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
std::unique_ptr< HcalAmplifier > theHOAmplifier
const edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
Definition: HcalDigitizer.h:89
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
void setup(const edm::EventSetup &es)
void setDbService(const HcalDbService *service)

◆ setHBHENoiseSignalGenerator()

void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 268 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHBHEAmplifier, theHBHEDigitizer, theHBHEElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

268  {
269  noiseGenerator->setParameterMap(&theParameterMap);
270  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim.get());
271  if (theHBHEDigitizer)
272  theHBHEDigitizer->setNoiseSignalGenerator(noiseGenerator);
273  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
274 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
std::unique_ptr< HcalElectronicsSim > theHBHEElectronicsSim

◆ setHFNoiseSignalGenerator()

void HcalDigitizer::setHFNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 284 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHFAmplifier, theHFDigitizer, theHFElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

284  {
285  noiseGenerator->setParameterMap(&theParameterMap);
286  noiseGenerator->setElectronicsSim(theHFElectronicsSim.get());
287  if (theHFDigitizer)
288  theHFDigitizer->setNoiseSignalGenerator(noiseGenerator);
289  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
290 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HFDigitizer > theHFDigitizer
std::unique_ptr< HcalAmplifier > theHFAmplifier
std::unique_ptr< HcalElectronicsSim > theHFElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap

◆ setHONoiseSignalGenerator()

void HcalDigitizer::setHONoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 300 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHOAmplifier, theHODigitizer, theHOElectronicsSim, theHOSiPMDigitizer, and theParameterMap.

Referenced by HcalDigiProducer::setHONoiseSignalGenerator().

300  {
301  noiseGenerator->setParameterMap(&theParameterMap);
302  noiseGenerator->setElectronicsSim(theHOElectronicsSim.get());
303  if (theHODigitizer)
304  theHODigitizer->setNoiseSignalGenerator(noiseGenerator);
305  if (theHOSiPMDigitizer)
306  theHOSiPMDigitizer->setNoiseSignalGenerator(noiseGenerator);
307  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
308 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HODigitizer > theHODigitizer
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
HcalSimParameterMap theParameterMap
std::unique_ptr< HcalAmplifier > theHOAmplifier
std::unique_ptr< HcalElectronicsSim > theHOElectronicsSim

◆ setQIE10NoiseSignalGenerator()

void HcalDigitizer::setQIE10NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 292 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHFQIE10Amplifier, theHFQIE10Digitizer, theHFQIE10ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

292  {
293  noiseGenerator->setParameterMap(&theParameterMap);
294  noiseGenerator->setElectronicsSim(theHFQIE10ElectronicsSim.get());
296  theHFQIE10Digitizer->setNoiseSignalGenerator(noiseGenerator);
297  theHFQIE10Amplifier->setNoiseSignalGenerator(noiseGenerator);
298 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier

◆ setQIE11NoiseSignalGenerator()

void HcalDigitizer::setQIE11NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 276 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theHBHEQIE11Amplifier, theHBHEQIE11Digitizer, theHBHEQIE11ElectronicsSim, and theParameterMap.

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

276  {
277  noiseGenerator->setParameterMap(&theParameterMap);
278  noiseGenerator->setElectronicsSim(theHBHEQIE11ElectronicsSim.get());
280  theHBHEQIE11Digitizer->setNoiseSignalGenerator(noiseGenerator);
281  theHBHEQIE11Amplifier->setNoiseSignalGenerator(noiseGenerator);
282 }
void setParameterMap(HcalSimParameterMap *map)
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
HcalSimParameterMap theParameterMap
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim

◆ setup()

void HcalDigitizer::setup ( const edm::EventSetup es)
private

Definition at line 594 of file HcalDigitizer.cc.

References agingFlagHB, agingFlagHE, checkGeometry(), edm::EventSetup::getData(), hcalTimeSlew_delay_, hcalTimeSlew_delay_token_, m_HBDarkening, m_HBDarkeningToken, m_HEDarkening, m_HEDarkeningToken, theHBHEAmplifier, theHBHEQIE11Amplifier, theHOAmplifier, and theZDCAmplifier.

Referenced by initializeEvent().

594  {
595  checkGeometry(es);
596 
597  if (agingFlagHB) {
599  }
600  if (agingFlagHE) {
602  }
603 
605 
608  theHOAmplifier->setTimeSlew(hcalTimeSlew_delay_);
609  theZDCAmplifier->setTimeSlew(hcalTimeSlew_delay_);
610 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
void checkGeometry(const edm::EventSetup &eventSetup)
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > m_HBDarkeningToken
Definition: HcalDigitizer.h:92
const HBHEDarkening * m_HEDarkening
const HcalTimeSlew * hcalTimeSlew_delay_
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > m_HEDarkeningToken
Definition: HcalDigitizer.h:93
std::unique_ptr< HcalAmplifier > theZDCAmplifier
std::unique_ptr< HcalAmplifier > theHOAmplifier
const HBHEDarkening * m_HBDarkening
const edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > hcalTimeSlew_delay_token_
Definition: HcalDigitizer.h:94

◆ setZDCNoiseSignalGenerator()

void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 310 of file HcalDigitizer.cc.

References HcalBaseSignalGenerator::setElectronicsSim(), HcalBaseSignalGenerator::setParameterMap(), theParameterMap, theZDCAmplifier, theZDCDigitizer, and theZDCElectronicsSim.

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

310  {
311  noiseGenerator->setParameterMap(&theParameterMap);
312  noiseGenerator->setElectronicsSim(theZDCElectronicsSim.get());
313  if (theZDCDigitizer) {
314  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
315  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
316  }
317 }
void setParameterMap(HcalSimParameterMap *map)
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
std::unique_ptr< HcalElectronicsSim > theZDCElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
HcalSimParameterMap theParameterMap
std::unique_ptr< HcalAmplifier > theZDCAmplifier

◆ updateGeometry()

void HcalDigitizer::updateGeometry ( const edm::EventSetup eventSetup)
private

Definition at line 638 of file HcalDigitizer.cc.

References buildHBHEQIECells(), buildHFQIECells(), buildHOSiPMCells(), DetId::Calo, options_cfi::eventSetup, Exception, CaloGeometry::getValidDetIds(), hbheCells, hbhegeo, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hfgeo, hogeo, injectedHits_, injectedHitsCells_, injectedHitsEnergy_, injectedHitsTime_, injectTestHits_, killHE_, HcalZDCDetId::SubdetectorId, theGeometry, theHBHEQIE11DetIds, theHBHESiPMResponse, theHOSiPMDigitizer, theHOSiPMResponse, theZDCDigitizer, createJobs::tmp, and zdcgeo.

Referenced by checkGeometry().

638  {
639  const std::vector<DetId> &hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
640  const std::vector<DetId> &heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
641  const std::vector<DetId> &hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
642  const std::vector<DetId> &hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
643  const std::vector<DetId> &zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
644  // const std::vector<DetId>& hcalTrigCells =
645  // geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower); const
646  // std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo,
647  // HcalCastorDetId::SubdetectorId);
648 #ifdef EDM_ML_DEBUG
649  edm::LogVerbatim("HcalSim") << "HcalDigitizer::CheckGeometry number of cells: " << zdcCells.size();
650 #endif
651  if (zdcCells.empty())
652  zdcgeo = false;
653  if (hbCells.empty() && heCells.empty())
654  hbhegeo = false;
655  if (hoCells.empty())
656  hogeo = false;
657  if (hfCells.empty())
658  hfgeo = false;
659  // combine HB & HE
660 
661  hbheCells = hbCells;
662  if (!killHE_) {
663  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
664  }
665  // handle mixed QIE8/11 scenario in HBHE
669 
670  if (theHOSiPMDigitizer) {
671  buildHOSiPMCells(hoCells, eventSetup);
672  if (theHOSiPMResponse)
673  theHOSiPMResponse->setDetIds(hoCells);
674  }
675 
676  // handle mixed QIE8/10 scenario in HF
677  buildHFQIECells(hfCells, eventSetup);
678 
679  if (theZDCDigitizer)
680  theZDCDigitizer->setDetIds(zdcCells);
681 
682  // fill test hits collection if desired and empty
683  if (injectTestHits_ && injectedHits_.empty() && !injectedHitsCells_.empty() && !injectedHitsEnergy_.empty()) {
684  // make list of specified cells if desired
685  std::vector<DetId> testCells;
686  if (injectedHitsCells_.size() >= 4) {
687  testCells.reserve(injectedHitsCells_.size() / 4);
688  for (unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4) {
689  if (ic + 4 > injectedHitsCells_.size())
690  break;
691  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],
692  injectedHitsCells_[ic + 1],
693  injectedHitsCells_[ic + 2],
694  injectedHitsCells_[ic + 3]));
695  }
696  } else {
697  int testSubdet = injectedHitsCells_[0];
698  if (testSubdet == HcalBarrel)
699  testCells = hbCells;
700  else if (testSubdet == HcalEndcap)
701  testCells = heCells;
702  else if (testSubdet == HcalForward)
703  testCells = hfCells;
704  else if (testSubdet == HcalOuter)
705  testCells = hoCells;
706  else
707  throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
708  }
709  bool useHitTimes = (injectedHitsTime_.size() == injectedHitsEnergy_.size());
710  injectedHits_.reserve(testCells.size() * injectedHitsEnergy_.size());
711  for (unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih) {
712  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
713  for (auto &aCell : testCells) {
714  injectedHits_.emplace_back(aCell, injectedHitsEnergy_[ih], tmp);
715  }
716  }
717  }
718 }
Log< level::Info, true > LogVerbatim
std::vector< int > injectedHitsCells_
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::vector< double > injectedHitsEnergy_
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< double > injectedHitsTime_
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
Definition: CaloGeometry.cc:75
const CaloGeometry * theGeometry
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
std::vector< DetId > hbheCells
static constexpr int32_t SubdetectorId
Definition: HcalZDCDetId.h:35
tmp
align.sh
Definition: createJobs.py:716
std::vector< DetId > theHBHEQIE11DetIds
std::vector< PCaloHit > injectedHits_

Member Data Documentation

◆ agingFlagHB

bool HcalDigitizer::agingFlagHB
private

Definition at line 183 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ agingFlagHE

bool HcalDigitizer::agingFlagHE
private

Definition at line 183 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ conditionsToken_

const edm::ESGetToken<HcalDbService, HcalDbRecord> HcalDigitizer::conditionsToken_
private

Definition at line 89 of file HcalDigitizer.h.

Referenced by initializeEvent().

◆ debugCS_

bool HcalDigitizer::debugCS_
private

Definition at line 174 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

◆ deliveredLumi

double HcalDigitizer::deliveredLumi
private

Definition at line 182 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

◆ doHFWindow_

bool HcalDigitizer::doHFWindow_
private

Definition at line 172 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

◆ hbheCells

std::vector<DetId> HcalDigitizer::hbheCells
private

Definition at line 164 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ hbhegeo

bool HcalDigitizer::hbhegeo
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ hcalTimeSlew_delay_

const HcalTimeSlew* HcalDigitizer::hcalTimeSlew_delay_
private

Definition at line 191 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ hcalTimeSlew_delay_token_

const edm::ESGetToken<HcalTimeSlew, HcalTimeSlewRecord> HcalDigitizer::hcalTimeSlew_delay_token_
private

Definition at line 94 of file HcalDigitizer.h.

Referenced by setup().

◆ hcalToken_

edm::EDGetTokenT<std::vector<PCaloHit> > HcalDigitizer::hcalToken_
private

Definition at line 186 of file HcalDigitizer.h.

Referenced by accumulate().

◆ hfgeo

bool HcalDigitizer::hfgeo
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ hitsProducer_

std::string HcalDigitizer::hitsProducer_
private

Definition at line 178 of file HcalDigitizer.h.

Referenced by accumulate().

◆ hogeo

bool HcalDigitizer::hogeo
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ ignoreTime_

bool HcalDigitizer::ignoreTime_
private

Definition at line 175 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ injectedHits_

std::vector<PCaloHit> HcalDigitizer::injectedHits_
private

Definition at line 196 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ injectedHitsCells_

std::vector<int> HcalDigitizer::injectedHitsCells_
private

Definition at line 195 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectedHitsEnergy_

std::vector<double> HcalDigitizer::injectedHitsEnergy_
private

Definition at line 193 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectedHitsTime_

std::vector<double> HcalDigitizer::injectedHitsTime_
private

Definition at line 194 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectTestHits_

bool HcalDigitizer::injectTestHits_
private

Definition at line 176 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ isHCAL

bool HcalDigitizer::isHCAL
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), and finalizeEvent().

◆ isZDC

bool HcalDigitizer::isZDC
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulate(), accumulateCaloHits(), finalizeEvent(), and HcalDigitizer().

◆ killHE_

bool HcalDigitizer::killHE_
private

Definition at line 173 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

◆ m_HBDarkening

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 187 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and setup().

◆ m_HBDarkeningToken

edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> HcalDigitizer::m_HBDarkeningToken
private

Definition at line 92 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ m_HEDarkening

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 188 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and setup().

◆ m_HEDarkeningToken

edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> HcalDigitizer::m_HEDarkeningToken
private

Definition at line 93 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ m_HFRecalibration

std::unique_ptr<HFRecalibration> HcalDigitizer::m_HFRecalibration
private

Definition at line 189 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), darkening(), and HcalDigitizer().

◆ mcParamsToken_

edm::ESGetToken<HcalMCParams, HcalMCParamsRcd> HcalDigitizer::mcParamsToken_
private

Definition at line 98 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ qieTypesToken_

const edm::ESGetToken<HcalQIETypes, HcalQIETypesRcd> HcalDigitizer::qieTypesToken_
private

Definition at line 97 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and buildHFQIECells().

◆ testNumbering_

bool HcalDigitizer::testNumbering_
private

Definition at line 171 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

◆ theCoderFactory

std::unique_ptr<HcalCoderFactory> HcalDigitizer::theCoderFactory
private

Definition at line 134 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

◆ theGeometry

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 102 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

◆ theGeometryToken

const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> HcalDigitizer::theGeometryToken
private

Definition at line 95 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theGeometryWatcher_

edm::ESWatcher<CaloGeometryRecord> HcalDigitizer::theGeometryWatcher_
private

Definition at line 99 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theHBHEAmplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHBHEAmplifier
private

◆ theHBHEDigitizer

std::unique_ptr<HBHEDigitizer> HcalDigitizer::theHBHEDigitizer
private

◆ theHBHEElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHBHEElectronicsSim
private

Definition at line 136 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHBHENoiseSignalGenerator().

◆ theHBHEHitFilter

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 143 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

◆ theHBHEQIE11Amplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHBHEQIE11Amplifier
private

◆ theHBHEQIE11DetIds

std::vector<DetId> HcalDigitizer::theHBHEQIE11DetIds
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), finalizeEvent(), and updateGeometry().

◆ theHBHEQIE11Digitizer

std::unique_ptr<QIE11Digitizer> HcalDigitizer::theHBHEQIE11Digitizer
private

◆ theHBHEQIE11ElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHBHEQIE11ElectronicsSim
private

Definition at line 141 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), and setQIE11NoiseSignalGenerator().

◆ theHBHEQIE11HitFilter

HBHEHitFilter HcalDigitizer::theHBHEQIE11HitFilter
private

Definition at line 144 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

◆ theHBHEQIE8DetIds

std::vector<DetId> HcalDigitizer::theHBHEQIE8DetIds
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

◆ theHBHEResponse

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHBHEResponse
private

Definition at line 116 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHBHESiPMResponse

std::unique_ptr<HcalSiPMHitResponse> HcalDigitizer::theHBHESiPMResponse
private

Definition at line 117 of file HcalDigitizer.h.

Referenced by checkGeometry(), finalizeEvent(), HcalDigitizer(), and updateGeometry().

◆ theHFAmplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHFAmplifier
private

Definition at line 127 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), and setHFNoiseSignalGenerator().

◆ theHFDigitizer

std::unique_ptr<HFDigitizer> HcalDigitizer::theHFDigitizer
private

◆ theHFElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHFElectronicsSim
private

Definition at line 137 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHFNoiseSignalGenerator().

◆ theHFHitFilter

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 145 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theHFQIE10Amplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHFQIE10Amplifier
private

Definition at line 130 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), and setQIE10NoiseSignalGenerator().

◆ theHFQIE10DetIds

std::vector<DetId> HcalDigitizer::theHFQIE10DetIds
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by buildHFQIECells(), and finalizeEvent().

◆ theHFQIE10Digitizer

std::unique_ptr<QIE10Digitizer> HcalDigitizer::theHFQIE10Digitizer
private

◆ theHFQIE10ElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHFQIE10ElectronicsSim
private

Definition at line 140 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), and setQIE10NoiseSignalGenerator().

◆ theHFQIE10HitFilter

HFHitFilter HcalDigitizer::theHFQIE10HitFilter
private

Definition at line 146 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theHFQIE10Response

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHFQIE10Response
private

Definition at line 121 of file HcalDigitizer.h.

Referenced by checkGeometry(), finalizeEvent(), and HcalDigitizer().

◆ theHFQIE8DetIds

std::vector<DetId> HcalDigitizer::theHFQIE8DetIds
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

◆ theHFResponse

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHFResponse
private

Definition at line 120 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHOAmplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theHOAmplifier
private

Definition at line 128 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), setHONoiseSignalGenerator(), and setup().

◆ theHODigitizer

std::unique_ptr<HODigitizer> HcalDigitizer::theHODigitizer
private

◆ theHOElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theHOElectronicsSim
private

Definition at line 138 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHONoiseSignalGenerator().

◆ theHOHitFilter

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 147 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOHPDDetIds

std::vector<DetId> HcalDigitizer::theHOHPDDetIds
private

Definition at line 166 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

◆ theHOResponse

std::unique_ptr<CaloHitResponse> HcalDigitizer::theHOResponse
private

Definition at line 118 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHOSiPMCode

int HcalDigitizer::theHOSiPMCode
private

Definition at line 180 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOSiPMDetIds

std::vector<DetId> HcalDigitizer::theHOSiPMDetIds
private

Definition at line 167 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

◆ theHOSiPMDigitizer

std::unique_ptr<HODigitizer> HcalDigitizer::theHOSiPMDigitizer
private

◆ theHOSiPMHitFilter

HOHitFilter HcalDigitizer::theHOSiPMHitFilter
private

Definition at line 148 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOSiPMResponse

std::unique_ptr<HcalSiPMHitResponse> HcalDigitizer::theHOSiPMResponse
private

Definition at line 119 of file HcalDigitizer.h.

Referenced by checkGeometry(), HcalDigitizer(), and updateGeometry().

◆ theIonFeedback

std::unique_ptr<HPDIonFeedbackSim> HcalDigitizer::theIonFeedback
private

Definition at line 133 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theParameterMap

HcalSimParameterMap HcalDigitizer::theParameterMap
private

◆ theRecNumber

const HcalDDDRecConstants* HcalDigitizer::theRecNumber
private

Definition at line 103 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theRecNumberToken

const edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> HcalDigitizer::theRecNumberToken
private

Definition at line 96 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theRecNumberWatcher_

edm::ESWatcher<HcalRecNumberingRecord> HcalDigitizer::theRecNumberWatcher_
private

Definition at line 100 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theRelabeller

std::unique_ptr<HcalHitRelabeller> HcalDigitizer::theRelabeller
private

Definition at line 160 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), checkGeometry(), and HcalDigitizer().

◆ theShapes

HcalShapes HcalDigitizer::theShapes
private

Definition at line 114 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

◆ theTimeSlewSim

std::unique_ptr<HcalTimeSlewSim> HcalDigitizer::theTimeSlewSim
private

Definition at line 151 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theZDCAmplifier

std::unique_ptr<HcalAmplifier> HcalDigitizer::theZDCAmplifier
private

Definition at line 129 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), initializeEvent(), setup(), and setZDCNoiseSignalGenerator().

◆ theZDCDigitizer

std::unique_ptr<ZDCDigitizer> HcalDigitizer::theZDCDigitizer
private

◆ theZDCElectronicsSim

std::unique_ptr<HcalElectronicsSim> HcalDigitizer::theZDCElectronicsSim
private

Definition at line 139 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setZDCNoiseSignalGenerator().

◆ theZDCHitFilter

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 149 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theZDCResponse

std::unique_ptr<CaloHitResponse> HcalDigitizer::theZDCResponse
private

Definition at line 122 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ topoToken_

const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> HcalDigitizer::topoToken_
private

Definition at line 90 of file HcalDigitizer.h.

Referenced by accumulate(), buildHBHEQIECells(), buildHFQIECells(), and buildHOSiPMCells().

◆ topoZToken_

const edm::ESGetToken<ZdcTopology, HcalRecNumberingRecord> HcalDigitizer::topoZToken_
private

Definition at line 91 of file HcalDigitizer.h.

Referenced by accumulate().

◆ zdcgeo

bool HcalDigitizer::zdcgeo
private

Definition at line 170 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), finalizeEvent(), and updateGeometry().

◆ zdcToken_

edm::EDGetTokenT<std::vector<PCaloHit> > HcalDigitizer::zdcToken_
private

Definition at line 185 of file HcalDigitizer.h.

Referenced by accumulate().