CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions
Topology Class Referenceabstract

#include <Topology.h>

Inheritance diagram for Topology:
DTTopology PixelTopology StripTopology WireTopology ProxyMTDTopology ProxyPixelTopology RectangularMTDTopology RectangularPixelTopology GEMStripTopology ProxyStripTopology RadialStripTopology RectangularStripTopology TrapezoidalStripTopology CSCWireTopology

Classes

class  LocalTrackAngles
 
class  LocalTrackPred
 

Public Types

typedef Point2DBase< double, LocalTagLocal2DPoint
 
typedef Vector2D::MathVector MathVector2D
 
typedef Basic2DVector< double > Vector2D
 

Public Member Functions

virtual int channel (const LocalPoint &p) const =0
 
virtual int channel (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
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 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 MeasurementError measurementError (const LocalPoint &, const LocalError &) const =0
 
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 &) const =0
 
virtual MeasurementPoint measurementPosition (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual ~Topology ()
 

Detailed Description

Abstract component defining the conversion between the local frame of a detector and the frame defined by the readout channels , the so called measurement frame. For example, in a strip detector the strips define a coordinate frame (from 0 to Nstrips in one direction and from 0 to 1 in the other), and each local point can be mapped to a point in this frame. The mapping may be non-linear (for example for trapezoidal strips).

The topology should be the ONLY place where this mapping is defined. The Digitizer uses the Topology to transform energy deposits in the local frame into signals on the readout channels, and the clusterizer (or the RecHit) uses the Topology for the inverse transformation, from channel numbers to local coordinates.

If the surface of a Topology deviates from its perfect shape, e.g. a bowed instead of a flat surface (bowed silicon sensors) or if built from two surfaces that might be misaligned with respect to each other (double sensor silicon modules), conversion might depend on a track prediction. Conversions from local to measurement frame therefore need the 'LocalTrackAngles', conversions the other way round need also track position predictions, bound together with the angles to a 'LocalTrackPred'. Default implementation of methods requiring more arguments is to call the simple method, ignoring the track state. Concrete implementations should overwrite this where appropiate.

Definition at line 39 of file Topology.h.

Member Typedef Documentation

◆ Local2DPoint

Definition at line 53 of file Topology.h.

◆ MathVector2D

Definition at line 42 of file Topology.h.

◆ Vector2D

Definition at line 41 of file Topology.h.

Constructor & Destructor Documentation

◆ ~Topology()

virtual Topology::~Topology ( )
inlinevirtual

Definition at line 72 of file Topology.h.

72 {}

Member Function Documentation

◆ channel() [1/2]

virtual int Topology::channel ( const LocalPoint p) const
pure virtual

◆ channel() [2/2]

virtual int Topology::channel ( const LocalPoint lp,
const LocalTrackAngles  
) const
inlinevirtual

conversion taking also the angle from the track state

Reimplemented in ProxyStripTopology, ProxyPixelTopology, and ProxyMTDTopology.

Definition at line 113 of file Topology.h.

References channel().

Referenced by channel().

113 { return channel(lp); }
virtual int channel(const LocalPoint &p) const =0

◆ localError() [1/2]

virtual LocalError Topology::localError ( const MeasurementPoint ,
const MeasurementError  
) const
pure virtual

◆ localError() [2/2]

virtual LocalError Topology::localError ( const MeasurementPoint mp,
const MeasurementError me,
const LocalTrackPred  
) const
inlinevirtual

conversion taking also the angle from the predicted track state

Reimplemented in ProxyStripTopology, ProxyPixelTopology, and ProxyMTDTopology.

Definition at line 94 of file Topology.h.

References localError(), and hlt_dqm_clientPB-live_cfg::me.

96  {
97  return localError(mp, me);
98  }
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const =0

◆ localPosition() [1/2]

virtual LocalPoint Topology::localPosition ( const MeasurementPoint ) const
pure virtual

Implemented in RectangularPixelTopology, RectangularMTDTopology, CSCRadialStripTopology, TkRadialStripTopology, OffsetRadialStripTopology, RadialStripTopology, CSCWireTopology, TrapezoidalStripTopology, DTTopology, ProxyStripTopology, ProxyPixelTopology, ProxyMTDTopology, GEMStripTopology, and RectangularStripTopology.

Referenced by OuterTrackerMonitorTTCluster::analyze(), SiPixelTrackResidualSource::analyze(), OuterTrackerMonitorTTStub::analyze(), PixelLumiDQM::analyze(), SiPixelErrorEstimation::analyze(), TrackerDpgAnalysis::analyze(), SiPixelErrorEstimation::computeAnglesFromDetPosition(), PixelCPEBase::computeAnglesFromDetPosition(), Pixel3DDigitizerAlgorithm::drift(), SiPixelClusterModule::fill(), Phase2TrackerMonitorDigi::fillITPixelDigiHistos(), Phase2TrackerMonitorDigi::fillOTDigiHistos(), analyzer::SiPixelLorentzAngle::fillPix(), SiPixelLorentzAnglePCLWorker::fillPix(), SiPixelQuality::getBadRocPositions(), StubPtConsistency::getConsistency(), SiPixelClusterSource::getrococcupancye(), SiPixelChargeReweightingAlgorithm::hitSignalReweight(), Phase2TrackerDigitizerAlgorithm::induce_signal(), SiPixelDigitizerAlgorithm::induce_signal(), tmtt::StubKiller::killStub(), SiPixelChargeReweightingAlgorithm::lateSignalReweight(), ProxyMTDTopology::localPosition(), ProxyPixelTopology::localPosition(), PixelCPEGeneric::localPosition(), PixelCPEClusterRepair::localPosition(), PixelCPETemplateReco::localPosition(), localPosition(), PixelClusterSelectorTopBottom::produce(), L1FPGATrackProducer::produce(), pTFrom2Stubs::rInvFrom2(), tmtt::Stub::Stub(), tt::Setup::stubPos(), SiPixelLorentzAnglePCLWorker::surface_deformation(), and MeasurementTrackerEventProducer::updatePixels().

◆ localPosition() [2/2]

virtual LocalPoint Topology::localPosition ( const MeasurementPoint mp,
const LocalTrackPred  
) const
inlinevirtual

conversion taking also the angle from the predicted track state

Reimplemented in ProxyStripTopology, ProxyPixelTopology, and ProxyMTDTopology.

Definition at line 89 of file Topology.h.

References localPosition().

89  {
90  return localPosition(mp);
91  }
virtual LocalPoint localPosition(const MeasurementPoint &) const =0

◆ measurementError() [1/2]

virtual MeasurementError Topology::measurementError ( const LocalPoint ,
const LocalError  
) const
pure virtual

◆ measurementError() [2/2]

virtual MeasurementError Topology::measurementError ( const LocalPoint lp,
const LocalError le,
const LocalTrackAngles  
) const
inlinevirtual

conversion taking also the angle from the track state

Reimplemented in ProxyStripTopology, ProxyPixelTopology, and ProxyMTDTopology.

Definition at line 106 of file Topology.h.

References measurementError().

108  {
109  return measurementError(lp, le);
110  }
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0

◆ measurementPosition() [1/2]

virtual MeasurementPoint Topology::measurementPosition ( const LocalPoint ) const
pure virtual

◆ measurementPosition() [2/2]

virtual MeasurementPoint Topology::measurementPosition ( const LocalPoint lp,
const LocalTrackAngles  
) const
inlinevirtual

conversion taking also the angle from the track state

Reimplemented in ProxyStripTopology, ProxyPixelTopology, and ProxyMTDTopology.

Definition at line 101 of file Topology.h.

References measurementPosition().

101  {
102  return measurementPosition(lp);
103  }
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0