6 : linLSB_(conf.getParameter<double>(
"linLSB")),
7 adcsaturation_(conf.getParameter<double>(
"adcsaturation")),
8 tdcnBits_(conf.getParameter<uint32_t>(
"tdcnBits")),
9 tdcOnset_(conf.getParameter<double>(
"tdcOnset")),
10 adcnBits_(conf.getParameter<uint32_t>(
"adcnBits")),
11 tdcsaturation_(conf.getParameter<double>(
"tdcsaturation")),
12 linnBits_(conf.getParameter<uint32_t>(
"linnBits")),
13 oot_coefficients_(conf.getParameter<std::
vector<double>>(
"oot_coefficients")) {
14 constexpr
int kOot_order = 2;
16 throw cms::Exception(
"BadConfiguration") <<
"OOT subtraction needs " << kOot_order <<
" coefficients";
24 std::vector<std::pair<DetId, uint32_t>>& linearized_dataframes) {
25 constexpr
int kIntimeSample = 2;
26 constexpr
int kOuttime1Sample = 1;
27 constexpr
int kOuttime2Sample = 0;
29 for (
const auto& frame : dataframes) {
30 double amplitude = 0.;
31 if (frame[kIntimeSample].
mode()) {
34 double data = frame[kIntimeSample].data();
36 if (!frame[kOuttime1Sample].
mode()) {
38 if (!frame[kOuttime2Sample].
mode()) {
44 uint32_t amplitude_int = uint32_t(std::floor(amplitude /
linLSB_ + 0.5));
45 if (amplitude_int == 0)
50 linearized_dataframes.emplace_back(frame.id(), amplitude_int);
HGCalVFELinearizationImpl(const edm::ParameterSet &conf)
std::vector< double > oot_coefficients_
void linearize(const std::vector< HGCalDataFrame > &, std::vector< std::pair< DetId, uint32_t >> &)
char data[epos_bytes_allocation]