CMS 3D CMS Logo

DataMixingHcalDigiWorker.cc
Go to the documentation of this file.
1 // File: DataMixingHcalDigiWorker.cc
2 // Description: see DataMixingHcalDigiWorker.h
3 // Author: Mike Hildreth, University of Notre Dame
4 //
5 //--------------------------------------------
6 
11 #include <map>
12 #include <memory>
13 // calibration headers, for future reference
18 //
19 //
21 
22 using namespace std;
23 
24 namespace {
25 
26  typedef std::multimap<DetId, CaloSamples> HcalDigiMap;
27 
28  template <class DIGI>
29  void convertFc2adc(const CaloSamples &fC, const HcalDbService &conditions, DIGI &digi, int capIdOffset = 0) {
30  HcalDetId id = fC.id();
31  const HcalQIECoder *channelCoder = conditions.getHcalCoder(id);
32  const HcalQIEShape *shape = conditions.getHcalShape(channelCoder);
33  HcalCoderDb coder(*channelCoder, *shape);
34  coder.fC2adc(fC, digi, capIdOffset);
35  }
36 
37  template <class DIGI>
38  void convertAdc2fChelper(const DIGI &digi, const HcalDbService &conditions, CaloSamples &fC, const HcalDetId &id) {
39  const HcalCalibrations &calib = conditions.getHcalCalibrations(id);
40  for (int i = 0; i < digi.size(); ++i) {
41  int capId(digi.sample(i).capid());
42  fC[i] -= calib.pedestal(capId);
43  }
44  }
45 
46  template <>
47  void convertAdc2fChelper<QIE10DataFrame>(const QIE10DataFrame &digi,
49  CaloSamples &fC,
50  const HcalDetId &id) {
51  const HcalCalibrations &calib = conditions.getHcalCalibrations(id);
52  for (int i = 0; i < digi.samples(); ++i) {
53  int capId(digi[i].capid());
54  fC[i] -= calib.pedestal(capId);
55  }
56  }
57 
58  template <>
59  void convertAdc2fChelper<QIE11DataFrame>(const QIE11DataFrame &digi,
61  CaloSamples &fC,
62  const HcalDetId &id) {
63  const HcalCalibrations &calib = conditions.getHcalCalibrations(id);
64  for (int i = 0; i < digi.samples(); ++i) {
65  int capId(digi[i].capid());
66  fC[i] -= calib.pedestal(capId);
67  }
68  }
69 
70  template <class DIGI>
71  void convertAdc2fC(const DIGI &digi, const HcalDbService &conditions, bool keepPedestals, CaloSamples &fC) {
72  HcalDetId id(digi.id());
73  const HcalQIECoder *channelCoder = conditions.getHcalCoder(id);
74  const HcalQIEShape *shape = conditions.getHcalShape(channelCoder);
75  HcalCoderDb coder(*channelCoder, *shape);
76  coder.adc2fC(digi, fC);
77  if (!keepPedestals) { // subtract pedestals
78  convertAdc2fChelper(digi, conditions, fC, id);
79  }
80  }
81 
82  template <class DIGIS>
83  void convertHcalDigis(const DIGIS &digis, const HcalDbService &conditions, bool keepPedestals, HcalDigiMap &map) {
84  for (auto digi = digis.begin(); digi != digis.end(); ++digi) {
85  CaloSamples fC;
86  convertAdc2fC(*digi, conditions, keepPedestals, fC);
87  if (!keepPedestals && map.find(digi->id()) == map.end()) {
88  edm::LogWarning("DataMixingHcalDigiWorker")
89  << "No signal hits found for HCAL cell " << digi->id() << " Pedestals may be lost for mixed hit";
90  }
91  map.insert(HcalDigiMap::value_type(digi->id(), fC));
92  }
93  }
94 
95  template <>
96  void convertHcalDigis<QIE10DigiCollection>(const QIE10DigiCollection &digis,
98  bool keepPedestals,
99  HcalDigiMap &map) {
100  for (auto digiItr = digis.begin(); digiItr != digis.end(); ++digiItr) {
101  QIE10DataFrame digi(*digiItr);
102  CaloSamples fC;
103  convertAdc2fC(digi, conditions, keepPedestals, fC);
104  if (!keepPedestals && map.find(digi.id()) == map.end()) {
105  edm::LogWarning("DataMixingHcalDigiWorker")
106  << "No signal hits found for HCAL cell " << digi.id() << " Pedestals may be lost for mixed hit";
107  }
108  map.insert(HcalDigiMap::value_type(digi.id(), fC));
109  }
110  }
111 
112  template <>
113  void convertHcalDigis<QIE11DigiCollection>(const QIE11DigiCollection &digis,
114  const HcalDbService &conditions,
115  bool keepPedestals,
116  HcalDigiMap &map) {
117  for (auto digiItr = digis.begin(); digiItr != digis.end(); ++digiItr) {
118  QIE11DataFrame digi(*digiItr);
119  CaloSamples fC;
120  convertAdc2fC(digi, conditions, keepPedestals, fC);
121  if (!keepPedestals && map.find(digi.id()) == map.end()) {
122  edm::LogWarning("DataMixingHcalDigiWorker")
123  << "No signal hits found for HCAL cell " << digi.id() << " Pedestals may be lost for mixed hit";
124  }
125  map.insert(HcalDigiMap::value_type(digi.id(), fC));
126  }
127  }
128 
129  template <class DIGIS>
130  bool convertSignalHcalDigis(const edm::Event &e,
132  const HcalDbService &conditions,
133  HcalDigiMap &map) {
134  edm::Handle<DIGIS> digis;
135  if (!e.getByToken(token, digis))
136  return false;
137  convertHcalDigis(*digis, conditions, true, map); // keep pedestals
138  return true;
139  }
140 
141  template <class DIGIS>
142  bool convertPileupHcalDigis(const edm::EventPrincipal &ep,
143  const edm::InputTag &tag,
144  const edm::ModuleCallingContext *mcc,
145  const HcalDbService &conditions,
146  HcalDigiMap &map) {
147  auto digis = edm::getProductByTag<DIGIS>(ep, tag, mcc);
148  if (!digis)
149  return false;
150  convertHcalDigis(*(digis->product()), conditions, false,
151  map); // subtract pedestals
152  return true;
153  }
154 
155  template <class DIGIS>
156  void buildHcalDigisHelper(DIGIS &digis,
157  const DetId &formerID,
158  CaloSamples &resultSample,
159  const HcalDbService &conditions) {
160  // make new digi
161  digis.push_back(typename DIGIS::value_type(formerID));
162  convertFc2adc(resultSample, conditions, digis.back(),
163  0); // FR guess: simulation starts with 0
164  }
165 
166  template <>
167  void buildHcalDigisHelper<QIE10DigiCollection>(QIE10DigiCollection &digis,
168  const DetId &formerID,
169  CaloSamples &resultSample,
170  const HcalDbService &conditions) {
171  // make new digi
172  digis.push_back(formerID.rawId());
173  QIE10DataFrame digi(digis.back());
174  convertFc2adc(resultSample, conditions, digi,
175  0); // FR guess: simulation starts with 0
176  }
177 
178  template <>
179  void buildHcalDigisHelper<QIE11DigiCollection>(QIE11DigiCollection &digis,
180  const DetId &formerID,
181  CaloSamples &resultSample,
182  const HcalDbService &conditions) {
183  // make new digi
184  digis.push_back(formerID.rawId());
185  QIE11DataFrame digi(digis.back());
186  convertFc2adc(resultSample, conditions, digi,
187  0); // FR guess: simulation starts with 0
188  }
189 
190  template <class DIGIS>
191  std::unique_ptr<DIGIS> buildHcalDigis(const HcalDigiMap &map, const HcalDbService &conditions) {
192  std::unique_ptr<DIGIS> digis(new DIGIS);
193  // loop over the maps we have, re-making individual hits or digis if
194  // necessary.
195  DetId formerID = 0;
196  CaloSamples resultSample;
197 
198  for (auto hit = map.begin(); hit != map.end(); ++hit) {
199  DetId currentID = hit->first;
200  const CaloSamples &hitSample = hit->second;
201 
202  if (currentID == formerID) { // accumulating hits
203  // loop over digi samples in each CaloSample
204  unsigned int sizenew = (hitSample).size();
205  unsigned int sizeold = resultSample.size();
206  if (sizenew > sizeold) { // extend sample
207  resultSample.setSize(sizenew);
208  }
209  for (unsigned int isamp = 0; isamp < sizenew; isamp++) { // add new values
210  resultSample[isamp] += hitSample[isamp]; // for debugging below
211  }
212  }
213  auto hit1 = hit;
214  bool lastEntry = (++hit1 == map.end());
215  if (currentID != formerID || lastEntry) { // store current digi
216  if (formerID > 0 || lastEntry) {
217  // make new digi
218  buildHcalDigisHelper(*digis, formerID, resultSample, conditions);
219  }
220  // reset pointers for next iteration
221  formerID = currentID;
222  resultSample = hitSample;
223  }
224  }
225  return digis;
226  }
227 
228 } // namespace
229 
230 namespace edm {
231 
232  // Virtual constructor
233 
234  DataMixingHcalDigiWorker::DataMixingHcalDigiWorker() {}
235 
236  // Constructor
237  DataMixingHcalDigiWorker::DataMixingHcalDigiWorker(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC)
238  : label_(ps.getParameter<std::string>("Label")) {
239  // get the subdetector names
240  // this->getSubdetectorNames(); //something like this may be useful to
241  // check what we are supposed to do...
242 
243  // declare the products to produce
244 
245  // Hcal
246 
247  HBHEdigiCollectionSig_ = ps.getParameter<edm::InputTag>("HBHEdigiCollectionSig");
248  HOdigiCollectionSig_ = ps.getParameter<edm::InputTag>("HOdigiCollectionSig");
249  HFdigiCollectionSig_ = ps.getParameter<edm::InputTag>("HFdigiCollectionSig");
250  ZDCdigiCollectionSig_ = ps.getParameter<edm::InputTag>("ZDCdigiCollectionSig");
251  QIE10digiCollectionSig_ = ps.getParameter<edm::InputTag>("QIE10digiCollectionSig");
252  QIE11digiCollectionSig_ = ps.getParameter<edm::InputTag>("QIE11digiCollectionSig");
253 
254  HBHEPileInputTag_ = ps.getParameter<edm::InputTag>("HBHEPileInputTag");
255  HOPileInputTag_ = ps.getParameter<edm::InputTag>("HOPileInputTag");
256  HFPileInputTag_ = ps.getParameter<edm::InputTag>("HFPileInputTag");
257  ZDCPileInputTag_ = ps.getParameter<edm::InputTag>("ZDCPileInputTag");
258  QIE10PileInputTag_ = ps.getParameter<edm::InputTag>("QIE10PileInputTag");
259  QIE11PileInputTag_ = ps.getParameter<edm::InputTag>("QIE11PileInputTag");
260 
266 
272 
273  DoZDC_ = false;
274  if (!ZDCPileInputTag_.label().empty())
275  DoZDC_ = true;
276 
277  if (DoZDC_) {
280  }
281 
282  HBHEDigiCollectionDM_ = ps.getParameter<std::string>("HBHEDigiCollectionDM");
283  HODigiCollectionDM_ = ps.getParameter<std::string>("HODigiCollectionDM");
284  HFDigiCollectionDM_ = ps.getParameter<std::string>("HFDigiCollectionDM");
285  ZDCDigiCollectionDM_ = ps.getParameter<std::string>("ZDCDigiCollectionDM");
286  QIE10DigiCollectionDM_ = ps.getParameter<std::string>("QIE10DigiCollectionDM");
287  QIE11DigiCollectionDM_ = ps.getParameter<std::string>("QIE11DigiCollectionDM");
288  }
289 
290  // Virtual destructor needed.
292 
294  // Calibration stuff will look like this:
295  // get conditions
298 
299  // fill in maps of hits
300 
301  LogInfo("DataMixingHcalDigiWorker") << "===============> adding MC signals for " << e.id();
302  convertSignalHcalDigis<HBHEDigiCollection>(e, HBHEDigiToken_, *conditions, HBHEDigiStorage_);
303  convertSignalHcalDigis<HODigiCollection>(e, HODigiToken_, *conditions, HODigiStorage_);
304  convertSignalHcalDigis<HFDigiCollection>(e, HFDigiToken_, *conditions, HFDigiStorage_);
305  convertSignalHcalDigis<QIE10DigiCollection>(e, QIE10DigiToken_, *conditions, QIE10DigiStorage_);
306  convertSignalHcalDigis<QIE11DigiCollection>(e, QIE11DigiToken_, *conditions, QIE11DigiStorage_);
307 
308  // ZDC next
309 
310  if (DoZDC_) {
311  Handle<ZDCDigiCollection> pZDCDigis;
312 
313  const ZDCDigiCollection *ZDCDigis = nullptr;
314 
315  if (e.getByToken(ZDCDigiToken_, pZDCDigis)) {
316  ZDCDigis = pZDCDigis.product(); // get a ptr to the product
317 #ifdef DEBUG
318  LogDebug("DataMixingHcalDigiWorker") << "total # ZDC digis: " << ZDCDigis->size();
319 #endif
320  }
321 
322  if (ZDCDigis) {
323  // loop over digis, storing them in a map so we can add pileup later
324  for (ZDCDigiCollection::const_iterator it = ZDCDigis->begin(); it != ZDCDigis->end(); ++it) {
325  // calibration, for future reference: (same block for all Hcal types)
326  // ZDC is different
327  HcalZDCDetId cell = it->id();
328  // const HcalCalibrations&
329  // calibrations=conditions->getHcalCalibrations(cell);
330  const HcalQIECoder *channelCoder = conditions->getHcalCoder(cell);
331  const HcalQIEShape *shape = conditions->getHcalShape(channelCoder); // this one is generic
332  HcalCoderDb coder(*channelCoder, *shape);
333 
334  CaloSamples tool;
335  coder.adc2fC((*it), tool);
336 
337  ZDCDigiStorage_.insert(ZDCDigiMap::value_type((it->id()), tool));
338 
339 #ifdef DEBUG
340  // Commented out because this does not compile anymore
341  // LogDebug("DataMixingHcalDigiWorker") << "processed ZDCDigi with
342  // rawId: "
343  // << it->id() << "\n"
344  // << " digi energy: " <<
345  // it->energy();
346 #endif
347  }
348  }
349  }
350 
351  } // end of addHCalSignals
352 
354  const EventPrincipal *ep,
355  unsigned int eventNr,
356  const edm::EventSetup &ES,
357  ModuleCallingContext const *mcc) {
358  LogDebug("DataMixingHcalDigiWorker") << "\n===============> adding pileups from event " << ep->id()
359  << " for bunchcrossing " << bcr;
360 
361  // get conditions
364 
365  convertPileupHcalDigis<HBHEDigiCollection>(*ep, HBHEPileInputTag_, mcc, *conditions, HBHEDigiStorage_);
366  convertPileupHcalDigis<HODigiCollection>(*ep, HOPileInputTag_, mcc, *conditions, HODigiStorage_);
367  convertPileupHcalDigis<HFDigiCollection>(*ep, HFPileInputTag_, mcc, *conditions, HFDigiStorage_);
368  convertPileupHcalDigis<QIE10DigiCollection>(*ep, QIE10PileInputTag_, mcc, *conditions, QIE10DigiStorage_);
369  convertPileupHcalDigis<QIE11DigiCollection>(*ep, QIE11PileInputTag_, mcc, *conditions, QIE11DigiStorage_);
370 
371  // ZDC Next
372 
373  if (DoZDC_) {
374  std::shared_ptr<Wrapper<ZDCDigiCollection> const> ZDCDigisPTR =
375  getProductByTag<ZDCDigiCollection>(*ep, ZDCPileInputTag_, mcc);
376 
377  if (ZDCDigisPTR) {
378  const ZDCDigiCollection *ZDCDigis = const_cast<ZDCDigiCollection *>(ZDCDigisPTR->product());
379 
380  LogDebug("DataMixingHcalDigiWorker") << "total # ZDC digis: " << ZDCDigis->size();
381 
382  // loop over digis, adding these to the existing maps
383  for (ZDCDigiCollection::const_iterator it = ZDCDigis->begin(); it != ZDCDigis->end(); ++it) {
384  // calibration, for future reference: (same block for all Hcal types)
385  // ZDC is different
386  HcalZDCDetId cell = it->id();
387  const HcalQIECoder *channelCoder = conditions->getHcalCoder(cell);
388  const HcalQIEShape *shape = conditions->getHcalShape(channelCoder); // this one is generic
389  HcalCoderDb coder(*channelCoder, *shape);
390 
391  CaloSamples tool;
392  coder.adc2fC((*it), tool);
393 
394  ZDCDigiStorage_.insert(ZDCDigiMap::value_type((it->id()), tool));
395 
396 #ifdef DEBUG
397  // Commented out because this does not compile anymore
398  // LogDebug("DataMixingHcalDigiWorker") << "processed ZDCDigi with
399  // rawId: "
400  // << it->id() << "\n"
401  // << " digi energy: " <<
402  // it->energy();
403 #endif
404  }
405  }
406  }
407  }
408 
412 
413  // collection of digis to put in the event
414  std::unique_ptr<HBHEDigiCollection> HBHEdigis = buildHcalDigis<HBHEDigiCollection>(HBHEDigiStorage_, *conditions);
415  std::unique_ptr<HODigiCollection> HOdigis = buildHcalDigis<HODigiCollection>(HODigiStorage_, *conditions);
416  std::unique_ptr<HFDigiCollection> HFdigis = buildHcalDigis<HFDigiCollection>(HFDigiStorage_, *conditions);
417  std::unique_ptr<QIE10DigiCollection> QIE10digis =
418  buildHcalDigis<QIE10DigiCollection>(QIE10DigiStorage_, *conditions);
419  std::unique_ptr<QIE11DigiCollection> QIE11digis =
420  buildHcalDigis<QIE11DigiCollection>(QIE11DigiStorage_, *conditions);
421  std::unique_ptr<ZDCDigiCollection> ZDCdigis(new ZDCDigiCollection);
422 
423  // loop over the maps we have, re-making individual hits or digis if
424  // necessary.
425  DetId formerID = 0;
426  DetId currentID;
427 
428  double fC_new;
429  double fC_old;
430  double fC_sum;
431 
432  // ZDC next...
433 
434  // loop over the maps we have, re-making individual hits or digis if
435  // necessary.
436  formerID = 0;
437  CaloSamples ZDC_old;
438 
439  ZDCDigiMap::const_iterator iZDCchk;
440 
441  for (ZDCDigiMap::const_iterator iZDC = ZDCDigiStorage_.begin(); iZDC != ZDCDigiStorage_.end(); ++iZDC) {
442  currentID = iZDC->first;
443 
444  if (currentID == formerID) { // we have to add these digis together
445 
446  // loop over digi samples in each CaloSample
447  unsigned int sizenew = (iZDC->second).size();
448  unsigned int sizeold = ZDC_old.size();
449 
450  unsigned int max_samp = std::max(sizenew, sizeold);
451 
452  CaloSamples ZDC_bigger(currentID, max_samp);
453 
454  bool usenew = false;
455 
456  if (sizenew > sizeold)
457  usenew = true;
458 
459  // samples from different events can be of different lengths - sum all
460  // that overlap.
461 
462  for (unsigned int isamp = 0; isamp < max_samp; isamp++) {
463  if (isamp < sizenew) {
464  fC_new = (iZDC->second)[isamp];
465  } else {
466  fC_new = 0;
467  }
468 
469  if (isamp < sizeold) {
470  fC_old = ZDC_old[isamp];
471  } else {
472  fC_old = 0;
473  }
474 
475  // add values
476  fC_sum = fC_new + fC_old;
477 
478  if (usenew) {
479  ZDC_bigger[isamp] = fC_sum;
480  } else {
481  ZDC_old[isamp] = fC_sum;
482  } // overwrite old sample, adding new info
483  }
484  if (usenew)
485  ZDC_old = ZDC_bigger; // save new, larger sized sample in "old" slot
486 
487  } else {
488  if (formerID > 0) {
489  // make new digi
490  ZDCdigis->push_back(ZDCDataFrame(formerID));
491 
492  // set up information to convert back
493 
494  HcalZDCDetId cell = ZDC_old.id();
495  const HcalQIECoder *channelCoder = conditions->getHcalCoder(cell);
496  const HcalQIEShape *shape = conditions->getHcalShape(channelCoder); // this one is generic
497  HcalCoderDb coder(*channelCoder, *shape);
498 
499  unsigned int sizeold = ZDC_old.size();
500  for (unsigned int isamp = 0; isamp < sizeold; isamp++) {
501  coder.fC2adc(ZDC_old, (ZDCdigis->back()),
502  1); // as per simulation, capid=1
503  }
504  }
505  // save pointers for next iteration
506  formerID = currentID;
507  ZDC_old = iZDC->second;
508  }
509 
510  iZDCchk = iZDC;
511  if ((++iZDCchk) == ZDCDigiStorage_.end()) { // make sure not to lose the last one
512  // make new digi
513  ZDCdigis->push_back(ZDCDataFrame(currentID));
514 
515  // set up information to convert back
516 
517  HcalZDCDetId cell = (iZDC->second).id();
518  const HcalQIECoder *channelCoder = conditions->getHcalCoder(cell);
519  const HcalQIEShape *shape = conditions->getHcalShape(channelCoder); // this one is generic
520  HcalCoderDb coder(*channelCoder, *shape);
521 
522  unsigned int sizeold = (iZDC->second).size();
523  for (unsigned int isamp = 0; isamp < sizeold; isamp++) {
524  coder.fC2adc(ZDC_old, (ZDCdigis->back()),
525  1); // as per simulation, capid=1
526  }
527  }
528  }
529 
530  // done merging
531 
532  // put the collection of recunstructed hits in the event
533  LogInfo("DataMixingHcalDigiWorker") << "total # HBHE Merged digis: " << HBHEdigis->size();
534  LogInfo("DataMixingHcalDigiWorker") << "total # HO Merged digis: " << HOdigis->size();
535  LogInfo("DataMixingHcalDigiWorker") << "total # HF Merged digis: " << HFdigis->size();
536  LogInfo("DataMixingHcalDigiWorker") << "total # QIE10 Merged digis: " << QIE10digis->size();
537  LogInfo("DataMixingHcalDigiWorker") << "total # QIE11 Merged digis: " << QIE11digis->size();
538  LogInfo("DataMixingHcalDigiWorker") << "total # ZDC Merged digis: " << ZDCdigis->size();
539 
540  e.put(std::move(HBHEdigis), HBHEDigiCollectionDM_);
541  e.put(std::move(HOdigis), HODigiCollectionDM_);
542  e.put(std::move(HFdigis), HFDigiCollectionDM_);
543  e.put(std::move(QIE10digis), QIE10DigiCollectionDM_);
544  e.put(std::move(QIE11digis), QIE11DigiCollectionDM_);
545  e.put(std::move(ZDCdigis), ZDCDigiCollectionDM_);
546 
547  // clear local storage after this event
548  HBHEDigiStorage_.clear();
549  HODigiStorage_.clear();
550  HFDigiStorage_.clear();
551  QIE10DigiStorage_.clear();
552  QIE11DigiStorage_.clear();
553  ZDCDigiStorage_.clear();
554  }
555 
556 } // namespace edm
HcalCoderDb::fC2adc
void fC2adc(const CaloSamples &clf, HBHEDataFrame &df, int fCapIdOffset) const override
Definition: HcalCoderDb.cc:81
edm::DataMixingHcalDigiWorker::QIE10DigiToken_
edm::EDGetTokenT< QIE10DigiCollection > QIE10DigiToken_
Definition: DataMixingHcalDigiWorker.h:80
Handle.h
HcalCalibrations.h
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
MessageLogger.h
HcalDataFrameContainer
Definition: HcalDigiCollections.h:35
edm::Handle::product
T const * product() const
Definition: Handle.h:70
ESHandle.h
edm::DataMixingHcalDigiWorker::HBHEDigiCollectionDM_
std::string HBHEDigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:90
edm::DataMixingHcalDigiWorker::HBHEdigiCollectionSig_
edm::InputTag HBHEdigiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:62
QIE10DataFrame::samples
constexpr int samples() const
total number of samples in the digi
Definition: QIE10DataFrame.h:86
CaloSamples::size
int size() const
get the size
Definition: CaloSamples.h:24
edm::DataMixingHcalDigiWorker::HODigiCollectionDM_
std::string HODigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:92
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::DataMixingHcalDigiWorker::addHcalPileups
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
Definition: DataMixingHcalDigiWorker.cc:353
edm::SortedCollection
Definition: SortedCollection.h:49
CaloSamples::setSize
void setSize(unsigned int size)
Definition: CaloSamples.h:55
edm::SortedCollection::size
size_type size() const
Definition: SortedCollection.h:215
edm::DataMixingHcalDigiWorker::ZDCDigiToken_
edm::EDGetTokenT< ZDCDigiCollection > ZDCDigiToken_
Definition: DataMixingHcalDigiWorker.h:79
HcalCoderDb::adc2fC
void adc2fC(const HBHEDataFrame &df, CaloSamples &lf) const override
Definition: HcalCoderDb.cc:73
edm::DataMixingHcalDigiWorker::HFDigiToken_
edm::EDGetTokenT< HFDigiCollection > HFDigiToken_
Definition: DataMixingHcalDigiWorker.h:78
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::DataMixingHcalDigiWorker::HOPileInputTag_
edm::InputTag HOPileInputTag_
Definition: DataMixingHcalDigiWorker.h:70
edm::DataMixingHcalDigiWorker::ZDCDigiPToken_
edm::EDGetTokenT< ZDCDigiCollection > ZDCDigiPToken_
Definition: DataMixingHcalDigiWorker.h:86
edm::Handle
Definition: AssociativeIterator.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
edm::DataMixingHcalDigiWorker::QIE10digiCollectionSig_
edm::InputTag QIE10digiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:66
HcalCoderDb.h
edm::DataFrameContainer::back
DataFrame back()
Definition: DataFrameContainer.h:122
edm::DataMixingHcalDigiWorker::QIE10PileInputTag_
edm::InputTag QIE10PileInputTag_
Definition: DataMixingHcalDigiWorker.h:73
edm::DataMixingHcalDigiWorker::QIE11DigiToken_
edm::EDGetTokenT< QIE11DigiCollection > QIE11DigiToken_
Definition: DataMixingHcalDigiWorker.h:81
edm::DataMixingHcalDigiWorker::HBHEDigiPToken_
edm::EDGetTokenT< HBHEDigiCollection > HBHEDigiPToken_
Definition: DataMixingHcalDigiWorker.h:83
edm::DataMixingHcalDigiWorker::HODigiStorage_
HODigiMap HODigiStorage_
Definition: DataMixingHcalDigiWorker.h:109
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
edm::DataMixingHcalDigiWorker::ZDCdigiCollectionSig_
edm::InputTag ZDCdigiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:65
edm::DataMixingHcalDigiWorker::putHcal
void putHcal(edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorker.cc:409
DetId
Definition: DetId.h:17
HcalZDCDetId
Definition: HcalZDCDetId.h:16
edm::DataMixingHcalDigiWorker::HFDigiPToken_
edm::EDGetTokenT< HFDigiCollection > HFDigiPToken_
Definition: DataMixingHcalDigiWorker.h:85
edm::EventPrincipal
Definition: EventPrincipal.h:46
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
edm::DataMixingHcalDigiWorker::ZDCDigiStorage_
ZDCDigiMap ZDCDigiStorage_
Definition: DataMixingHcalDigiWorker.h:110
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
edm::DataMixingHcalDigiWorker::ZDCDigiCollectionDM_
std::string ZDCDigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:94
edm::ESHandle< HcalDbService >
edm::DataMixingHcalDigiWorker::QIE11DigiStorage_
QIE11DigiMap QIE11DigiStorage_
Definition: DataMixingHcalDigiWorker.h:112
edm::DataMixingHcalDigiWorker::QIE11PileInputTag_
edm::InputTag QIE11PileInputTag_
Definition: DataMixingHcalDigiWorker.h:74
QIE11DataFrame::samples
constexpr int samples() const
total number of samples in the digi
Definition: QIE11DataFrame.h:77
edm::DataMixingHcalDigiWorker::HODigiPToken_
edm::EDGetTokenT< HODigiCollection > HODigiPToken_
Definition: DataMixingHcalDigiWorker.h:84
HcalDbRecord.h
ZDCDataFrame
Definition: ZDCDataFrame.h:15
HcalCalibrations
Definition: HcalCalibrations.h:9
edm::DataMixingHcalDigiWorker::QIE10DigiStorage_
QIE10DigiMap QIE10DigiStorage_
Definition: DataMixingHcalDigiWorker.h:111
edm::DataMixingHcalDigiWorker::HFDigiCollectionDM_
std::string HFDigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:93
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
calib
Definition: CalibElectron.h:12
edm::DataMixingHcalDigiWorker::HOdigiCollectionSig_
edm::InputTag HOdigiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:63
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
edm::DataMixingHcalDigiWorker::DoZDC_
bool DoZDC_
Definition: DataMixingHcalDigiWorker.h:114
edm::DataMixingHcalDigiWorker::QIE11digiCollectionSig_
edm::InputTag QIE11digiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:67
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
HcalDataFrameContainer::push_back
void push_back(const Digi &digi)
Definition: HcalDigiCollections.h:49
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
edm::DataMixingHcalDigiWorker::HFDigiStorage_
HFDigiMap HFDigiStorage_
Definition: DataMixingHcalDigiWorker.h:108
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:671
CaloSamples::id
DetId id() const
get the (generic) id
Definition: CaloSamples.h:21
HcalDetId
Definition: HcalDetId.h:12
edm::DataFrameContainer::begin
const_iterator begin() const
The iterator returned can not safely be used across threads.
Definition: DataFrameContainer.h:149
edm::EventSetup
Definition: EventSetup.h:57
edm::DataMixingHcalDigiWorker::addHcalSignals
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorker.cc:293
CaloSamples
Definition: CaloSamples.h:14
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
edm::DataMixingHcalDigiWorker::QIE10DigiPToken_
edm::EDGetTokenT< QIE10DigiCollection > QIE10DigiPToken_
Definition: DataMixingHcalDigiWorker.h:87
HcalQIECoder
Definition: HcalQIECoder.h:20
edm::DataMixingHcalDigiWorker::QIE11DigiCollectionDM_
std::string QIE11DigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:97
HcalDbService
Definition: HcalDbService.h:26
submitPVValidationJobs.conditions
list conditions
Definition: submitPVValidationJobs.py:674
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::DataMixingHcalDigiWorker::QIE10DigiCollectionDM_
std::string QIE10DigiCollectionDM_
Definition: DataMixingHcalDigiWorker.h:95
QIE10DataFrame
Definition: QIE10DataFrame.h:11
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
edm::DataMixingHcalDigiWorker::HBHEPileInputTag_
edm::InputTag HBHEPileInputTag_
Definition: DataMixingHcalDigiWorker.h:69
QIE11DataFrame
Definition: QIE11DataFrame.h:11
edm::DataMixingHcalDigiWorker::HFdigiCollectionSig_
edm::InputTag HFdigiCollectionSig_
Definition: DataMixingHcalDigiWorker.h:64
edm::DataMixingHcalDigiWorker::~DataMixingHcalDigiWorker
virtual ~DataMixingHcalDigiWorker()
Definition: DataMixingHcalDigiWorker.cc:291
EventSetup.h
edm::DataMixingHcalDigiWorker::ZDCPileInputTag_
edm::InputTag ZDCPileInputTag_
Definition: DataMixingHcalDigiWorker.h:72
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HcalQIEShape
Definition: HcalQIEShape.h:17
HcalCoderDb
Definition: HcalCoderDb.h:15
HcalDbService.h
edm::DataMixingHcalDigiWorker::HBHEDigiToken_
edm::EDGetTokenT< HBHEDigiCollection > HBHEDigiToken_
Definition: DataMixingHcalDigiWorker.h:76
genParticles_cff.map
map
Definition: genParticles_cff.py:11
DataMixingHcalDigiWorker.h
HcalDbRecord
Definition: HcalDbRecord.h:30
edm::Event
Definition: Event.h:73
edm::DataMixingHcalDigiWorker::HBHEDigiStorage_
HBHEDigiMap HBHEDigiStorage_
Definition: DataMixingHcalDigiWorker.h:107
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::DataFrameContainer::end
const_iterator end() const
Definition: DataFrameContainer.h:152
edm::InputTag
Definition: InputTag.h:15
edm::DataMixingHcalDigiWorker::QIE11DigiPToken_
edm::EDGetTokenT< QIE11DigiCollection > QIE11DigiPToken_
Definition: DataMixingHcalDigiWorker.h:88
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
edm::DataMixingHcalDigiWorker::HODigiToken_
edm::EDGetTokenT< HODigiCollection > HODigiToken_
Definition: DataMixingHcalDigiWorker.h:77
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::DataMixingHcalDigiWorker::HFPileInputTag_
edm::InputTag HFPileInputTag_
Definition: DataMixingHcalDigiWorker.h:71
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:318