LArSoft
v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
|
Class computing the active area of the plane. More...
Public Member Functions | |
ActiveAreaCalculator (geo::PlaneGeo const &plane, double wMargin, double dMargin) | |
ActiveAreaCalculator (geo::PlaneGeo const &plane, double margin=0.0) | |
operator geo::PlaneGeo::Rect () | |
Private Types | |
using | Projection_t = ROOT::Math::PositionVector2D< ROOT::Math::Cartesian2D< double >, geo::PlaneGeo::WidthDepthReferenceTag > |
using | Vector_t = geo::PlaneGeo::WidthDepthDisplacement_t |
Private Member Functions | |
void | initializeWireEnds () |
void | includeAllWireEnds () |
void | adjustCorners () |
void | applyMargin () |
geo::PlaneGeo::Rect | recomputeArea () |
Static Private Member Functions | |
static bool | none_or_both (bool a, bool b) |
Returns true if a and b are both true or both false (exclusive nor). More... | |
template<typename T > | |
static bool | equal (T a, T b, T tol=T(1e-5)) |
Returns whether the two numbers are the same, lest a tolerance. More... | |
Private Attributes | |
PlaneGeo const & | plane |
Plane to work on. More... | |
double const | wMargin = 0.0 |
Margin subtracted from each side of width. More... | |
double const | dMargin = 0.0 |
Margin subtracted from each side of depth. More... | |
geo::PlaneGeo::Rect | activeArea |
Result. More... | |
Projection_t | wireEnds [4] |
Cache: wire end projections. More... | |
Static Private Attributes | |
static constexpr std::size_t | kFirstWireStart = 0 |
static constexpr std::size_t | kFirstWireEnd = 1 |
static constexpr std::size_t | kLastWireStart = 2 |
static constexpr std::size_t | kLastWireEnd = 3 |
Class computing the active area of the plane.
The active area is defined in the width/depth space which include approximatively all wires.
This algorithm requires the frame reference and the wire pitch to be already defined.
That area is tuned so that all its points are closer than half a wire pitch from a wire.
Definition at line 85 of file PlaneGeo.cxx.
|
private |
Definition at line 103 of file PlaneGeo.cxx.
|
private |
Definition at line 104 of file PlaneGeo.cxx.
|
inline |
Definition at line 88 of file PlaneGeo.cxx.
|
inline |
Definition at line 94 of file PlaneGeo.cxx.
|
inlineprivate |
Definition at line 164 of file PlaneGeo.cxx.
References lar::util::simple_geo::Rectangle< Data >::depth, geo::vect::dot(), equal(), geo::PlaneGeo::GetIncreasingWireDirection(), lar::util::simple_geo::Range< Data >::lower, max, min, none_or_both(), lar::util::simple_geo::Range< Data >::upper, geo::PlaneGeo::VectorWidthDepthProjection(), lar::util::simple_geo::Rectangle< Data >::width, geo::PlaneGeo::WirePitch(), X, x1, and Y.
Referenced by recomputeArea().
|
inlineprivate |
Definition at line 377 of file PlaneGeo.cxx.
References lar::util::simple_geo::Rectangle< Data >::depth, dMargin, lar::util::simple_geo::Range< Data >::lower, lar::util::simple_geo::Range< Data >::upper, lar::util::simple_geo::Rectangle< Data >::width, and wMargin.
Referenced by recomputeArea().
|
inlinestaticprivate |
Returns whether the two numbers are the same, lest a tolerance.
Definition at line 422 of file PlaneGeo.cxx.
Referenced by adjustCorners().
|
inlineprivate |
Definition at line 150 of file PlaneGeo.cxx.
References lar::util::simple_geo::Rectangle< Data >::depth, lar::util::simple_geo::Range< Data >::extendToInclude(), and lar::util::simple_geo::Rectangle< Data >::width.
Referenced by recomputeArea().
|
inlineprivate |
Definition at line 124 of file PlaneGeo.cxx.
References geo::PlaneGeo::FirstWire(), geo::WireGeo::GetEnd(), geo::WireGeo::GetStart(), kFirstWireEnd, kFirstWireStart, kLastWireEnd, kLastWireStart, geo::PlaneGeo::LastWire(), geo::PlaneGeo::PointWidthDepthProjection(), and X.
Referenced by recomputeArea().
|
inlinestaticprivate |
Returns true if a and b are both true or both false (exclusive nor).
Definition at line 418 of file PlaneGeo.cxx.
Referenced by adjustCorners().
|
inline |
Definition at line 98 of file PlaneGeo.cxx.
References recomputeArea().
|
inlineprivate |
Definition at line 390 of file PlaneGeo.cxx.
References activeArea, adjustCorners(), applyMargin(), includeAllWireEnds(), and initializeWireEnds().
Referenced by operator geo::PlaneGeo::Rect().
|
private |
|
private |
Margin subtracted from each side of depth.
Definition at line 118 of file PlaneGeo.cxx.
Referenced by applyMargin().
|
staticprivate |
Definition at line 112 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 111 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 114 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 113 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
private |
Plane to work on.
Definition at line 116 of file PlaneGeo.cxx.
|
private |
Cache: wire end projections.
Definition at line 122 of file PlaneGeo.cxx.
|
private |
Margin subtracted from each side of width.
Definition at line 117 of file PlaneGeo.cxx.
Referenced by applyMargin().