#include <CSCWireGeometry.h>
Public Member Functions | |
virtual CSCWireGeometry * | clone () const =0 |
CSCWireGeometry (double wireSpacing, double yOfFirstWire, double narrowWidthOfPlane, double wideWidthOfPlane, double lengthOfPlane) | |
std::pair< float, float > | equationOfWire (float wire) const |
LocalPoint | intersection (float m1, float c1, float m2, float c2) const |
double | lengthOfPlane () const |
double | narrowWidthOfPlane () const |
virtual int | nearestWire (const LocalPoint &lp) const =0 |
double | wideWidthOfPlane () const |
virtual float | wireAngle () const =0 |
std::pair< LocalPoint, LocalPoint > | wireEnds (float wire) const |
double | wireSpacing () const |
std::vector< float > | wireValues (float wire) const |
std::pair< float, float > | yLimitsOfWirePlane () const |
double | yOfFirstWire () const |
virtual float | yOfWire (float wire, float x=0.) const =0 |
virtual | ~CSCWireGeometry () |
Private Attributes | |
double | theLengthOfPlane |
double | theNarrowWidthOfPlane |
double | theWideWidthOfPlane |
double | theWireSpacing |
double | theYOfFirstWire |
An ABC defining interface for geometry related to angle which wires of a detector modelled by a WireTopology make with the local x axis.
Definition at line 17 of file CSCWireGeometry.h.
|
inlinevirtual |
Definition at line 19 of file CSCWireGeometry.h.
|
inline |
Constructor from wire spacing (in cm)
Definition at line 24 of file CSCWireGeometry.h.
|
pure virtual |
Allow proper copying of derived classes via base pointer
Implemented in CSCNonslantedWireGeometry, and CSCSlantedWireGeometry.
Referenced by CSCWireTopology::CSCWireTopology(), and CSCWireTopology::operator=().
std::pair< float, float > CSCWireGeometry::equationOfWire | ( | float | wire | ) | const |
Return slope and intercept of straight line representing a wire in 2-dim local coordinates.
The return value is a pair p with p.first = m, p.second = c, where y=mx+c.
Definition at line 176 of file CSCWireGeometry.cc.
References LogTrace, funct::tan(), wireAngle(), and yOfWire().
Referenced by CSCWireTopology::equationOfWire().
LocalPoint CSCWireGeometry::intersection | ( | float | m1, |
float | c1, | ||
float | m2, | ||
float | c2 | ||
) | const |
2D point of intersection of two straight lines defined by
y = m1*x + c1 and y = m2*x + c2
(in local coordinates x, y)
Definition at line 7 of file CSCWireGeometry.cc.
References alignmentValidation::c1, x, and y.
Referenced by wireEnds().
|
inline |
Extent of wire plane along long axis of trapezoid
Definition at line 57 of file CSCWireGeometry.h.
References theLengthOfPlane.
Referenced by CSCWireTopology::lengthOfPlane(), wireEnds(), and yLimitsOfWirePlane().
|
inline |
Extent of wire plane at narrow end of trapezoid
Definition at line 45 of file CSCWireGeometry.h.
References theNarrowWidthOfPlane.
Referenced by CSCWireTopology::narrowWidthOfPlane(), wireEnds(), and yLimitsOfWirePlane().
|
pure virtual |
The nearest (virtual) wire to a given LocalPoint. Beware that this wire might not exist or be read out!
Implemented in CSCNonslantedWireGeometry, and CSCSlantedWireGeometry.
Referenced by CSCWireTopology::channel(), and CSCWireTopology::nearestWire().
|
inline |
Extent of wire plane at wide end of trapezoid
Definition at line 51 of file CSCWireGeometry.h.
References theWideWidthOfPlane.
Referenced by CSCWireTopology::wideWidthOfPlane(), and wireEnds().
|
pure virtual |
The angle of the wires w.r.t local x axis (in radians)
Implemented in CSCNonslantedWireGeometry, and CSCSlantedWireGeometry.
Referenced by equationOfWire(), CSCWireTopology::wireAngle(), wireEnds(), and yLimitsOfWirePlane().
std::pair< LocalPoint, LocalPoint > CSCWireGeometry::wireEnds | ( | float | wire | ) | const |
Return 2-dim local coords of the two ends of a wire
The returned value is a pair of LocalPoints.
Definition at line 35 of file CSCWireGeometry.cc.
References alignmentValidation::c1, counter::c2, i, intersection(), j, lengthOfPlane(), LogTrace, narrowWidthOfPlane(), funct::tan(), wideWidthOfPlane(), wireAngle(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), yOfFirstWire(), and yOfWire().
Referenced by CSCWireTopology::wireEnds(), and wireValues().
|
inline |
The spacing between wires (cm)
Definition at line 33 of file CSCWireGeometry.h.
References theWireSpacing.
Referenced by CSCSlantedWireGeometry::nearestWire(), CSCNonslantedWireGeometry::nearestWire(), CSCWireTopology::wireSpacing(), CSCSlantedWireGeometry::yOfWire(), and CSCNonslantedWireGeometry::yOfWire().
std::vector< float > CSCWireGeometry::wireValues | ( | float | wire | ) | const |
Return mid-point of a wire in local coordinates, and its length across the chamber volume, in a vector as x, y, length
Definition at line 18 of file CSCWireGeometry.cc.
References mathSSE::sqrt(), and wireEnds().
Referenced by CSCWireTopology::wireValues().
std::pair< float, float > CSCWireGeometry::yLimitsOfWirePlane | ( | ) | const |
Return pair containing y extremes of wire-plane: p.first = low y, p.second= high y
This is supposed to approximate the 'sensitive' region covered by wires (and strips) but there is no sophisticated handling of edge effects, or attempt to estimate a precise region overlapped by both wires and strips.
Definition at line 197 of file CSCWireGeometry.cc.
References funct::abs(), lengthOfPlane(), narrowWidthOfPlane(), funct::tan(), wireAngle(), and yOfFirstWire().
Referenced by CSCWireTopology::insideYOfWirePlane(), and CSCWireTopology::restrictToYOfWirePlane().
|
inline |
The local y of the first wire
Definition at line 39 of file CSCWireGeometry.h.
References theYOfFirstWire.
Referenced by CSCNonslantedWireGeometry::nearestWire(), wireEnds(), yLimitsOfWirePlane(), and CSCNonslantedWireGeometry::yOfWire().
|
pure virtual |
Local y of a given wire 'number' (float) at given x
Implemented in CSCNonslantedWireGeometry, and CSCSlantedWireGeometry.
Referenced by equationOfWire(), wireEnds(), CSCWireTopology::yOfWire(), and CSCWireTopology::yOfWireGroup().
|
private |
Definition at line 119 of file CSCWireGeometry.h.
Referenced by lengthOfPlane().
|
private |
Definition at line 117 of file CSCWireGeometry.h.
Referenced by narrowWidthOfPlane().
|
private |
Definition at line 118 of file CSCWireGeometry.h.
Referenced by wideWidthOfPlane().
|
private |
Definition at line 115 of file CSCWireGeometry.h.
Referenced by wireSpacing().
|
private |
Definition at line 116 of file CSCWireGeometry.h.
Referenced by yOfFirstWire().