LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
geo::Decomposer< Vector, Point, ProjVector > Class Template Reference

Class with methods to decompose and compose back vectors. More...

#include "Decomposer.h"

Public Types

using Point_t = typename PlaneDecomposer_t::Point_t
 Type for a vector. More...
 
using Vector_t = typename PlaneDecomposer_t::Vector_t
 
using Projection_t = typename PlaneDecomposer_t::Projection_t
 Type representing the projection vector. More...
 
using Distance_t = typename PlaneDecomposer_t::Distance_t
 Type representing the signed distance from the projection plane. More...
 
using DecomposedVector_t = typename PlaneDecomposer_t::DecomposedVector_t
 Type representing a decomposition on the plane. More...
 
using AffinePlaneBase_t = typename PlaneDecomposer_t::AffinePlaneBase_t
 Type of vector base for the space. More...
 

Public Member Functions

 Decomposer ()=default
 Default constructor: projection on (x,y) with origin (0, 0, 0) More...
 
 Decomposer (AffinePlaneBase_t &&base)
 Constructor: specifies a base (an origin and two direction vectors) More...
 
 Decomposer (AffinePlaneBase_t const &base)
 Constructor: specifies a base (an origin and two direction vectors) More...
 
Setters
void SetBase (AffinePlaneBase_t &&base)
 Change projection base. More...
 
void SetBase (AffinePlaneBase_t const &base)
 Change projection base. More...
 
void SetOrigin (Point_t const &point)
 Change the 3D point of the reference frame origin. More...
 
void SetMainDir (Vector_t const &dir)
 Change the main direction of the projection base. More...
 
void SetSecondaryDir (Vector_t const &dir)
 Change the secondary direction of the projection base. More...
 
Reference directions and point
Point_t ReferencePoint () const
 Returns the reference point for the plane coordinate, as a 3D point. More...
 
AffinePlaneBase_t const & Base () const
 Returns the base of the decomposition. More...
 
Vector_t const & MainDir () const
 Returns the plane main axis direction. More...
 
Vector_t const & SecondaryDir () const
 Returns the plane secondary axis direction. More...
 
Vector_t const & NormalDir () const
 Returns the plane normal axis direction. More...
 
Decomposition of a 3D point
auto PointMainComponent (Point_t const &point) const
 Returns the main component of a point. More...
 
auto PointSecondaryComponent (Point_t const &point) const
 Returns the secondary component of a point. More...
 
auto PointNormalComponent (Point_t const &point) const
 Returns the secondary component of a point. More...
 
Projection_t ProjectPointOnPlane (Point_t const &point) const
 Returns the projection of the specified point on the plane. More...
 
DecomposedVector_t DecomposePoint (Point_t const &point) const
 Decomposes a 3D point in two components. More...
 
Decomposition of a 3D vector
auto VectorMainComponent (Vector_t const &v) const
 Returns the main component of a vector. More...
 
auto VectorSecondaryComponent (Vector_t const &v) const
 Returns the secondary component of a vector. More...
 
auto VectorNormalComponent (Vector_t const &v) const
 Returns the secondary component of a vector. More...
 
Projection_t ProjectVectorOnPlane (Vector_t const &v) const
 Returns the projection of the specified vector on the plane. More...
 
DecomposedVector_t DecomposeVector (Vector_t const &v) const
 Decomposes a 3D vector in two components. More...
 
double Angle (Vector_t const &v) const
 Returns the angle of the projection from main direction. More...
 
Decomposition of a projection vector
auto MainComponent (Projection_t const &v) const
 Returns the main component of a projection vector. More...
 
auto SecondaryComponent (Projection_t const &v) const
 Returns the secondary component of a projection vector. More...
 
Composition of a point
Point_t ComposePoint (DecomposedVector_t const &decomp) const
 Returns the 3D point from composition of projection and distance. More...
 
Point_t ComposePoint (double distance, Projection_t const &proj) const
 Returns the 3D point from composition of projection and distance. More...
 
Composition of a vector
Vector_t ComposeVector (DecomposedVector_t const &decomp) const
 Returns the 3D vector from composition of projection and distance. More...
 
Vector_t ComposeVector (double distance, Projection_t const &proj) const
 Returns the 3D vector from composition of projection and distance. More...
 

Private Types

using PlaneDecomposer_t = PlaneDecomposer< Vector, Point, ProjVector >
 

Private Member Functions

PlaneDecomposer_t const & Plane () const
 Returns the plane decomposer. More...
 

Private Attributes

PlaneDecomposer_t fPlaneDecomp
 Manages the projection on the plane. More...
 

Detailed Description

template<typename Vector, typename Point, typename ProjVector>
class geo::Decomposer< Vector, Point, ProjVector >

Class with methods to decompose and compose back vectors.


Template Parameters
Vectortype to represent 3D vectors
Pointtype to represent 3D points
ProjVectortype to represent 2D projection on plane

These methods deal with projection of points and vectors on a plane and the axis orthogonal to it.

Definition at line 388 of file Decomposer.h.

Member Typedef Documentation

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::AffinePlaneBase_t = typename PlaneDecomposer_t::AffinePlaneBase_t

Type of vector base for the space.

Definition at line 414 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::DecomposedVector_t = typename PlaneDecomposer_t::DecomposedVector_t

Type representing a decomposition on the plane.

Definition at line 411 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Distance_t = typename PlaneDecomposer_t::Distance_t

Type representing the signed distance from the projection plane.

Definition at line 408 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::PlaneDecomposer_t = PlaneDecomposer<Vector, Point, ProjVector>
private

Definition at line 390 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Point_t = typename PlaneDecomposer_t::Point_t

Type for a vector.

Definition at line 401 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Projection_t = typename PlaneDecomposer_t::Projection_t

Type representing the projection vector.

Definition at line 405 of file Decomposer.h.

template<typename Vector, typename Point, typename ProjVector>
using geo::Decomposer< Vector, Point, ProjVector >::Vector_t = typename PlaneDecomposer_t::Vector_t

Definition at line 402 of file Decomposer.h.

Constructor & Destructor Documentation

template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( )
default

Default constructor: projection on (x,y) with origin (0, 0, 0)

template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( AffinePlaneBase_t &&  base)
inline

Constructor: specifies a base (an origin and two direction vectors)

Definition at line 420 of file Decomposer.h.

420 : fPlaneDecomp(std::move(base)) {}
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
template<typename Vector, typename Point, typename ProjVector>
geo::Decomposer< Vector, Point, ProjVector >::Decomposer ( AffinePlaneBase_t const &  base)
inline

Constructor: specifies a base (an origin and two direction vectors)

Definition at line 423 of file Decomposer.h.

423 : fPlaneDecomp(base) {}
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392

Member Function Documentation

template<typename Vector, typename Point, typename ProjVector>
double geo::Decomposer< Vector, Point, ProjVector >::Angle ( Vector_t const &  v) const
inline

Returns the angle of the projection from main direction.

Parameters
vvector to get the angle of
Returns
the angle of the projection from main direction, in radians

The projection on the plane is taken, and its angle from the main direction is returned. That angle is defined in the range $ \left[ -\pi, \pi \right] $, so that it is 0 for a projection matching the main direction and $ \pi/2 $ for one matching the secondary direction.

Definition at line 584 of file Decomposer.h.

584 { return Plane().Angle(v); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
double Angle(Vector_t const &v) const
Returns the angle of the projection from main direction.
Definition: Decomposer.h:328
template<typename Vector, typename Point, typename ProjVector>
AffinePlaneBase_t const& geo::Decomposer< Vector, Point, ProjVector >::Base ( ) const
inline

Returns the base of the decomposition.

Definition at line 452 of file Decomposer.h.

452 { return Plane().Base(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
AffinePlaneBase_t const & Base() const
Returns the complete base representation.
Definition: Decomposer.h:244
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ComposePoint ( DecomposedVector_t const &  decomp) const
inline

Returns the 3D point from composition of projection and distance.

Parameters
decompdecomposed point
Returns
the 3D point from composition of projection and distance
See also
DecomposePoint(), ComposePoint(double, Projection_t const&)

See ComposePoint(double, Projection_t const&) for details.

Definition at line 610 of file Decomposer.h.

611  {
612  return ComposePoint(decomp.distance, decomp.projection);
613  }
Point_t ComposePoint(DecomposedVector_t const &decomp) const
Returns the 3D point from composition of projection and distance.
Definition: Decomposer.h:610
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ComposePoint ( double  distance,
Projection_t const &  proj 
) const
inline

Returns the 3D point from composition of projection and distance.

Parameters
distancedistance of the target point from the wire plane
projprojection of the target point on the wire plane
Returns
the 3D point from composition of projection and distance
See also
DecomposePoint()

The returned point is the sum of two 3D contributions:

  1. a vector parallel to the plane normal, with norm the input distance
  2. a vector lying on the plane, whose projection via ProjectPointOnPlane() gives the input projection

Given the arbitrary definition of the projection reference, it is assumed that the same convention is used as in ProjectPointOnPlane() and PointNormalComponent().

Definition at line 633 of file Decomposer.h.

634  {
635  return ReferencePoint() + ComposeVector(distance, proj);
636  }
Vector_t ComposeVector(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
Definition: Decomposer.h:651
Point_t ReferencePoint() const
Returns the reference point for the plane coordinate, as a 3D point.
Definition: Decomposer.h:449
Float_t proj
Definition: plot.C:35
template<typename Vector, typename Point, typename ProjVector>
Vector_t geo::Decomposer< Vector, Point, ProjVector >::ComposeVector ( DecomposedVector_t const &  decomp) const
inline

Returns the 3D vector from composition of projection and distance.

Parameters
decompdecomposed vector
Returns
the 3D vector from composition of projection and distance
See also
DecomposeVector(), ComposeVector(double, Projection_t const&)

See ComposeVector(double, Projection_t const&) for details.

Definition at line 651 of file Decomposer.h.

652  {
653  return ComposeVector(decomp.distance, decomp.projection);
654  }
Vector_t ComposeVector(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
Definition: Decomposer.h:651
template<typename Vector, typename Point, typename ProjVector>
Vector_t geo::Decomposer< Vector, Point, ProjVector >::ComposeVector ( double  distance,
Projection_t const &  proj 
) const
inline

Returns the 3D vector from composition of projection and distance.

Parameters
distancedistance of the target point from the wire plane
projprojection of the target point on the wire plane
Returns
the 3D vector from composition of projection and distance
See also
DecomposeVector()

The returned vector is the sum of two 3D vectors:

  1. a vector parallel to the plane normal, with norm the input distance
  2. a vector lying on the plane, whose projection via ProjectVectorOnPlane() gives the input projection

Given the arbitrary definition of the projection reference, it is assumed that the same convention is used as in ProjectVectorOnPlane() and VectorNormalComponent().

Definition at line 674 of file Decomposer.h.

675  {
676  return Plane().ComposeVector(proj) + distance * NormalDir();
677  }
Vector_t const & NormalDir() const
Returns the plane normal axis direction.
Definition: Decomposer.h:461
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
Vector_t ComposeVector(Projection_t const &projection) const
Returns the 3D vector from the specified projection.
Definition: Decomposer.h:349
Float_t proj
Definition: plot.C:35
template<typename Vector, typename Point, typename ProjVector>
DecomposedVector_t geo::Decomposer< Vector, Point, ProjVector >::DecomposePoint ( Point_t const &  point) const
inline

Decomposes a 3D point in two components.

Parameters
pointthe point to be decomposed
Returns
the two components of point, on the plane and orthogonal to it

The point is decomposed in:

  1. a component orthogonal to the plane, expressed as a signed real number
  2. a component lying on the plane, expressed as a 2D vector

The distance is obtained as by PointNormalComponent(). The projection on the plane is obtained following the same convention as ProjectPointOnPlane().

Definition at line 516 of file Decomposer.h.

Referenced by geo::DriftPartitions::TPCat().

517  {
518  return DecomposeVector(Base().ToVector(point));
519  }
DecomposedVector_t DecomposeVector(Vector_t const &v) const
Decomposes a 3D vector in two components.
Definition: Decomposer.h:568
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:452
template<typename Vector, typename Point, typename ProjVector>
DecomposedVector_t geo::Decomposer< Vector, Point, ProjVector >::DecomposeVector ( Vector_t const &  v) const
inline

Decomposes a 3D vector in two components.

Parameters
vthe vector to be decomposed
Returns
the two components of vector, on the plane and orthogonal to it

The vector is decomposed in:

  1. a component orthogonal to the plane, expressed as a signed real number
  2. a component lying on the plane, expressed as a 2D vector

The distance is obtained as by VectorNormalComponent(). The projection on the plane is obtained following the same convention as ProjectVectorOnPlane().

Definition at line 568 of file Decomposer.h.

569  {
571  }
auto VectorNormalComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:536
Projection_t ProjectVectorOnPlane(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
Definition: Decomposer.h:549
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::MainComponent ( Projection_t const &  v) const
inline

Returns the main component of a projection vector.

Definition at line 592 of file Decomposer.h.

592 { return Plane().MainComponent(v); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
auto MainComponent(Projection_t const &v) const
Returns the main component of a projection vector.
Definition: Decomposer.h:255
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::MainDir ( ) const
inline

Returns the plane main axis direction.

Definition at line 455 of file Decomposer.h.

455 { return Plane().MainDir(); }
Vector_t const & MainDir() const
Returns the plane main axis direction.
Definition: Decomposer.h:238
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::NormalDir ( ) const
inline

Returns the plane normal axis direction.

Definition at line 461 of file Decomposer.h.

Referenced by geo::PlaneGeo::UpdateWireDir().

461 { return Base().NormalDir(); }
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:452
template<typename Vector, typename Point, typename ProjVector>
PlaneDecomposer_t const& geo::Decomposer< Vector, Point, ProjVector >::Plane ( ) const
inlineprivate

Returns the plane decomposer.

Definition at line 395 of file Decomposer.h.

395 { return fPlaneDecomp; }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointMainComponent ( Point_t const &  point) const
inline

Returns the main component of a point.

Definition at line 469 of file Decomposer.h.

470  {
471  return VectorMainComponent(Base().ToVector(point));
472  }
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:452
auto VectorMainComponent(Vector_t const &v) const
Returns the main component of a vector.
Definition: Decomposer.h:527
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointNormalComponent ( Point_t const &  point) const
inline

Returns the secondary component of a point.

Definition at line 481 of file Decomposer.h.

Referenced by geo::DriftPartitions::computeCoverage(), geo::DriftPartitions::driftCoord(), and sortTPCsByDriftCoord().

482  {
483  return VectorNormalComponent(Base().ToVector(point));
484  }
auto VectorNormalComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:536
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:452
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::PointSecondaryComponent ( Point_t const &  point) const
inline

Returns the secondary component of a point.

Definition at line 475 of file Decomposer.h.

476  {
477  return VectorSecondaryComponent(Base().ToVector(point));
478  }
auto VectorSecondaryComponent(Vector_t const &v) const
Returns the secondary component of a vector.
Definition: Decomposer.h:530
AffinePlaneBase_t const & Base() const
Returns the base of the decomposition.
Definition: Decomposer.h:452
template<typename Vector, typename Point, typename ProjVector>
Projection_t geo::Decomposer< Vector, Point, ProjVector >::ProjectPointOnPlane ( Point_t const &  point) const
inline

Returns the projection of the specified point on the plane.

Parameters
pointthe 3D point to be projected, in world coordinates
Returns
a 2D vector representing the projection of point on the plane

The returned vector is a 2D vector expressing the projection of the point (from world coordinates) on the plane. The vector is expressed as $ ( m, s ) $, components following the main direction (MainDir()) and the secondary one (SecondaryDir()) respectively. The origin point is the one from ReferencePoint().

Definition at line 497 of file Decomposer.h.

Referenced by TPCarea().

498  {
499  return Plane().PointProjection(point);
500  }
Projection_t PointProjection(Point_t const &point) const
Returns the projection of the specified point on the plane.
Definition: Decomposer.h:288
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
template<typename Vector, typename Point, typename ProjVector>
Projection_t geo::Decomposer< Vector, Point, ProjVector >::ProjectVectorOnPlane ( Vector_t const &  v) const
inline

Returns the projection of the specified vector on the plane.

Parameters
vthe 3D vector to be projected, in world units
Returns
a 2D vector representing the projection of v on the plane

The returned vector is a 2D vector expressing the projection of the vector (from world units) on the wire plane. The vector is expressed as $ ( m, s ) $, components following the main direction (MainDir()) and the secondary one (SecondaryDir()) respectively.

Definition at line 549 of file Decomposer.h.

550  {
551  return Plane().VectorProjection(v);
552  }
Projection_t VectorProjection(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
Definition: Decomposer.h:312
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
template<typename Vector, typename Point, typename ProjVector>
Point_t geo::Decomposer< Vector, Point, ProjVector >::ReferencePoint ( ) const
inline

Returns the reference point for the plane coordinate, as a 3D point.

Definition at line 449 of file Decomposer.h.

449 { return Plane().ReferencePoint(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
Point_t ReferencePoint() const
Returns the reference point for the plane coordinate, as a 3D point.
Definition: Decomposer.h:235
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::SecondaryComponent ( Projection_t const &  v) const
inline

Returns the secondary component of a projection vector.

Definition at line 595 of file Decomposer.h.

595 { return Plane().SecondaryComponent(v); }
auto SecondaryComponent(Projection_t const &v) const
Returns the secondary component of a projection vector.
Definition: Decomposer.h:258
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
template<typename Vector, typename Point, typename ProjVector>
Vector_t const& geo::Decomposer< Vector, Point, ProjVector >::SecondaryDir ( ) const
inline

Returns the plane secondary axis direction.

Definition at line 458 of file Decomposer.h.

Referenced by geo::PlaneGeo::UpdateWidthDepthDir().

458 { return Plane().SecondaryDir(); }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
Vector_t const & SecondaryDir() const
Returns the plane secondary axis direction.
Definition: Decomposer.h:241
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetBase ( AffinePlaneBase_t &&  base)
inline

Change projection base.

Definition at line 429 of file Decomposer.h.

429 { fPlaneDecomp.SetBase(std::move(base)); }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
void SetBase(AffinePlaneBase_t &&base)
Change projection base.
Definition: Decomposer.h:215
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetBase ( AffinePlaneBase_t const &  base)
inline

Change projection base.

Definition at line 432 of file Decomposer.h.

432 { fPlaneDecomp.SetBase(base); }
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
void SetBase(AffinePlaneBase_t &&base)
Change projection base.
Definition: Decomposer.h:215
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetMainDir ( Vector_t const &  dir)
inline

Change the main direction of the projection base.

Definition at line 438 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), and geo::PlaneGeo::UpdateWireDir().

void SetMainDir(Vector_t const &dir)
Change the main direction of the projection base.
Definition: Decomposer.h:224
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
TDirectory * dir
Definition: macro.C:5
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetOrigin ( Point_t const &  point)
inline

Change the 3D point of the reference frame origin.

Definition at line 435 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), geo::PlaneGeo::UpdateDecompWireOrigin(), and geo::PlaneGeo::UpdateWirePlaneCenter().

435 { fPlaneDecomp.SetOrigin(point); }
void SetOrigin(Point_t const &point)
Change the 3D point of the reference frame origin.
Definition: Decomposer.h:221
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
template<typename Vector, typename Point, typename ProjVector>
void geo::Decomposer< Vector, Point, ProjVector >::SetSecondaryDir ( Vector_t const &  dir)
inline

Change the secondary direction of the projection base.

Definition at line 441 of file Decomposer.h.

Referenced by geo::PlaneGeo::DetectGeometryDirections(), geo::PlaneGeo::UpdateIncreasingWireDir(), and geo::PlaneGeo::UpdateWidthDepthDir().

void SetSecondaryDir(Vector_t const &dir)
Change the secondary direction of the projection base.
Definition: Decomposer.h:227
PlaneDecomposer_t fPlaneDecomp
Manages the projection on the plane.
Definition: Decomposer.h:392
TDirectory * dir
Definition: macro.C:5
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorMainComponent ( Vector_t const &  v) const
inline

Returns the main component of a vector.

Definition at line 527 of file Decomposer.h.

527 { return Plane().VectorMainComponent(v); }
auto VectorMainComponent(Vector_t const &v) const
Returns the main component of a projection vector.
Definition: Decomposer.h:294
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorNormalComponent ( Vector_t const &  v) const
inline

Returns the secondary component of a vector.

Definition at line 536 of file Decomposer.h.

536 { return geo::vect::dot(v, NormalDir()); }
Vector_t const & NormalDir() const
Returns the plane normal axis direction.
Definition: Decomposer.h:461
constexpr auto dot(Vector const &a, OtherVector const &b)
Return cross product of two vectors.
template<typename Vector, typename Point, typename ProjVector>
auto geo::Decomposer< Vector, Point, ProjVector >::VectorSecondaryComponent ( Vector_t const &  v) const
inline

Returns the secondary component of a vector.

Definition at line 530 of file Decomposer.h.

Referenced by geo::PlaneGeo::InterWireDistance().

531  {
532  return Plane().VectorSecondaryComponent(v);
533  }
PlaneDecomposer_t const & Plane() const
Returns the plane decomposer.
Definition: Decomposer.h:395
auto VectorSecondaryComponent(Vector_t const &v) const
Returns the secondary component of a projection vector.
Definition: Decomposer.h:297

Member Data Documentation

template<typename Vector, typename Point, typename ProjVector>
PlaneDecomposer_t geo::Decomposer< Vector, Point, ProjVector >::fPlaneDecomp
private

Manages the projection on the plane.

Definition at line 392 of file Decomposer.h.


The documentation for this class was generated from the following file: