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)
 
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
 
bool debugCS_
 
double deliveredLumi
 
bool doHFWindow_
 
std::vector< DetIdhbheCells
 
bool hbhegeo
 
const HcalTimeSlewhcalTimeSlew_delay_
 
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
 
const HBHEDarkeningm_HEDarkening
 
std::unique_ptr< HFRecalibrationm_HFRecalibration
 
bool testNumbering_
 
std::unique_ptr< HcalCoderFactorytheCoderFactory
 
const CaloGeometrytheGeometry
 
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
 
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
 
bool zdcgeo
 

Detailed Description

Definition at line 46 of file HcalDigitizer.h.

Member Typedef Documentation

◆ HBHEDigitizer

Reconstruction algorithm

Definition at line 91 of file HcalDigitizer.h.

◆ HFDigitizer

Definition at line 93 of file HcalDigitizer.h.

◆ HODigitizer

Definition at line 92 of file HcalDigitizer.h.

◆ QIE10Digitizer

Definition at line 95 of file HcalDigitizer.h.

◆ QIE11Digitizer

Definition at line 96 of file HcalDigitizer.h.

◆ ZDCDigitizer

Definition at line 94 of file HcalDigitizer.h.

Constructor & Destructor Documentation

◆ HcalDigitizer()

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

Definition at line 38 of file HcalDigitizer.cc.

39  : theGeometry(nullptr),
40  theRecNumber(nullptr),
41  theParameterMap(ps),
42  theShapes(),
43  theHBHEResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
44  theHBHESiPMResponse(std::make_unique<HcalSiPMHitResponse>(
45  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), true)),
46  theHOResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
47  theHOSiPMResponse(std::make_unique<HcalSiPMHitResponse>(
48  &theParameterMap, &theShapes, ps.getParameter<bool>("HcalPreMixStage1"), false)),
49  theHFResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
50  theHFQIE10Response(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
51  theZDCResponse(std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes)),
52  theHBHEAmplifier(nullptr),
53  theHFAmplifier(nullptr),
54  theHOAmplifier(nullptr),
55  theZDCAmplifier(nullptr),
56  theHFQIE10Amplifier(nullptr),
57  theHBHEQIE11Amplifier(nullptr),
58  theIonFeedback(nullptr),
59  theCoderFactory(nullptr),
60  theHBHEElectronicsSim(nullptr),
61  theHFElectronicsSim(nullptr),
62  theHOElectronicsSim(nullptr),
63  theZDCElectronicsSim(nullptr),
64  theHFQIE10ElectronicsSim(nullptr),
73  theHBHEDigitizer(nullptr),
74  theHODigitizer(nullptr),
75  theHOSiPMDigitizer(nullptr),
76  theHFDigitizer(nullptr),
77  theZDCDigitizer(nullptr),
78  theHFQIE10Digitizer(nullptr),
79  theHBHEQIE11Digitizer(nullptr),
80  theRelabeller(nullptr),
81  isZDC(true),
82  isHCAL(true),
83  zdcgeo(true),
84  hbhegeo(true),
85  hogeo(true),
86  hfgeo(true),
87  doHFWindow_(ps.getParameter<bool>("doHFWindow")),
88  killHE_(ps.getParameter<bool>("killHE")),
89  debugCS_(ps.getParameter<bool>("debugCaloSamples")),
90  ignoreTime_(ps.getParameter<bool>("ignoreGeantTime")),
91  injectTestHits_(ps.getParameter<bool>("injectTestHits")),
92  hitsProducer_(ps.getParameter<std::string>("hitsProducer")),
93  theHOSiPMCode(ps.getParameter<edm::ParameterSet>("ho").getParameter<int>("siPMCode")),
94  deliveredLumi(0.),
95  agingFlagHB(ps.getParameter<bool>("HBDarkening")),
96  agingFlagHE(ps.getParameter<bool>("HEDarkening")),
97  m_HBDarkening(nullptr),
98  m_HEDarkening(nullptr),
99  m_HFRecalibration(nullptr),
100  injectedHitsEnergy_(ps.getParameter<std::vector<double>>("injectTestHitsEnergy")),
101  injectedHitsTime_(ps.getParameter<std::vector<double>>("injectTestHitsTime")),
102  injectedHitsCells_(ps.getParameter<std::vector<int>>("injectTestHitsCells")) {
103  iC.consumes<std::vector<PCaloHit>>(edm::InputTag(hitsProducer_, "ZDCHITS"));
104  iC.consumes<std::vector<PCaloHit>>(edm::InputTag(hitsProducer_, "HcalHits"));
105 
106  bool doNoise = ps.getParameter<bool>("doNoise");
107 
108  bool PreMix1 = ps.getParameter<bool>("HcalPreMixStage1"); // special threshold/pedestal treatment
109  bool PreMix2 = ps.getParameter<bool>("HcalPreMixStage2"); // special threshold/pedestal treatment
110  bool doEmpty = ps.getParameter<bool>("doEmpty");
111  deliveredLumi = ps.getParameter<double>("DelivLuminosity");
112  bool agingFlagHF = ps.getParameter<bool>("HFDarkening");
113  double minFCToDelay = ps.getParameter<double>("minFCToDelay");
114 
115  if (PreMix1 && PreMix2) {
116  throw cms::Exception("Configuration") << "HcalDigitizer cannot operate in PreMixing digitization and "
117  "PreMixing\n"
118  "digi combination modes at the same time. Please set one mode to "
119  "False\n"
120  "in the configuration file.";
121  }
122 
123  // need to make copies, because they might get different noise generators
124  theHBHEAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
125  theHFAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
126  theHOAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
127  theZDCAmplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
128  theHFQIE10Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
129  theHBHEQIE11Amplifier = std::make_unique<HcalAmplifier>(&theParameterMap, doNoise, PreMix1, PreMix2);
130 
131  theCoderFactory = std::make_unique<HcalCoderFactory>(HcalCoderFactory::DB);
132 
134  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHBHEAmplifier.get(), theCoderFactory.get(), PreMix1);
136  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHFAmplifier.get(), theCoderFactory.get(), PreMix1);
138  std::make_unique<HcalElectronicsSim>(&theParameterMap, theHOAmplifier.get(), theCoderFactory.get(), PreMix1);
140  std::make_unique<HcalElectronicsSim>(&theParameterMap, theZDCAmplifier.get(), theCoderFactory.get(), PreMix1);
142  std::make_unique<HcalElectronicsSim>(&theParameterMap,
143  theHFQIE10Amplifier.get(),
144  theCoderFactory.get(),
145  PreMix1); // should this use a different coder factory?
147  std::make_unique<HcalElectronicsSim>(&theParameterMap,
148  theHBHEQIE11Amplifier.get(),
149  theCoderFactory.get(),
150  PreMix1); // should this use a different coder factory?
151 
152  bool doHOHPD = (theHOSiPMCode != 1);
153  bool doHOSiPM = (theHOSiPMCode != 0);
154  if (doHOHPD) {
155  theHOResponse = std::make_unique<CaloHitResponse>(&theParameterMap, &theShapes);
156  theHOResponse->setHitFilter(&theHOHitFilter);
157  theHODigitizer = std::make_unique<HODigitizer>(theHOResponse.get(), theHOElectronicsSim.get(), doEmpty);
158  }
159  if (doHOSiPM) {
160  theHOSiPMResponse->setHitFilter(&theHOSiPMHitFilter);
161  theHOSiPMDigitizer = std::make_unique<HODigitizer>(theHOSiPMResponse.get(), theHOElectronicsSim.get(), doEmpty);
162  }
163 
164  theHBHEResponse->setHitFilter(&theHBHEHitFilter);
166 
167  // QIE8 and QIE11 can coexist in HBHE
169  std::make_unique<QIE11Digitizer>(theHBHESiPMResponse.get(), theHBHEQIE11ElectronicsSim.get(), doEmpty);
170  theHBHEDigitizer = std::make_unique<HBHEDigitizer>(theHBHEResponse.get(), theHBHEElectronicsSim.get(), doEmpty);
171 
172  bool doTimeSlew = ps.getParameter<bool>("doTimeSlew");
173  // initialize: they won't be called later if flag is set
174  hcalTimeSlew_delay_ = nullptr;
175  theTimeSlewSim.reset(nullptr);
176  if (doTimeSlew) {
177  // no time slewing for HF
178  theTimeSlewSim = std::make_unique<HcalTimeSlewSim>(&theParameterMap, minFCToDelay);
179  theHBHEAmplifier->setTimeSlewSim(theTimeSlewSim.get());
180  theHBHEQIE11Amplifier->setTimeSlewSim(theTimeSlewSim.get());
181  theHOAmplifier->setTimeSlewSim(theTimeSlewSim.get());
182  theZDCAmplifier->setTimeSlewSim(theTimeSlewSim.get());
183  }
184 
185  theHFResponse->setHitFilter(&theHFHitFilter);
186  theHFQIE10Response->setHitFilter(&theHFQIE10HitFilter);
187  theZDCResponse->setHitFilter(&theZDCHitFilter);
188 
189  // QIE8 and QIE10 can coexist in HF
191  std::make_unique<QIE10Digitizer>(theHFQIE10Response.get(), theHFQIE10ElectronicsSim.get(), doEmpty);
192  theHFDigitizer = std::make_unique<HFDigitizer>(theHFResponse.get(), theHFElectronicsSim.get(), doEmpty);
193 
194  theZDCDigitizer = std::make_unique<ZDCDigitizer>(theZDCResponse.get(), theZDCElectronicsSim.get(), doEmpty);
195 
196  testNumbering_ = ps.getParameter<bool>("TestNumbering");
197  // std::cout << "Flag to see if Hit Relabeller to be initiated " <<
198  // testNumbering_ << std::endl;
199  if (testNumbering_)
200  theRelabeller = std::make_unique<HcalHitRelabeller>(ps.getParameter<bool>("doNeutralDensityFilter"));
201 
202  if (ps.getParameter<bool>("doIonFeedback") && theHBHEResponse) {
203  theIonFeedback = std::make_unique<HPDIonFeedbackSim>(ps, &theShapes);
204  theHBHEResponse->setPECorrection(theIonFeedback.get());
205  if (ps.getParameter<bool>("doThermalNoise")) {
206  theHBHEAmplifier->setIonFeedbackSim(theIonFeedback.get());
207  }
208  }
209 
210  // option to save CaloSamples as event product for debugging
211  if (debugCS_) {
212  if (theHBHEDigitizer)
213  theHBHEDigitizer->setDebugCaloSamples(true);
215  theHBHEQIE11Digitizer->setDebugCaloSamples(true);
216  if (theHODigitizer)
217  theHODigitizer->setDebugCaloSamples(true);
218  if (theHOSiPMDigitizer)
219  theHOSiPMDigitizer->setDebugCaloSamples(true);
220  if (theHFDigitizer)
221  theHFDigitizer->setDebugCaloSamples(true);
223  theHFQIE10Digitizer->setDebugCaloSamples(true);
224  theZDCDigitizer->setDebugCaloSamples(true);
225  }
226 
227  // option to ignore Geant time distribution in SimHits, for debugging
228  if (ignoreTime_) {
229  theHBHEResponse->setIgnoreGeantTime(ignoreTime_);
230  theHBHESiPMResponse->setIgnoreGeantTime(ignoreTime_);
231  theHOResponse->setIgnoreGeantTime(ignoreTime_);
232  theHOSiPMResponse->setIgnoreGeantTime(ignoreTime_);
233  theHFResponse->setIgnoreGeantTime(ignoreTime_);
234  theHFQIE10Response->setIgnoreGeantTime(ignoreTime_);
235  theZDCResponse->setIgnoreGeantTime(ignoreTime_);
236  }
237 
238  if (agingFlagHF)
239  m_HFRecalibration = std::make_unique<HFRecalibration>(ps.getParameter<edm::ParameterSet>("HFRecalParameterBlock"));
240 }

References edm::ConsumesCollector::consumes(), HcalCoderFactory::DB, debugCS_, deliveredLumi, DataMixerDataOnData_cff::doEmpty, DigiDM_cff::doNoise, hcalUnsuppressedDigis_cfi::doTimeSlew, Exception, edm::ParameterSet::getParameter(), hcalTimeSlew_delay_, hitsProducer_, ignoreTime_, HLT_FULL_cff::InputTag, m_HFRecalibration, 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.

◆ ~HcalDigitizer()

HcalDigitizer::~HcalDigitizer ( )
virtual

Definition at line 242 of file HcalDigitizer.cc.

242 {}

Member Function Documentation

◆ accumulate() [1/2]

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

Definition at line 415 of file HcalDigitizer.cc.

415  {
416  // Step A: Get Inputs
417  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
419  e.getByLabel(zdcTag, zdcHandle);
420  isZDC = zdcHandle.isValid();
421 
422  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
424  e.getByLabel(hcalTag, hcalHandle);
425  isHCAL = hcalHandle.isValid() or injectTestHits_;
426 
428  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
429  const HcalTopology *htopoP = htopo.product();
430 
431  accumulateCaloHits(hcalHandle, zdcHandle, 0, engine, htopoP);
432 }

References accumulateCaloHits(), MillePedeFileConverter_cfg::e, edm::EventSetup::get(), get, hitsProducer_, injectTestHits_, isHCAL, edm::HandleBase::isValid(), isZDC, or, and edm::ESHandle< T >::product().

Referenced by HcalDigiProducer::accumulate().

◆ accumulate() [2/2]

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

Definition at line 434 of file HcalDigitizer.cc.

436  {
437  // Step A: Get Inputs
438  edm::InputTag zdcTag(hitsProducer_, "ZDCHITS");
440  e.getByLabel(zdcTag, zdcHandle);
441  isZDC = zdcHandle.isValid();
442 
443  edm::InputTag hcalTag(hitsProducer_, "HcalHits");
445  e.getByLabel(hcalTag, hcalHandle);
446  isHCAL = hcalHandle.isValid();
447 
449  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
450  const HcalTopology *htopoP = htopo.product();
451 
452  accumulateCaloHits(hcalHandle, zdcHandle, e.bunchCrossing(), engine, htopoP);
453 }

References accumulateCaloHits(), MillePedeFileConverter_cfg::e, edm::EventSetup::get(), get, hitsProducer_, isHCAL, edm::HandleBase::isValid(), isZDC, and edm::ESHandle< T >::product().

◆ 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 
)
private

Definition at line 331 of file HcalDigitizer.cc.

335  {
336  // Step A: pass in inputs, and accumulate digis
337  if (isHCAL) {
338  std::vector<PCaloHit> hcalHitsOrig = *hcalHandle.product();
339  if (injectTestHits_)
340  hcalHitsOrig = injectedHits_;
341  std::vector<PCaloHit> hcalHits;
342  hcalHits.reserve(hcalHitsOrig.size());
343 
344  // evaluate darkening before relabeling
345  if (testNumbering_) {
347  darkening(hcalHitsOrig);
348  }
349  // Relabel PCaloHits if necessary
350  edm::LogInfo("HcalDigitizer") << "Calling Relabeller";
351  theRelabeller->process(hcalHitsOrig);
352  }
353 
354  // eliminate bad hits
355  for (unsigned int i = 0; i < hcalHitsOrig.size(); i++) {
356  DetId id(hcalHitsOrig[i].id());
357  HcalDetId hid(id);
358  if (!htopoP->validHcal(hid)) {
359  edm::LogError("HcalDigitizer") << "bad hcal id found in digitizer. Skipping " << id.rawId() << " " << hid
360  << std::endl;
361  continue;
362  } else if (hid.subdet() == HcalForward && !doHFWindow_ && hcalHitsOrig[i].depth() != 0) {
363  // skip HF window hits unless desired
364  continue;
365  } else if (killHE_ && hid.subdet() == HcalEndcap) {
366  // remove HE hits if asked for (phase 2)
367  continue;
368  } else {
369 #ifdef DebugLog
370  std::cout << "HcalDigitizer format " << hid.oldFormat() << " for " << hid << std::endl;
371 #endif
372  DetId newid = DetId(hid.newForm());
373 #ifdef DebugLog
374  std::cout << "Hit " << i << " out of " << hcalHits.size() << " " << std::hex << id.rawId() << " --> "
375  << newid.rawId() << std::dec << " " << HcalDetId(newid.rawId()) << '\n';
376 #endif
377  hcalHitsOrig[i].setID(newid.rawId());
378  hcalHits.push_back(hcalHitsOrig[i]);
379  }
380  }
381 
382  if (hbhegeo) {
383  if (theHBHEDigitizer)
384  theHBHEDigitizer->add(hcalHits, bunchCrossing, engine);
386  theHBHEQIE11Digitizer->add(hcalHits, bunchCrossing, engine);
387  }
388 
389  if (hogeo) {
390  if (theHODigitizer)
391  theHODigitizer->add(hcalHits, bunchCrossing, engine);
392  if (theHOSiPMDigitizer)
393  theHOSiPMDigitizer->add(hcalHits, bunchCrossing, engine);
394  }
395 
396  if (hfgeo) {
397  if (theHFDigitizer)
398  theHFDigitizer->add(hcalHits, bunchCrossing, engine);
400  theHFQIE10Digitizer->add(hcalHits, bunchCrossing, engine);
401  }
402  } else {
403  edm::LogInfo("HcalDigitizer") << "We don't have HCAL hit collection available ";
404  }
405 
406  if (isZDC) {
407  if (zdcgeo) {
408  theZDCDigitizer->add(*zdcHandle.product(), bunchCrossing, engine);
409  }
410  } else {
411  edm::LogInfo("HcalDigitizer") << "We don't have ZDC hit collection available ";
412  }
413 }

References gather_cfg::cout, darkening(), TauDecayModes::dec, doHFWindow_, hbhegeo, HcalEndcap, HcalForward, hfgeo, hogeo, mps_fire::i, triggerObjects_cff::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, HcalTopology::validHcal(), and zdcgeo.

Referenced by accumulate().

◆ buildHBHEQIECells()

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

Definition at line 730 of file HcalDigitizer.cc.

730  {
731  // if results are already cached, no need to look again
732  if (!theHBHEQIE8DetIds.empty() || !theHBHEQIE11DetIds.empty())
733  return;
734 
735  // get the QIETypes
737  eventSetup.get<HcalQIETypesRcd>().get(q);
739  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
740 
741  HcalQIETypes qieTypes(*q.product());
742  if (qieTypes.topo() == nullptr) {
743  qieTypes.setTopo(htopo.product());
744  }
745 
746  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
747  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
748  if (qieType == QIE8) {
749  theHBHEQIE8DetIds.push_back(*detItr);
750  } else if (qieType == QIE11) {
751  theHBHEQIE11DetIds.push_back(*detItr);
752  } else { // default is QIE8
753  theHBHEQIE8DetIds.push_back(*detItr);
754  }
755  }
756 
757  if (!theHBHEQIE8DetIds.empty())
759  else {
760  theHBHEDigitizer.reset();
761  }
762 
763  if (!theHBHEQIE11DetIds.empty())
765  else {
766  theHBHEQIE11Digitizer.reset();
767  }
768 
769  if (!theHBHEQIE8DetIds.empty() && !theHBHEQIE11DetIds.empty()) {
772  }
773 }

References edm::EventSetup::get(), get, edm::ESHandle< T >::product(), submitPVResolutionJobs::q, QIE11, QIE8, HcalHitFilter< subdets >::setDetIds(), HcalCondObjectContainerBase::setTopo(), theHBHEDigitizer, theHBHEHitFilter, theHBHEQIE11DetIds, theHBHEQIE11Digitizer, theHBHEQIE11HitFilter, and theHBHEQIE8DetIds.

Referenced by updateGeometry().

◆ buildHFQIECells()

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

Definition at line 690 of file HcalDigitizer.cc.

690  {
691  // if results are already cached, no need to look again
692  if (!theHFQIE8DetIds.empty() || !theHFQIE10DetIds.empty())
693  return;
694 
695  // get the QIETypes
697  eventSetup.get<HcalQIETypesRcd>().get(q);
699  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
700 
701  HcalQIETypes qieTypes(*q.product());
702  if (qieTypes.topo() == nullptr) {
703  qieTypes.setTopo(htopo.product());
704  }
705 
706  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
707  HcalQIENum qieType = HcalQIENum(qieTypes.getValues(*detItr)->getValue());
708  if (qieType == QIE8) {
709  theHFQIE8DetIds.push_back(*detItr);
710  } else if (qieType == QIE10) {
711  theHFQIE10DetIds.push_back(*detItr);
712  } else { // default is QIE8
713  theHFQIE8DetIds.push_back(*detItr);
714  }
715  }
716 
717  if (!theHFQIE8DetIds.empty())
718  theHFDigitizer->setDetIds(theHFQIE8DetIds);
719  else {
720  theHFDigitizer.reset();
721  }
722 
723  if (!theHFQIE10DetIds.empty())
725  else {
726  theHFQIE10Digitizer.reset();
727  }
728 }

References edm::EventSetup::get(), get, edm::ESHandle< T >::product(), submitPVResolutionJobs::q, QIE10, QIE8, HcalCondObjectContainerBase::setTopo(), theHFDigitizer, theHFQIE10DetIds, theHFQIE10Digitizer, and theHFQIE8DetIds.

Referenced by updateGeometry().

◆ buildHOSiPMCells()

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

Definition at line 775 of file HcalDigitizer.cc.

775  {
776  // all HPD
777 
778  if (theHOSiPMCode == 0) {
779  theHODigitizer->setDetIds(allCells);
780  } else if (theHOSiPMCode == 1) {
781  theHOSiPMDigitizer->setDetIds(allCells);
782  // FIXME pick Zecotek or hamamatsu?
783  } else if (theHOSiPMCode == 2) {
784  std::vector<HcalDetId> zecotekDetIds, hamamatsuDetIds;
786  eventSetup.get<HcalMCParamsRcd>().get(p);
788  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
789 
790  HcalMCParams mcParams(*p.product());
791  if (mcParams.topo() == nullptr) {
792  mcParams.setTopo(htopo.product());
793  }
794 
795  for (std::vector<DetId>::const_iterator detItr = allCells.begin(); detItr != allCells.end(); ++detItr) {
796  int shapeType = mcParams.getValues(*detItr)->signalShape();
797  if (shapeType == HcalShapes::ZECOTEK) {
798  zecotekDetIds.emplace_back(*detItr);
799  theHOSiPMDetIds.push_back(*detItr);
800  } else if (shapeType == HcalShapes::HAMAMATSU) {
801  hamamatsuDetIds.emplace_back(*detItr);
802  theHOSiPMDetIds.push_back(*detItr);
803  } else {
804  theHOHPDDetIds.push_back(*detItr);
805  }
806  }
807 
808  if (!theHOHPDDetIds.empty())
809  theHODigitizer->setDetIds(theHOHPDDetIds);
810  else {
811  theHODigitizer.reset();
812  }
813 
814  if (!theHOSiPMDetIds.empty())
816  else {
817  theHOSiPMDigitizer.reset();
818  }
819 
820  if (!theHOHPDDetIds.empty() && !theHOSiPMDetIds.empty()) {
823  }
824 
825  theParameterMap.setHOZecotekDetIds(zecotekDetIds);
826  theParameterMap.setHOHamamatsuDetIds(hamamatsuDetIds);
827 
828  // make sure we don't got through this exercise again
829  theHOSiPMCode = -2;
830  }
831 }

References edm::EventSetup::get(), get, HcalShapes::HAMAMATSU, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< T >::product(), HcalHitFilter< subdets >::setDetIds(), HcalSimParameterMap::setHOHamamatsuDetIds(), HcalSimParameterMap::setHOZecotekDetIds(), HcalCondObjectContainerBase::setTopo(), theHODigitizer, theHOHitFilter, theHOHPDDetIds, theHOSiPMCode, theHOSiPMDetIds, theHOSiPMDigitizer, theHOSiPMHitFilter, theParameterMap, and HcalShapes::ZECOTEK.

Referenced by updateGeometry().

◆ 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 580 of file HcalDigitizer.cc.

580  {
582  eventSetup.get<CaloGeometryRecord>().get(geometry);
583  theGeometry = &*geometry;
585  eventSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
586  theRecNumber = &*pHRNDC;
587 
588  if (theHBHEResponse)
589  theHBHEResponse->setGeometry(theGeometry);
591  theHBHESiPMResponse->setGeometry(theGeometry);
592  if (theHOResponse)
593  theHOResponse->setGeometry(theGeometry);
594  if (theHOSiPMResponse)
595  theHOSiPMResponse->setGeometry(theGeometry);
596  theHFResponse->setGeometry(theGeometry);
597  theHFQIE10Response->setGeometry(theGeometry);
598  theZDCResponse->setGeometry(theGeometry);
599  if (theRelabeller)
600  theRelabeller->setGeometry(theRecNumber);
601 
602  // See if it's been updated
603  bool check1 = theGeometryWatcher_.check(eventSetup);
604  bool check2 = theRecNumberWatcher_.check(eventSetup);
605  if (check1 or check2) {
606  updateGeometry(eventSetup);
607  }
608 }

References edm::ESWatcher< T >::check(), relativeConstraints::geometry, edm::EventSetup::get(), get, or, theGeometry, theGeometryWatcher_, theHBHEResponse, theHBHESiPMResponse, theHFQIE10Response, theHFResponse, theHOResponse, theHOSiPMResponse, theRecNumber, theRecNumberWatcher_, theRelabeller, theZDCResponse, and updateGeometry().

Referenced by setup().

◆ darkening()

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

Definition at line 833 of file HcalDigitizer.cc.

833  {
834  for (unsigned int ii = 0; ii < hcalHits.size(); ++ii) {
835  uint32_t tmpId = hcalHits[ii].id();
836  int det, z, depth, ieta, phi, lay;
837  HcalTestNumbering::unpackHcalIndex(tmpId, det, z, depth, ieta, phi, lay);
838 
839  bool darkened = false;
840  float dweight = 1.;
841 
842  if (det == int(HcalBarrel) && m_HBDarkening) {
843  // HB darkening
844  dweight = m_HBDarkening->degradation(deliveredLumi, ieta, lay);
845  darkened = true;
846  } else if (det == int(HcalEndcap) && m_HEDarkening) {
847  // HE darkening
848  dweight = m_HEDarkening->degradation(deliveredLumi, ieta, lay);
849  darkened = true;
850  } else if (det == int(HcalForward) && m_HFRecalibration) {
851  // HF darkening - approximate: invert recalibration factor
852  dweight = 1.0 / m_HFRecalibration->getCorr(ieta, depth, deliveredLumi);
853  darkened = true;
854  }
855 
856  // reset hit energy
857  if (darkened)
858  hcalHits[ii].setEnergy(hcalHits[ii].energy() * dweight);
859  }
860 }

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

Referenced by accumulateCaloHits().

◆ 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 455 of file HcalDigitizer.cc.

455  {
456  // Step B: Create empty output
457  std::unique_ptr<HBHEDigiCollection> hbheResult(new HBHEDigiCollection());
458  std::unique_ptr<HODigiCollection> hoResult(new HODigiCollection());
459  std::unique_ptr<HFDigiCollection> hfResult(new HFDigiCollection());
460  std::unique_ptr<ZDCDigiCollection> zdcResult(new ZDCDigiCollection());
461  std::unique_ptr<QIE10DigiCollection> hfQIE10Result(new QIE10DigiCollection(
464  std::unique_ptr<QIE11DigiCollection> hbheQIE11Result(new QIE11DigiCollection(
465  !theHBHEQIE11DetIds.empty() ? theHBHESiPMResponse.get()->getReadoutFrameSize(theHBHEQIE11DetIds[0]) :
466  // theParameterMap->simParameters(theHBHEQIE11DetIds[0]).readoutFrameSize()
467  // :
469 
470  // Step C: Invoke the algorithm, getting back outputs.
471  if (isHCAL && hbhegeo) {
472  if (theHBHEDigitizer)
473  theHBHEDigitizer->run(*hbheResult, engine);
475  theHBHEQIE11Digitizer->run(*hbheQIE11Result, engine);
476  }
477  if (isHCAL && hogeo) {
478  if (theHODigitizer)
479  theHODigitizer->run(*hoResult, engine);
480  if (theHOSiPMDigitizer)
481  theHOSiPMDigitizer->run(*hoResult, engine);
482  }
483  if (isHCAL && hfgeo) {
484  if (theHFDigitizer)
485  theHFDigitizer->run(*hfResult, engine);
487  theHFQIE10Digitizer->run(*hfQIE10Result, engine);
488  }
489  if (isZDC && zdcgeo) {
490  theZDCDigitizer->run(*zdcResult, engine);
491  }
492 
493  edm::LogInfo("HcalDigitizer") << "HCAL HBHE digis : " << hbheResult->size();
494  edm::LogInfo("HcalDigitizer") << "HCAL HO digis : " << hoResult->size();
495  edm::LogInfo("HcalDigitizer") << "HCAL HF digis : " << hfResult->size();
496  edm::LogInfo("HcalDigitizer") << "HCAL ZDC digis : " << zdcResult->size();
497  edm::LogInfo("HcalDigitizer") << "HCAL HF QIE10 digis : " << hfQIE10Result->size();
498  edm::LogInfo("HcalDigitizer") << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size();
499 
500 #ifdef DebugLog
501  std::cout << std::endl;
502  std::cout << "HCAL HBHE digis : " << hbheResult->size() << std::endl;
503  std::cout << "HCAL HO digis : " << hoResult->size() << std::endl;
504  std::cout << "HCAL HF digis : " << hfResult->size() << std::endl;
505  std::cout << "HCAL ZDC digis : " << zdcResult->size() << std::endl;
506  std::cout << "HCAL HF QIE10 digis : " << hfQIE10Result->size() << std::endl;
507  std::cout << "HCAL HBHE QIE11 digis : " << hbheQIE11Result->size() << std::endl;
508 #endif
509 
510  // Step D: Put outputs into event
511  e.put(std::move(hbheResult));
512  e.put(std::move(hoResult));
513  e.put(std::move(hfResult));
514  e.put(std::move(zdcResult));
515  e.put(std::move(hfQIE10Result), "HFQIE10DigiCollection");
516  e.put(std::move(hbheQIE11Result), "HBHEQIE11DigiCollection");
517 
518  if (debugCS_) {
519  std::unique_ptr<CaloSamplesCollection> csResult(new CaloSamplesCollection());
520  // smush together all the results
521  if (theHBHEDigitizer)
522  csResult->insert(
523  csResult->end(), theHBHEDigitizer->getCaloSamples().begin(), theHBHEDigitizer->getCaloSamples().end());
525  csResult->insert(csResult->end(),
526  theHBHEQIE11Digitizer->getCaloSamples().begin(),
527  theHBHEQIE11Digitizer->getCaloSamples().end());
528  if (theHODigitizer)
529  csResult->insert(
530  csResult->end(), theHODigitizer->getCaloSamples().begin(), theHODigitizer->getCaloSamples().end());
531  if (theHOSiPMDigitizer)
532  csResult->insert(
533  csResult->end(), theHOSiPMDigitizer->getCaloSamples().begin(), theHOSiPMDigitizer->getCaloSamples().end());
534  if (theHFDigitizer)
535  csResult->insert(
536  csResult->end(), theHFDigitizer->getCaloSamples().begin(), theHFDigitizer->getCaloSamples().end());
538  csResult->insert(
539  csResult->end(), theHFQIE10Digitizer->getCaloSamples().begin(), theHFQIE10Digitizer->getCaloSamples().end());
540  csResult->insert(
541  csResult->end(), theZDCDigitizer->getCaloSamples().begin(), theZDCDigitizer->getCaloSamples().end());
542  e.put(std::move(csResult), "HcalSamples");
543  }
544 
545  if (injectTestHits_) {
546  std::unique_ptr<edm::PCaloHitContainer> pcResult(new edm::PCaloHitContainer());
547  pcResult->insert(pcResult->end(), injectedHits_.begin(), injectedHits_.end());
548  e.put(std::move(pcResult), "HcalHits");
549  }
550 
551 #ifdef DebugLog
552  std::cout << std::endl << "========> HcalDigitizer e.put " << std::endl << std::endl;
553 #endif
554 }

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

Referenced by HcalDigiProducer::finalizeEvent().

◆ initializeEvent()

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

Produces the EDM products,

Definition at line 293 of file HcalDigitizer.cc.

293  {
294  setup(eventSetup);
295 
296  // get the appropriate gains, noises, & widths for this event
298  eventSetup.get<HcalDbRecord>().get(conditions);
299 
300  theShapes.setDbService(conditions.product());
301 
302  theHBHEAmplifier->setDbService(conditions.product());
303  theHFAmplifier->setDbService(conditions.product());
304  theHOAmplifier->setDbService(conditions.product());
305  theZDCAmplifier->setDbService(conditions.product());
306  theHFQIE10Amplifier->setDbService(conditions.product());
307  theHBHEQIE11Amplifier->setDbService(conditions.product());
308 
309  theHFQIE10ElectronicsSim->setDbService(conditions.product());
310  theHBHEQIE11ElectronicsSim->setDbService(conditions.product());
311 
312  theCoderFactory->setDbService(conditions.product());
314 
315  // initialize hits
316  if (theHBHEDigitizer)
317  theHBHEDigitizer->initializeHits();
319  theHBHEQIE11Digitizer->initializeHits();
320  if (theHODigitizer)
321  theHODigitizer->initializeHits();
322  if (theHOSiPMDigitizer)
323  theHOSiPMDigitizer->initializeHits();
325  theHFQIE10Digitizer->initializeHits();
326  if (theHFDigitizer)
327  theHFDigitizer->initializeHits();
328  theZDCDigitizer->initializeHits();
329 }

References submitPVValidationJobs::conditions, edm::EventSetup::get(), get, 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().

◆ setHBHENoiseSignalGenerator()

void HcalDigitizer::setHBHENoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 244 of file HcalDigitizer.cc.

244  {
245  noiseGenerator->setParameterMap(&theParameterMap);
246  noiseGenerator->setElectronicsSim(theHBHEElectronicsSim.get());
247  if (theHBHEDigitizer)
248  theHBHEDigitizer->setNoiseSignalGenerator(noiseGenerator);
249  theHBHEAmplifier->setNoiseSignalGenerator(noiseGenerator);
250 }

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

Referenced by HcalDigiProducer::setHBHENoiseSignalGenerator().

◆ setHFNoiseSignalGenerator()

void HcalDigitizer::setHFNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 260 of file HcalDigitizer.cc.

260  {
261  noiseGenerator->setParameterMap(&theParameterMap);
262  noiseGenerator->setElectronicsSim(theHFElectronicsSim.get());
263  if (theHFDigitizer)
264  theHFDigitizer->setNoiseSignalGenerator(noiseGenerator);
265  theHFAmplifier->setNoiseSignalGenerator(noiseGenerator);
266 }

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

Referenced by HcalDigiProducer::setHFNoiseSignalGenerator().

◆ setHONoiseSignalGenerator()

void HcalDigitizer::setHONoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 276 of file HcalDigitizer.cc.

276  {
277  noiseGenerator->setParameterMap(&theParameterMap);
278  noiseGenerator->setElectronicsSim(theHOElectronicsSim.get());
279  if (theHODigitizer)
280  theHODigitizer->setNoiseSignalGenerator(noiseGenerator);
281  if (theHOSiPMDigitizer)
282  theHOSiPMDigitizer->setNoiseSignalGenerator(noiseGenerator);
283  theHOAmplifier->setNoiseSignalGenerator(noiseGenerator);
284 }

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

Referenced by HcalDigiProducer::setHONoiseSignalGenerator().

◆ setQIE10NoiseSignalGenerator()

void HcalDigitizer::setQIE10NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 268 of file HcalDigitizer.cc.

268  {
269  noiseGenerator->setParameterMap(&theParameterMap);
270  noiseGenerator->setElectronicsSim(theHFQIE10ElectronicsSim.get());
272  theHFQIE10Digitizer->setNoiseSignalGenerator(noiseGenerator);
273  theHFQIE10Amplifier->setNoiseSignalGenerator(noiseGenerator);
274 }

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

Referenced by HcalDigiProducer::setQIE10NoiseSignalGenerator().

◆ setQIE11NoiseSignalGenerator()

void HcalDigitizer::setQIE11NoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 252 of file HcalDigitizer.cc.

252  {
253  noiseGenerator->setParameterMap(&theParameterMap);
254  noiseGenerator->setElectronicsSim(theHBHEQIE11ElectronicsSim.get());
256  theHBHEQIE11Digitizer->setNoiseSignalGenerator(noiseGenerator);
257  theHBHEQIE11Amplifier->setNoiseSignalGenerator(noiseGenerator);
258 }

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

Referenced by HcalDigiProducer::setQIE11NoiseSignalGenerator().

◆ setup()

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

Definition at line 556 of file HcalDigitizer.cc.

556  {
557  checkGeometry(es);
558 
559  if (agingFlagHB) {
561  es.get<HBHEDarkeningRecord>().get("HB", hdark);
562  m_HBDarkening = &*hdark;
563  }
564  if (agingFlagHE) {
566  es.get<HBHEDarkeningRecord>().get("HE", hdark);
567  m_HEDarkening = &*hdark;
568  }
569 
571  es.get<HcalTimeSlewRecord>().get("HBHE", delay);
573 
576  theHOAmplifier->setTimeSlew(hcalTimeSlew_delay_);
577  theZDCAmplifier->setTimeSlew(hcalTimeSlew_delay_);
578 }

References agingFlagHB, agingFlagHE, checkGeometry(), phase2TrackerDigitizer_cfi::delay, edm::EventSetup::get(), get, hcalTimeSlew_delay_, m_HBDarkening, m_HEDarkening, theHBHEAmplifier, theHBHEQIE11Amplifier, theHOAmplifier, and theZDCAmplifier.

Referenced by initializeEvent().

◆ setZDCNoiseSignalGenerator()

void HcalDigitizer::setZDCNoiseSignalGenerator ( HcalBaseSignalGenerator noiseGenerator)

Definition at line 286 of file HcalDigitizer.cc.

286  {
287  noiseGenerator->setParameterMap(&theParameterMap);
288  noiseGenerator->setElectronicsSim(theZDCElectronicsSim.get());
289  theZDCDigitizer->setNoiseSignalGenerator(noiseGenerator);
290  theZDCAmplifier->setNoiseSignalGenerator(noiseGenerator);
291 }

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

Referenced by HcalDigiProducer::setZDCNoiseSignalGenerator().

◆ updateGeometry()

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

Definition at line 610 of file HcalDigitizer.cc.

610  {
611  const std::vector<DetId> &hbCells = theGeometry->getValidDetIds(DetId::Hcal, HcalBarrel);
612  const std::vector<DetId> &heCells = theGeometry->getValidDetIds(DetId::Hcal, HcalEndcap);
613  const std::vector<DetId> &hoCells = theGeometry->getValidDetIds(DetId::Hcal, HcalOuter);
614  const std::vector<DetId> &hfCells = theGeometry->getValidDetIds(DetId::Hcal, HcalForward);
615  const std::vector<DetId> &zdcCells = theGeometry->getValidDetIds(DetId::Calo, HcalZDCDetId::SubdetectorId);
616  // const std::vector<DetId>& hcalTrigCells =
617  // geometry->getValidDetIds(DetId::Hcal, HcalTriggerTower); const
618  // std::vector<DetId>& hcalCalib = geometry->getValidDetIds(DetId::Calo,
619  // HcalCastorDetId::SubdetectorId);
620  // std::cout<<"HcalDigitizer::CheckGeometry number of cells:
621  // "<<zdcCells.size()<<std::endl;
622  if (zdcCells.empty())
623  zdcgeo = false;
624  if (hbCells.empty() && heCells.empty())
625  hbhegeo = false;
626  if (hoCells.empty())
627  hogeo = false;
628  if (hfCells.empty())
629  hfgeo = false;
630  // combine HB & HE
631 
632  hbheCells = hbCells;
633  if (!killHE_) {
634  hbheCells.insert(hbheCells.end(), heCells.begin(), heCells.end());
635  }
636  // handle mixed QIE8/11 scenario in HBHE
637  buildHBHEQIECells(hbheCells, eventSetup);
640 
641  if (theHOSiPMDigitizer) {
642  buildHOSiPMCells(hoCells, eventSetup);
643  if (theHOSiPMResponse)
644  theHOSiPMResponse->setDetIds(hoCells);
645  }
646 
647  // handle mixed QIE8/10 scenario in HF
648  buildHFQIECells(hfCells, eventSetup);
649 
650  theZDCDigitizer->setDetIds(zdcCells);
651 
652  // fill test hits collection if desired and empty
653  if (injectTestHits_ && injectedHits_.empty() && !injectedHitsCells_.empty() && !injectedHitsEnergy_.empty()) {
654  // make list of specified cells if desired
655  std::vector<DetId> testCells;
656  if (injectedHitsCells_.size() >= 4) {
657  testCells.reserve(injectedHitsCells_.size() / 4);
658  for (unsigned ic = 0; ic < injectedHitsCells_.size(); ic += 4) {
659  if (ic + 4 > injectedHitsCells_.size())
660  break;
661  testCells.push_back(HcalDetId((HcalSubdetector)injectedHitsCells_[ic],
662  injectedHitsCells_[ic + 1],
663  injectedHitsCells_[ic + 2],
664  injectedHitsCells_[ic + 3]));
665  }
666  } else {
667  int testSubdet = injectedHitsCells_[0];
668  if (testSubdet == HcalBarrel)
669  testCells = hbCells;
670  else if (testSubdet == HcalEndcap)
671  testCells = heCells;
672  else if (testSubdet == HcalForward)
673  testCells = hfCells;
674  else if (testSubdet == HcalOuter)
675  testCells = hoCells;
676  else
677  throw cms::Exception("Configuration") << "Unknown subdet " << testSubdet << " for HCAL test hit injection";
678  }
679  bool useHitTimes = (injectedHitsTime_.size() == injectedHitsEnergy_.size());
680  injectedHits_.reserve(testCells.size() * injectedHitsEnergy_.size());
681  for (unsigned ih = 0; ih < injectedHitsEnergy_.size(); ++ih) {
682  double tmp = useHitTimes ? injectedHitsTime_[ih] : 0.;
683  for (auto &aCell : testCells) {
684  injectedHits_.emplace_back(aCell, injectedHitsEnergy_[ih], tmp);
685  }
686  }
687  }
688 }

References buildHBHEQIECells(), buildHFQIECells(), buildHOSiPMCells(), DetId::Calo, 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().

Member Data Documentation

◆ agingFlagHB

bool HcalDigitizer::agingFlagHB
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by setup().

◆ agingFlagHE

bool HcalDigitizer::agingFlagHE
private

Definition at line 168 of file HcalDigitizer.h.

Referenced by setup().

◆ debugCS_

bool HcalDigitizer::debugCS_
private

Definition at line 159 of file HcalDigitizer.h.

Referenced by finalizeEvent(), and HcalDigitizer().

◆ deliveredLumi

double HcalDigitizer::deliveredLumi
private

Definition at line 167 of file HcalDigitizer.h.

Referenced by darkening(), and HcalDigitizer().

◆ doHFWindow_

bool HcalDigitizer::doHFWindow_
private

Definition at line 157 of file HcalDigitizer.h.

Referenced by accumulateCaloHits().

◆ hbheCells

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

Definition at line 149 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ hbhegeo

bool HcalDigitizer::hbhegeo
private

Definition at line 155 of file HcalDigitizer.h.

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

◆ hcalTimeSlew_delay_

const HcalTimeSlew* HcalDigitizer::hcalTimeSlew_delay_
private

Definition at line 173 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setup().

◆ hfgeo

bool HcalDigitizer::hfgeo
private

Definition at line 155 of file HcalDigitizer.h.

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

◆ hitsProducer_

std::string HcalDigitizer::hitsProducer_
private

Definition at line 163 of file HcalDigitizer.h.

Referenced by accumulate(), and HcalDigitizer().

◆ hogeo

bool HcalDigitizer::hogeo
private

Definition at line 155 of file HcalDigitizer.h.

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

◆ ignoreTime_

bool HcalDigitizer::ignoreTime_
private

Definition at line 160 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ injectedHits_

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

Definition at line 178 of file HcalDigitizer.h.

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

◆ injectedHitsCells_

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

Definition at line 177 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectedHitsEnergy_

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

Definition at line 175 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectedHitsTime_

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

Definition at line 176 of file HcalDigitizer.h.

Referenced by updateGeometry().

◆ injectTestHits_

bool HcalDigitizer::injectTestHits_
private

Definition at line 161 of file HcalDigitizer.h.

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

◆ isHCAL

bool HcalDigitizer::isHCAL
private

Definition at line 155 of file HcalDigitizer.h.

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

◆ isZDC

bool HcalDigitizer::isZDC
private

Definition at line 155 of file HcalDigitizer.h.

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

◆ killHE_

bool HcalDigitizer::killHE_
private

Definition at line 158 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and updateGeometry().

◆ m_HBDarkening

const HBHEDarkening* HcalDigitizer::m_HBDarkening
private

Definition at line 169 of file HcalDigitizer.h.

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

◆ m_HEDarkening

const HBHEDarkening* HcalDigitizer::m_HEDarkening
private

Definition at line 170 of file HcalDigitizer.h.

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

◆ m_HFRecalibration

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

Definition at line 171 of file HcalDigitizer.h.

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

◆ testNumbering_

bool HcalDigitizer::testNumbering_
private

Definition at line 156 of file HcalDigitizer.h.

Referenced by accumulateCaloHits(), and HcalDigitizer().

◆ theCoderFactory

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

Definition at line 119 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

◆ theGeometry

const CaloGeometry* HcalDigitizer::theGeometry
private

Definition at line 79 of file HcalDigitizer.h.

Referenced by checkGeometry(), and updateGeometry().

◆ theGeometryWatcher_

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

Definition at line 77 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 121 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHBHENoiseSignalGenerator().

◆ theHBHEHitFilter

HBHEHitFilter HcalDigitizer::theHBHEHitFilter
private

Definition at line 128 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 150 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 126 of file HcalDigitizer.h.

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

◆ theHBHEQIE11HitFilter

HBHEHitFilter HcalDigitizer::theHBHEQIE11HitFilter
private

Definition at line 129 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells(), and HcalDigitizer().

◆ theHBHEQIE8DetIds

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

Definition at line 150 of file HcalDigitizer.h.

Referenced by buildHBHEQIECells().

◆ theHBHEResponse

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

Definition at line 101 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHBHESiPMResponse

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

Definition at line 102 of file HcalDigitizer.h.

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

◆ theHFAmplifier

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

Definition at line 112 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 122 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHFNoiseSignalGenerator().

◆ theHFHitFilter

HFHitFilter HcalDigitizer::theHFHitFilter
private

Definition at line 130 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theHFQIE10Amplifier

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

Definition at line 115 of file HcalDigitizer.h.

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

◆ theHFQIE10DetIds

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

Definition at line 153 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 125 of file HcalDigitizer.h.

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

◆ theHFQIE10HitFilter

HFHitFilter HcalDigitizer::theHFQIE10HitFilter
private

Definition at line 131 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theHFQIE10Response

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

Definition at line 106 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHFQIE8DetIds

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

Definition at line 153 of file HcalDigitizer.h.

Referenced by buildHFQIECells().

◆ theHFResponse

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

Definition at line 105 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHOAmplifier

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

Definition at line 113 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 123 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setHONoiseSignalGenerator().

◆ theHOHitFilter

HOHitFilter HcalDigitizer::theHOHitFilter
private

Definition at line 132 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOHPDDetIds

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

Definition at line 151 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

◆ theHOResponse

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

Definition at line 103 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ theHOSiPMCode

int HcalDigitizer::theHOSiPMCode
private

Definition at line 165 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOSiPMDetIds

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

Definition at line 152 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells().

◆ theHOSiPMDigitizer

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

◆ theHOSiPMHitFilter

HOHitFilter HcalDigitizer::theHOSiPMHitFilter
private

Definition at line 133 of file HcalDigitizer.h.

Referenced by buildHOSiPMCells(), and HcalDigitizer().

◆ theHOSiPMResponse

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

Definition at line 104 of file HcalDigitizer.h.

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

◆ theIonFeedback

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

Definition at line 118 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theParameterMap

HcalSimParameterMap HcalDigitizer::theParameterMap
private

◆ theRecNumber

const HcalDDDRecConstants* HcalDigitizer::theRecNumber
private

Definition at line 80 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theRecNumberWatcher_

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

Definition at line 78 of file HcalDigitizer.h.

Referenced by checkGeometry().

◆ theRelabeller

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

Definition at line 145 of file HcalDigitizer.h.

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

◆ theShapes

HcalShapes HcalDigitizer::theShapes
private

Definition at line 99 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and initializeEvent().

◆ theTimeSlewSim

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

Definition at line 136 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theZDCAmplifier

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

Definition at line 114 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 124 of file HcalDigitizer.h.

Referenced by HcalDigitizer(), and setZDCNoiseSignalGenerator().

◆ theZDCHitFilter

ZDCHitFilter HcalDigitizer::theZDCHitFilter
private

Definition at line 134 of file HcalDigitizer.h.

Referenced by HcalDigitizer().

◆ theZDCResponse

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

Definition at line 107 of file HcalDigitizer.h.

Referenced by checkGeometry(), and HcalDigitizer().

◆ zdcgeo

bool HcalDigitizer::zdcgeo
private

Definition at line 155 of file HcalDigitizer.h.

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

HcalDigitizer::theHFQIE8DetIds
std::vector< DetId > theHFQIE8DetIds
Definition: HcalDigitizer.h:153
HBHEDarkeningRecord
Definition: HBHEDarkeningRecord.h:4
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
HcalDigitizer::theHFQIE10Digitizer
std::unique_ptr< QIE10Digitizer > theHFQIE10Digitizer
Definition: HcalDigitizer.h:143
HcalDigitizer::theZDCElectronicsSim
std::unique_ptr< HcalElectronicsSim > theZDCElectronicsSim
Definition: HcalDigitizer.h:124
HcalDigitizer::testNumbering_
bool testNumbering_
Definition: HcalDigitizer.h:156
mps_fire.i
i
Definition: mps_fire.py:428
HcalBaseSignalGenerator::setParameterMap
void setParameterMap(HcalSimParameterMap *map)
Definition: HcalBaseSignalGenerator.h:14
HcalDigitizer::theHBHEResponse
std::unique_ptr< CaloHitResponse > theHBHEResponse
Definition: HcalDigitizer.h:101
HcalDigitizer::injectedHitsEnergy_
std::vector< double > injectedHitsEnergy_
Definition: HcalDigitizer.h:175
HcalDigitizer::theHOHPDDetIds
std::vector< DetId > theHOHPDDetIds
Definition: HcalDigitizer.h:151
HcalDigitizer::theShapes
HcalShapes theShapes
Definition: HcalDigitizer.h:99
HcalDigitizer::theZDCResponse
std::unique_ptr< CaloHitResponse > theZDCResponse
Definition: HcalDigitizer.h:107
HcalMCParams
Definition: HcalMCParams.h:9
HcalDigitizer::ignoreTime_
bool ignoreTime_
Definition: HcalDigitizer.h:160
HcalCondObjectContainerBase::setTopo
void setTopo(const HcalTopology *topo)
Definition: HcalCondObjectContainerBase.cc:17
QIE8
Definition: HcalQIENum.h:4
HcalDigitizer::killHE_
bool killHE_
Definition: HcalDigitizer.h:158
HcalDigitizer::debugCS_
bool debugCS_
Definition: HcalDigitizer.h:159
CaloSimParameters::readoutFrameSize
int readoutFrameSize() const
for now, the LinearFrames and trhe digis will be one-to-one.
Definition: CaloSimParameters.h:45
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
HcalDigitizer::theHOResponse
std::unique_ptr< CaloHitResponse > theHOResponse
Definition: HcalDigitizer.h:103
HcalQIENum
HcalQIENum
Definition: HcalQIENum.h:4
HcalDigitizer::theIonFeedback
std::unique_ptr< HPDIonFeedbackSim > theIonFeedback
Definition: HcalDigitizer.h:118
HcalDigitizer::theHFQIE10Response
std::unique_ptr< CaloHitResponse > theHFQIE10Response
Definition: HcalDigitizer.h:106
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
HcalShapes::setDbService
void setDbService(const HcalDbService *service)
Definition: HcalShapes.h:24
HcalDigitizer::accumulateCaloHits
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit >> const &hcalHits, edm::Handle< std::vector< PCaloHit >> const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h)
Definition: HcalDigitizer.cc:331
HcalDigitizer::injectTestHits_
bool injectTestHits_
Definition: HcalDigitizer.h:161
geometry
Definition: geometry.py:1
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HcalTopology
Definition: HcalTopology.h:26
DetId::Hcal
Definition: DetId.h:28
HcalDigitizer::theGeometryWatcher_
edm::ESWatcher< CaloGeometryRecord > theGeometryWatcher_
Definition: HcalDigitizer.h:77
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
HcalMCParamsRcd
Definition: HcalMCParamsRcd.h:6
HcalDigitizer::isZDC
bool isZDC
Definition: HcalDigitizer.h:155
HcalDigitizer::theHBHEQIE11ElectronicsSim
std::unique_ptr< HcalElectronicsSim > theHBHEQIE11ElectronicsSim
Definition: HcalDigitizer.h:126
relativeConstraints.geometry
geometry
Definition: relativeConstraints.py:39
HcalDigitizer::theHBHEQIE11Digitizer
std::unique_ptr< QIE11Digitizer > theHBHEQIE11Digitizer
Definition: HcalDigitizer.h:144
HcalDigitizer::hfgeo
bool hfgeo
Definition: HcalDigitizer.h:155
HcalDigitizer::theGeometry
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:79
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
HcalBarrel
Definition: HcalAssistant.h:33
HODigiCollection
edm::SortedCollection< HODataFrame > HODigiCollection
Definition: HcalDigiCollections.h:21
HcalDigitizer::theHOSiPMDetIds
std::vector< DetId > theHOSiPMDetIds
Definition: HcalDigitizer.h:152
HcalDigitizer::theHOAmplifier
std::unique_ptr< HcalAmplifier > theHOAmplifier
Definition: HcalDigitizer.h:113
HcalDigitizer::theHOSiPMHitFilter
HOHitFilter theHOSiPMHitFilter
Definition: HcalDigitizer.h:133
HcalDigitizer::theHOSiPMResponse
std::unique_ptr< HcalSiPMHitResponse > theHOSiPMResponse
Definition: HcalDigitizer.h:104
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
HcalDigitizer::hbheCells
std::vector< DetId > hbheCells
Definition: HcalDigitizer.h:149
edm::Handle
Definition: AssociativeIterator.h:50
HcalSimParameterMap::setDbService
void setDbService(const HcalDbService *service)
Definition: HcalSimParameterMap.cc:57
DetId::Calo
Definition: DetId.h:29
HcalDigitizer::m_HBDarkening
const HBHEDarkening * m_HBDarkening
Definition: HcalDigitizer.h:169
HcalDigitizer::theParameterMap
HcalSimParameterMap theParameterMap
Definition: HcalDigitizer.h:98
HcalDigitizer::theHOElectronicsSim
std::unique_ptr< HcalElectronicsSim > theHOElectronicsSim
Definition: HcalDigitizer.h:123
HcalDigitizer::theHBHEElectronicsSim
std::unique_ptr< HcalElectronicsSim > theHBHEElectronicsSim
Definition: HcalDigitizer.h:121
QIE10DigiCollection
HcalDataFrameContainer< QIE10DataFrame > QIE10DigiCollection
Definition: HcalDigiCollections.h:52
HcalDigitizer::theHBHEQIE11HitFilter
HBHEHitFilter theHBHEQIE11HitFilter
Definition: HcalDigitizer.h:129
DigiDM_cff.doNoise
doNoise
Definition: DigiDM_cff.py:32
DetId
Definition: DetId.h:17
HcalDigitizer::theZDCAmplifier
std::unique_ptr< HcalAmplifier > theZDCAmplifier
Definition: HcalDigitizer.h:114
HcalDigitizer::theHBHEHitFilter
HBHEHitFilter theHBHEHitFilter
Definition: HcalDigitizer.h:128
HcalQIETypesRcd
Definition: HcalQIETypesRcd.h:25
HcalDigitizer::theHFQIE10Amplifier
std::unique_ptr< HcalAmplifier > theHFQIE10Amplifier
Definition: HcalDigitizer.h:115
HcalTestNumbering::unpackHcalIndex
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
Definition: HcalTestNumbering.cc:18
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
ZDCDigiCollection
edm::SortedCollection< ZDCDataFrame > ZDCDigiCollection
Definition: HcalDigiCollections.h:26
HcalDataFrameContainer::MAXSAMPLES
static const size_type MAXSAMPLES
Definition: HcalDigiCollections.h:38
DDAxes::z
DataMixerDataOnData_cff.doEmpty
doEmpty
Definition: DataMixerDataOnData_cff.py:54
edm::ESHandle< HcalTopology >
HcalTimeSlewRecord
Definition: HcalTimeSlewRecord.h:4
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
HcalOuter
Definition: HcalAssistant.h:35
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
HcalZDCDetId::SubdetectorId
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
HcalDigitizer::injectedHits_
std::vector< PCaloHit > injectedHits_
Definition: HcalDigitizer.h:178
HcalBaseSignalGenerator::setElectronicsSim
void setElectronicsSim(HcalElectronicsSim *electronicsSim)
Definition: HcalBaseSignalGenerator.h:17
HcalDigitizer::buildHFQIECells
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
Definition: HcalDigitizer.cc:690
HcalDigitizer::agingFlagHB
bool agingFlagHB
Definition: HcalDigitizer.h:168
hcalUnsuppressedDigis_cfi.doTimeSlew
doTimeSlew
Definition: hcalUnsuppressedDigis_cfi.py:20
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HcalDigitizer::theHBHEQIE8DetIds
std::vector< DetId > theHBHEQIE8DetIds
Definition: HcalDigitizer.h:150
HcalDigitizer::theHFQIE10HitFilter
HFHitFilter theHFQIE10HitFilter
Definition: HcalDigitizer.h:131
HcalSimParameterMap::setHOZecotekDetIds
void setHOZecotekDetIds(const std::vector< HcalDetId > &ids)
Definition: HcalSimParameterMap.h:33
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
HcalDigitizer::theRelabeller
std::unique_ptr< HcalHitRelabeller > theRelabeller
Definition: HcalDigitizer.h:145
edm::ParameterSet
Definition: ParameterSet.h:47
HcalDigitizer::hbhegeo
bool hbhegeo
Definition: HcalDigitizer.h:155
HcalDigitizer::theHFHitFilter
HFHitFilter theHFHitFilter
Definition: HcalDigitizer.h:130
HcalDigitizer::theRecNumber
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:80
HcalDigitizer::updateGeometry
void updateGeometry(const edm::EventSetup &eventSetup)
Definition: HcalDigitizer.cc:610
HcalDigitizer::buildHBHEQIECells
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
Definition: HcalDigitizer.cc:730
HcalDigitizer::theTimeSlewSim
std::unique_ptr< HcalTimeSlewSim > theTimeSlewSim
Definition: HcalDigitizer.h:136
HcalDetId
Definition: HcalDetId.h:12
HcalDigitizer::setup
void setup(const edm::EventSetup &es)
Definition: HcalDigitizer.cc:556
HcalDigitizer::zdcgeo
bool zdcgeo
Definition: HcalDigitizer.h:155
HcalDigitizer::theHBHEAmplifier
std::unique_ptr< HcalAmplifier > theHBHEAmplifier
Definition: HcalDigitizer.h:111
HcalDigitizer::theHBHEQIE11DetIds
std::vector< DetId > theHBHEQIE11DetIds
Definition: HcalDigitizer.h:150
submitPVResolutionJobs.q
q
Definition: submitPVResolutionJobs.py:84
HcalHitFilter::setDetIds
void setDetIds(const std::vector< DetId > &detIds)
Definition: HcalHitFilter.h:14
HcalQIETypes
Definition: HcalQIETypes.h:17
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
QIE11DigiCollection
HcalDataFrameContainer< QIE11DataFrame > QIE11DigiCollection
Definition: HcalDigiCollections.h:53
HcalDigitizer::theHFQIE10DetIds
std::vector< DetId > theHFQIE10DetIds
Definition: HcalDigitizer.h:153
HcalDigitizer::theZDCDigitizer
std::unique_ptr< ZDCDigitizer > theZDCDigitizer
Definition: HcalDigitizer.h:142
HcalDigitizer::darkening
void darkening(std::vector< PCaloHit > &hcalHits)
Definition: HcalDigitizer.cc:833
HcalDigitizer::injectedHitsCells_
std::vector< int > injectedHitsCells_
Definition: HcalDigitizer.h:177
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
HcalForward
Definition: HcalAssistant.h:36
DDAxes::phi
submitPVValidationJobs.conditions
list conditions
Definition: submitPVValidationJobs.py:674
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
CaloGeometry::getValidDetIds
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
Definition: CaloGeometry.cc:75
HBHEDarkening::degradation
float degradation(float intlumi, int ieta, int lay) const
Definition: HBHEDarkening.cc:98
HcalEndcap
Definition: HcalAssistant.h:34
HcalShapes::HAMAMATSU
Definition: HcalShapes.h:20
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
HcalDigitizer::theHFResponse
std::unique_ptr< CaloHitResponse > theHFResponse
Definition: HcalDigitizer.h:105
HcalDigitizer::theZDCHitFilter
ZDCHitFilter theZDCHitFilter
Definition: HcalDigitizer.h:134
HcalDigitizer::theHBHESiPMResponse
std::unique_ptr< HcalSiPMHitResponse > theHBHESiPMResponse
Definition: HcalDigitizer.h:102
HcalDigitizer::theHODigitizer
std::unique_ptr< HODigitizer > theHODigitizer
Definition: HcalDigitizer.h:139
Exception
Definition: hltDiff.cc:245
HcalDigitizer::doHFWindow_
bool doHFWindow_
Definition: HcalDigitizer.h:157
HcalShapes::ZECOTEK
Definition: HcalShapes.h:20
HcalDigitizer::theHFAmplifier
std::unique_ptr< HcalAmplifier > theHFAmplifier
Definition: HcalDigitizer.h:112
HcalSimParameterMap::setHOHamamatsuDetIds
void setHOHamamatsuDetIds(const std::vector< HcalDetId > &ids)
Definition: HcalSimParameterMap.h:34
edm::PCaloHitContainer
std::vector< PCaloHit > PCaloHitContainer
Definition: PCaloHitContainer.h:8
or
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
HcalDigitizer::hogeo
bool hogeo
Definition: HcalDigitizer.h:155
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HcalDigitizer::theCoderFactory
std::unique_ptr< HcalCoderFactory > theCoderFactory
Definition: HcalDigitizer.h:119
HcalDigitizer::theHOSiPMCode
int theHOSiPMCode
Definition: HcalDigitizer.h:165
HcalDigitizer::theHBHEDigitizer
std::unique_ptr< HBHEDigitizer > theHBHEDigitizer
Definition: HcalDigitizer.h:138
HcalDigitizer::m_HFRecalibration
std::unique_ptr< HFRecalibration > m_HFRecalibration
Definition: HcalDigitizer.h:171
HcalDigitizer::injectedHitsTime_
std::vector< double > injectedHitsTime_
Definition: HcalDigitizer.h:176
HcalDigitizer::theHFQIE10ElectronicsSim
std::unique_ptr< HcalElectronicsSim > theHFQIE10ElectronicsSim
Definition: HcalDigitizer.h:125
phase2TrackerDigitizer_cfi.delay
delay
Definition: phase2TrackerDigitizer_cfi.py:49
HcalDigitizer::m_HEDarkening
const HBHEDarkening * m_HEDarkening
Definition: HcalDigitizer.h:170
HcalDigitizer::theHOHitFilter
HOHitFilter theHOHitFilter
Definition: HcalDigitizer.h:132
HcalCoderFactory::DB
Definition: HcalCoderFactory.h:10
HFDigiCollection
edm::SortedCollection< HFDataFrame > HFDigiCollection
Definition: HcalDigiCollections.h:22
HcalDbRecord
Definition: HcalDbRecord.h:30
hcalUnsuppressedDigis_cfi.minFCToDelay
minFCToDelay
Definition: hcalUnsuppressedDigis_cfi.py:29
HcalDigitizer::theRecNumberWatcher_
edm::ESWatcher< HcalRecNumberingRecord > theRecNumberWatcher_
Definition: HcalDigitizer.h:78
HcalDigitizer::theHFElectronicsSim
std::unique_ptr< HcalElectronicsSim > theHFElectronicsSim
Definition: HcalDigitizer.h:122
HcalDigitizer::isHCAL
bool isHCAL
Definition: HcalDigitizer.h:155
CaloSamplesCollection
std::vector< CaloSamples > CaloSamplesCollection
Definition: CaloSamples.h:99
HBHEDigiCollection
edm::SortedCollection< HBHEDataFrame > HBHEDigiCollection
Definition: HcalDigiCollections.h:20
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
HcalDigitizer::hitsProducer_
std::string hitsProducer_
Definition: HcalDigitizer.h:163
HcalDigitizer::deliveredLumi
double deliveredLumi
Definition: HcalDigitizer.h:167
QIE11
Definition: HcalQIENum.h:4
HcalDigitizer::theHOSiPMDigitizer
std::unique_ptr< HODigitizer > theHOSiPMDigitizer
Definition: HcalDigitizer.h:140
HcalSimParameterMap::simParameters
const CaloSimParameters & simParameters(const DetId &id) const override
Definition: HcalSimParameterMap.cc:30
HcalDigitizer::checkGeometry
void checkGeometry(const edm::EventSetup &eventSetup)
Definition: HcalDigitizer.cc:580
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
HcalDigitizer::hcalTimeSlew_delay_
const HcalTimeSlew * hcalTimeSlew_delay_
Definition: HcalDigitizer.h:173
cuy.ii
ii
Definition: cuy.py:590
edm::InputTag
Definition: InputTag.h:15
HcalDigitizer::agingFlagHE
bool agingFlagHE
Definition: HcalDigitizer.h:168
HcalDigitizer::theHBHEQIE11Amplifier
std::unique_ptr< HcalAmplifier > theHBHEQIE11Amplifier
Definition: HcalDigitizer.h:116
QIE10
Definition: HcalQIENum.h:4
HcalDigitizer::buildHOSiPMCells
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
Definition: HcalDigitizer.cc:775
HcalDigitizer::theHFDigitizer
std::unique_ptr< HFDigitizer > theHFDigitizer
Definition: HcalDigitizer.h:141
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37