11 : theNumberOfStrips(ns), thePitch(
p), theDistToBeam(r0), theDetHeight(
l) {
15 edm::LogVerbatim(
"CommonTopologies") <<
"Constructing TrapezoidalStripTopology with nstrips = " << ns
16 <<
" pitch = " <<
p <<
" length = " <<
l <<
" r0 =" << r0;
21 : theNumberOfStrips(ns), thePitch(
p), theDistToBeam(r0), theDetHeight(
l), theYAxOr(yAx) {
24 edm::LogVerbatim(
"CommonTopologies") <<
"Constructing TrapezoidalStripTopology with nstrips = " << ns
25 <<
" pitch = " <<
p <<
" length = " <<
l <<
" r0 =" << r0
26 <<
" yAxOrientation =" << yAx;
41 float lt, lc2, ls2, lslc;
42 float localL2, localP2;
46 lc2 = 1.f / (1. + lt * lt);
52 sp2 = stripErr2 * localP2;
53 return LocalError(lc2 * sp2 + ls2 * sl2, lslc * (sp2 - sl2), ls2 * sp2 + lc2 * sl2);
57 float lt, lc2, ls2, lslc;
62 lc2 = 1. / (1. + lt * lt);
67 sp2 = merr.
uu() * localP * localP;
68 sl2 = merr.
vv() * localL * localL;
69 spl = merr.
uv() * localP * localL;
70 return LocalError(lc2 * sp2 + ls2 * sl2 - 2 * lslc * spl,
71 lslc * (sp2 - sl2) + (lc2 - ls2) * spl,
72 ls2 * sp2 + lc2 * sl2 + 2 * lslc * spl);
90 float lt, lc2, ls2, lslc;
94 lc2 = 1. / (1. + lt * lt);
99 sp2 = lc2 * lerr.
xx() + ls2 * lerr.
yy() + 2 * lslc * lerr.
xy();
100 sl2 = ls2 * lerr.
xx() + lc2 * lerr.
yy() - 2 * lslc * lerr.
xy();
101 spl = lslc * (lerr.
yy() - lerr.
xx()) + (lc2 - ls2) * lerr.
xy();
102 return MeasurementError(sp2 / (localP * localP), spl / (localP * localL), sl2 / (localL * localL));
MeasurementPoint measurementPosition(const LocalPoint &) const override
Log< level::Info, true > LogVerbatim
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