CMS 3D CMS Logo

ConditionHelper.cc
Go to the documentation of this file.
2 
5 
8 
11 
13 
15  : params_cache_id_(0ULL), forest_cache_id_(0ULL), paramsToken_(iC.esConsumes()), forestToken_(iC.esConsumes()) {}
16 
18 
20  bool new_params = false;
21  bool new_forests = false;
22 
23  // Pull configuration from the EventSetup
24  auto params_setup = iSetup.get<L1TMuonEndCapParamsRcd>();
25  if (params_setup.cacheIdentifier() != params_cache_id_) {
26  params_ = params_setup.getHandle(paramsToken_);
27 
28  // with the magic above you can use params_->fwVersion to change emulator's behavior
29  // ...
30 
31  // reset cache id
32  params_cache_id_ = params_setup.cacheIdentifier();
33  new_params = true;
34  }
35 
36  // Pull pt LUT from the EventSetup
37  auto forest_setup = iSetup.get<L1TMuonEndCapForestRcd>();
38  if (forest_setup.cacheIdentifier() != forest_cache_id_) {
39  forest_ = forest_setup.getHandle(forestToken_);
40 
41  // at this point we want to reload the newly pulled pT LUT
42  // ...
43 
44  // reset cache id
45  forest_cache_id_ = forest_setup.cacheIdentifier();
46  new_forests = true;
47  }
48 
49  bool new_conditions = (new_params || new_forests);
50  if (new_conditions) {
51  edm::LogInfo("L1T") << "EMTF updating conditions: pc_lut_ver: " << get_pc_lut_version()
52  << " pt_lut_ver: " << get_pt_lut_version() << " fw_ver: " << get_fw_version();
53  }
54 
55  // Debug
56  //edm::LogWarning("L1T") << "EMTF new conditions? Yes (1) or no (0)? -- " << new_conditions << std::endl;
57  //edm::LogWarning("L1T") << "EMTF updating conditions: pc_lut_ver: " << get_pc_lut_version() << " pt_lut_ver: " << get_pt_lut_version() << " fw_ver: " << get_fw_version();
58 }
59 
60 unsigned int ConditionHelper::get_fw_version() const {
61  // std::cout << " - Getting firmware version from ConditionHelper: version = " << params_->firmwareVersion_ << std::endl;
62  return params_->firmwareVersion_;
63 }
64 
66  // std::cout << " - Getting pT LUT version from ConditionHelper: version = " << (params_->PtAssignVersion_ & 0xff);
67  // std::cout << " (lowest bits of " << params_->PtAssignVersion_ << ")" << std::endl;
68  if (params_->firmwareVersion_ < 50000) // for 2016
69  return 5;
70  return (params_->PtAssignVersion_ & 0xff); // Version indicated by first two bytes
71 }
72 
74  // "PhiMatchWindowSt1" arbitrarily re-mapped to Primitive conversion (PC LUT) version
75  // because of rigid CondFormats naming conventions - AWB 02.06.17
76  // std::cout << " - Getting proper PC LUT version from ConditionHelper: version = " << params_->PhiMatchWindowSt1_ << std::endl;
77  // return params_->PhiMatchWindowSt1_;
78 
79  // Hack until we figure out why the database is returning "0" for 2017 data - AWB 04.08.17
80  // std::cout << " - Getting hacked PC LUT version from ConditionHelper: version = " << (params_->firmwareVersion_ >= 50000) << std::endl;
81  if (params_->firmwareVersion_ < 50000) { // For 2016
82  return 0;
83  } else if (params_->firmwareVersion_ < 1537467271) { // From the beginning of 2017
84  return 1; // Corresponding to FW timestamps before Sept. 20, 2018
85  } else {
86  return 2; // Starting September 26, 2018 with run 323556 (data only, not in MC)
87  }
88 }
89 
91  // See comment in get_pc_lut_version()
93 }
ConditionHelper::paramsToken_
edm::ESGetToken< L1TMuonEndCapParams, L1TMuonEndCapParamsRcd > paramsToken_
Definition: ConditionHelper.h:42
L1TMuonEndCapParams::PtAssignVersion_
unsigned PtAssignVersion_
Definition: L1TMuonEndCapParams.h:28
ConditionHelper::forest_
edm::ESHandle< L1TMuonEndCapForest > forest_
Definition: ConditionHelper.h:45
ConditionHelper::get_pc_lut_version_unchecked
unsigned int get_pc_lut_version_unchecked() const
Definition: ConditionHelper.cc:90
L1TMuonEndCapParams.h
ConditionHelper::forestToken_
edm::ESGetToken< L1TMuonEndCapForest, L1TMuonEndCapForestRcd > forestToken_
Definition: ConditionHelper.h:44
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
L1TMuonEndCapForestRcd.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
ConditionHelper.h
ConditionHelper::get_fw_version
unsigned int get_fw_version() const
Definition: ConditionHelper.cc:60
L1TMuonEndCapForestRcd
Definition: L1TMuonEndCapForestRcd.h:11
ConditionHelper::ConditionHelper
ConditionHelper(edm::ConsumesCollector)
Definition: ConditionHelper.cc:14
L1TMuonEndCapForest.h
L1TMuonEndCapParams::firmwareVersion_
unsigned firmwareVersion_
Definition: L1TMuonEndCapParams.h:28
ConditionHelper::params_cache_id_
unsigned long long params_cache_id_
Definition: ConditionHelper.h:39
L1TMuonEndCapParamsRcd
Definition: L1TMuonEndCapParamsRcd.h:11
ConditionHelper::get_pc_lut_version
unsigned int get_pc_lut_version() const
Definition: ConditionHelper.cc:73
ConditionHelper::params_
edm::ESHandle< L1TMuonEndCapParams > params_
Definition: ConditionHelper.h:43
ConditionHelper::checkAndUpdateConditions
void checkAndUpdateConditions(const edm::EventSetup &iSetup)
Definition: ConditionHelper.cc:19
edm::EventSetup
Definition: EventSetup.h:58
L1TMuonEndCapParamsRcd.h
ConditionHelper::forest_cache_id_
unsigned long long forest_cache_id_
Definition: ConditionHelper.h:40
L1TMuonEndCapParams::PhiMatchWindowSt1_
int PhiMatchWindowSt1_
Definition: L1TMuonEndCapParams.h:29
EventSetup.h
PtAssignmentEngine.h
ConsumesCollector.h
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
ConditionHelper::get_pt_lut_version
unsigned int get_pt_lut_version() const
Definition: ConditionHelper.cc:65
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
ConditionHelper::~ConditionHelper
~ConditionHelper()
Definition: ConditionHelper.cc:17