diff --git a/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalFinegrainBit.h b/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalFinegrainBit.h index 4d4f91dcfee2c..b1f3cbb35d778 100644 --- a/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalFinegrainBit.h +++ b/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalFinegrainBit.h @@ -26,7 +26,7 @@ class HcalFinegrainBit { int version_; // define prompt-delayed TDC range. Note this is offset from depth and ieta by 1 - const int tdc_HE[29][7] = { + const int tdc_boundary[29][7] = { {8, 14, 15, 17, 0, 0, 0}, {8, 14, 15, 17, 0, 0, 0}, {8, 14, 14, 17, 0, 0, 0}, {8, 14, 14, 17, 0, 0, 0}, {8, 13, 14, 16, 0, 0, 0}, {8, 13, 14, 16, 0, 0, 0}, {8, 12, 14, 15, 0, 0, 0}, {8, 12, 14, 15, 0, 0, 0}, {7, 12, 13, 15, 0, 0, 0}, {7, 12, 13, 15, 0, 0, 0}, {7, 12, 13, 15, 0, 0, 0}, {7, 12, 13, 15, 0, 0, 0}, diff --git a/SimCalorimetry/HcalTrigPrimAlgos/src/HcalFinegrainBit.cc b/SimCalorimetry/HcalTrigPrimAlgos/src/HcalFinegrainBit.cc index 8af181da03873..37657b1081512 100644 --- a/SimCalorimetry/HcalTrigPrimAlgos/src/HcalFinegrainBit.cc +++ b/SimCalorimetry/HcalTrigPrimAlgos/src/HcalFinegrainBit.cc @@ -63,22 +63,14 @@ std::bitset<6> HcalFinegrainBit::compute(const HcalFinegrainBit::TowerTDC& tower // timing bits if (TDC < 50) { // exclude error code for TDC in HE (unpacked) - if (abs(tp_ieta) <= - 16) { // in HB, TDC values are compressed. 01 = first delayed range, 10 = second delayed range - if (TDC == 1 && bit15 == 1) + if ((abs(tp_ieta) <= 16) || (i >= 1)) { + // count delayed / prompt hits either in HB, or in HE (excluding depth 1 due to backgrounds in HE) + // TDC values are uncompressed (0-49) at the trigger primitive level. Packing (compressing HB TDC 6:2) happens in packer. + if (TDC > tdc_boundary[abs(tp_ieta) - 1][i] && TDC <= tdc_boundary[abs(tp_ieta) - 1][i] + 2 && bit15 == 1) Ndelayed += 1; - if (TDC == 2 && bit15 == 1) + if (TDC > tdc_boundary[abs(tp_ieta) - 1][i] + 2 && bit15 == 1) NveryDelayed += 1; - if (TDC == 0 && bit14 == 1) - Nprompt += 1; - } - if (abs(tp_ieta) > 16 && - i >= 1) { // in HE, TDC values are uncompressed (0-49). Exclude depth 1 in HE due to backgrounds - if (TDC > tdc_HE[abs(tp_ieta) - 1][i] && TDC <= tdc_HE[abs(tp_ieta) - 1][i] + 2 && bit15 == 1) - Ndelayed += 1; - if (TDC > tdc_HE[abs(tp_ieta) - 1][i] + 2 && bit15 == 1) - NveryDelayed += 1; - if (TDC <= tdc_HE[abs(tp_ieta) - 1][i] && TDC >= 0 && bit14 == 1) + if (TDC <= tdc_boundary[abs(tp_ieta) - 1][i] && TDC >= 0 && bit14 == 1) Nprompt += 1; } }