CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
CSCNonslantedWireGeometry Class Reference

#include <CSCNonslantedWireGeometry.h>

Inheritance diagram for CSCNonslantedWireGeometry:
CSCWireGeometry

Public Member Functions

CSCWireGeometryclone () const
 
 CSCNonslantedWireGeometry (double wireSpacing, double yOfFirstWire, double narrow, double wide, double length)
 
int nearestWire (const LocalPoint &lp) const
 
float wireAngle () const
 
float yOfWire (float wire, float x=0.) const
 
virtual ~CSCNonslantedWireGeometry ()
 
- Public Member Functions inherited from CSCWireGeometry
 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
 
double wideWidthOfPlane () const
 
std::pair< LocalPoint, LocalPointwireEnds (float wire) const
 
double wireSpacing () const
 
std::vector< float > wireValues (float wire) const
 
std::pair< float, float > yLimitsOfWirePlane () const
 
double yOfFirstWire () const
 
virtual ~CSCWireGeometry ()
 

Detailed Description

A concrete CSCWireGeometry in which the wires are not slanted, i.e. they are all parallel to the local x axis.

Author
Tim Cox

Definition at line 16 of file CSCNonslantedWireGeometry.h.

Constructor & Destructor Documentation

virtual CSCNonslantedWireGeometry::~CSCNonslantedWireGeometry ( )
inlinevirtual

Definition at line 18 of file CSCNonslantedWireGeometry.h.

18 {}
CSCNonslantedWireGeometry::CSCNonslantedWireGeometry ( double  wireSpacing,
double  yOfFirstWire,
double  narrow,
double  wide,
double  length 
)
inline

Constructor from wire spacing

Definition at line 23 of file CSCNonslantedWireGeometry.h.

Referenced by clone().

24  :
25  CSCWireGeometry( wireSpacing, yOfFirstWire, narrow, wide, length ) {}
double wireSpacing() const
double yOfFirstWire() const
CSCWireGeometry(double wireSpacing, double yOfFirstWire, double narrowWidthOfPlane, double wideWidthOfPlane, double lengthOfPlane)

Member Function Documentation

CSCWireGeometry* CSCNonslantedWireGeometry::clone ( void  ) const
inlinevirtual

Clone to handle correct copy of component objects referenced by base class pointer.

Implements CSCWireGeometry.

Definition at line 52 of file CSCNonslantedWireGeometry.h.

References CSCNonslantedWireGeometry().

52  {
53  return new CSCNonslantedWireGeometry(*this);
54  }
CSCNonslantedWireGeometry(double wireSpacing, double yOfFirstWire, double narrow, double wide, double length)
int CSCNonslantedWireGeometry::nearestWire ( const LocalPoint lp) const
inlinevirtual

The nearest (virtual) wire to a given LocalPoint. Beware that this wire might not exist or be read out!

Implements CSCWireGeometry.

Definition at line 36 of file CSCNonslantedWireGeometry.h.

References nint(), CSCWireGeometry::wireSpacing(), PV3DBase< T, PVType, FrameType >::y(), and CSCWireGeometry::yOfFirstWire().

36  {
37  return 1 + nint( (lp.y()-yOfFirstWire())/wireSpacing() ) ;
38  }
T y() const
Definition: PV3DBase.h:62
double wireSpacing() const
int nint(float a)
Return the nearest integer - analogous to the FORTRAN intrinsic NINT.
Definition: nint.h:8
double yOfFirstWire() const
float CSCNonslantedWireGeometry::wireAngle ( ) const
inlinevirtual

The angle of the wires w.r.t local x axis (in radians)

Implements CSCWireGeometry.

Definition at line 30 of file CSCNonslantedWireGeometry.h.

30 { return 0.; }
float CSCNonslantedWireGeometry::yOfWire ( float  wire,
float  x = 0. 
) const
inlinevirtual

Local y of a given wire 'number' (float) at given x For nonslanted wires this y is independent of x.

Implements CSCWireGeometry.

Definition at line 44 of file CSCNonslantedWireGeometry.h.

References CSCWireGeometry::wireSpacing(), and CSCWireGeometry::yOfFirstWire().

44  {
45  return yOfFirstWire() + (wire-1.)*wireSpacing();
46  }
double wireSpacing() const
double yOfFirstWire() const