RecoLocalTracker
SiStripZeroSuppression
src
PercentileCMNSubtractor.cc
Go to the documentation of this file.
1
#include "
RecoLocalTracker/SiStripZeroSuppression/interface/PercentileCMNSubtractor.h
"
2
3
void
PercentileCMNSubtractor::subtract
(uint32_t detId, uint16_t firstAPV, std::vector<int16_t>& digis) {
4
subtract_
(detId, firstAPV, digis);
5
}
6
void
PercentileCMNSubtractor::subtract
(uint32_t detId, uint16_t firstAPV, std::vector<float>& digis) {
7
subtract_
(detId, firstAPV, digis);
8
}
9
10
template
<
typename
T>
11
inline
void
PercentileCMNSubtractor::subtract_
(uint32_t detId, uint16_t firstAPV, std::vector<T>& digis) {
12
std::vector<T>
tmp
;
13
tmp
.reserve(128);
14
typename
std::vector<T>::iterator
strip
(digis.begin()),
end
(digis.end()), endAPV;
15
16
_vmedians
.clear();
17
18
while
(
strip
<
end
) {
19
endAPV =
strip
+ 128;
20
tmp
.clear();
21
tmp
.insert(
tmp
.end(),
strip
, endAPV);
22
const
float
offset
=
percentile
(
tmp
,
percentile_
);
23
24
_vmedians
.push_back(std::pair<short, float>((
strip
- digis.begin()) / 128 + firstAPV,
offset
));
25
26
while
(
strip
< endAPV) {
27
*
strip
= static_cast<T>(*
strip
-
offset
);
28
strip
++;
29
}
30
}
31
}
32
33
template
<
typename
T>
34
inline
float
PercentileCMNSubtractor::percentile
(std::vector<T>&
sample
,
double
pct) {
35
typename
std::vector<T>::iterator mid =
sample
.begin() +
int
(
sample
.size() * pct / 100.0);
36
std::nth_element(
sample
.begin(), mid,
sample
.end());
37
return
*mid;
38
}
PercentileCMNSubtractor::percentile
float percentile(std::vector< T > &, double)
Definition:
PercentileCMNSubtractor.cc:34
simplePhotonAnalyzer_cfi.sample
sample
Definition:
simplePhotonAnalyzer_cfi.py:12
SiStripCommonModeNoiseSubtractor::_vmedians
std::vector< std::pair< short, float > > _vmedians
Definition:
SiStripCommonModeNoiseSubtractor.h:25
PercentileCMNSubtractor::percentile_
double percentile_
Definition:
PercentileCMNSubtractor.h:17
digitizers_cfi.strip
strip
Definition:
digitizers_cfi.py:19
createJobs.tmp
tmp
align.sh
Definition:
createJobs.py:716
end
#define end
Definition:
vmac.h:39
PercentileCMNSubtractor.h
createfilelist.int
int
Definition:
createfilelist.py:10
PercentileCMNSubtractor::subtract
void subtract(uint32_t detId, uint16_t firstAPV, std::vector< int16_t > &digis) override
Definition:
PercentileCMNSubtractor.cc:3
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition:
hltrates_dqm_sourceclient-live_cfg.py:78
PercentileCMNSubtractor::subtract_
void subtract_(uint32_t detId, uint16_t firstAPV, std::vector< T > &digis)
Definition:
PercentileCMNSubtractor.cc:11
Generated for CMSSW Reference Manual by
1.8.16