CMS 3D CMS Logo

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

#include <RectangularStripTopology.h>

Inheritance diagram for RectangularStripTopology:
StripTopology Topology

Public Member Functions

int channel (const LocalPoint &lp) const override
 
float coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const override
 
LocalError localError (const MeasurementPoint &, const MeasurementError &) const override
 
LocalError localError (float strip, float stripErr2) const override
 
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...
 
float localPitch (const LocalPoint &) const override
 
LocalPoint localPosition (const MeasurementPoint &) const override
 
LocalPoint localPosition (float strip) const override
 
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 localStripLength (const LocalPoint &) const override
 
MeasurementError measurementError (const LocalPoint &, const LocalError &) const override
 
MeasurementPoint measurementPosition (const LocalPoint &) const override
 
int nstrips () const override
 
float pitch () const override
 
 RectangularStripTopology (int nstrips, float pitch, float detlength)
 
float strip (const LocalPoint &) const override
 
float stripAngle (float strip) const override
 
float stripLength () const 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

int theNumberOfStrips
 
float theOffset
 
float thePitch
 
float theStripLength
 

Additional Inherited Members

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

Detailed Description

Specialised strip topology for rectangular barrel detectors. The strips are parallel to the local Y axis, so X is the precisely measured coordinate.

Definition at line 11 of file RectangularStripTopology.h.

Constructor & Destructor Documentation

◆ RectangularStripTopology()

RectangularStripTopology::RectangularStripTopology ( int  nstrips,
float  pitch,
float  detlength 
)

Definition at line 7 of file RectangularStripTopology.cc.

10 
11 #ifdef VERBOSE
12  cout << "Constructing RectangularStripTopology with"
13  << " nstrips = " << ns << " pitch = " << p << " length = " << l << endl;
14 #endif
15 }

References gather_cfg::cout, cmsLHEtoEOSManager::l, AlCaHLTBitMon_ParallelJobs::p, theNumberOfStrips, theOffset, and thePitch.

Member Function Documentation

◆ channel()

int RectangularStripTopology::channel ( const LocalPoint lp) const
inlineoverridevirtual

Implements Topology.

Definition at line 34 of file RectangularStripTopology.h.

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

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

◆ coveredStrips()

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

Reimplemented from StripTopology.

Definition at line 44 of file RectangularStripTopology.cc.

44  {
45  return (lp1.x() - lp2.x()) / thePitch;
46 }

References thePitch, and PV3DBase< T, PVType, FrameType >::x().

◆ localError() [1/4]

LocalError RectangularStripTopology::localError ( const MeasurementPoint ,
const MeasurementError merr 
) const
overridevirtual

Implements Topology.

Definition at line 29 of file RectangularStripTopology.cc.

29  {
30  return LocalError(merr.uu() * thePitch * thePitch,
31  merr.uv() * thePitch * theStripLength,
32  merr.vv() * theStripLength * theStripLength);
33 }

References thePitch, theStripLength, MeasurementError::uu(), MeasurementError::uv(), and MeasurementError::vv().

◆ localError() [2/4]

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

Implements StripTopology.

Definition at line 25 of file RectangularStripTopology.cc.

25  {
26  return LocalError(stripErr2 * thePitch * thePitch, 0.f, theStripLength * theStripLength * (1.f / 12.f));
27 }

References f, thePitch, and theStripLength.

◆ localError() [3/4]

virtual LocalError StripTopology::localError

◆ localError() [4/4]

virtual LocalError StripTopology::localError
inline

conversion taking also the angle from the predicted track state

Definition at line 26 of file StripTopology.h.

26  {
27  return localError(strip, stripErr2);
28  }

◆ localPitch()

float RectangularStripTopology::localPitch ( const LocalPoint ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 38 of file RectangularStripTopology.h.

38 { return thePitch; }

References thePitch.

◆ localPosition() [1/4]

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

◆ localPosition() [2/4]

LocalPoint RectangularStripTopology::localPosition ( float  strip) const
overridevirtual

◆ localPosition() [3/4]

virtual LocalPoint StripTopology::localPosition

◆ localPosition() [4/4]

virtual LocalPoint StripTopology::localPosition
inline

conversion taking also the predicted track state

Definition at line 20 of file StripTopology.h.

20  {
21  return localPosition(strip);
22  }

◆ localStripLength()

float RectangularStripTopology::localStripLength ( const LocalPoint ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 46 of file RectangularStripTopology.h.

46 { return stripLength(); }

References stripLength().

◆ measurementError()

MeasurementError RectangularStripTopology::measurementError ( const LocalPoint ,
const LocalError lerr 
) const
overridevirtual

Implements Topology.

Definition at line 52 of file RectangularStripTopology.cc.

52  {
53  return MeasurementError(lerr.xx() / (thePitch * thePitch),
54  lerr.xy() / (thePitch * theStripLength),
55  lerr.yy() / (theStripLength * theStripLength));
56 }

References thePitch, theStripLength, LocalError::xx(), LocalError::xy(), and LocalError::yy().

◆ measurementPosition()

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

◆ nstrips()

int RectangularStripTopology::nstrips ( ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 42 of file RectangularStripTopology.h.

42 { return theNumberOfStrips; }

References theNumberOfStrips.

◆ pitch()

float RectangularStripTopology::pitch ( ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 36 of file RectangularStripTopology.h.

36 { return thePitch; }

References thePitch.

Referenced by DTSegtoRPC::DTSegtoRPC().

◆ strip()

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

Implements StripTopology.

Definition at line 35 of file RectangularStripTopology.cc.

35  {
36  float aStrip = (lp.x() - theOffset) / thePitch;
37  if (aStrip < 0)
38  aStrip = 0;
39  else if (aStrip > theNumberOfStrips)
40  aStrip = theNumberOfStrips;
41  return aStrip;
42 }

References theNumberOfStrips, theOffset, thePitch, and PV3DBase< T, PVType, FrameType >::x().

Referenced by channel(), and localPosition().

◆ stripAngle()

float RectangularStripTopology::stripAngle ( float  strip) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 40 of file RectangularStripTopology.h.

40 { return 0; }

◆ stripLength()

float RectangularStripTopology::stripLength ( ) const
inlineoverridevirtual

Member Data Documentation

◆ theNumberOfStrips

int RectangularStripTopology::theNumberOfStrips
private

Definition at line 50 of file RectangularStripTopology.h.

Referenced by channel(), nstrips(), RectangularStripTopology(), and strip().

◆ theOffset

float RectangularStripTopology::theOffset
private

◆ thePitch

float RectangularStripTopology::thePitch
private

◆ theStripLength

float RectangularStripTopology::theStripLength
private
LocalError::xy
float xy() const
Definition: LocalError.h:23
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
min
T min(T a, T b)
Definition: MathUtil.h:58
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
gather_cfg.cout
cout
Definition: gather_cfg.py:144
RectangularStripTopology::theStripLength
float theStripLength
Definition: RectangularStripTopology.h:51
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
RectangularStripTopology::theNumberOfStrips
int theNumberOfStrips
Definition: RectangularStripTopology.h:50
RectangularStripTopology::localPosition
LocalPoint localPosition(float strip) const override
Definition: RectangularStripTopology.cc:17
RectangularStripTopology::thePitch
float thePitch
Definition: RectangularStripTopology.h:49
LocalError::xx
float xx() const
Definition: LocalError.h:22
MeasurementError
Definition: MeasurementError.h:8
MeasurementError::uv
float uv() const
Definition: MeasurementError.h:15
RectangularStripTopology::stripLength
float stripLength() const override
Definition: RectangularStripTopology.h:44
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
LocalError
Definition: LocalError.h:12
PV2DBase::y
T y() const
Definition: PV2DBase.h:44
RectangularStripTopology::theOffset
float theOffset
Definition: RectangularStripTopology.h:52
PV2DBase::x
T x() const
Definition: PV2DBase.h:43
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
RectangularStripTopology::strip
float strip(const LocalPoint &) const override
Definition: RectangularStripTopology.cc:35
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
RectangularStripTopology::localError
LocalError localError(float strip, float stripErr2) const override
Definition: RectangularStripTopology.cc:25
MeasurementError::vv
float vv() const
Definition: MeasurementError.h:16
MeasurementError::uu
float uu() const
Definition: MeasurementError.h:14
LocalError::yy
float yy() const
Definition: LocalError.h:24