File indexing completed on 2024-04-06 12:25:48
0001 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalADCSaturationFlag.h"
0002 #include "DataFormats/METReco/interface/HcalCaloFlagLabels.h"
0003
0004 namespace HcalSaturation {
0005
0006
0007
0008 template <class T, class V>
0009 void checkADCSaturation(T& rechit, const V& digi, int level) {
0010
0011 for (int i = 0; i < digi.size(); ++i) {
0012 if (digi.sample(i).adc() >= level) {
0013 rechit.setFlagField(1, HcalCaloFlagLabels::ADCSaturationBit);
0014 break;
0015 }
0016 }
0017 return;
0018 }
0019 }
0020
0021 using namespace HcalSaturation;
0022
0023 HcalADCSaturationFlag::HcalADCSaturationFlag() {
0024 SaturationLevel_ = 127;
0025 }
0026
0027 HcalADCSaturationFlag::HcalADCSaturationFlag(int level) {
0028 SaturationLevel_ = level;
0029 }
0030
0031 HcalADCSaturationFlag::~HcalADCSaturationFlag() {}
0032
0033 void HcalADCSaturationFlag::setSaturationFlag(HBHERecHit& rechit, const HBHEDataFrame& digi) {
0034 checkADCSaturation<HBHERecHit, HBHEDataFrame>(rechit, digi, SaturationLevel_);
0035 return;
0036 }
0037
0038 void HcalADCSaturationFlag::setSaturationFlag(HORecHit& rechit, const HODataFrame& digi) {
0039 checkADCSaturation<HORecHit, HODataFrame>(rechit, digi, SaturationLevel_);
0040 return;
0041 }
0042
0043 void HcalADCSaturationFlag::setSaturationFlag(HFRecHit& rechit, const HFDataFrame& digi) {
0044 checkADCSaturation<HFRecHit, HFDataFrame>(rechit, digi, SaturationLevel_);
0045 return;
0046 }
0047
0048 void HcalADCSaturationFlag::setSaturationFlag(ZDCRecHit& rechit, const ZDCDataFrame& digi) {
0049 checkADCSaturation<ZDCRecHit, ZDCDataFrame>(rechit, digi, SaturationLevel_);
0050 return;
0051 }