8 : theNumberOfStrips(ns), thePitch(
p), theDistToBeam(r0), theDetHeight(
l) {
12 cout <<
"Constructing TrapezoidalStripTopology with" 13 <<
" nstrips = " << ns <<
" pitch = " <<
p <<
" length = " <<
l <<
" r0 =" << r0 << endl;
18 : theNumberOfStrips(ns), thePitch(
p), theDistToBeam(r0), theDetHeight(
l), theYAxOr(yAx) {
21 cout <<
"Constructing TrapezoidalStripTopology with" 22 <<
" nstrips = " << ns <<
" pitch = " <<
p <<
" length = " <<
l <<
" r0 =" << r0 <<
" yAxOrientation =" << yAx
38 float lt, lc2, ls2, lslc;
39 float localL2, localP2;
43 lc2 = 1.f / (1. + lt * lt);
49 sp2 = stripErr2 * localP2;
50 return LocalError(lc2 * sp2 + ls2 * sl2, lslc * (sp2 - sl2), ls2 * sp2 + lc2 * sl2);
54 float lt, lc2, ls2, lslc;
59 lc2 = 1. / (1. + lt * lt);
64 sp2 = merr.
uu() * localP * localP;
65 sl2 = merr.
vv() * localL * localL;
66 spl = merr.
uv() * localP * localL;
67 return LocalError(lc2 * sp2 + ls2 * sl2 - 2 * lslc * spl,
68 lslc * (sp2 - sl2) + (lc2 - ls2) * spl,
69 ls2 * sp2 + lc2 * sl2 + 2 * lslc * spl);
87 float lt, lc2, ls2, lslc;
91 lc2 = 1. / (1. + lt * lt);
96 sp2 = lc2 * lerr.
xx() + ls2 * lerr.
yy() + 2 * lslc * lerr.
xy();
97 sl2 = ls2 * lerr.
xx() + lc2 * lerr.
yy() - 2 * lslc * lerr.
xy();
98 spl = lslc * (lerr.
yy() - lerr.
xx()) + (lc2 - ls2) * lerr.
xy();
99 return MeasurementError(sp2 / (localP * localP), spl / (localP * localL), sl2 / (localL * localL));
MeasurementPoint measurementPosition(const LocalPoint &) const override
float localStripLength(const LocalPoint &aLP) const override
Point3DBase< Scalar, LocalTag > LocalPoint
virtual float shiftOffset(float pitch_fraction)
int nstrips() const override
int channel(const LocalPoint &) const override
float stripAngle(float strip) const override
float localPitch(const LocalPoint &) const override
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
float strip(const LocalPoint &) const override
TrapezoidalStripTopology(int nstrip, float pitch, float detheight, float r0)
float pitch() const override
LocalError localError(float strip, float stripErr2) const override
LocalPoint localPosition(float strip) const override