Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
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
mps_fire.end
end
Definition:
mps_fire.py:242
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:82
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