CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
TkRadialStripTopology Class Referencefinal

#include <TkRadialStripTopology.h>

Inheritance diagram for TkRadialStripTopology:
RadialStripTopology StripTopology Topology

Public Member Functions

float angularWidth () const override
 
float centreToIntersection () const override
 
int channel (const LocalPoint &) const override
 
float coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const override
 
float detHeight () const override
 
LocalError localError (const MeasurementPoint &, const MeasurementError &) const override
 
LocalError localError (float strip, float stripErr2) const override
 
float localPitch (const LocalPoint &) const override
 
LocalPoint localPosition (const MeasurementPoint &) const override
 
LocalPoint localPosition (float strip) const override
 
float localStripLength (const LocalPoint &) const override
 
MeasurementError measurementError (const LocalPoint &, const LocalError &) const override
 
MeasurementPoint measurementPosition (const LocalPoint &) const override
 
int nearestStrip (const LocalPoint &) const override
 
int nstrips () const override
 
float originToIntersection () const override
 
float phiOfOneEdge () const override
 
float phiPitch (void) const override
 
float strip (const LocalPoint &) const override
 
float stripAngle (float strip) const override
 
float stripLength () const override
 
 TkRadialStripTopology (int ns, float aw, float dh, float r, int yAx=1, float yMid=0.)
 
float xOfStrip (int strip, float y) const override
 
float yAxisOrientation () const override
 
float yCentreOfStripPlane () const override
 
float yDistanceToIntersection (float y) const override
 
float yExtentOfStripPlane () const override
 
 ~TkRadialStripTopology () override
 
- Public Member Functions inherited from RadialStripTopology
virtual LocalError localError (float strip, float stripErr2) const=0
 
virtual LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (float strip) const=0
 
virtual LocalPoint localPosition (float strip, const Topology::LocalTrackPred &) const
 conversion taking also the predicted track state More...
 
float pitch () const final
 
 ~RadialStripTopology () override
 
- Public Member Functions inherited from StripTopology
virtual LocalError localError (const MeasurementPoint &, const MeasurementError &) const=0
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual float localPitch (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual LocalPoint localPosition (const MeasurementPoint &) const=0
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (float strip, const Topology::LocalTrackPred &) const
 conversion taking also the predicted track state More...
 
virtual float localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual float strip (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
 ~StripTopology () override
 
- Public Member Functions inherited from Topology
virtual int channel (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual MeasurementError measurementError (const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual MeasurementPoint measurementPosition (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual ~Topology ()
 

Private Attributes

float theAngularWidth
 
float theAWidthInverse
 
float theCentreToIntersection
 
float theDetHeight
 
int theNumberOfStrips
 
float thePhiOfOneEdge
 
double theRadialSigma
 
float theTanAW
 
float theTanOfOneEdge
 
float theYAxisOrientation
 
float yCentre
 

Additional Inherited Members

- Public Types inherited from Topology
typedef Point2DBase< double, LocalTagLocal2DPoint
 
typedef Vector2D::MathVector MathVector2D
 
typedef Basic2DVector< double > Vector2D
 

Detailed Description

A StripTopology in which the component strips subtend a constant angular width, and, if projected, intersect at a point.

Author
Tim Cox

WARNING! Wherever 'float strip' is used the units of 'strip' are angular widths of each strip. The range is from 0.0 at the extreme edge of the 'first' strip at one edge of the detector, to nstrip*angular width at the other edge.
The centre of the first strip is at strip = 0.5
The centre of the last strip is at strip = 0.5 + (nstrip-1)
This is for consistency with CommonDet usage of 'float strip' (but where units are strip pitch rather than strip angular width.)

WARNING! If the mid-point along local y of the plane of strips does not correspond to the local coordinate origin, set the final ctor argument appropriately.

this version is optimized for tracker and is FINAL

Definition at line 28 of file TkRadialStripTopology.h.

Constructor & Destructor Documentation

◆ TkRadialStripTopology()

TkRadialStripTopology::TkRadialStripTopology ( int  ns,
float  aw,
float  dh,
float  r,
int  yAx = 1,
float  yMid = 0. 
)

Constructor from:

Parameters
nsnumber of strips
awangular width of a strip
dhdetector height (usually 2 x apothem of TrapezoidalPlaneBounds)
rradial distance from symmetry centre of detector to the point at which the outer edges of the two extreme strips (projected) intersect.
yAxorientation of local y axis: 1 means pointing from the smaller side of the module to the larger side (along apothem), and -1 means in the opposite direction, i.e. from the larger side along the apothem to the smaller side. Default value is 1.
yMidlocal y offset if mid-point of detector (strip plane) does not coincide with local origin. This decouples the extent of strip plane from the boundary of the detector in which the RST is embedded.

Definition at line 69 of file TkRadialStripTopology.cc.

70  : theNumberOfStrips(ns),
71  theAngularWidth(aw),
72  theAWidthInverse(1.f / aw),
73  theTanAW(std::tan(aw)),
77  yCentre(yMid),
78  theRadialSigma(std::pow(dh, 2.f) * (1.f / 12.f)) {
79  // Angular offset of extreme edge of detector, so that angle is
80  // zero for a strip lying along local y axis = long symmetry axis of plane of strips
81  thePhiOfOneEdge = -(0.5 * theNumberOfStrips) * theAngularWidth; // always negative!
83  assert(std::abs(thePhiOfOneEdge) < 0.15); //
84 
85  LogTrace("TkRadialStripTopology") << "TkRadialStripTopology: constructed with"
86  << " strips = " << ns << " width = " << aw << " rad "
87  << " det_height = " << dh << " ctoi = " << r << " phi_edge = " << thePhiOfOneEdge
88  << " rad "
89  << " y_ax_ori = " << theYAxisOrientation << " y_det_centre = " << yCentre << "\n";
90 }

References funct::abs(), cms::cuda::assert(), cuy::dh, LogTrace, alignCSCRings::r, funct::tan(), theAngularWidth, theNumberOfStrips, thePhiOfOneEdge, theTanOfOneEdge, theYAxisOrientation, and yCentre.

◆ ~TkRadialStripTopology()

TkRadialStripTopology::~TkRadialStripTopology ( )
inlineoverride

Destructor

Definition at line 49 of file TkRadialStripTopology.h.

49 {}

Member Function Documentation

◆ angularWidth()

float TkRadialStripTopology::angularWidth ( ) const
inlineoverridevirtual

Angular width of a each strip

Implements RadialStripTopology.

Definition at line 164 of file TkRadialStripTopology.h.

164 { return theAngularWidth; }

References theAngularWidth.

Referenced by StripCPE::fillParams(), localError(), measurementError(), phiPitch(), and stripAngle().

◆ centreToIntersection()

float TkRadialStripTopology::centreToIntersection ( ) const
inlineoverridevirtual

Distance from the intersection of the projections of the extreme edges of the two extreme strips to the symmetry centre of the plane of strips.

Implements RadialStripTopology.

Definition at line 186 of file TkRadialStripTopology.h.

186 { return theCentreToIntersection; }

References theCentreToIntersection.

Referenced by localError().

◆ channel()

int TkRadialStripTopology::channel ( const LocalPoint lp) const
overridevirtual

Channel number corresponding to a given LocalPoint.
This is effectively an integer version of strip(), with range 0 to nstrips-1.
LocalPoints outside the detector strip plane will be considered as contributing to the edge channels 0 or nstrips-1.

Implements RadialStripTopology.

Definition at line 92 of file TkRadialStripTopology.cc.

92  {
93  return std::min(int(strip(lp)), theNumberOfStrips - 1);
94 }

References min(), strip(), and theNumberOfStrips.

◆ coveredStrips()

float TkRadialStripTopology::coveredStrips ( const LocalPoint lp1,
const LocalPoint lp2 
) const
overridevirtual

Reimplemented from StripTopology.

Definition at line 119 of file TkRadialStripTopology.cc.

119  {
120  // http://en.wikipedia.org/wiki/List_of_trigonometric_identities#Angle_sum_and_difference_identities
121  // atan(a)-atan(b) = atan( (a-b)/(1+a*b) )
122  // avoid divisions
123  // float t1 = lp1.x()/yDistanceToIntersection( lp1.y() );
124  // float t2 = lp2.x()/yDistanceToIntersection( lp2.y() );
125  // float t = (t1-t2)/(1.+t1*t2);
126  auto y1 = yDistanceToIntersection(lp1.y());
127  auto y2 = yDistanceToIntersection(lp2.y());
128  auto x1 = lp1.x();
129  auto x2 = lp2.x();
130 
131  auto t = (y2 * x1 - y1 * x2) / (y1 * y2 + x1 * x2);
132 
133 #ifdef MATH_STS
134  statS.add(t);
135 #endif
136  // std::cout << "atans " << atanClip(t)
137  // <<" "<< std::atan2(lp1.x(),yDistanceToIntersection(lp1.y()) )
138  // -std::atan2(lp2.x(),yDistanceToIntersection(lp2.y()) ) << std::endl;
139  // clip???
140  return atanClip(t) * theAWidthInverse;
141  // return (measurementPosition(lp1)-measurementPosition(lp2)).x();
142 }

References submitPVValidationJobs::t, theAWidthInverse, PV3DBase< T, PVType, FrameType >::x(), testProducerWithPsetDescEmpty_cfi::x1, testProducerWithPsetDescEmpty_cfi::x2, PV3DBase< T, PVType, FrameType >::y(), testProducerWithPsetDescEmpty_cfi::y1, testProducerWithPsetDescEmpty_cfi::y2, and yDistanceToIntersection().

◆ detHeight()

float TkRadialStripTopology::detHeight ( ) const
inlineoverridevirtual

Length of long symmetry axis of plane of strips

Implements RadialStripTopology.

Definition at line 174 of file TkRadialStripTopology.h.

174 { return theDetHeight; }

References theDetHeight.

Referenced by localError(), localPosition(), localStripLength(), measurementError(), and measurementPosition().

◆ localError() [1/2]

LocalError TkRadialStripTopology::localError ( const MeasurementPoint mp,
const MeasurementError me 
) const
overridevirtual

LocalError for a given MeasurementPoint with known MeasurementError. This may be used in Kalman filtering and hence must allow possible correlations between the components.

Implements RadialStripTopology.

Definition at line 182 of file TkRadialStripTopology.cc.

182  {
183  const double phi(stripAngle(mp.x())), s1(std::sin(phi)), c1(std::cos(phi)), cs(s1 * c1), s2(s1 * s1),
184  c2(1 - s2), // rotation matrix
185 
187  c1), // tangential measurement unit (local pitch)
188  R(detHeight() / c1), // radial measurement unit (strip length)
189  tt(me.uu() * T * T), // tangential sigma^2
190  rr(me.vv() * R * R), // radial sigma^2
191  tr(me.uv() * T * R),
192 
193  xx(c2 * tt + 2 * cs * tr + s2 * rr), yy(s2 * tt - 2 * cs * tr + c2 * rr), xy(cs * (rr - tt) + tr * (c2 - s2));
194 
195  return LocalError(xx, xy, yy);
196 }

References angularWidth(), alignmentValidation::c1, centreToIntersection(), funct::cos(), fwrapper::cs, detHeight(), hlt_dqm_clientPB-live_cfg::me, phi, dttmaxenums::R, findQualityFiles::rr, indexGen::s2, funct::sin(), stripAngle(), groupFilesInBlocks::tt, PV2DBase< T, PVType, FrameType >::x(), geometryCSVtoXML::xx, geometryCSVtoXML::xy, PV2DBase< T, PVType, FrameType >::y(), yAxisOrientation(), and geometryCSVtoXML::yy.

◆ localError() [2/2]

LocalError TkRadialStripTopology::localError ( float  strip,
float  stripErr2 
) const
overridevirtual

LocalError for a pure strip measurement, where 'strip' is the (float) position (a 'phi' angle wrt y axis) and stripErr2 is the sigma-squared. Both quantities are expressed in units of theAngularWidth of a strip.

Implements RadialStripTopology.

Definition at line 166 of file TkRadialStripTopology.cc.

166  {
167  double phi = stripAngle(strip);
168 
169  const double t1(tan15(phi)), // std::tan(phif)), // (vdt::fast_tanf(phif)),
170  t2(t1 * t1),
171  // s1(std::sin(phi)), c1(std::cos(phi)),
172  // cs(s1*c1), s2(s1*s1), c2(1-s2), // rotation matrix
173 
174  tt(stripErr2 * std::pow(centreToIntersection() * angularWidth(), 2.f)), // tangential sigma^2 *c2
175  rr(theRadialSigma), // radial sigma^2( uniform prob density along strip) *c2
176 
177  xx(tt + t2 * rr), yy(t2 * tt + rr), xy(t1 * (rr - tt));
178 
179  return LocalError(xx, xy, yy);
180 }

References angularWidth(), centreToIntersection(), f, phi, funct::pow(), findQualityFiles::rr, strip(), stripAngle(), RandomServiceHelper::t1, RandomServiceHelper::t2, theRadialSigma, groupFilesInBlocks::tt, geometryCSVtoXML::xx, geometryCSVtoXML::xy, and geometryCSVtoXML::yy.

◆ localPitch()

float TkRadialStripTopology::localPitch ( const LocalPoint lp) const
overridevirtual

Pitch (strip width) at a given LocalPoint.
BEWARE: are you sure you really want to call this for a RadialStripTopology?

Implements RadialStripTopology.

Definition at line 214 of file TkRadialStripTopology.cc.

214  {
215  // this should be ~ y*(tan(phi+aw)-tan(phi)) = -x + y*(tan(aw)+tan(phi))/(1.f-tan(aw)*tan(phi)) tan(phi)=x/y
216  float y = yDistanceToIntersection(lp.y());
217  float x = std::abs(lp.x());
218  return y * (y * theTanAW + x) / (y - theTanAW * x) - x;
219 }

References funct::abs(), theTanAW, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), and yDistanceToIntersection().

Referenced by StripCPE::fillParams().

◆ localPosition() [1/2]

LocalPoint TkRadialStripTopology::localPosition ( const MeasurementPoint mp) const
overridevirtual

LocalPoint for a given MeasurementPoint
What's a MeasurementPoint?
In analogy with that used with TrapezoidalStripTopology objects, a MeasurementPoint is a 2-dim object.
The first dimension measures the angular position wrt central line of symmetry of detector, in units of strip (angular) widths (range 0 to total angle subtended by a detector).
The second dimension measures the fractional position along the strip (range -0.5 to +0.5).
BEWARE! The components are not Cartesian.

Implements RadialStripTopology.

Definition at line 148 of file TkRadialStripTopology.cc.

148  {
149  const float // y = (L/cos(phi))*mp.y()*cos(phi)
150  y(mp.y() * detHeight() + yCentreOfStripPlane()),
152  return LocalPoint(x, y);
153 }

References detHeight(), stripAngle(), x, PV2DBase< T, PVType, FrameType >::x(), y, PV2DBase< T, PVType, FrameType >::y(), yAxisOrientation(), yCentreOfStripPlane(), and yDistanceToIntersection().

◆ localPosition() [2/2]

LocalPoint TkRadialStripTopology::localPosition ( float  strip) const
overridevirtual

LocalPoint on x axis for given 'strip' 'strip' is a float in units of the strip (angular) width

Implements RadialStripTopology.

Definition at line 144 of file TkRadialStripTopology.cc.

144  {
146 }

References originToIntersection(), strip(), stripAngle(), and yAxisOrientation().

◆ localStripLength()

float TkRadialStripTopology::localStripLength ( const LocalPoint lp) const
overridevirtual

Length of a strip passing through a given LocalPpoint

Implements RadialStripTopology.

Definition at line 104 of file TkRadialStripTopology.cc.

104  {
105  return detHeight() * std::sqrt(1.f + std::pow(lp.x() / yDistanceToIntersection(lp.y()), 2.f));
106 }

References detHeight(), f, funct::pow(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and yDistanceToIntersection().

◆ measurementError()

MeasurementError TkRadialStripTopology::measurementError ( const LocalPoint p,
const LocalError e 
) const
overridevirtual

Implements RadialStripTopology.

Definition at line 198 of file TkRadialStripTopology.cc.

198  {
199  const double yHitToInter(yDistanceToIntersection(p.y())),
200  t(yAxisOrientation() * p.x() / yHitToInter), // tan(strip angle)
201  cs(t / (1 + t * t)), s2(t * cs), c2(1 - s2), // rotation matrix
202 
203  T2(1. / (std::pow(angularWidth(), 2.f) *
204  (std::pow(p.x(), 2.f) + std::pow(yHitToInter, 2)))), // 1./tangential measurement unit (local pitch) ^2
205  R2(c2 / std::pow(detHeight(), 2.f)), // 1./ radial measurement unit (strip length) ^2
206 
207  uu((c2 * e.xx() - 2 * cs * e.xy() + s2 * e.yy()) * T2), vv((s2 * e.xx() + 2 * cs * e.xy() + c2 * e.yy()) * R2),
208  uv((cs * (e.xx() - e.yy()) + e.xy() * (c2 - s2)) * std::sqrt(T2 * R2));
209 
210  return MeasurementError(uu, uv, vv);
211 }

References angularWidth(), fwrapper::cs, detHeight(), MillePedeFileConverter_cfg::e, f, AlCaHLTBitMon_ParallelJobs::p, funct::pow(), indexGen::s2, mathSSE::sqrt(), submitPVValidationJobs::t, yAxisOrientation(), and yDistanceToIntersection().

◆ measurementPosition()

MeasurementPoint TkRadialStripTopology::measurementPosition ( const LocalPoint lp) const
overridevirtual

Implements RadialStripTopology.

Definition at line 155 of file TkRadialStripTopology.cc.

155  {
156  // phi is [pi/2 - conventional local phi], use atan2(x,y) rather than atan2(y,x)
157  // clip ( at pi/8 or detedge+tollerance?)
158  float t = lp.x() / yDistanceToIntersection(lp.y());
159 #ifdef MATH_STS
160  statM.add(t);
161 #endif
162  const float phi = atanClip(t);
164 }

References detHeight(), phi, phiOfOneEdge(), submitPVValidationJobs::t, theAWidthInverse, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), yCentreOfStripPlane(), and yDistanceToIntersection().

◆ nearestStrip()

int TkRadialStripTopology::nearestStrip ( const LocalPoint lp) const
overridevirtual

Nearest strip to given LocalPoint

Implements RadialStripTopology.

Definition at line 96 of file TkRadialStripTopology.cc.

96  {
97  return std::min(nstrips(), static_cast<int>(std::max(float(0), strip(lp))) + 1);
98 }

References SiStripPI::max, min(), nstrips(), and strip().

◆ nstrips()

int TkRadialStripTopology::nstrips ( ) const
inlineoverridevirtual

Total number of strips

Implements RadialStripTopology.

Definition at line 127 of file TkRadialStripTopology.h.

127 { return theNumberOfStrips; }

References theNumberOfStrips.

Referenced by nearestStrip(), and strip().

◆ originToIntersection()

float TkRadialStripTopology::originToIntersection ( ) const
inlineoverridevirtual

(y) distance from intersection of the projections of the strips to the local coordinate origin. Same as centreToIntersection() if symmetry centre of strip plane coincides with local origin.

Implements RadialStripTopology.

Definition at line 193 of file TkRadialStripTopology.h.

193 { return (theCentreToIntersection - yCentre); }

References theCentreToIntersection, and yCentre.

Referenced by localPosition(), and yDistanceToIntersection().

◆ phiOfOneEdge()

float TkRadialStripTopology::phiOfOneEdge ( ) const
inlineoverridevirtual

Convenience function to access azimuthal angle of extreme edge of first strip measured relative to long symmetry axis of the plane of strips.

WARNING! This angle is measured clockwise from the local y axis which means it is in the conventional azimuthal phi plane, but azimuth is of course measured from local x axis not y. The range of this angle is -(full angle)/2 to +(full angle)/2.
where (full angle) = nstrips() * angularWidth().

Implements RadialStripTopology.

Definition at line 207 of file TkRadialStripTopology.h.

207 { return thePhiOfOneEdge; }

References thePhiOfOneEdge.

Referenced by measurementPosition(), strip(), and stripAngle().

◆ phiPitch()

float TkRadialStripTopology::phiPitch ( void  ) const
inlineoverridevirtual

Phi pitch of each strip (= angular width!)

Implements RadialStripTopology.

Definition at line 169 of file TkRadialStripTopology.h.

169 { return angularWidth(); }

References angularWidth().

◆ strip()

float TkRadialStripTopology::strip ( const LocalPoint lp) const
overridevirtual

Strip in which a given LocalPoint lies. This is a float which represents the fractional strip position within the detector.
Returns zero if the LocalPoint falls at the extreme low edge of the detector or BELOW, and float(nstrips) if it falls at the extreme high edge or ABOVE.

Implements RadialStripTopology.

Definition at line 112 of file TkRadialStripTopology.cc.

112  {
113  // phi is measured from y axis --> sign of angle is sign of x * yAxisOrientation --> use atan2(x,y), not atan2(y,x)
114  const float phi = atanClip(lp.x() / yDistanceToIntersection(lp.y()));
115  const float aStrip = (phi - phiOfOneEdge()) * theAWidthInverse;
116  return std::max(float(0), std::min((float)nstrips(), aStrip));
117 }

References SiStripPI::max, min(), nstrips(), phi, phiOfOneEdge(), theAWidthInverse, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and yDistanceToIntersection().

Referenced by channel(), localError(), localPosition(), nearestStrip(), stripAngle(), and xOfStrip().

◆ stripAngle()

float TkRadialStripTopology::stripAngle ( float  strip) const
inlineoverridevirtual

Angle between strip and symmetry axis (=local y axis) for given strip.
This is like a phi angle but measured clockwise from y axis rather than counter clockwise from x axis. Note that 'strip' is a float with a continuous range from 0 to float(nstrips) to cover the whole detector, and the centres of strips correspond to half-integer values 0.5, 1.5, ..., nstrips-0.5 whereas values 1, 2, ... nstrips correspond to the upper phi edges of the strips.

Implements RadialStripTopology.

Definition at line 120 of file TkRadialStripTopology.h.

120  {
121  return yAxisOrientation() * (phiOfOneEdge() + strip * angularWidth());
122  }

References angularWidth(), phiOfOneEdge(), strip(), and yAxisOrientation().

Referenced by localError(), localPosition(), and xOfStrip().

◆ stripLength()

float TkRadialStripTopology::stripLength ( ) const
inlineoverridevirtual

Height of detector (= length of long symmetry axis of the plane of strips).

Implements RadialStripTopology.

Definition at line 132 of file TkRadialStripTopology.h.

132 { return theDetHeight; }

References theDetHeight.

Referenced by StripCPE::fillParams().

◆ xOfStrip()

float TkRadialStripTopology::xOfStrip ( int  strip,
float  y 
) const
overridevirtual

Local x where centre of strip intersects input local y
'strip' should be in range 1 to nstrips()

Implements RadialStripTopology.

Definition at line 108 of file TkRadialStripTopology.cc.

108  {
109  return yAxisOrientation() * yDistanceToIntersection(y) * std::tan(stripAngle(static_cast<float>(strip) - 0.5f));
110 }

References f, strip(), stripAngle(), funct::tan(), y, yAxisOrientation(), and yDistanceToIntersection().

◆ yAxisOrientation()

float TkRadialStripTopology::yAxisOrientation ( ) const
inlineoverridevirtual

y axis orientation, 1 means detector width increases with local y

Implements RadialStripTopology.

Definition at line 223 of file TkRadialStripTopology.h.

223 { return theYAxisOrientation; }

References theYAxisOrientation.

Referenced by localError(), localPosition(), measurementError(), stripAngle(), xOfStrip(), and yDistanceToIntersection().

◆ yCentreOfStripPlane()

float TkRadialStripTopology::yCentreOfStripPlane ( ) const
inlineoverridevirtual

Offset in local y between midpoint of detector (strip plane) extent and local origin

Implements RadialStripTopology.

Definition at line 228 of file TkRadialStripTopology.h.

228 { return yCentre; }

References yCentre.

Referenced by localPosition(), and measurementPosition().

◆ yDistanceToIntersection()

float TkRadialStripTopology::yDistanceToIntersection ( float  y) const
overridevirtual

Distance in local y from a hit to the point of intersection of projected strips

Implements RadialStripTopology.

Definition at line 100 of file TkRadialStripTopology.cc.

100  {
101  return yAxisOrientation() * y + originToIntersection();
102 }

References originToIntersection(), y, and yAxisOrientation().

Referenced by coveredStrips(), localPitch(), localPosition(), localStripLength(), measurementError(), measurementPosition(), strip(), and xOfStrip().

◆ yExtentOfStripPlane()

float TkRadialStripTopology::yExtentOfStripPlane ( ) const
inlineoverridevirtual

y extent of strip plane

Implements RadialStripTopology.

Definition at line 179 of file TkRadialStripTopology.h.

179 { return theDetHeight; } // same as detHeight()

References theDetHeight.

Member Data Documentation

◆ theAngularWidth

float TkRadialStripTopology::theAngularWidth
private

Definition at line 237 of file TkRadialStripTopology.h.

Referenced by angularWidth(), and TkRadialStripTopology().

◆ theAWidthInverse

float TkRadialStripTopology::theAWidthInverse
private

Definition at line 238 of file TkRadialStripTopology.h.

Referenced by coveredStrips(), measurementPosition(), and strip().

◆ theCentreToIntersection

float TkRadialStripTopology::theCentreToIntersection
private

Definition at line 241 of file TkRadialStripTopology.h.

Referenced by centreToIntersection(), and originToIntersection().

◆ theDetHeight

float TkRadialStripTopology::theDetHeight
private

Definition at line 240 of file TkRadialStripTopology.h.

Referenced by detHeight(), stripLength(), and yExtentOfStripPlane().

◆ theNumberOfStrips

int TkRadialStripTopology::theNumberOfStrips
private

Definition at line 236 of file TkRadialStripTopology.h.

Referenced by channel(), nstrips(), and TkRadialStripTopology().

◆ thePhiOfOneEdge

float TkRadialStripTopology::thePhiOfOneEdge
private

Definition at line 242 of file TkRadialStripTopology.h.

Referenced by phiOfOneEdge(), and TkRadialStripTopology().

◆ theRadialSigma

double TkRadialStripTopology::theRadialSigma
private

Definition at line 246 of file TkRadialStripTopology.h.

Referenced by localError().

◆ theTanAW

float TkRadialStripTopology::theTanAW
private

Definition at line 239 of file TkRadialStripTopology.h.

Referenced by localPitch().

◆ theTanOfOneEdge

float TkRadialStripTopology::theTanOfOneEdge
private

Definition at line 243 of file TkRadialStripTopology.h.

Referenced by TkRadialStripTopology().

◆ theYAxisOrientation

float TkRadialStripTopology::theYAxisOrientation
private

Definition at line 244 of file TkRadialStripTopology.h.

Referenced by TkRadialStripTopology(), and yAxisOrientation().

◆ yCentre

float TkRadialStripTopology::yCentre
private
RandomServiceHelper.t2
t2
Definition: RandomServiceHelper.py:257
DDAxes::y
TkRadialStripTopology::theNumberOfStrips
int theNumberOfStrips
Definition: TkRadialStripTopology.h:236
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
fwrapper::cs
unique_ptr< ClusterSequence > cs
Definition: fastjetfortran_madfks.cc:47
min
T min(T a, T b)
Definition: MathUtil.h:58
findQualityFiles.rr
string rr
Definition: findQualityFiles.py:185
testProducerWithPsetDescEmpty_cfi.x2
x2
Definition: testProducerWithPsetDescEmpty_cfi.py:28
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TkRadialStripTopology::yCentreOfStripPlane
float yCentreOfStripPlane() const override
Definition: TkRadialStripTopology.h:228
TkRadialStripTopology::theCentreToIntersection
float theCentreToIntersection
Definition: TkRadialStripTopology.h:241
cms::cuda::assert
assert(be >=bs)
TkRadialStripTopology::thePhiOfOneEdge
float thePhiOfOneEdge
Definition: TkRadialStripTopology.h:242
DDAxes::x
indexGen.s2
s2
Definition: indexGen.py:107
TkRadialStripTopology::detHeight
float detHeight() const override
Definition: TkRadialStripTopology.h:174
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
testProducerWithPsetDescEmpty_cfi.y1
y1
Definition: testProducerWithPsetDescEmpty_cfi.py:29
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TkRadialStripTopology::centreToIntersection
float centreToIntersection() const override
Definition: TkRadialStripTopology.h:186
TkRadialStripTopology::theTanOfOneEdge
float theTanOfOneEdge
Definition: TkRadialStripTopology.h:243
MeasurementError
Definition: MeasurementError.h:8
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
TkRadialStripTopology::theAWidthInverse
float theAWidthInverse
Definition: TkRadialStripTopology.h:238
geometryCSVtoXML.xy
xy
Definition: geometryCSVtoXML.py:19
testProducerWithPsetDescEmpty_cfi.y2
y2
Definition: testProducerWithPsetDescEmpty_cfi.py:30
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
TkRadialStripTopology::theYAxisOrientation
float theYAxisOrientation
Definition: TkRadialStripTopology.h:244
geometryCSVtoXML.yy
yy
Definition: geometryCSVtoXML.py:19
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
LocalError
Definition: LocalError.h:12
PV2DBase::y
T y() const
Definition: PV2DBase.h:44
TkRadialStripTopology::yAxisOrientation
float yAxisOrientation() const override
Definition: TkRadialStripTopology.h:223
PV2DBase::x
T x() const
Definition: PV2DBase.h:43
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
alignmentValidation.c1
c1
do drawing
Definition: alignmentValidation.py:1025
TkRadialStripTopology::yDistanceToIntersection
float yDistanceToIntersection(float y) const override
Definition: TkRadialStripTopology.cc:100
TkRadialStripTopology::stripAngle
float stripAngle(float strip) const override
Definition: TkRadialStripTopology.h:120
alignCSCRings.r
r
Definition: alignCSCRings.py:93
TkRadialStripTopology::theDetHeight
float theDetHeight
Definition: TkRadialStripTopology.h:240
DDAxes::phi
T
long double T
Definition: Basic3DVectorLD.h:48
TkRadialStripTopology::theTanAW
float theTanAW
Definition: TkRadialStripTopology.h:239
TkRadialStripTopology::phiOfOneEdge
float phiOfOneEdge() const override
Definition: TkRadialStripTopology.h:207
TkRadialStripTopology::nstrips
int nstrips() const override
Definition: TkRadialStripTopology.h:127
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
TkRadialStripTopology::yCentre
float yCentre
Definition: TkRadialStripTopology.h:245
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
TkRadialStripTopology::theAngularWidth
float theAngularWidth
Definition: TkRadialStripTopology.h:237
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
TkRadialStripTopology::angularWidth
float angularWidth() const override
Definition: TkRadialStripTopology.h:164
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
dttmaxenums::R
Definition: DTTMax.h:29
cuy.dh
dh
Definition: cuy.py:355
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19
TkRadialStripTopology::theRadialSigma
double theRadialSigma
Definition: TkRadialStripTopology.h:246
TkRadialStripTopology::originToIntersection
float originToIntersection() const override
Definition: TkRadialStripTopology.h:193
TkRadialStripTopology::strip
float strip(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:112
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37