LArSoft
v09_90_00
Liquid Argon Software toolkit - https://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 78 of file PlaneGeo.cxx.
|
private |
Definition at line 92 of file PlaneGeo.cxx.
|
private |
Definition at line 93 of file PlaneGeo.cxx.
|
inline |
Definition at line 80 of file PlaneGeo.cxx.
|
inline |
Definition at line 84 of file PlaneGeo.cxx.
|
inlineprivate |
Definition at line 150 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, 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 341 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 385 of file PlaneGeo.cxx.
References util::abs().
Referenced by adjustCorners().
|
inlineprivate |
Definition at line 136 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 111 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 381 of file PlaneGeo.cxx.
Referenced by adjustCorners().
|
inline |
Definition at line 88 of file PlaneGeo.cxx.
References recomputeArea().
|
inlineprivate |
Definition at line 353 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 105 of file PlaneGeo.cxx.
Referenced by applyMargin().
|
staticprivate |
Definition at line 99 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 98 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 101 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
staticprivate |
Definition at line 100 of file PlaneGeo.cxx.
Referenced by initializeWireEnds().
|
private |
Plane to work on.
Definition at line 103 of file PlaneGeo.cxx.
|
private |
Cache: wire end projections.
Definition at line 109 of file PlaneGeo.cxx.
|
private |
Margin subtracted from each side of width.
Definition at line 104 of file PlaneGeo.cxx.
Referenced by applyMargin().