Go to the documentation of this file.
15 const float fullProjection =
p.coveredStrips(
track +
p.drift,
pos);
18 const float absProj = fabs(fullProjection);
24 const std::vector<stats_t<float> >
Q =
28 const float corrected =
29 strip() - 0.5 * (1 -
p.backplanecorrection) * fullProjection + 0.5 *
p.coveredStrips(
track, ltp.
position());
32 return std::make_pair(
p.topology->localPosition(corrected, ltp.
vector()),
33 p.topology->localError(corrected, error2, ltp.
vector()));
45 if (
proj() < wc.
N - 2)
74 if (
proj() > wc.
N - 1)
78 if (
proj() < wc.
N - 3)
80 if (
proj() < wc.
N - 2)
82 if (wc.
eta().sigmaFrom(0) < 3)
89 if (wc.
sign() * wc.
eta()() > 1. / (wc.
N - 1))
100 :
N(
Q.
size() - 2), clusterFirst(
Q.begin() + 1),
first(clusterFirst) {}
103 if (
eta().sigmaFrom(0) < 1) {
131 sumXQ += (
i - clusterFirst) * (*i);
132 return sumXQ /
sumQ() + 0.5;
146 return N * (1 +
sign() *
eta()).inverse();
static std::vector< stats_t< float > > unfold(const SiStripCluster &q, const float x)
stats_t< float > smallerEdgeStrip() const
stats_t< float > eta() const
WrappedCluster(const std::vector< stats_t< float > > &)
void addSuppressedEdgeStrip()
stats_t< float > geometric_position(const WrappedCluster &, const stats_t< float > &) const
stats_t< float > centroid() const
bool ambiguousSize(const WrappedCluster &, const stats_t< float > &) const
stats_t< float > offset_from_firstStrip(const std::vector< stats_t< float > > &, const stats_t< float > &) const
Param const & param(const GeomDetUnit &det) const
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
uint16_t firstStrip() const
std::vector< float > xtalk1
stats_t< float > maxProjection() const
LocalPoint position() const
Local x and y position coordinates.
const float scaling_squared
static stats_t from_relative_uncertainty2(T q, T re2)
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &, const GeomDetUnit &, const LocalTrajectoryParameters &) const override
AlgebraicVector5 vector() const
void dropSmallerEdgeStrip()
stats_t< float > sumQ() const
const float tan_diffusion_angle
const float minimum_uncertainty_squared
LocalVector momentum() const
Momentum vector in the local frame.
const float maybe_noise_threshold
bool useNMinusOne(const WrappedCluster &, const stats_t< float > &) const
bool useNPlusOne(const WrappedCluster &, const stats_t< float > &) const
Power< A, B >::type pow(const A &a, const B &b)
const float noise_threshold
std::pair< LocalPoint, LocalError > LocalValues
const float thickness_rel_err2