18 template <
class input_t>
22 std::vector<int16_t>&
output) {
28 typename input_t::const_iterator inDigi =
input.begin();
29 std::vector<int>::const_iterator ped =
pedestals.begin() + firstStrip;
30 std::vector<int16_t>::iterator outDigi =
output.begin();
32 while (inDigi !=
input.end()) {
33 *outDigi =
eval(*inDigi) - *ped + ((*ped > 895) ? 1024 : 0);
44 edm::LogError(
"SiStripPedestalsSubtractor") <<
"[SiStripPedestalsSubtractor::subtract] DetId " <<
id 45 <<
" propagating error from SiStripPedestal" <<
e.what();
const Range getRange(const uint32_t &detID) const
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
void subtract(const edm::DetSet< SiStripRawDigi > &input, std::vector< int16_t > &output)
void allPeds(std::vector< int > &pefs, const Range &range) const
std::pair< ContainerIterator, ContainerIterator > Range
Log< level::Error, false > LogError
const SiStripPedestals * pedestalsHandle
static std::string const input
ap_fixed< 16, 8 > input_t
edm::ESGetToken< SiStripPedestals, SiStripPedestalsRcd > pedestalsToken_
void init(const edm::EventSetup &)
std::vector< int > pedestals
edm::ESWatcher< SiStripPedestalsRcd > pedestalsWatcher_
bool check(const edm::EventSetup &iSetup)
void subtract_(uint32_t detId, uint16_t firstAPV, const input_t &input, std::vector< int16_t > &output)