#include <TrapezoidalPlaneBounds.h>
Public Member Functions | |
virtual Bounds * | clone () const |
virtual bool | inside (const Local3DPoint &p) const |
Determine if the point is inside the bounds. | |
virtual bool | inside (const Local3DPoint &p, const LocalError &err, float scale) const |
Determine if a point is inside the bounds, taking error into account. | |
virtual bool | inside (const Local2DPoint &p, const LocalError &err, float scale) const |
Determine if a 2D point is inside the bounds, taking error into account. | |
virtual bool | inside (const Local2DPoint &p) const |
virtual float | length () const |
virtual const std::array < const float, 4 > | parameters () const |
virtual float | thickness () const |
TrapezoidalPlaneBounds (float be, float te, float a, float t) | |
virtual float | width () const |
virtual float | widthAtHalfLength () const |
virtual int | yAxisOrientation () const |
Private Attributes | |
float | hapothem |
float | hbotedge |
float | hthickness |
float | htopedge |
float | offset |
float | tan_a |
Trapezoidal plane bounds. Local Coordinate system coincides with center of the box with Y axis being the symmetry axis along the height and pointing in the direction of top_edge.
Definition at line 16 of file TrapezoidalPlaneBounds.h.
TrapezoidalPlaneBounds::TrapezoidalPlaneBounds | ( | float | be, |
float | te, | ||
float | a, | ||
float | t | ||
) |
constructed from: half bottom edge (smaller side width) half top edge (larger side width) half apothem (distance from top to bottom sides, measured perpendicularly to them) half thickness
Definition at line 7 of file TrapezoidalPlaneBounds.cc.
Referenced by clone().
Bounds * TrapezoidalPlaneBounds::clone | ( | void | ) | const [virtual] |
Implements Bounds.
Reimplemented in CSCLayerGeometry.
Definition at line 49 of file TrapezoidalPlaneBounds.cc.
References TrapezoidalPlaneBounds().
{ return new TrapezoidalPlaneBounds(*this); }
bool TrapezoidalPlaneBounds::inside | ( | const Local2DPoint & | p | ) | const [virtual] |
Reimplemented from Bounds.
Reimplemented in CSCLayerGeometry.
Definition at line 25 of file TrapezoidalPlaneBounds.cc.
References hapothem, offset, tan_a, PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().
Referenced by inside().
bool TrapezoidalPlaneBounds::inside | ( | const Local2DPoint & | p, |
const LocalError & | err, | ||
float | scale | ||
) | const [virtual] |
Determine if a 2D point is inside the bounds, taking error into account.
Reimplemented from Bounds.
Definition at line 45 of file TrapezoidalPlaneBounds.cc.
References inside().
{ return Bounds::inside(p,err,scale); }
bool TrapezoidalPlaneBounds::inside | ( | const Local3DPoint & | , |
const LocalError & | , | ||
float | scale | ||
) | const [virtual] |
Determine if a point is inside the bounds, taking error into account.
Implements Bounds.
Reimplemented in CSCLayerGeometry.
Definition at line 36 of file TrapezoidalPlaneBounds.cc.
References hapothem, hbotedge, hthickness, htopedge, inside(), mathSSE::sqrt(), tmp, LocalError::xx(), and LocalError::yy().
bool TrapezoidalPlaneBounds::inside | ( | const Local3DPoint & | ) | const [virtual] |
Determine if the point is inside the bounds.
Implements Bounds.
Reimplemented in CSCLayerGeometry.
Definition at line 30 of file TrapezoidalPlaneBounds.cc.
References hapothem, hthickness, offset, tan_a, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
virtual float TrapezoidalPlaneBounds::length | ( | ) | const [inline, virtual] |
apothem (full, not half)
Implements Bounds.
Definition at line 30 of file TrapezoidalPlaneBounds.h.
References hapothem.
Referenced by CSCStripElectronicsSim::addCrosstalk(), SiStripMonitorMuonHLT::Normalizer(), operator<<(), CSCLayerGeometry::possibleRecHitPosition(), and CSCChamberSpecs::stripNoise().
{ return 2 * hapothem;}
const std::array< const float, 4 > TrapezoidalPlaneBounds::parameters | ( | void | ) | const [virtual] |
returns the 4 parameters needed for construction, in the order ( half bottom edge, half top edge, half thickness, half apothem). Beware! This order is different from the one in the constructor!
Definition at line 55 of file TrapezoidalPlaneBounds.cc.
References hapothem, hbotedge, hthickness, and htopedge.
Referenced by CSCGeometryBuilder::buildChamber(), FWTGeoRecoGeometryESProducer::createShape(), CSCOfflineMonitor::doEfficiencies(), and CSCValidation::doEfficiencies().
{ // Same order as geant3 for constructor compatibility std::array<const float, 4> vec { { hbotedge, htopedge, hthickness, hapothem } }; return vec; }
virtual float TrapezoidalPlaneBounds::thickness | ( | ) | const [inline, virtual] |
thickness (full, not half)
Implements Bounds.
Definition at line 36 of file TrapezoidalPlaneBounds.h.
References hthickness.
Referenced by CSCLayerGeometry::inside(), and operator<<().
{ return 2 * hthickness;}
virtual float TrapezoidalPlaneBounds::width | ( | ) | const [inline, virtual] |
virtual float TrapezoidalPlaneBounds::widthAtHalfLength | ( | ) | const [inline, virtual] |
Width at half length. Useful for e.g. pitch definition.
Reimplemented from Bounds.
Definition at line 40 of file TrapezoidalPlaneBounds.h.
References hbotedge, and htopedge.
Referenced by SiStripMonitorMuonHLT::Normalizer().
int TrapezoidalPlaneBounds::yAxisOrientation | ( | ) | const [virtual] |
Definition at line 19 of file TrapezoidalPlaneBounds.cc.
References hbotedge, and htopedge.
Referenced by StripTopologyBuilder::build().
float TrapezoidalPlaneBounds::hapothem [private] |
Definition at line 64 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), length(), and parameters().
float TrapezoidalPlaneBounds::hbotedge [private] |
Definition at line 62 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), parameters(), width(), widthAtHalfLength(), and yAxisOrientation().
float TrapezoidalPlaneBounds::hthickness [private] |
Definition at line 65 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), parameters(), and thickness().
float TrapezoidalPlaneBounds::htopedge [private] |
Definition at line 63 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), parameters(), width(), widthAtHalfLength(), and yAxisOrientation().
float TrapezoidalPlaneBounds::offset [private] |
Definition at line 68 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), and TrapezoidalPlaneBounds().
float TrapezoidalPlaneBounds::tan_a [private] |
Definition at line 69 of file TrapezoidalPlaneBounds.h.
Referenced by inside(), and TrapezoidalPlaneBounds().