17 :
MeasurementDet(gdet), index_(-1), theDetConditions(&conditions) {
18 if (dynamic_cast<const StripGeomDetUnit*>(gdet) ==
nullptr) {
19 throw MeasurementDetException(
"TkStripMeasurementDet constructed with a GeomDet which is not a StripGeomDetUnit");
33 if (
accept(cluster,
data.stripClustersToSkip()))
51 if (
accept(cluster,
data.stripClustersToSkip()))
54 LogDebug(
"TkStripMeasurementDet") <<
"skipping this str from last iteration on" <<
rawId()
55 <<
" key: " << cluster.
key();
67 auto oldSize =
result.size();
73 auto rightCluster = std::find_if(
76 std::vector<SiStripRecHit2D>
tmp;
79 auto leftCluster = rightCluster;
82 bool isCompatible =
filteredRecHits(clusterref, cpepar, stateOnThisDet, est,
data.stripClustersToSkip(),
tmp);
90 for (; rightCluster !=
detSet.
end(); rightCluster++) {
92 bool isCompatible =
filteredRecHits(clusterref, cpepar, stateOnThisDet, est,
data.stripClustersToSkip(),
tmp);
100 return result.size() > oldSize;
106 std::vector<SiStripRecHit2D>&
result)
const {
110 auto oldSize =
result.size();
116 auto rightCluster = std::find_if(
121 auto leftCluster = rightCluster;
129 for (; rightCluster !=
detSet.
end(); rightCluster++) {
136 return result.size() > oldSize;
143 std::vector<float>& diffs)
const {
147 auto oldSize =
result.size();
153 auto rightCluster = std::find_if(
158 auto leftCluster = rightCluster;
167 for (; rightCluster !=
detSet.
end(); rightCluster++) {
175 return result.size() > oldSize;
183 LogDebug(
"TkStripMeasurementDet") <<
" found an inactive module " <<
rawId();
189 LogDebug(
"TkStripMeasurementDet") <<
" found hit on this module " <<
rawId();
191 std::vector<float> diffs;
221 std::vector<SiStripRecHit2D>&
result)
const {
228 for (
auto const& ci :
detSet) {
234 LogDebug(
"TkStripMeasurementDet") <<
"skipping this str from last iteration on" <<
rawId()
244 return std::tuple<TkStripRecHitIter, TkStripRecHitIter>();
251 while (!
hi.empty()) {
252 auto ci =
hi.clusterI;
253 auto const&
data = *
hi.data;
257 if (
accept(cluster,
data.stripClustersToSkip()))
265 auto ci =
hi.clusterI;
266 auto const&
data = *
hi.data;
267 auto const& ltp = *
hi.tsos;
275 int16_t
start = (int16_t)std::max<float>(utraj - 3.
f * uerr, 0);
276 int16_t
end = (int16_t)std::min<float>(utraj + 3.
f * uerr,
totalStrips());
288 typedef std::vector<BadStripBlock>::const_iterator BSBIT;
290 int16_t bad = 0, largestBadBlock = 0;
292 if (bsbc->last <
start)
294 if (bsbc->first >
end)
297 if (thisBad > largestBadBlock)
298 largestBadBlock = thisBad;