CMS 3D CMS Logo

HcalHardcodeCalibrations.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // Original Author: Fedor Ratnikov
3 //
4 //
5 
6 #include <memory>
7 #include <iostream>
8 #include <string>
9 #include <vector>
10 
19 
22 
26 
28 
29 //#define DebugLog
30 
31 // class decleration
32 //
33 
34 using namespace cms;
35 
36 namespace {
37 
38  const std::vector<HcalGenericDetId>& allCells(const HcalTopology& hcaltopology, bool killHE = false) {
39  static std::vector<HcalGenericDetId> result;
40  int maxDepth = hcaltopology.maxDepth();
41 
42 #ifdef DebugLog
43  std::cout << std::endl << "HcalHardcodeCalibrations: maxDepth = " << maxDepth << std::endl;
44 #endif
45 
46  if (result.empty()) {
48  for (unsigned int phi = 0; phi <= HcalDetId::kHcalPhiMask2; phi++) {
49  for (int depth = 1; depth <= maxDepth; depth++) {
50  for (int det = 1; det <= HcalForward; det++) {
51  HcalDetId cell((HcalSubdetector)det, eta, phi, depth);
52  if (killHE && HcalEndcap == cell.subdetId())
53  continue;
54  if (hcaltopology.valid(cell)) {
55  result.push_back(cell);
56 #ifdef DebugLog
57  std::cout << " HcalHardcodedCalibrations: det|eta|phi|depth = " << det << "|" << eta << "|" << phi
58  << "|" << depth << std::endl;
59 #endif
60  }
61  }
62  }
63  }
64  }
65  ZdcTopology zdctopology;
66  HcalZDCDetId zcell;
68  for (int depth = 1; depth < 6; depth++) {
69  zcell = HcalZDCDetId(section, true, depth);
70  if (zdctopology.valid(zcell))
71  result.push_back(zcell);
72  zcell = HcalZDCDetId(section, false, depth);
73  if (zdctopology.valid(zcell))
74  result.push_back(zcell);
75  }
76  section = HcalZDCDetId::HAD;
77  for (int depth = 1; depth < 5; depth++) {
78  zcell = HcalZDCDetId(section, true, depth);
79  if (zdctopology.valid(zcell))
80  result.push_back(zcell);
81  zcell = HcalZDCDetId(section, false, depth);
82  if (zdctopology.valid(zcell))
83  result.push_back(zcell);
84  }
85  section = HcalZDCDetId::LUM;
86  for (int depth = 1; depth < 3; depth++) {
87  zcell = HcalZDCDetId(section, true, depth);
88  if (zdctopology.valid(zcell))
89  result.push_back(zcell);
90  zcell = HcalZDCDetId(section, false, depth);
91  if (zdctopology.valid(zcell))
92  result.push_back(zcell);
93  }
94  section = HcalZDCDetId::RPD;
95  for (int depth = 1; depth < 17; depth++) {
96  zcell = HcalZDCDetId(section, true, depth);
97  if (zdctopology.valid(zcell))
98  result.push_back(zcell);
99  zcell = HcalZDCDetId(section, false, depth);
100  if (zdctopology.valid(zcell))
101  result.push_back(zcell);
102  }
103 
104  // HcalGenTriggerTower (HcalGenericSubdetector = 5)
105  // NASTY HACK !!!
106  // - As no valid(cell) check found for HcalTrigTowerDetId
107  // to create HT cells (ieta=1-28, iphi=1-72)&(ieta=29-32, iphi=1,5,... 69)
108 
109  for (int vers = 0; vers <= HcalTrigTowerDetId::kHcalVersMask; ++vers) {
110  for (int depth = 0; depth <= HcalTrigTowerDetId::kHcalDepthMask; ++depth) {
112  for (int phi = 1; phi <= HcalTrigTowerDetId::kHcalPhiMask; phi++) {
113  HcalTrigTowerDetId cell(eta, phi, depth, vers);
114  if (hcaltopology.validHT(cell)) {
115  result.push_back(cell);
116 #ifdef DebugLog
117  std::cout << " HcalHardcodedCalibrations: eta|phi|depth|vers = " << eta << "|" << phi << "|" << depth
118  << "|" << vers << std::endl;
119 #endif
120  }
121  }
122  }
123  }
124  }
125  }
126  return result;
127  }
128 
129 } // namespace
130 
132  : hb_recalibration(nullptr),
133  he_recalibration(nullptr),
134  hf_recalibration(nullptr),
135  setHEdsegm(false),
136  setHBdsegm(false) {
137  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::HcalHardcodeCalibrations->...";
138 
139  if (iConfig.exists("GainWidthsForTrigPrims"))
140  switchGainWidthsForTrigPrims = iConfig.getParameter<bool>("GainWidthsForTrigPrims");
141  else
143 
144  //DB helper preparation
152  dbHardcode.useHBUpgrade(iConfig.getParameter<bool>("useHBUpgrade"));
153  dbHardcode.useHEUpgrade(iConfig.getParameter<bool>("useHEUpgrade"));
154  dbHardcode.useHFUpgrade(iConfig.getParameter<bool>("useHFUpgrade"));
155  dbHardcode.useHOUpgrade(iConfig.getParameter<bool>("useHOUpgrade"));
156  dbHardcode.testHFQIE10(iConfig.getParameter<bool>("testHFQIE10"));
157  dbHardcode.testHEPlan1(iConfig.getParameter<bool>("testHEPlan1"));
158  dbHardcode.setKillHE(iConfig.getParameter<bool>("killHE"));
159  dbHardcode.setSiPMCharacteristics(iConfig.getParameter<std::vector<edm::ParameterSet>>("SiPMCharacteristics"));
160 
161  useLayer0Weight = iConfig.getParameter<bool>("useLayer0Weight");
162  useIeta18depth1 = iConfig.getParameter<bool>("useIeta18depth1");
163  testHEPlan1 = iConfig.getParameter<bool>("testHEPlan1");
164  // HB, HE, HF recalibration preparation
165  iLumi = iConfig.getParameter<double>("iLumi");
166 
167  if (iLumi > 0.0) {
168  bool hb_recalib = iConfig.getParameter<bool>("HBRecalibration");
169  bool he_recalib = iConfig.getParameter<bool>("HERecalibration");
170  bool hf_recalib = iConfig.getParameter<bool>("HFRecalibration");
171  if (hb_recalib) {
172  hb_recalibration.reset(new HBHERecalibration(iLumi,
173  iConfig.getParameter<double>("HBreCalibCutoff"),
174  iConfig.getParameter<edm::FileInPath>("HBmeanenergies").fullPath()));
175  }
176  if (he_recalib) {
177  he_recalibration.reset(new HBHERecalibration(iLumi,
178  iConfig.getParameter<double>("HEreCalibCutoff"),
179  iConfig.getParameter<edm::FileInPath>("HEmeanenergies").fullPath()));
180  }
181  if (hf_recalib && !iConfig.getParameter<edm::ParameterSet>("HFRecalParameterBlock").empty())
182  hf_recalibration.reset(new HFRecalibration(iConfig.getParameter<edm::ParameterSet>("HFRecalParameterBlock")));
183 
184 #ifdef DebugLog
185  std::cout << " HcalHardcodeCalibrations: iLumi = " << iLumi << std::endl;
186 #endif
187  }
188 
189  std::vector<std::string> toGet = iConfig.getUntrackedParameter<std::vector<std::string>>("toGet");
190  for (auto& objectName : toGet) {
191  bool all = objectName == "all";
192 #ifdef DebugLog
193  std::cout << "Load parameters for " << objectName << std::endl;
194 #endif
195  if ((objectName == "Pedestals") || all) {
197  findingRecord<HcalPedestalsRcd>();
198  }
199  if ((objectName == "PedestalWidths") || all) {
201  findingRecord<HcalPedestalWidthsRcd>();
202  }
203  if ((objectName == "EffectivePedestals") || all) {
205  .setConsumes(topoTokens_[kEffectivePedestals]);
206  findingRecord<HcalPedestalsRcd>();
207  }
208  if ((objectName == "EffectivePedestalWidths") || all) {
210  .setConsumes(topoTokens_[kEffectivePedestalWidths]);
211  findingRecord<HcalPedestalWidthsRcd>();
212  }
213  if ((objectName == "Gains") || all) {
215  findingRecord<HcalGainsRcd>();
216  }
217  if ((objectName == "GainWidths") || all) {
219  findingRecord<HcalGainWidthsRcd>();
220  }
221  if ((objectName == "QIEData") || all) {
223  findingRecord<HcalQIEDataRcd>();
224  }
225  if ((objectName == "QIETypes") || all) {
227  findingRecord<HcalQIETypesRcd>();
228  }
229  if ((objectName == "ChannelQuality") || (objectName == "channelQuality") || all) {
231  findingRecord<HcalChannelQualityRcd>();
232  }
233  if ((objectName == "ElectronicsMap") || (objectName == "electronicsMap") || all) {
235  findingRecord<HcalElectronicsMapRcd>();
236  }
237  if ((objectName == "ZSThresholds") || (objectName == "zsThresholds") || all) {
239  findingRecord<HcalZSThresholdsRcd>();
240  }
241  if ((objectName == "RespCorrs") || (objectName == "ResponseCorrection") || all) {
243  c.setConsumes(topoTokens_[kRespCorrs]);
244  if (he_recalibration) {
245  c.setConsumes(heDarkeningToken_, edm::ESInputTag("", "HE"));
246  }
247  if (hb_recalibration) {
248  c.setConsumes(hbDarkeningToken_, edm::ESInputTag("", "HB"));
249  }
250  findingRecord<HcalRespCorrsRcd>();
251  }
252  if ((objectName == "LUTCorrs") || (objectName == "LUTCorrection") || all) {
254  findingRecord<HcalLUTCorrsRcd>();
255  }
256  if ((objectName == "PFCorrs") || (objectName == "PFCorrection") || all) {
258  findingRecord<HcalPFCorrsRcd>();
259  }
260  if ((objectName == "TimeCorrs") || (objectName == "TimeCorrection") || all) {
262  findingRecord<HcalTimeCorrsRcd>();
263  }
264  if ((objectName == "L1TriggerObjects") || (objectName == "L1Trigger") || all) {
266  .setConsumes(topoTokens_[kL1TriggerObjects]);
267  findingRecord<HcalL1TriggerObjectsRcd>();
268  }
269  if ((objectName == "ValidationCorrs") || (objectName == "ValidationCorrection") || all) {
271  .setConsumes(topoTokens_[kValidationCorrs]);
272  findingRecord<HcalValidationCorrsRcd>();
273  }
274  if ((objectName == "LutMetadata") || (objectName == "lutMetadata") || all) {
276  findingRecord<HcalLutMetadataRcd>();
277  }
278  if ((objectName == "DcsValues") || all) {
280  findingRecord<HcalDcsRcd>();
281  }
282  if ((objectName == "DcsMap") || (objectName == "dcsMap") || all) {
284  findingRecord<HcalDcsMapRcd>();
285  }
286  if ((objectName == "RecoParams") || all) {
288  findingRecord<HcalRecoParamsRcd>();
289  }
290  if ((objectName == "LongRecoParams") || all) {
292  findingRecord<HcalLongRecoParamsRcd>();
293  }
294  if ((objectName == "ZDCLowGainFractions") || all) {
296  .setConsumes(topoTokens_[kZDCLowGainFractions]);
297  findingRecord<HcalZDCLowGainFractionsRcd>();
298  }
299  if ((objectName == "MCParams") || all) {
301  findingRecord<HcalMCParamsRcd>();
302  }
303  if ((objectName == "FlagHFDigiTimeParams") || all) {
305  .setConsumes(topoTokens_[kFlagHFDigiTimeParams]);
306  findingRecord<HcalFlagHFDigiTimeParamsRcd>();
307  }
308  if ((objectName == "FrontEndMap") || (objectName == "frontEndMap") || all) {
310  findingRecord<HcalFrontEndMapRcd>();
311  }
312  if ((objectName == "SiPMParameters") || all) {
314  findingRecord<HcalSiPMParametersRcd>();
315  }
316  if ((objectName == "SiPMCharacteristics") || all) {
318  findingRecord<HcalSiPMCharacteristicsRcd>();
319  }
320  if ((objectName == "TPChannelParameters") || all) {
322  .setConsumes(topoTokens_[kTPChannelParameters]);
323  findingRecord<HcalTPChannelParametersRcd>();
324  }
325  if ((objectName == "TPParameters") || all) {
327  findingRecord<HcalTPParametersRcd>();
328  }
329  }
330 }
331 
333 
334 //
335 // member functions
336 //
338  const edm::IOVSyncValue& iTime,
339  edm::ValidityInterval& oInterval) {
340  std::string record = iKey.name();
341  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::setIntervalFor-> key: " << record << " time: " << iTime.eventID()
342  << '/' << iTime.time().value();
344 }
345 
346 std::unique_ptr<HcalPedestals> HcalHardcodeCalibrations::producePedestals_(
348  std::string seff = eff ? "Effective" : "";
349  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produce" << seff << "Pedestals-> ...";
350 
351  auto const& topo = rec.get(token);
352  auto result = std::make_unique<HcalPedestals>(&topo, false);
353  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
354  for (auto cell : cells) {
355  HcalPedestal item = dbHardcode.makePedestal(cell, false, eff, &topo, iLumi);
356  result->addValues(item);
357  }
358  return result;
359 }
360 
361 std::unique_ptr<HcalPedestalWidths> HcalHardcodeCalibrations::producePedestalWidths_(
363  std::string seff = eff ? "Effective" : "";
364  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produce" << seff << "PedestalWidths-> ...";
365  auto const& topo = rec.get(token);
366  auto result = std::make_unique<HcalPedestalWidths>(&topo, false);
367  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
368  for (auto cell : cells) {
370  result->addValues(item);
371  }
372  return result;
373 }
374 
375 std::unique_ptr<HcalPedestals> HcalHardcodeCalibrations::producePedestals(const HcalPedestalsRcd& rec) {
376  return producePedestals_(rec, topoTokens_[kPedestals], false);
377 }
378 
379 std::unique_ptr<HcalPedestals> HcalHardcodeCalibrations::produceEffectivePedestals(const HcalPedestalsRcd& rec) {
381 }
382 
383 std::unique_ptr<HcalPedestalWidths> HcalHardcodeCalibrations::producePedestalWidths(const HcalPedestalWidthsRcd& rec) {
385 }
386 
388  const HcalPedestalWidthsRcd& rec) {
390 }
391 
392 std::unique_ptr<HcalGains> HcalHardcodeCalibrations::produceGains(const HcalGainsRcd& rec) {
393  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceGains-> ...";
394 
395  auto const& topo = rec.get(topoTokens_[kGains]);
396  auto result = std::make_unique<HcalGains>(&topo);
397  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
398  for (auto cell : cells) {
400  result->addValues(item);
401  }
402  return result;
403 }
404 
405 std::unique_ptr<HcalGainWidths> HcalHardcodeCalibrations::produceGainWidths(const HcalGainWidthsRcd& rec) {
406  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceGainWidths-> ...";
407 
408  auto const& topo = rec.get(topoTokens_[kGainWidths]);
409  auto result = std::make_unique<HcalGainWidths>(&topo);
410  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
411  for (auto cell : cells) {
412  // for Upgrade - include TrigPrims, for regular case - only HcalDetId
415  result->addValues(item);
416  } else if (!cell.isHcalTrigTowerDetId()) {
418  result->addValues(item);
419  }
420  }
421  return result;
422 }
423 
424 std::unique_ptr<HcalQIEData> HcalHardcodeCalibrations::produceQIEData(const HcalQIEDataRcd& rcd) {
425  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceQIEData-> ...";
426 
427  /*
428  std::cout << std::endl << ">>> HcalHardcodeCalibrations::produceQIEData"
429  << std::endl;
430  */
431 
432  auto const& topo = rcd.get(topoTokens_[kQIEData]);
433  auto result = std::make_unique<HcalQIEData>(&topo);
434  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
435  for (auto cell : cells) {
436  HcalQIECoder coder = dbHardcode.makeQIECoder(cell);
437  result->addCoder(coder);
438  }
439  return result;
440 }
441 
442 std::unique_ptr<HcalQIETypes> HcalHardcodeCalibrations::produceQIETypes(const HcalQIETypesRcd& rcd) {
443  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceQIETypes-> ...";
444  auto const& topo = rcd.get(topoTokens_[kQIETypes]);
445 
446  auto result = std::make_unique<HcalQIETypes>(&topo);
447  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
448  for (auto cell : cells) {
450  result->addValues(item);
451  }
452  return result;
453 }
454 
455 std::unique_ptr<HcalChannelQuality> HcalHardcodeCalibrations::produceChannelQuality(const HcalChannelQualityRcd& rcd) {
456  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceChannelQuality-> ...";
457  auto const& topo = rcd.get(topoTokens_[kChannelQuality]);
458 
459  auto result = std::make_unique<HcalChannelQuality>(&topo);
460  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
461  for (auto cell : cells) {
462  // Special: removal of (non-instrumented) layer "-1"("nose") = depth 1
463  // from Upgrade HE, either from
464  // (i) HEP17 sector in 2017 or
465  // (ii) the entire HE rin=18 from 2018 through Run 3.
466  // May require a revision by 2021.
467 
468  uint32_t status = 0;
469 
470  if (!(cell.isHcalZDCDetId())) {
471  HcalDetId hid = HcalDetId(cell);
472  int iphi = hid.iphi();
473  int ieta = hid.ieta();
474  int absieta = hid.ietaAbs();
475  int depth = hid.depth();
476 
477  // specific HEP17 sector (2017 only)
478  bool isHEP17 = (iphi >= 63) && (iphi <= 66) && (ieta > 0);
479  // |ieta|=18, depth=1
480  bool is18d1 = (absieta == 18) && (depth == 1);
481 
482  if ((!useIeta18depth1 && is18d1) && ((testHEPlan1 && isHEP17) || (!testHEPlan1))) {
483  status = 0x8002; // dead cell
484  }
485  }
486 
487  HcalChannelStatus item(cell.rawId(), status);
488  result->addValues(item);
489  }
490 
491  return result;
492 }
493 
494 std::unique_ptr<HcalRespCorrs> HcalHardcodeCalibrations::produceRespCorrs(const HcalRespCorrsRcd& rcd) {
495  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceRespCorrs-> ...";
496  auto const& topo = rcd.get(topoTokens_[kRespCorrs]);
497 
498  //set depth segmentation for HB/HE recalib - only happens once
500  std::vector<std::vector<int>> m_segmentation;
501  int maxEta = topo.lastHBHERing();
502  m_segmentation.resize(maxEta);
503  for (int i = 0; i < maxEta; i++) {
504  topo.getDepthSegmentation(i + 1, m_segmentation[i]);
505  }
506  if (he_recalibration && !setHEdsegm) {
507  he_recalibration->setup(m_segmentation, &rcd.get(heDarkeningToken_));
508  setHEdsegm = true;
509  }
510  if (hb_recalibration && !setHBdsegm) {
511  hb_recalibration->setup(m_segmentation, &rcd.get(hbDarkeningToken_));
512  setHBdsegm = true;
513  }
514  }
515 
516  auto result = std::make_unique<HcalRespCorrs>(&topo);
517  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
518  for (const auto& cell : cells) {
519  double corr = 1.0;
520 
521  //check for layer 0 reweighting: when depth 1 has only one layer, it is layer 0
522  if (useLayer0Weight &&
523  ((cell.genericSubdet() == HcalGenericDetId::HcalGenEndcap) ||
524  (cell.genericSubdet() == HcalGenericDetId::HcalGenBarrel)) &&
525  (HcalDetId(cell).depth() == 1 &&
526  dbHardcode.getLayersInDepth(HcalDetId(cell).ietaAbs(), HcalDetId(cell).depth(), &topo) == 1)) {
527  //layer 0 is thicker than other layers (9mm vs 3.7mm) and brighter (Bicron vs SCSN81)
528  //in Run1/Run2 (pre-2017 for HE), ODU for layer 0 had neutral density filter attached
529  //NDF was simulated as weight of 0.5 applied to Geant energy deposits
530  //for Phase1, NDF is removed - simulated as weight of 1.2 applied to Geant energy deposits
531  //to maintain RECO calibrations, move the layer 0 energy scale back to its previous state using respcorrs
532  corr = 0.5 / 1.2;
533  }
534 
535  if ((hb_recalibration != nullptr) && (cell.genericSubdet() == HcalGenericDetId::HcalGenBarrel)) {
536  int depth_ = HcalDetId(cell).depth();
537  int ieta_ = HcalDetId(cell).ieta();
538  corr *= hb_recalibration->getCorr(ieta_, depth_);
539 #ifdef DebugLog
540  std::cout << "HB ieta, depth = " << ieta_ << ", " << depth_ << " corr = " << corr << std::endl;
541 #endif
542  } else if ((he_recalibration != nullptr) && (cell.genericSubdet() == HcalGenericDetId::HcalGenEndcap)) {
543  int depth_ = HcalDetId(cell).depth();
544  int ieta_ = HcalDetId(cell).ieta();
545  corr *= he_recalibration->getCorr(ieta_, depth_);
546 #ifdef DebugLog
547  std::cout << "HE ieta, depth = " << ieta_ << ", " << depth_ << " corr = " << corr << std::endl;
548 #endif
549  } else if ((hf_recalibration != nullptr) && (cell.genericSubdet() == HcalGenericDetId::HcalGenForward)) {
550  int depth_ = HcalDetId(cell).depth();
551  int ieta_ = HcalDetId(cell).ieta();
552  corr = hf_recalibration->getCorr(ieta_, depth_, iLumi);
553 #ifdef DebugLog
554  std::cout << "HF ieta, depth = " << ieta_ << ", " << depth_ << " corr = " << corr << std::endl;
555 #endif
556  }
557 
558  HcalRespCorr item(cell.rawId(), corr);
559  result->addValues(item);
560  }
561  return result;
562 }
563 
564 std::unique_ptr<HcalLUTCorrs> HcalHardcodeCalibrations::produceLUTCorrs(const HcalLUTCorrsRcd& rcd) {
565  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLUTCorrs-> ...";
566  auto const& topo = rcd.get(topoTokens_[kLUTCorrs]);
567 
568  auto result = std::make_unique<HcalLUTCorrs>(&topo);
569  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
570  for (auto cell : cells) {
571  HcalLUTCorr item(cell.rawId(), 1.0);
572  result->addValues(item);
573  }
574  return result;
575 }
576 
577 std::unique_ptr<HcalPFCorrs> HcalHardcodeCalibrations::producePFCorrs(const HcalPFCorrsRcd& rcd) {
578  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::producePFCorrs-> ...";
579  auto const& topo = rcd.get(topoTokens_[kPFCorrs]);
580 
581  auto result = std::make_unique<HcalPFCorrs>(&topo);
582  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
583  for (auto cell : cells) {
584  HcalPFCorr item(cell.rawId(), 1.0);
585  result->addValues(item);
586  }
587  return result;
588 }
589 
590 std::unique_ptr<HcalTimeCorrs> HcalHardcodeCalibrations::produceTimeCorrs(const HcalTimeCorrsRcd& rcd) {
591  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceTimeCorrs-> ...";
592  auto const& topo = rcd.get(topoTokens_[kTimeCorrs]);
593 
594  auto result = std::make_unique<HcalTimeCorrs>(&topo);
595  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
596  for (auto cell : cells) {
597  HcalTimeCorr item(cell.rawId(), 0.0);
598  result->addValues(item);
599  }
600  return result;
601 }
602 
603 std::unique_ptr<HcalZSThresholds> HcalHardcodeCalibrations::produceZSThresholds(const HcalZSThresholdsRcd& rcd) {
604  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceZSThresholds-> ...";
605  auto const& topo = rcd.get(topoTokens_[kZSThresholds]);
606 
607  auto result = std::make_unique<HcalZSThresholds>(&topo);
608  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
609  for (auto cell : cells) {
611  result->addValues(item);
612  }
613  return result;
614 }
615 
616 std::unique_ptr<HcalL1TriggerObjects> HcalHardcodeCalibrations::produceL1TriggerObjects(
617  const HcalL1TriggerObjectsRcd& rcd) {
618  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceL1TriggerObjects-> ...";
619  auto const& topo = rcd.get(topoTokens_[kL1TriggerObjects]);
620 
621  auto result = std::make_unique<HcalL1TriggerObjects>(&topo);
622  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
623  for (auto cell : cells) {
624  HcalL1TriggerObject item(cell.rawId(), 0., 1., 0);
625  result->addValues(item);
626  }
627  // add tag and algo values
628  result->setTagString("hardcoded");
629  result->setAlgoString("hardcoded");
630  return result;
631 }
632 
633 std::unique_ptr<HcalElectronicsMap> HcalHardcodeCalibrations::produceElectronicsMap(const HcalElectronicsMapRcd& rcd) {
634  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceElectronicsMap-> ...";
635  auto const& topo = rcd.get(topoTokens_[kElectronicsMap]);
636 
637  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
638  return dbHardcode.makeHardcodeMap(cells);
639 }
640 
641 std::unique_ptr<HcalValidationCorrs> HcalHardcodeCalibrations::produceValidationCorrs(
642  const HcalValidationCorrsRcd& rcd) {
643  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceValidationCorrs-> ...";
644  auto const& topo = rcd.get(topoTokens_[kValidationCorrs]);
645 
646  auto result = std::make_unique<HcalValidationCorrs>(&topo);
647  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
648  for (auto cell : cells) {
649  HcalValidationCorr item(cell.rawId(), 1.0);
650  result->addValues(item);
651  }
652  return result;
653 }
654 
655 std::unique_ptr<HcalLutMetadata> HcalHardcodeCalibrations::produceLutMetadata(const HcalLutMetadataRcd& rcd) {
656  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLutMetadata-> ...";
657  auto const& topo = rcd.get(topoTokens_[kLutMetadata]);
658 
659  auto result = std::make_unique<HcalLutMetadata>(&topo);
660 
661  result->setRctLsb(0.5);
662  result->setNominalGain(0.177); // for HBHE SiPMs
663 
664  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
665  for (const auto& cell : cells) {
666  float rcalib = 1.;
667  int granularity = 1;
668  int threshold = 0;
669 
670  if (cell.isHcalTrigTowerDetId()) {
671  rcalib = 0.;
672  }
673 
674  HcalLutMetadatum item(cell.rawId(), rcalib, granularity, threshold);
675  result->addValues(item);
676  }
677 
678  return result;
679 }
680 
681 std::unique_ptr<HcalDcsValues> HcalHardcodeCalibrations::produceDcsValues(const HcalDcsRcd& rcd) {
682  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceDcsValues-> ...";
683  auto result = std::make_unique<HcalDcsValues>();
684  return result;
685 }
686 
687 std::unique_ptr<HcalDcsMap> HcalHardcodeCalibrations::produceDcsMap(const HcalDcsMapRcd& rcd) {
688  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceDcsMap-> ...";
689 
691 }
692 
693 std::unique_ptr<HcalRecoParams> HcalHardcodeCalibrations::produceRecoParams(const HcalRecoParamsRcd& rec) {
694  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceRecoParams-> ...";
695  auto const& topo = rec.get(topoTokens_[kRecoParams]);
696 
697  auto result = std::make_unique<HcalRecoParams>(&topo);
698  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
699  for (auto cell : cells) {
701  result->addValues(item);
702  }
703  return result;
704 }
705 
706 std::unique_ptr<HcalTimingParams> HcalHardcodeCalibrations::produceTimingParams(const HcalTimingParamsRcd& rec) {
707  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceTimingParams-> ...";
708  auto const& topo = rec.get(topoTokens_[kTimingParams]);
709 
710  auto result = std::make_unique<HcalTimingParams>(&topo);
711  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
712  for (auto cell : cells) {
714  result->addValues(item);
715  }
716  return result;
717 }
718 
719 std::unique_ptr<HcalLongRecoParams> HcalHardcodeCalibrations::produceLongRecoParams(const HcalLongRecoParamsRcd& rec) {
720  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLongRecoParams-> ...";
721  auto const& topo = rec.get(topoTokens_[kLongRecoParams]);
722 
723  auto result = std::make_unique<HcalLongRecoParams>(&topo);
724  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
725  std::vector<unsigned int> mSignal;
726  mSignal.push_back(4);
727  mSignal.push_back(5);
728  mSignal.push_back(6);
729  std::vector<unsigned int> mNoise;
730  mNoise.push_back(1);
731  mNoise.push_back(2);
732  mNoise.push_back(3);
733  for (auto cell : cells) {
734  if (cell.isHcalZDCDetId()) {
735  HcalLongRecoParam item(cell.rawId(), mSignal, mNoise);
736  result->addValues(item);
737  }
738  }
739  return result;
740 }
741 
742 std::unique_ptr<HcalZDCLowGainFractions> HcalHardcodeCalibrations::produceZDCLowGainFractions(
743  const HcalZDCLowGainFractionsRcd& rec) {
744  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceZDCLowGainFractions-> ...";
745  auto const& topo = rec.get(topoTokens_[kZDCLowGainFractions]);
746 
747  auto result = std::make_unique<HcalZDCLowGainFractions>(&topo);
748  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
749  for (auto cell : cells) {
750  HcalZDCLowGainFraction item(cell.rawId(), 0.0);
751  result->addValues(item);
752  }
753  return result;
754 }
755 
756 std::unique_ptr<HcalMCParams> HcalHardcodeCalibrations::produceMCParams(const HcalMCParamsRcd& rec) {
757  // std::cout << std::endl << " .... HcalHardcodeCalibrations::produceMCParams ->"<< std::endl;
758 
759  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceMCParams-> ...";
760  auto const& topo = rec.get(topoTokens_[kMCParams]);
761  auto result = std::make_unique<HcalMCParams>(&topo);
762  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
763  for (auto cell : cells) {
765  result->addValues(item);
766  }
767  return result;
768 }
769 
770 std::unique_ptr<HcalFlagHFDigiTimeParams> HcalHardcodeCalibrations::produceFlagHFDigiTimeParams(
771  const HcalFlagHFDigiTimeParamsRcd& rec) {
772  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceFlagHFDigiTimeParams-> ...";
773  auto const& topo = rec.get(topoTokens_[kFlagHFDigiTimeParams]);
774 
775  auto result = std::make_unique<HcalFlagHFDigiTimeParams>(&topo);
776  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
777 
778  std::vector<double> coef;
779  coef.push_back(0.93);
780  coef.push_back(-0.38275);
781  coef.push_back(-0.012667);
782 
783  for (auto cell : cells) {
784  HcalFlagHFDigiTimeParam item(cell.rawId(),
785  1, //firstsample
786  3, // samplestoadd
787  2, //expectedpeak
788  40., // min energy threshold
789  coef // coefficients
790  );
791  result->addValues(item);
792  }
793  return result;
794 }
795 
796 std::unique_ptr<HcalFrontEndMap> HcalHardcodeCalibrations::produceFrontEndMap(const HcalFrontEndMapRcd& rec) {
797  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceFrontEndMap-> ...";
798  auto const& topo = rec.get(topoTokens_[kFrontEndMap]);
799 
800  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
801 
802  return dbHardcode.makeHardcodeFrontEndMap(cells);
803 }
804 
805 std::unique_ptr<HcalSiPMParameters> HcalHardcodeCalibrations::produceSiPMParameters(const HcalSiPMParametersRcd& rec) {
806  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceSiPMParameters-> ...";
807  auto const& topo = rec.get(topoTokens_[kSiPMParameters]);
808 
809  auto result = std::make_unique<HcalSiPMParameters>(&topo);
810  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
811  for (auto cell : cells) {
813  result->addValues(item);
814  }
815  return result;
816 }
817 
818 std::unique_ptr<HcalSiPMCharacteristics> HcalHardcodeCalibrations::produceSiPMCharacteristics(
819  const HcalSiPMCharacteristicsRcd& rcd) {
820  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceSiPMCharacteristics-> ...";
821 
823 }
824 
825 std::unique_ptr<HcalTPChannelParameters> HcalHardcodeCalibrations::produceTPChannelParameters(
826  const HcalTPChannelParametersRcd& rec) {
827  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceTPChannelParameters-> ...";
828  auto const& topo = rec.get(topoTokens_[kTPChannelParameters]);
829 
830  auto result = std::make_unique<HcalTPChannelParameters>(&topo);
831  const std::vector<HcalGenericDetId>& cells = allCells(topo, dbHardcode.killHE());
832  for (auto cell : cells) {
834  result->addValues(item);
835  }
836  return result;
837 }
838 
839 std::unique_ptr<HcalTPParameters> HcalHardcodeCalibrations::produceTPParameters(const HcalTPParametersRcd& rcd) {
840  edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceTPParameters-> ...";
841 
842  auto result = std::make_unique<HcalTPParameters>();
844  return result;
845 }
846 
849  desc.add<double>("iLumi", -1.);
850  desc.add<bool>("HBRecalibration", false);
851  desc.add<double>("HBreCalibCutoff", 20.);
852  desc.add<edm::FileInPath>("HBmeanenergies", edm::FileInPath("CalibCalorimetry/HcalPlugins/data/meanenergiesHB.txt"));
853  desc.add<bool>("HERecalibration", false);
854  desc.add<double>("HEreCalibCutoff", 20.);
855  desc.add<edm::FileInPath>("HEmeanenergies", edm::FileInPath("CalibCalorimetry/HcalPlugins/data/meanenergiesHE.txt"));
856  desc.add<bool>("HFRecalibration", false);
857  desc.add<bool>("GainWidthsForTrigPrims", false);
858  desc.add<bool>("useHBUpgrade", false);
859  desc.add<bool>("useHEUpgrade", false);
860  desc.add<bool>("useHFUpgrade", false);
861  desc.add<bool>("useHOUpgrade", true);
862  desc.add<bool>("testHFQIE10", false);
863  desc.add<bool>("testHEPlan1", false);
864  desc.add<bool>("killHE", false);
865  desc.add<bool>("useLayer0Weight", false);
866  desc.add<bool>("useIeta18depth1", true);
867  desc.addUntracked<std::vector<std::string>>("toGet", std::vector<std::string>());
868  desc.addUntracked<bool>("fromDDD", false);
869 
871  desc_hb.add<std::vector<double>>("gain", std::vector<double>({0.19}));
872  desc_hb.add<std::vector<double>>("gainWidth", std::vector<double>({0.0}));
873  desc_hb.add<double>("pedestal", 3.0);
874  desc_hb.add<double>("pedestalWidth", 0.55);
875  desc_hb.add<int>("zsThreshold", 8);
876  desc_hb.add<std::vector<double>>("qieOffset", std::vector<double>({-0.49, 1.8, 7.2, 37.9}));
877  desc_hb.add<std::vector<double>>("qieSlope", std::vector<double>({0.912, 0.917, 0.922, 0.923}));
878  desc_hb.add<int>("qieType", 0);
879  desc_hb.add<int>("mcShape", 125);
880  desc_hb.add<int>("recoShape", 105);
881  desc_hb.add<double>("photoelectronsToAnalog", 0.0);
882  desc_hb.add<std::vector<double>>("darkCurrent", std::vector<double>({0.0}));
883  desc_hb.add<bool>("doRadiationDamage", false);
884  desc.add<edm::ParameterSetDescription>("hb", desc_hb);
885 
886  edm::ParameterSetDescription desc_hbRaddam;
887  desc_hbRaddam.add<double>("temperatureBase", 20.0);
888  desc_hbRaddam.add<double>("temperatureNew", -5.0);
889  desc_hbRaddam.add<double>("intlumiOffset", 150);
890  desc_hbRaddam.add<double>("depVsTemp", 0.0631);
891  desc_hbRaddam.add<double>("intlumiToNeutrons", 3.67e8);
892  desc_hbRaddam.add<std::vector<double>>("depVsNeutrons", {5.69e-11, 7.90e-11});
893 
894  edm::ParameterSetDescription desc_hbUpgrade;
895  desc_hbUpgrade.add<std::vector<double>>("gain", std::vector<double>({0.00111111111111}));
896  desc_hbUpgrade.add<std::vector<double>>("gainWidth", std::vector<double>({0}));
897  desc_hbUpgrade.add<double>("pedestal", 18.0);
898  desc_hbUpgrade.add<double>("pedestalWidth", 5.0);
899  desc_hbUpgrade.add<int>("zsThreshold", 3);
900  desc_hbUpgrade.add<std::vector<double>>("qieOffset", std::vector<double>({0.0, 0.0, 0.0, 0.0}));
901  desc_hbUpgrade.add<std::vector<double>>("qieSlope", std::vector<double>({0.333, 0.333, 0.333, 0.333}));
902  desc_hbUpgrade.add<int>("qieType", 2);
903  desc_hbUpgrade.add<int>("mcShape", 206);
904  desc_hbUpgrade.add<int>("recoShape", 206);
905  desc_hbUpgrade.add<double>("photoelectronsToAnalog", 57.5);
906  desc_hbUpgrade.add<std::vector<double>>("darkCurrent", std::vector<double>({0.055}));
907  desc_hbUpgrade.add<bool>("doRadiationDamage", true);
908  desc_hbUpgrade.add<edm::ParameterSetDescription>("radiationDamage", desc_hbRaddam);
909  desc.add<edm::ParameterSetDescription>("hbUpgrade", desc_hbUpgrade);
910 
912  desc_he.add<std::vector<double>>("gain", std::vector<double>({0.23}));
913  desc_he.add<std::vector<double>>("gainWidth", std::vector<double>({0}));
914  desc_he.add<double>("pedestal", 3.0);
915  desc_he.add<double>("pedestalWidth", 0.79);
916  desc_he.add<int>("zsThreshold", 9);
917  desc_he.add<std::vector<double>>("qieOffset", std::vector<double>({-0.38, 2.0, 7.6, 39.6}));
918  desc_he.add<std::vector<double>>("qieSlope", std::vector<double>({0.912, 0.916, 0.92, 0.922}));
919  desc_he.add<int>("qieType", 0);
920  desc_he.add<int>("mcShape", 125);
921  desc_he.add<int>("recoShape", 105);
922  desc_he.add<double>("photoelectronsToAnalog", 0.0);
923  desc_he.add<std::vector<double>>("darkCurrent", std::vector<double>({0.0}));
924  desc_he.add<bool>("doRadiationDamage", false);
925  desc.add<edm::ParameterSetDescription>("he", desc_he);
926 
927  edm::ParameterSetDescription desc_heRaddam;
928  desc_heRaddam.add<double>("temperatureBase", 20.0);
929  desc_heRaddam.add<double>("temperatureNew", 5.0);
930  desc_heRaddam.add<double>("intlumiOffset", 75);
931  desc_heRaddam.add<double>("depVsTemp", 0.0631);
932  desc_heRaddam.add<double>("intlumiToNeutrons", 2.92e8);
933  desc_heRaddam.add<std::vector<double>>("depVsNeutrons", {5.69e-11, 7.90e-11});
934 
935  edm::ParameterSetDescription desc_heUpgrade;
936  desc_heUpgrade.add<std::vector<double>>("gain", std::vector<double>({0.00111111111111}));
937  desc_heUpgrade.add<std::vector<double>>("gainWidth", std::vector<double>({0}));
938  desc_heUpgrade.add<double>("pedestal", 18.0);
939  desc_heUpgrade.add<double>("pedestalWidth", 5.0);
940  desc_heUpgrade.add<int>("zsThreshold", 3);
941  desc_heUpgrade.add<std::vector<double>>("qieOffset", std::vector<double>({0.0, 0.0, 0.0, 0.0}));
942  desc_heUpgrade.add<std::vector<double>>("qieSlope", std::vector<double>({0.333, 0.333, 0.333, 0.333}));
943  desc_heUpgrade.add<int>("qieType", 2);
944  desc_heUpgrade.add<int>("mcShape", 206);
945  desc_heUpgrade.add<int>("recoShape", 206);
946  desc_heUpgrade.add<double>("photoelectronsToAnalog", 57.5);
947  desc_heUpgrade.add<std::vector<double>>("darkCurrent", std::vector<double>({0.055}));
948  desc_heUpgrade.add<bool>("doRadiationDamage", true);
949  desc_heUpgrade.add<edm::ParameterSetDescription>("radiationDamage", desc_heRaddam);
950  desc.add<edm::ParameterSetDescription>("heUpgrade", desc_heUpgrade);
951 
953  desc_hf.add<std::vector<double>>("gain", std::vector<double>({0.14, 0.135}));
954  desc_hf.add<std::vector<double>>("gainWidth", std::vector<double>({0.0, 0.0}));
955  desc_hf.add<double>("pedestal", 3.0);
956  desc_hf.add<double>("pedestalWidth", 0.84);
957  desc_hf.add<int>("zsThreshold", -9999);
958  desc_hf.add<std::vector<double>>("qieOffset", std::vector<double>({-0.87, 1.4, 7.8, -29.6}));
959  desc_hf.add<std::vector<double>>("qieSlope", std::vector<double>({0.359, 0.358, 0.36, 0.367}));
960  desc_hf.add<int>("qieType", 0);
961  desc_hf.add<int>("mcShape", 301);
962  desc_hf.add<int>("recoShape", 301);
963  desc_hf.add<double>("photoelectronsToAnalog", 0.0);
964  desc_hf.add<std::vector<double>>("darkCurrent", std::vector<double>({0.0}));
965  desc_hf.add<bool>("doRadiationDamage", false);
966  desc.add<edm::ParameterSetDescription>("hf", desc_hf);
967 
968  edm::ParameterSetDescription desc_hfUpgrade;
969  desc_hfUpgrade.add<std::vector<double>>("gain", std::vector<double>({0.14, 0.135}));
970  desc_hfUpgrade.add<std::vector<double>>("gainWidth", std::vector<double>({0.0, 0.0}));
971  desc_hfUpgrade.add<double>("pedestal", 13.33);
972  desc_hfUpgrade.add<double>("pedestalWidth", 3.33);
973  desc_hfUpgrade.add<int>("zsThreshold", -9999);
974  desc_hfUpgrade.add<std::vector<double>>("qieOffset", std::vector<double>({0.0697, -0.7405, 12.38, -671.9}));
975  desc_hfUpgrade.add<std::vector<double>>("qieSlope", std::vector<double>({0.297, 0.298, 0.298, 0.313}));
976  desc_hfUpgrade.add<int>("qieType", 1);
977  desc_hfUpgrade.add<int>("mcShape", 301);
978  desc_hfUpgrade.add<int>("recoShape", 301);
979  desc_hfUpgrade.add<double>("photoelectronsToAnalog", 0.0);
980  desc_hfUpgrade.add<std::vector<double>>("darkCurrent", std::vector<double>({0.0}));
981  desc_hfUpgrade.add<bool>("doRadiationDamage", false);
982  desc.add<edm::ParameterSetDescription>("hfUpgrade", desc_hfUpgrade);
983 
984  edm::ParameterSetDescription desc_hfrecal;
985  desc_hfrecal.add<std::vector<double>>("HFdepthOneParameterA", std::vector<double>());
986  desc_hfrecal.add<std::vector<double>>("HFdepthOneParameterB", std::vector<double>());
987  desc_hfrecal.add<std::vector<double>>("HFdepthTwoParameterA", std::vector<double>());
988  desc_hfrecal.add<std::vector<double>>("HFdepthTwoParameterB", std::vector<double>());
989  desc.add<edm::ParameterSetDescription>("HFRecalParameterBlock", desc_hfrecal);
990 
992  desc_ho.add<std::vector<double>>("gain", std::vector<double>({0.006, 0.0087}));
993  desc_ho.add<std::vector<double>>("gainWidth", std::vector<double>({0.0, 0.0}));
994  desc_ho.add<double>("pedestal", 11.0);
995  desc_ho.add<double>("pedestalWidth", 0.57);
996  desc_ho.add<int>("zsThreshold", 24);
997  desc_ho.add<std::vector<double>>("qieOffset", std::vector<double>({-0.44, 1.4, 7.1, 38.5}));
998  desc_ho.add<std::vector<double>>("qieSlope", std::vector<double>({0.907, 0.915, 0.92, 0.921}));
999  desc_ho.add<int>("qieType", 0);
1000  desc_ho.add<int>("mcShape", 201);
1001  desc_ho.add<int>("recoShape", 201);
1002  desc_ho.add<double>("photoelectronsToAnalog", 4.0);
1003  desc_ho.add<std::vector<double>>("darkCurrent", std::vector<double>({0.0}));
1004  desc_ho.add<bool>("doRadiationDamage", false);
1005  desc.add<edm::ParameterSetDescription>("ho", desc_ho);
1006 
1007  edm::ParameterSetDescription validator_sipm;
1008  validator_sipm.add<int>("pixels", 1);
1009  validator_sipm.add<double>("crosstalk", 0);
1010  validator_sipm.add<double>("nonlin1", 1);
1011  validator_sipm.add<double>("nonlin2", 0);
1012  validator_sipm.add<double>("nonlin3", 0);
1013  std::vector<edm::ParameterSet> default_sipm(1);
1014  desc.addVPSet("SiPMCharacteristics", validator_sipm, default_sipm);
1015 
1016  descriptions.addDefault(desc);
1017 }
std::unique_ptr< HcalPedestals > producePedestals(const HcalPedestalsRcd &rcd)
int maxDepth(void) const
static const int kHcalVersMask
T getParameter(std::string const &) const
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:138
HcalMCParam makeMCParam(HcalGenericDetId fId) const
bool empty() const
Definition: ParameterSet.h:190
T getUntrackedParameter(std::string const &, T const &) const
std::unique_ptr< HcalGains > produceGains(const HcalGainsRcd &rcd)
void useHBUpgrade(bool b)
HcalHardcodeCalibrations(const edm::ParameterSet &)
const bool killHE() const
std::unique_ptr< HcalPedestalWidths > produceEffectivePedestalWidths(const HcalPedestalWidthsRcd &rcd)
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
std::unique_ptr< HcalPFCorrs > producePFCorrs(const HcalPFCorrsRcd &rcd)
std::unique_ptr< HcalQIEData > produceQIEData(const HcalQIEDataRcd &rcd)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void setHBUpgrade(HcalHardcodeParameters p)
const EventID & eventID() const
Definition: IOVSyncValue.h:40
bool valid(const DetId &id) const override
void testHEPlan1(bool b)
static uint32_t kHcalEtaMask2
Definition: HcalDetId.h:19
std::unique_ptr< HcalTimeCorrs > produceTimeCorrs(const HcalTimeCorrsRcd &rcd)
void useHFUpgrade(bool b)
std::unique_ptr< HcalLongRecoParams > produceLongRecoParams(const HcalLongRecoParamsRcd &rcd)
JetCorrectorParameters::Record record
Definition: classes.h:7
std::unique_ptr< HcalPedestals > produceEffectivePedestals(const HcalPedestalsRcd &rcd)
std::unique_ptr< HcalSiPMCharacteristics > produceSiPMCharacteristics(const HcalSiPMCharacteristicsRcd &rcd)
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > hbDarkeningToken_
std::unique_ptr< HcalElectronicsMap > produceElectronicsMap(const HcalElectronicsMapRcd &rcd)
#define nullptr
std::unique_ptr< HcalElectronicsMap > makeHardcodeMap(const std::vector< HcalGenericDetId > &cells) const
void setHF(HcalHardcodeParameters p)
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:82
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:17
double maxEta
std::unique_ptr< HcalDcsValues > produceDcsValues(const HcalDcsRcd &rcd)
static const int kHcalEtaMask
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) override
std::unique_ptr< HcalPedestalWidths > producePedestalWidths_(const HcalPedestalWidthsRcd &rcd, const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > &, bool eff)
std::unique_ptr< HcalPedestalWidths > producePedestalWidths(const HcalPedestalWidthsRcd &rcd)
HcalTimingParam makeTimingParam(HcalGenericDetId fId) const
HcalRecoParam makeRecoParam(HcalGenericDetId fId) const
std::unique_ptr< HcalPedestals > producePedestals_(const HcalPedestalsRcd &rcd, const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > &, bool eff)
int depth() const
get the tower depth
Definition: HcalDetId.h:164
void makeHardcodeFrontEndMap(HcalFrontEndMap &emap, const std::vector< HcalGenericDetId > &cells) const
virtual bool valid(const HcalZDCDetId &id) const
Definition: ZdcTopology.cc:27
void addDefault(ParameterSetDescription const &psetDescription)
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
std::unique_ptr< HFRecalibration > hf_recalibration
std::unique_ptr< HcalRespCorrs > produceRespCorrs(const HcalRespCorrsRcd &rcd)
HcalQIECoder makeQIECoder(HcalGenericDetId fId) const
std::unique_ptr< HcalLutMetadata > produceLutMetadata(const HcalLutMetadataRcd &rcd)
void setHO(HcalHardcodeParameters p)
static const IOVSyncValue & beginOfTime()
Definition: IOVSyncValue.cc:88
void setHFUpgrade(HcalHardcodeParameters p)
void setHE(HcalHardcodeParameters p)
std::unique_ptr< HcalDcsMap > makeHardcodeDcsMap() const
void setKillHE(bool b)
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
std::unique_ptr< HcalFlagHFDigiTimeParams > produceFlagHFDigiTimeParams(const HcalFlagHFDigiTimeParamsRcd &rcd)
std::unique_ptr< HcalFrontEndMap > produceFrontEndMap(const HcalFrontEndMapRcd &rcd)
HcalSubdetector
Definition: HcalAssistant.h:31
void makeHardcodeTPParameters(HcalTPParameters &tppar) const
std::unique_ptr< HBHERecalibration > hb_recalibration
static const int kHcalDepthMask
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void useHOUpgrade(bool b)
std::unique_ptr< HcalSiPMParameters > produceSiPMParameters(const HcalSiPMParametersRcd &rcd)
std::unique_ptr< HBHERecalibration > he_recalibration
JetCorrectorParameters corr
Definition: classes.h:5
static const int kHcalPhiMask
int ietaAbs() const
get the absolute value of the cell ieta
Definition: HcalDetId.h:148
Namespace of DDCMS conversion namespace.
HcalTPChannelParameter makeHardcodeTPChannelParameter(HcalGenericDetId fId) const
std::unique_ptr< HcalRecoParams > produceRecoParams(const HcalRecoParamsRcd &rcd)
void setHB(HcalHardcodeParameters p)
int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
std::unique_ptr< HcalTPParameters > produceTPParameters(const HcalTPParametersRcd &rcd)
HcalGainWidth makeGainWidth(HcalGenericDetId fId) const
std::unique_ptr< HcalSiPMCharacteristics > makeHardcodeSiPMCharacteristics() const
HcalGain makeGain(HcalGenericDetId fId, bool fSmear=false) const
static uint32_t kHcalPhiMask2
Definition: HcalDetId.h:15
std::unique_ptr< HcalGainWidths > produceGainWidths(const HcalGainWidthsRcd &rcd)
std::unique_ptr< HcalTPChannelParameters > produceTPChannelParameters(const HcalTPChannelParametersRcd &rcd)
std::unique_ptr< HcalL1TriggerObjects > produceL1TriggerObjects(const HcalL1TriggerObjectsRcd &rcd)
std::unique_ptr< HcalZSThresholds > produceZSThresholds(const HcalZSThresholdsRcd &rcd)
HcalQIEType makeQIEType(HcalGenericDetId fId) const
std::unique_ptr< HcalZDCLowGainFractions > produceZDCLowGainFractions(const HcalZDCLowGainFractionsRcd &rcd)
void setSiPMCharacteristics(std::vector< edm::ParameterSet > vps)
std::unique_ptr< HcalMCParams > produceMCParams(const HcalMCParamsRcd &rcd)
void useHEUpgrade(bool b)
std::unique_ptr< HcalTimingParams > produceTimingParams(const HcalTimingParamsRcd &rcd)
std::unique_ptr< HcalQIETypes > produceQIETypes(const HcalQIETypesRcd &rcd)
int getLayersInDepth(int ieta, int depth, const HcalTopology *topo)
std::unique_ptr< HcalChannelQuality > produceChannelQuality(const HcalChannelQualityRcd &rcd)
HcalPedestal makePedestal(HcalGenericDetId fId, bool fSmear, bool eff, const HcalTopology *topo, double intlumi)
std::string fullPath() const
Definition: FileInPath.cc:163
const Timestamp & time() const
Definition: IOVSyncValue.h:42
edm::ESGetToken< HBHEDarkening, HBHEDarkeningRecord > heDarkeningToken_
HcalSiPMParameter makeHardcodeSiPMParameter(HcalGenericDetId fId, const HcalTopology *topo, double intlumi)
void setHEUpgrade(HcalHardcodeParameters p)
std::unique_ptr< HcalDcsMap > produceDcsMap(const HcalDcsMapRcd &rcd)
TimeValue_t value() const
Definition: Timestamp.h:45
HcalZSThreshold makeZSThreshold(HcalGenericDetId fId) const
std::unique_ptr< HcalLUTCorrs > produceLUTCorrs(const HcalLUTCorrsRcd &rcd)
std::unordered_map< int, edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > > topoTokens_
void testHFQIE10(bool b)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
HcalPedestalWidth makePedestalWidth(HcalGenericDetId fId, bool eff, const HcalTopology *topo, double intlumi)
std::unique_ptr< HcalValidationCorrs > produceValidationCorrs(const HcalValidationCorrsRcd &rcd)
bool validHT(const HcalTrigTowerDetId &id) const