File indexing completed on 2024-04-06 12:25:48
0001 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHENegativeFlag.h"
0002 #include "CalibFormats/CaloObjects/interface/CaloSamples.h"
0003 #include "DataFormats/METReco/interface/HcalCaloFlagLabels.h"
0004
0005 void HBHENegativeFlagSetter::setPulseShapeFlags(HBHERecHit &hbhe,
0006 const HBHEDataFrame &digi,
0007 const HcalCoder &coder,
0008 const HcalCalibrations &calib) {
0009 if (filter_) {
0010 CaloSamples cs;
0011 coder.adc2fC(digi, cs);
0012 const int nRead = cs.size();
0013
0014 double ts[CaloSamples::MAXSAMPLES];
0015 for (int i = 0; i < nRead; i++) {
0016 const int capid = digi[i].capid();
0017 ts[i] = cs[i] - calib.pedestal(capid);
0018 }
0019
0020 const bool passes = filter_->checkPassFilter(hbhe.id(), &ts[0], nRead);
0021 if (!passes)
0022 hbhe.setFlagField(1, HcalCaloFlagLabels::HBHENegativeNoise);
0023 }
0024 }