10 theNumberOfStrips(ns), thePitch(p),
11 theDistToBeam(r0), theDetHeight(l) {
15 cout<<
"Constructing TrapezoidalStripTopology with" 31 cout<<
"Constructing TrapezoidalStripTopology with" 36 <<
" yAxOrientation ="<<yAx
56 float lt,lc2,ls2,lslc;
57 float localL2,localP2;
67 sp2 = stripErr2*localP2;
76 float lt,lc2,ls2,lslc;
86 sp2 = merr.
uu() * localP*localP;
87 sl2 = merr.
vv() * localL*localL;
88 spl = merr.
uv() * localP*localL;
90 lslc*(sp2-sl2)+(lc2-ls2)*spl,
91 ls2*sp2+lc2*sl2+2*lslc*spl);
98 if (aStrip < 0 ) aStrip = 0;
113 float lt,lc2,ls2,lslc;
122 sp2 = lc2*lerr.
xx()+ls2*lerr.
yy()+2*lslc*lerr.
xy();
123 sl2 = ls2*lerr.
xx()+lc2*lerr.
yy()-2*lslc*lerr.
xy();
124 spl = lslc*(lerr.
yy()-lerr.
xx())+(lc2-ls2)*lerr.
xy();
127 sl2/(localL*localL));
Point3DBase< Scalar, LocalTag > LocalPoint
LocalPoint localPosition(float strip) const override
virtual float shiftOffset(float pitch_fraction)
float localPitch(const LocalPoint &) const override
LocalError localError(float strip, float stripErr2) const override
float strip(const LocalPoint &) const override
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
float pitch() const override
TrapezoidalStripTopology(int nstrip, float pitch, float detheight, float r0)
int channel(const LocalPoint &) const override
float stripAngle(float strip) const override
MeasurementPoint measurementPosition(const LocalPoint &) const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
int nstrips() const override
float localStripLength(const LocalPoint &aLP) const override