25 short FixedBias = 128;
29 typename std::vector<T>::iterator
fs,
ls;
33 for (uint16_t istrip = 0; istrip < digis.size(); ++istrip) {
38 double nWeight = 1 / (stripNoise * stripNoise);
39 sumVal += (digis[istrip] - FixedBias) * nWeight;
44 if (istrip % 128 == 127) {
45 double CM = (sumWt) ? sumVal / sumWt : 0.0;
47 fs = digis.begin() + istrip - 127;
48 ls = digis.begin() + istrip + 1;
51 *
fs =
static_cast<T>(*
fs - FixedBias - CM);
double cut_to_avoid_signal_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
void subtract_(uint32_t detId, uint16_t firstAPV, std::vector< T > &digis)
void subtract(uint32_t detId, uint16_t firstAPV, std::vector< int16_t > &digis) override
edm::ESWatcher< SiStripQualityRcd > qualityWatcher_
const SiStripNoises * noiseHandle
const Range getRange(const uint32_t detID) const
edm::ESWatcher< SiStripNoisesRcd > noiseWatcher_
static float getNoiseFast(const uint16_t &strip, const Range &range)
edm::ESGetToken< SiStripNoises, SiStripNoisesRcd > noiseToken_
Abs< T >::type abs(const T &t)
const SiStripQuality * qualityHandle
bool IsStripBad(uint32_t detid, short strip) const
void init(const edm::EventSetup &es) override
bool check(const edm::EventSetup &iSetup)
const Range getRange(const uint32_t detID) const
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > qualityToken_
std::pair< ContainerIterator, ContainerIterator > Range
std::pair< ContainerIterator, ContainerIterator > Range