Geometry information for a single wire plane.The plane is represented in the geometry by a solid which contains wires. Currently, only box solids are well supported. The box which is representation of the plane has some thickness, and it should not be assumed that the wires are in the median section of it, that is, the center of the box may not lie on the plane defined by the wires. More...
#include <PlaneGeo.h>
Classes | |
struct | PlaneGeoCoordinatesTag |
Tag for vectors in the "local" GDML coordinate frame of the plane. More... | |
struct | RectSpecs |
struct | WidthDepthReferenceTag |
Tag for plane frame base vectors. More... | |
struct | WireCoordinateReferenceTag |
Tag for wire base vectors. More... | |
Public Types | |
using | WireCollection_t = std::vector< geo::WireGeo > |
using | GeoNodePath_t = std::vector< TGeoNode const * > |
using | ElementIteratorBox = WireCollection_t const & |
Type returned by IterateElements() . More... | |
using | Rect = lar::util::simple_geo::Rectangle< double > |
Type for description of rectangles. More... | |
Types for geometry-local reference vectors. | |
These types represents points and displacement vectors in the reference frame defined in the plane geometry box from the GDML geometry description. No alias is explicitly defined for the LArSoft global vector types, Remember the | |
using | LocalPoint_t = geo::Point3DBase_t< PlaneGeoCoordinatesTag > |
Type of points in the local GDML wire plane frame. More... | |
using | LocalVector_t = geo::Vector3DBase_t< PlaneGeoCoordinatesTag > |
Type of displacement vectors in the local GDML wire plane frame. More... | |
Types for vectors in the wire coordinate frame. | |
using | WireCoordProjection_t = ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WireCoordinateReferenceTag > |
Type for projections in the wire base representation. More... | |
using | WireDecomposer_t = geo::Decomposer< geo::Vector_t, geo::Point_t, WireCoordProjection_t > |
Type used for plane decompositions on wire base. More... | |
using | WireDecomposedVector_t = WireDecomposer_t::DecomposedVector_t |
Type describing a 3D point or vector decomposed on a plane on wire base. More... | |
Types for vectors in the width/depth coordinate frame. | |
using | WidthDepthProjection_t = ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > |
using | WidthDepthDisplacement_t = ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > |
Type for vector projections in the plane frame base representation. More... | |
using | WidthDepthDecomposer_t = geo::Decomposer< geo::Vector_t, geo::Point_t, WidthDepthProjection_t > |
Type used for plane decompositions on plane frame (width/depth). More... | |
using | WDDecomposedVector_t = WidthDepthDecomposer_t::DecomposedVector_t |
Public Member Functions | |
PlaneGeo (TGeoNode const &node, geo::TransformationMatrix &&trans, WireCollection_t &&wires) | |
Construct a representation of a single plane of the detector. More... | |
double | Width () const |
Return the width of the plane. More... | |
double | Depth () const |
Return the depth of the plane. More... | |
geo::BoxBoundedGeo | BoundingBox () const |
WireGeo const & | Wire (unsigned int iwire) const |
geo::WirePtr | WirePtr (unsigned int iwire) const |
Returns the wire number iwire from this plane. More... | |
const WireGeo & | FirstWire () const |
Return the first wire in the plane. More... | |
const WireGeo & | MiddleWire () const |
Return the middle wire in the plane. More... | |
const WireGeo & | LastWire () const |
Return the last wire in the plane. More... | |
geo::WireGeo const & | NearestWire (geo::Point_t const &pos) const |
Returns the wire closest to the specified position. More... | |
geo::WireID | ClosestWireID (geo::WireID::WireID_t wireNo) const |
Returns the closest valid wire ID to the specified wire. More... | |
geo::WireID | ClosestWireID (geo::WireID const &wireid) const |
Returns the closest valid wire ID to the specified wire. More... | |
Rect const & | ActiveArea () const |
Returns an area covered by the wires in the plane. More... | |
lar::util::simple_geo::Volume | Coverage () const |
Returns a volume including all the wires in the plane. More... | |
template<typename Stream > | |
void | PrintPlaneInfo (Stream &&out, std::string indent="", unsigned int verbosity=1) const |
Prints information about this plane. More... | |
std::string | PlaneInfo (std::string indent="", unsigned int verbosity=1) const |
Returns a string with plane information. More... | |
template<typename Point > | |
double | WireCoordinate (Point const &point) const |
Returns the coordinate of the point on the plane, in wire units. More... | |
WidthDepthProjection_t | DeltaFromPlane (WidthDepthProjection_t const &proj, double wMargin, double dMargin) const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the plane. More... | |
WidthDepthProjection_t | DeltaFromPlane (WidthDepthProjection_t const &proj, double margin=0.0) const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the area of plane. More... | |
WidthDepthProjection_t | DeltaFromActivePlane (WidthDepthProjection_t const &proj, double wMargin, double dMargin) const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the active area of plane. More... | |
WidthDepthProjection_t | DeltaFromActivePlane (WidthDepthProjection_t const &proj, double margin=0.0) const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the active area of plane. More... | |
WidthDepthProjection_t | MoveProjectionToPlane (WidthDepthProjection_t const &proj) const |
Returns the projection, moved onto the plane if necessary. More... | |
void | SortWires (geo::GeoObjectSorter const &sorter) |
Apply sorting to WireGeo objects. More... | |
void | UpdateAfterSorting (geo::PlaneID planeid, geo::BoxBoundedGeo const &TPCbox) |
Performs all needed updates after the TPC has sorted the planes. More... | |
Plane properties | |
View_t | View () const |
Which coordinate does this plane measure. More... | |
Orient_t | Orientation () const |
What is the orientation of the plane. More... | |
double | ThetaZ () const |
Angle of the wires from positive z axis; . More... | |
double | PhiZ () const |
Angle from positive z axis of the wire coordinate axis, in radians. More... | |
double | SinPhiZ () const |
Sine of PhiZ() More... | |
double | CosPhiZ () const |
Cosine of PhiZ() More... | |
geo::PlaneID const & | ID () const |
Returns the identifier of this plane. More... | |
Plane size and coordinates | |
template<typename Vector > | |
Vector | WidthDir () const |
Return the direction of plane width. More... | |
DefaultVector_t | WidthDir () const |
template<typename Vector > | |
Vector | DepthDir () const |
Return the direction of plane depth. More... | |
DefaultVector_t | DepthDir () const |
Wire access | |
unsigned int | Nwires () const |
Number of wires in this plane. More... | |
unsigned int | NElements () const |
bool | HasWire (unsigned int iwire) const |
Returns whether a wire with index iwire is present in this plane. More... | |
bool | HasElement (unsigned int iwire) const |
bool | HasWire (geo::WireID const &wireid) const |
Returns whether the wire in wireid is present in this plane. More... | |
bool | HasElement (geo::WireID const &wireid) const |
WireGeo const & | Wire (WireID const &wireid) const |
Returns the wire in wireid from this plane. More... | |
WireGeo const & | GetElement (WireID const &wireid) const |
geo::WirePtr | WirePtr (WireID const &wireid) const |
Returns the wire in wireid from this plane. More... | |
geo::WirePtr | GetElementPtr (WireID const &wireid) const |
ElementIteratorBox | IterateElements () const |
Allows range-for iteration on all wires in this plane. More... | |
ElementIteratorBox | IterateWires () const |
Plane geometry properties | |
double | WirePitch () const |
Return the wire pitch (in centimeters). It is assumed constant. More... | |
bool | WireIDincreasesWithZ () const |
Returns whether the higher z wires have higher wire ID. More... | |
template<typename Vector > | |
Vector | GetNormalDirection () const |
Returns the direction normal to the plane. More... | |
DefaultVector_t | GetNormalDirection () const |
template<typename Vector > | |
Vector | GetIncreasingWireDirection () const |
Returns the direction of increasing wires. More... | |
DefaultVector_t | GetIncreasingWireDirection () const |
template<typename Point > | |
Point | GetCenter () const |
Returns the centre of the wire plane in world coordinates [cm]. More... | |
DefaultPoint_t | GetCenter () const |
template<typename Point > | |
Point | GetBoxCenter () const |
Returns the centre of the box representing the plane. More... | |
DefaultPoint_t | GetBoxCenter () const |
template<typename Vector > | |
Vector | GetWireDirection () const |
Returns the direction of the wires. More... | |
DefaultVector_t | GetWireDirection () const |
geo::WireID | NearestWireID (geo::Point_t const &pos) const |
Returns the ID of wire closest to the specified position. More... | |
geo::WireID | NearestWireID (TVector3 const &pos) const |
double | DistanceFromPlane (geo::Point_t const &point) const |
Returns the distance of the specified point from the wire plane. More... | |
double | DistanceFromPlane (TVector3 const &point) const |
void | DriftPoint (geo::Point_t &position, double distance) const |
Shifts the position of an electron drifted by a distance. More... | |
void | DriftPoint (TVector3 &position, double distance) const |
void | DriftPoint (geo::Point_t &position) const |
Shifts the position along drift direction to fall on the plane. More... | |
void | DriftPoint (TVector3 &position) const |
double | InterWireProjectedDistance (WireCoordProjection_t const &projDir) const |
Returns the distance between wires along the specified direction. More... | |
double | InterWireDistance (geo::Vector_t const &dir) const |
Returns the distance between wires along the specified direction. More... | |
double | InterWireDistance (TVector3 const &dir) const |
template<typename Vector > | |
std::enable_if_t < geo::vect::dimension< Vector >)==3U, double > | InterWireProjectedDistance (Vector const &dir) const |
Returns the distance between wires along the specified direction. More... | |
Projections on wire length/wire coordinate direction base | |
These methods deal with projection of points and vectors on the plane, using a geometric reference base which is dependent on the wire direction. This is useful for plane reconstruction. | |
double | PlaneCoordinateFrom (geo::Point_t const &point, geo::WireGeo const &refWire) const |
Returns the coordinate of point on the plane respect to a wire. More... | |
double | PlaneCoordinateFrom (TVector3 const &point, geo::WireGeo const &refWire) const |
double | PlaneCoordinate (geo::Point_t const &point) const |
Returns the coordinate of the point on the plane. More... | |
double | PlaneCoordinate (TVector3 const &point) const |
WireDecomposedVector_t | DecomposePoint (geo::Point_t const &point) const |
Decomposes a 3D point in two components. More... | |
WireDecomposedVector_t | DecomposePoint (TVector3 const &point) const |
template<typename Point > | |
Point | ProjectionReferencePoint () const |
Returns the reference point used by PointProjection() . More... | |
DefaultPoint_t | ProjectionReferencePoint () const |
WireCoordProjection_t | Projection (geo::Point_t const &point) const |
Returns the projection of the specified point on the plane. More... | |
WireCoordProjection_t | PointProjection (geo::Point_t const &point) const |
WireCoordProjection_t | PointProjection (TVector3 const &point) const |
WireCoordProjection_t | Projection (geo::Vector_t const &v) const |
Returns the projection of the specified vector on the plane. More... | |
WireCoordProjection_t | VectorProjection (geo::Vector_t const &v) const |
WireCoordProjection_t | VectorProjection (TVector3 const &v) const |
template<typename Vector > | |
Vector | ComposeVector (WireDecomposedVector_t const &decomp) const |
Returns the 3D vector from composition of projection and distance. More... | |
DefaultVector_t | ComposeVector (WireDecomposedVector_t const &decomp) const |
template<typename Vector > | |
Vector | ComposeVector (double distance, WireCoordProjection_t const &proj) const |
Returns the 3D vector from composition of projection and distance. More... | |
DefaultVector_t | ComposeVector (double distance, WireCoordProjection_t const &proj) const |
template<typename Point > | |
Point | ComposePoint (WireDecomposedVector_t const &decomp) const |
Returns the 3D point from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (WireDecomposedVector_t const &decomp) const |
template<typename Point > | |
Point | ComposePoint (double distance, WireCoordProjection_t const &proj) const |
Returns the 3D point from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (double distance, WireCoordProjection_t const &proj) const |
Projection on width/depth plane | |
These methods deal with projection of points and vectors on the plane, using a geometric reference base which is not dependent on the wire direction. This is more useful when comparing with the TPC or other planes. | |
WDDecomposedVector_t | DecomposePointWidthDepth (geo::Point_t const &point) const |
Decomposes a 3D point in two components. More... | |
WDDecomposedVector_t | DecomposePointWidthDepth (TVector3 const &point) const |
WidthDepthProjection_t | PointWidthDepthProjection (geo::Point_t const &point) const |
Returns the projection of the specified point on the plane. More... | |
WidthDepthProjection_t | PointWidthDepthProjection (TVector3 const &point) const |
WidthDepthProjection_t | VectorWidthDepthProjection (geo::Vector_t const &v) const |
Returns the projection of the specified vector on the plane. More... | |
WidthDepthProjection_t | VectorWidthDepthProjection (TVector3 const &v) const |
bool | isProjectionOnPlane (geo::Point_t const &point) const |
Returns if the projection of specified point is within the plane. More... | |
bool | isProjectionOnPlane (TVector3 const &point) const |
geo::Point_t | MovePointOverPlane (geo::Point_t const &point) const |
Returns the point, moved so that its projection is over the plane. More... | |
TVector3 | MovePointOverPlane (TVector3 const &point) const |
template<typename Point > | |
Point | ComposePoint (WDDecomposedVector_t const &decomp) const |
Returns the 3D vector from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (WDDecomposedVector_t const &decomp) const |
template<typename Point > | |
Point | ComposePoint (double distance, WidthDepthProjection_t const &proj) const |
Returns the 3D point from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (double distance, WidthDepthProjection_t const &proj) const |
Coordinate transformation | |
Local points and displacement vectors are described by the types | |
void | LocalToWorld (const double *plane, double *world) const |
Transform point from local plane frame to world frame. More... | |
TVector3 | LocalToWorld (const TVector3 &local) const |
Transform point from local plane frame to world frame. More... | |
geo::Point_t | toWorldCoords (LocalPoint_t const &local) const |
Transform point from local plane frame to world frame. More... | |
void | LocalToWorldVect (const double *plane, double *world) const |
Transform direction vector from local to world. More... | |
TVector3 | LocalToWorldVect (const TVector3 &local) const |
Transform direction vector from local to world. More... | |
geo::Vector_t | toWorldCoords (LocalVector_t const &local) const |
Transform direction vector from local to world. More... | |
void | WorldToLocal (const double *world, double *plane) const |
Transform point from world frame to local plane frame. More... | |
TVector3 | WorldToLocal (TVector3 const &world) const |
Transform point from world frame to local plane frame. More... | |
LocalPoint_t | toLocalCoords (geo::Point_t const &world) const |
Transform point from world frame to local plane frame. More... | |
void | WorldToLocalVect (const double *world, double *plane) const |
Transform direction vector from world to local. More... | |
TVector3 | WorldToLocalVect (TVector3 const &world) const |
Transform direction vector from world to local. More... | |
LocalVector_t | toLocalCoords (geo::Vector_t const &world) const |
Transform direction vector from world to local. More... | |
Setters | |
void | SetView (geo::View_t view) |
Set the signal view (for TPCGeo). More... | |
Static Public Member Functions | |
static std::string | ViewName (geo::View_t view) |
Returns the name of the specified view. More... | |
static std::string | OrientationName (geo::Orient_t orientation) |
Returns the name of the specified orientation. More... | |
Static Public Attributes | |
static constexpr unsigned int | MaxVerbosity = 6 |
Maximum value for print verbosity. More... | |
Private Types | |
using | DefaultVector_t = TVector3 |
using | DefaultPoint_t = TVector3 |
using | LocalTransformation_t = geo::LocalTransformationGeo< ROOT::Math::Transform3D, LocalPoint_t, LocalVector_t > |
Private Member Functions | |
void | DetectGeometryDirections () |
Sets the geometry directions. More... | |
geo::Vector_t | GetNormalAxis () const |
Returns a direction normal to the plane (pointing is not defined). More... | |
void | UpdatePlaneNormal (geo::BoxBoundedGeo const &TPCbox) |
Updates the cached normal to plane versor; needs the TPC box coordinates. More... | |
void | UpdateWidthDepthDir () |
Updates the cached depth and width direction. More... | |
void | UpdateIncreasingWireDir () |
Updates the cached direction to increasing wires. More... | |
void | UpdateWireDir () |
Updates the cached direction to wire. More... | |
void | UpdateOrientation () |
Updates plane orientation. More... | |
void | UpdateWirePitch () |
Updates the stored wire pitch. More... | |
void | UpdateWirePlaneCenter () |
Updates the stored wire plane center. More... | |
void | UpdatePhiZ () |
Updates the stored . More... | |
void | UpdateView () |
Updates the stored view. More... | |
void | UpdateWirePitchSlow () |
Updates the stored wire pitch with a slower, more robust algorithm. More... | |
void | UpdateDecompWireOrigin () |
Updates the position of the wire coordinate decomposition. More... | |
void | UpdateActiveArea () |
Updates the internally used active area. More... | |
bool | shouldFlipWire (geo::WireGeo const &wire) const |
Whether the specified wire should have start and end swapped. More... | |
Static Private Member Functions | |
template<typename T > | |
static T | boundedValue (T v, T min, T max) |
Returns min if v < min , max if v > max , v otherwise. More... | |
Private Attributes | |
LocalTransformation_t | fTrans |
Plane to world transform. More... | |
TGeoVolume const * | fVolume |
Plane volume description. More... | |
View_t | fView |
Does this plane measure U, V, or W? More... | |
Orient_t | fOrientation |
Is the plane vertical or horizontal? More... | |
WireCollection_t | fWire |
List of wires in this plane. More... | |
double | fWirePitch |
Pitch of wires in this plane. More... | |
double | fSinPhiZ |
Sine of . More... | |
double | fCosPhiZ |
Cosine of . More... | |
geo::Vector_t | fNormal |
WireDecomposer_t | fDecompWire |
WidthDepthDecomposer_t | fDecompFrame |
RectSpecs | fFrameSize |
Rect | fActiveArea |
Area covered by wires in frame base. More... | |
geo::Point_t | fCenter |
Center of the plane, lying on the wire plane. More... | |
geo::PlaneID | fID |
ID of this plane. More... | |
Friends | |
struct | details::ActiveAreaCalculator |
Geometry information for a single wire plane.
The plane is represented in the geometry by a solid which contains wires. Currently, only box solids are well supported. The box which is representation of the plane has some thickness, and it should not be assumed that the wires are in the median section of it, that is, the center of the box may not lie on the plane defined by the wires.
The plane defines two local reference frames. The first, depending on wire directions and therefore called "wire base", is defined by the normal to the plane (pointing toward the center of the TPC), the direction of the wires, and the direction that the wires measure. This is a positive orthogonal base. Note that for this base to be correctly defined, the Geometry service has to provide external information (for example, where the center of the TPC is).
The second, depending only on the shape of the plane and called "frame base", is defined by the normal (the same as for the previous one), and two orthogonal axes, "width" and "depth", aligned with the sides of the plane. If the plane has not the shape of a box, this reference frame is not available. This coordinate system is also positive defined. These components are all measured in centimeters.
Definition at line 82 of file PlaneGeo.h.
|
private |
Definition at line 85 of file PlaneGeo.h.
|
private |
Definition at line 84 of file PlaneGeo.h.
using geo::PlaneGeo::ElementIteratorBox = WireCollection_t const& |
Type returned by IterateElements()
.
Definition at line 93 of file PlaneGeo.h.
using geo::PlaneGeo::GeoNodePath_t = std::vector<TGeoNode const*> |
Definition at line 90 of file PlaneGeo.h.
Type of points in the local GDML wire plane frame.
Definition at line 115 of file PlaneGeo.h.
|
private |
Definition at line 1466 of file PlaneGeo.h.
Type of displacement vectors in the local GDML wire plane frame.
Definition at line 118 of file PlaneGeo.h.
using geo::PlaneGeo::Rect = lar::util::simple_geo::Rectangle<double> |
Type for description of rectangles.
Definition at line 169 of file PlaneGeo.h.
Type describing a 3D point or vector decomposed on a plane with plane frame base (width and depth).
Definition at line 163 of file PlaneGeo.h.
using geo::PlaneGeo::WidthDepthDecomposer_t = geo::Decomposer <geo::Vector_t, geo::Point_t, WidthDepthProjection_t> |
Type used for plane decompositions on plane frame (width/depth).
Definition at line 159 of file PlaneGeo.h.
using geo::PlaneGeo::WidthDepthDisplacement_t = ROOT::Math::DisplacementVector2D <ROOT::Math::Cartesian2D<double>, WidthDepthReferenceTag> |
Type for vector projections in the plane frame base representation.
Definition at line 155 of file PlaneGeo.h.
using geo::PlaneGeo::WidthDepthProjection_t = ROOT::Math::DisplacementVector2D <ROOT::Math::Cartesian2D<double>, WidthDepthReferenceTag> |
Type for projections in the plane frame base representation.
Definition at line 151 of file PlaneGeo.h.
using geo::PlaneGeo::WireCollection_t = std::vector<geo::WireGeo> |
Definition at line 89 of file PlaneGeo.h.
using geo::PlaneGeo::WireCoordProjection_t = ROOT::Math::DisplacementVector2D <ROOT::Math::Cartesian2D<double>, WireCoordinateReferenceTag> |
Type for projections in the wire base representation.
Definition at line 130 of file PlaneGeo.h.
Type describing a 3D point or vector decomposed on a plane on wire base.
Definition at line 137 of file PlaneGeo.h.
using geo::PlaneGeo::WireDecomposer_t = geo::Decomposer <geo::Vector_t, geo::Point_t, WireCoordProjection_t> |
Type used for plane decompositions on wire base.
Definition at line 134 of file PlaneGeo.h.
geo::PlaneGeo::PlaneGeo | ( | TGeoNode const & | node, |
geo::TransformationMatrix && | trans, | ||
WireCollection_t && | wires | ||
) |
Construct a representation of a single plane of the detector.
Definition at line 435 of file PlaneGeo.cxx.
|
inline |
Returns an area covered by the wires in the plane.
The returned value is conceptually akin of a projection of Coverage()
volume. Yet, the precise definition of the area is not specified, therefore this area should not be uses for physics.
The current implementation is documented in details::ActiveAreaCalculator
.
Definition at line 758 of file PlaneGeo.h.
|
inlinestaticprivate |
Returns min
if v
< min
, max
if v
> max
, v
otherwise.
Definition at line 1508 of file PlaneGeo.h.
geo::BoxBoundedGeo geo::PlaneGeo::BoundingBox | ( | ) | const |
Returns the world coordinates of the box containing the plane.
Definition at line 469 of file PlaneGeo.cxx.
|
inline |
Returns the closest valid wire ID to the specified wire.
wireNo | number of the wire on this plane |
If the wire number described a wire present on this plane, its complete wire ID is returned, valid. Otherwise, a valid wire ID is returned which points to the existing wire closest to the specified wire number: the first wire if the wire number is negative, or the last wire if the wire number is larger than the actual wires.
Note that the argument geo::WireID::WireID_t
type is an integral type, and if a floating point value is specified for it, it's subject to truncation.
Definition at line 1520 of file PlaneGeo.h.
|
inline |
Returns the closest valid wire ID to the specified wire.
wireid | the wire ID (must be on this plane) |
ClosestWireID(geo::WireID::WireID_t)
If wireid
is not on this plane, it is returned but marked as invalid. Otherwise, the returned ID is the same as in ClosestWireID(geo::WireID::WireID_t)
.
Definition at line 1525 of file PlaneGeo.h.
|
inline |
Returns the 3D point from composition of projection and distance.
Point | the type of point to return (current default: TVector3 ) |
decomp | decomposed point |
See ComposePoint(double, WireCoordProjection_t const&)
for details.
Definition at line 1024 of file PlaneGeo.h.
|
inline |
Definition at line 1026 of file PlaneGeo.h.
|
inline |
Returns the 3D point from composition of projection and distance.
Point | the type of point to return (current default: TVector3 ) |
distance | distance of the target point from the wire plane |
proj | projection of the target point on the wire plane |
The returned point is the reference point of the frame system (that is, the plane center), translated by two 3D vectors:
PointProjection()
gives the input projectionThe choice of the projection reference point embodies the same convention used in PointProjection()
and DecomposePoint()
. In fact, the strict definition of the result of this method is a 3D point whose decomposition on the plane frame base matches the method arguments.
Definition at line 1054 of file PlaneGeo.h.
|
inline |
Definition at line 1057 of file PlaneGeo.h.
|
inline |
Returns the 3D vector from composition of projection and distance.
Point | type of point to be produced (current default is TVector3 ) |
decomp | decomposed point |
See ComposePointWidthDepth(double, DecomposedVector_t::Projection_t const&)
for details.
Definition at line 1294 of file PlaneGeo.h.
|
inline |
Definition at line 1296 of file PlaneGeo.h.
|
inline |
Returns the 3D point from composition of projection and distance.
Point | type of point to be produced (current default is TVector3 ) |
distance | distance of the target point from the wire plane |
proj | projection of the target point on the wire plane |
The returned vector is the sum of two 3D vectors:
PointWidthDepthProjection()
gives the input projectionGiven the arbitrary definition of the projection reference, it is assumed that the same convention is used as in PointWidthDepthProjection() and DecomposePointWidthDepth().
Definition at line 1322 of file PlaneGeo.h.
|
inline |
Definition at line 1325 of file PlaneGeo.h.
|
inline |
Returns the 3D vector from composition of projection and distance.
Vector | the type of vector to return (current default: TVector3 ) |
decomp | decomposed vector |
See ComposeVector(double, WireCoordProjection_t const&)
for details.
Definition at line 982 of file PlaneGeo.h.
|
inline |
Definition at line 984 of file PlaneGeo.h.
|
inline |
Returns the 3D vector from composition of projection and distance.
Vector | the type of vector to return (current default: TVector3 ) |
distance | component of target vector orthogonal to the wire plane |
proj | projection of the target vector on the wire plane |
The returned vector is the sum of two 3D vectors:
VectorProjection()
gives the input projection Definition at line 1005 of file PlaneGeo.h.
|
inline |
Definition at line 1008 of file PlaneGeo.h.
|
inline |
lar::util::simple_geo::Volume geo::PlaneGeo::Coverage | ( | ) | const |
Returns a volume including all the wires in the plane.
Definition at line 532 of file PlaneGeo.cxx.
|
inline |
Decomposes a 3D point in two components.
point | the point to be decomposed |
The point is decomposed in:
The distance is obtained as by DistanceFromPlane(). The projection on the plane is obtained following the same convention as PointProjection().
Definition at line 901 of file PlaneGeo.h.
|
inline |
Definition at line 903 of file PlaneGeo.h.
|
inline |
Decomposes a 3D point in two components.
point | the point to be decomposed |
The point is decomposed in:
The distance is obtained as by DistanceFromPlane(). The projection on the plane is obtained following the same convention as PointWidthDepthProjection().
Definition at line 1088 of file PlaneGeo.h.
|
inline |
Definition at line 1090 of file PlaneGeo.h.
PlaneGeo::WidthDepthProjection_t geo::PlaneGeo::DeltaFromActivePlane | ( | WidthDepthProjection_t const & | proj, |
double | wMargin, | ||
double | dMargin | ||
) | const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the active area of plane.
proj | starting projection |
wMargin | the point is brought this amount inside the active area |
dMargin | the point is brought this amount inside the active area |
DeltaFromPlane()
The "active" area of the plane is the rectangular area which includes all the wires. The area is obtained as the smallest rectangle including the projection of both ends of all wires in the plane, less half a pitch. This defines a "fiducial" area away from the borders of the plane. The projection is in the frame reference (PointWidthDepthProjection()
). The area is reduced on each side by the specified margins. If for example wMargin
is 1.0
, the active area lower border on the width direction will be increased by 1 cm, and the upper border will be decreased by 1 cm effectively making the active area 2 cm narrowed on the width direction. The same independently applies to the depth direction with dMargin
. The main purpose of the margins is to accommodate for rounding errors. A version of this method with default margins of 0 is also available.
If the projection is already on the active area of the plane, the returned displacement is null. Otherwise, the displacement, added to proj, will bring it on the active plane area (in fact, on its border).
Definition at line 569 of file PlaneGeo.cxx.
|
inline |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the active area of plane.
proj | starting projection |
margin | the point is brought this amount inside the active area _(default: 0)_ |
DeltaFromActivePlane(WidthDepthProjection_t const&, double, double)
This is the implementation with default values for margins of DeltaFromActivePlane()
. The depth and width margins are the same, and 0 by default.
Definition at line 1242 of file PlaneGeo.h.
PlaneGeo::WidthDepthProjection_t geo::PlaneGeo::DeltaFromPlane | ( | WidthDepthProjection_t const & | proj, |
double | wMargin, | ||
double | dMargin | ||
) | const |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the plane.
proj | starting projection |
wMargin | the point is brought this amount inside the target area |
dMargin | the point is brought this amount inside the target area |
DeltaFromActivePlane()
The returned projection vector is guaranteed, when added to proj
, to yield a projection on or within the border of the plane (the "target
area"), as defined by the GDML geometry.
The target plane area is reduced on each side by the specified margins. If for example wMargin
is 1.0
, the area lower border on the width direction will be increased by 1 cm, and the upper border will be decreased by 1 cm effectively making the area 2 cm narrowed on the width direction. The same independently applies to the depth direction with dMargin
. The main purpose of the margins is to accommodate for rounding errors. A version of this method with default margins of 0 is also available.
If the projection is already on the target area, the returned displacement is null.
Definition at line 556 of file PlaneGeo.cxx.
|
inline |
Returns a projection vector that, added to the argument, gives a projection inside (or at the border of) the area of plane.
proj | starting projection |
margin | the point is brought this amount inside the plane area _(default: 0)_ |
DeltaFromPlane(WidthDepthProjection_t const&, double, double)
This is the implementation with default values for margins of DeltaFromPlane()
. The depth and width margins are the same, and 0 by default.
Definition at line 1194 of file PlaneGeo.h.
|
inline |
Return the depth of the plane.
The precise definition is arbitrary (see DepthDir()
).
Definition at line 254 of file PlaneGeo.h.
|
inline |
Return the direction of plane depth.
Vector | the type of vector to return (current default: TVector3 ) |
The precise definition of the sides is arbitrary, but they are defined to lie on the wire plane and so that WidthDir(), DepthDir() and GetNormalDirection() make a orthonormal base. That base (width, depth, normal) is guaranteed to be positive defined.
Definition at line 236 of file PlaneGeo.h.
|
inline |
Definition at line 237 of file PlaneGeo.h.
|
private |
Sets the geometry directions.
Definition at line 788 of file PlaneGeo.cxx.
|
inline |
Returns the distance of the specified point from the wire plane.
point | a point in world coordinates [cm] |
The distance is defined positive if the point lies in the side the normal vector (GetNormalDirection()) points to.
The distance is defined from the geometric plane where the wires lie, and it may not match the distance from the center of the geometry box representing the plane. It should always match the drift distance from this wire plane, and the result of DriftPoint(point, DistanceFromPlane(point))
will bring the point to the plane.
Definition at line 621 of file PlaneGeo.h.
|
inline |
Definition at line 623 of file PlaneGeo.h.
|
inline |
Shifts the position of an electron drifted by a distance.
position | _(modified)_ the position of the electron |
distance | drift distance to shift the electron by [cm] |
This is a pure geometry computation: the position is shifted by the drift distance in the direction opposite to the normal to the plane (as returned by GetNormalDirection()
), no matter where the position is relative to the plane. The wording about "electron position" is just meant to remind that the drift shift is taken with opposite sign: since the point is assumed to be an electron, a positive drift normally moves its position toward the wire plane.
Definition at line 643 of file PlaneGeo.h.
|
inline |
Definition at line 645 of file PlaneGeo.h.
|
inline |
Shifts the position along drift direction to fall on the plane.
position | _(modified)_ the position to be shifted |
This is a pure geometry computation: the position is shifted by the drift distance in the direction opposite to the normal to the plane (as returned by GetNormalDirection()
), no matter where the position is relative to the plane.
Definition at line 659 of file PlaneGeo.h.
|
inline |
Definition at line 661 of file PlaneGeo.h.
|
inline |
|
inline |
Returns the centre of the box representing the plane.
Point | type of point to be returned (current default: TVector3 ) |
This is the centre of the box representing the plane in the geometry description, in world coordinates. This is rarely of any use, as most of the times GetCenter()
delivers the proper information, e.g. for simulation and reconstruction.
Definition at line 498 of file PlaneGeo.h.
|
inline |
Definition at line 500 of file PlaneGeo.h.
|
inline |
Returns the centre of the wire plane in world coordinates [cm].
The center of the plane is defined so that it has width and depth coordinates in the middle of the plane box (that is, the geometrical representation of the plane in the geometry description), and the other coordinate set at drift distance 0.
Note that this does not necessarily match the center of the box, if the geometry does not place the wires, which define the drift distance, in the plane in the middle of the box.
Definition at line 479 of file PlaneGeo.h.
|
inline |
Definition at line 481 of file PlaneGeo.h.
Definition at line 315 of file PlaneGeo.h.
|
inline |
Definition at line 338 of file PlaneGeo.h.
|
inline |
Returns the direction of increasing wires.
Vector | the type of vector to return (current default: TVector3 ) |
The versor is orthogonal to the wires (assumed parallel), lies on the plane and its direction goes toward increasing wire IDs.
Definition at line 457 of file PlaneGeo.h.
|
inline |
Definition at line 459 of file PlaneGeo.h.
|
private |
Returns a direction normal to the plane (pointing is not defined).
Definition at line 871 of file PlaneGeo.cxx.
|
inline |
Returns the direction normal to the plane.
Vector | the type of vector to return (current default: TVector3 ) |
The versor is orthogonal to the plane. The direction is defined so that the semi-space pointed to contains the TPC center.
Definition at line 442 of file PlaneGeo.h.
|
inline |
Definition at line 443 of file PlaneGeo.h.
|
inline |
Returns the direction of the wires.
Vector | the type of vector to return (current default: TVector3 ) |
All wires in the plane are assumed parallel.
Definition at line 513 of file PlaneGeo.h.
|
inline |
Definition at line 514 of file PlaneGeo.h.
|
inline |
Definition at line 280 of file PlaneGeo.h.
|
inline |
Definition at line 294 of file PlaneGeo.h.
|
inline |
Returns whether a wire with index iwire is present in this plane.
iwire | index of wire in this plane |
Definition at line 279 of file PlaneGeo.h.
|
inline |
Returns whether the wire in wireid is present in this plane.
wireid | full wire ID |
The cryostat, TPC and plane numbers in wireid are ignored, as it is ignored whether wireid is invalid.
Definition at line 292 of file PlaneGeo.h.
|
inline |
double geo::PlaneGeo::InterWireDistance | ( | geo::Vector_t const & | dir | ) | const |
Returns the distance between wires along the specified direction.
dir | the direction (3D) |
The direction is specified as a 3D vector in the world coordinate frame. The modulus of the vector is ignored but expected to be non null.
The returned distance is the space that would be covered starting from a wire toward the dir
direction and stopping when the projection on the wire plane reaches another wire. This distance is returned in centimeters, always positive and not smaller than the wire pitch.
std::isinf()
, std::isfinite()
or std::isnormal()
). It is recommended that the caller take special actions when the result is too large. Definition at line 713 of file PlaneGeo.cxx.
|
inline |
Definition at line 714 of file PlaneGeo.h.
double geo::PlaneGeo::InterWireProjectedDistance | ( | WireCoordProjection_t const & | projDir | ) | const |
Returns the distance between wires along the specified direction.
projDir | the direction, projected on the plane (2D) |
The direction is specified as a geo::PlaneGeo::WireCoordProjection_t
vector, defined as in geo::PlaneGeo::Projection()
. The modulus of the projection is ignored but expected to be non null.
The returned distance is the space that would be covered starting from a wire toward the projDir
direction and stopping at the first wire met. This distance is returned in centimeters, always positive and not smaller than the wire pitch.
std::isinf()
, std::isfinite()
or std::isnormal()
). It is recommended that the caller take special actions when the result is too large. Definition at line 705 of file PlaneGeo.cxx.
|
inline |
Returns the distance between wires along the specified direction.
Vector | type of 3D vector |
dir | the direction in detector space (3D) |
The direction is specified as a 3D vector. Its modulus is ignored but expected to be non null.
The returned distance is the space that would be covered starting from a wire toward the direction projection of dir
on the wire plane, and stopping at the first wire met. This distance is returned in centimeters and always positive.
Definition at line 741 of file PlaneGeo.h.
bool geo::PlaneGeo::isProjectionOnPlane | ( | geo::Point_t const & | point | ) | const |
Returns if the projection of specified point is within the plane.
point | world coordinate of the point to test [cm] |
The method extracts the projection of the specified point on the plane, as in PointWidthDepthProjection()
, and then verifies that the projection falls within the wire plane area, as defined by the dimensions from the geometry description.
Definition at line 581 of file PlaneGeo.cxx.
|
inline |
Definition at line 1147 of file PlaneGeo.h.
|
inline |
Allows range-for iteration on all wires in this plane.
This example uses geometry to iterate on all planes in an outer loop, and then iterates on all wires in the plane in the inner loop:
(note that all data types here can be replaced with auto
). The resulting sequence exposes the wires within the plane in their ID order, from plane 0
to Nplanes() - 1
.
Since the wire ID is not contained in geo::WireGeo
, further steps are needed to obtain it if needed. For example:
Definition at line 400 of file PlaneGeo.h.
|
inline |
Definition at line 401 of file PlaneGeo.h.
|
inline |
Return the last wire in the plane.
Definition at line 350 of file PlaneGeo.h.
|
inline |
Transform point from local plane frame to world frame.
Definition at line 1343 of file PlaneGeo.h.
|
inline |
Transform point from local plane frame to world frame.
Definition at line 1347 of file PlaneGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 1355 of file PlaneGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 1359 of file PlaneGeo.h.
|
inline |
Return the middle wire in the plane.
Definition at line 347 of file PlaneGeo.h.
geo::Point_t geo::PlaneGeo::MovePointOverPlane | ( | geo::Point_t const & | point | ) | const |
Returns the point, moved so that its projection is over the plane.
point | point to be checked and moved |
If the projection of the point on the plane falls outside it, the returned point is translated so that its projection is now on the border of the plane. The translation happens along the directions of the plane frame, as described in MoveProjectionToPlane().
Definition at line 633 of file PlaneGeo.cxx.
TVector3 geo::PlaneGeo::MovePointOverPlane | ( | TVector3 const & | point | ) | const |
Definition at line 619 of file PlaneGeo.cxx.
PlaneGeo::WidthDepthProjection_t geo::PlaneGeo::MoveProjectionToPlane | ( | WidthDepthProjection_t const & | proj | ) | const |
Returns the projection, moved onto the plane if necessary.
proj | projection to be checked and moved |
The projection proj is defined as in the output of PointWidthDepthProjection()
. The method caps width and depth of the projection so that it stays on the plane. A new capped value is returned. Since the reference point of the frame is defined as the center of the plane, this action is equivalent to force the width component in range and the depth component into , with and the width and depth of the wire plane.
Definition at line 593 of file PlaneGeo.cxx.
geo::WireGeo const & geo::PlaneGeo::NearestWire | ( | geo::Point_t const & | pos | ) | const |
Returns the wire closest to the specified position.
pos | world coordinates of the point [cm] |
InvalidWireError | (category: "Geometry" ) if out of range |
The position is projected on the wire plane, and the nearest wire to the projected point is returned.
If the wire is father than half a wire pitch from the point, an exception is thrown that contains both the wire that would be the closest one (badWireID()
), and also the wire that is actually the closest one (betterWireID()
). When this happens, the specified position was outside the wire plane.
Note that the caller should check for containment: this function may or may not report the position being outside the plane, depending on where it is. In the current implementation, the wires are considered infinitely long, and if the position projection is closer than half the wire pitch from any of these extrapolated wires, the method will not report error.
Definition at line 681 of file PlaneGeo.cxx.
geo::WireID geo::PlaneGeo::NearestWireID | ( | geo::Point_t const & | pos | ) | const |
Returns the ID of wire closest to the specified position.
pos | world coordinates of the point [cm] |
InvalidWireError | (category: "Geometry" ) if out of range |
The position is projected on the wire plane, and the ID of the nearest wire to the projected point is returned.
If the wire does not exist, an exception is thrown that contains both the wire that would be the closest one (badWireID()
), and also the wire that is actually the closest one (betterWireID()
). When this happens, the specified position was outside the wire plane.
Note that the caller should check for containment: this function may or may not report the position being outside the plane, depending on where it is. In the current implementation, the wires are considered infinitely long, and if the position projection is closer than half the wire pitch from any of these extrapolated wires, the method will not report error.
pos
. Definition at line 649 of file PlaneGeo.cxx.
|
inline |
Definition at line 545 of file PlaneGeo.h.
|
inline |
Definition at line 270 of file PlaneGeo.h.
|
inline |
|
inline |
What is the orientation of the plane.
Definition at line 187 of file PlaneGeo.h.
|
static |
|
inline |
Angle from positive z axis of the wire coordinate axis, in radians.
Definition at line 193 of file PlaneGeo.h.
|
inline |
Returns the coordinate of the point on the plane.
point | world coordinate of the point to get the coordinate of [cm] |
The method returns the coordinate of the point in the direction measured by the wires on this plane starting on the first wire, in world units (that is, centimeters). A point on the first wire will have coordinate 0.0, one on the next wire will have coordinate equal to a single wire pitch, etc.
The point does not need to be on the plane, and the projection of the point to the plane is considered.
Definition at line 861 of file PlaneGeo.h.
|
inline |
Definition at line 863 of file PlaneGeo.h.
|
inline |
Returns the coordinate of point on the plane respect to a wire.
point | world coordinate of the point to get the coordinate of [cm] |
refWire | reference wire |
The method returns the coordinate of the point in the direction measured by the wires on this plane starting from the specified reference wire, in world units (that is, centimeters).
The point does not need to be on the plane, and the projection of the point to the plane is considered. The reference wire, instead, must belong to this plane. This assumption is not checked, and if violated the results are undefined (in the current implementation, they are just wrong).
Definition at line 834 of file PlaneGeo.h.
|
inline |
Definition at line 840 of file PlaneGeo.h.
std::string geo::PlaneGeo::PlaneInfo | ( | std::string | indent = "" , |
unsigned int | verbosity = 1 |
||
) | const |
Returns a string with plane information.
PrintPlaneInfo()
The information is provided by PrintPlaneInfo()
, and the arguments have the same meaning.
Definition at line 546 of file PlaneGeo.cxx.
|
inline |
Definition at line 942 of file PlaneGeo.h.
|
inline |
Definition at line 944 of file PlaneGeo.h.
|
inline |
Returns the projection of the specified point on the plane.
point | the 3D point to be projected, in world coordinates |
The returned vector is a 2D vector expressing the projection of the point (from world coordinates) on the wire plane. The vector is expressed as , components following the width direction (WidthDir()
) and the depth direction (DepthDir()
) respectively. The origin point is the center of the plane.
Definition at line 1107 of file PlaneGeo.h.
|
inline |
Definition at line 1110 of file PlaneGeo.h.
void geo::PlaneGeo::PrintPlaneInfo | ( | Stream && | out, |
std::string | indent = "" , |
||
unsigned int | verbosity = 1 |
||
) | const |
Prints information about this plane.
Stream | type of output stream to use |
out | stream to send the information to |
indent | prepend each line with this string |
verbosity | amount of information printed |
Information on single wires is not printed. Note that the first line out the output is not indented.
Definition at line 1539 of file PlaneGeo.h.
|
inline |
Returns the projection of the specified point on the plane.
point | the 3D point to be projected, in world coordinates |
The returned vector is a 2D vector expressing the projection of the point (from world coordinates) on the wire plane. The vector is expressed as . The component is measured on the direction of the first wire (see WireGeo::Direction()
), using its center (see WireGeo::GetCenter()
) as reference point. The component is defined on the wire coordinate direction (see GetIncreasingWireDirection()
), relative to the first wire, as it is returned by PlaneCoordinate().
The reference point is also returned by ProjectionReferencePoint().
Definition at line 940 of file PlaneGeo.h.
|
inline |
Returns the projection of the specified vector on the plane.
v | the 3D vector to be projected, in world units |
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 . The component is measured on the direction of the first wire (see WireGeo::Direction()
). The component is defined on the wire coordinate direction (see GetIncreasingWireDirection()
).
Definition at line 961 of file PlaneGeo.h.
|
inline |
Returns the reference point used by PointProjection()
.
Point | the type of point to return (current default: TVector3 ) |
The returned point is such that its decomposition results in a null projection and a 0 distance from the plane.
Definition at line 917 of file PlaneGeo.h.
|
inline |
Definition at line 919 of file PlaneGeo.h.
|
inline |
|
private |
Whether the specified wire should have start and end swapped.
Definition at line 1212 of file PlaneGeo.cxx.
|
inline |
void geo::PlaneGeo::SortWires | ( | geo::GeoObjectSorter const & | sorter | ) |
double geo::PlaneGeo::ThetaZ | ( | ) | const |
Angle of the wires from positive z axis; .
Definition at line 726 of file PlaneGeo.cxx.
|
inline |
Transform point from world frame to local plane frame.
Definition at line 1375 of file PlaneGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 1387 of file PlaneGeo.h.
|
inline |
Transform point from local plane frame to world frame.
Definition at line 1351 of file PlaneGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 1363 of file PlaneGeo.h.
|
private |
Updates the internally used active area.
Definition at line 1167 of file PlaneGeo.cxx.
void geo::PlaneGeo::UpdateAfterSorting | ( | geo::PlaneID | planeid, |
geo::BoxBoundedGeo const & | TPCbox | ||
) |
Performs all needed updates after the TPC has sorted the planes.
Definition at line 731 of file PlaneGeo.cxx.
|
private |
Updates the position of the wire coordinate decomposition.
Definition at line 1157 of file PlaneGeo.cxx.
|
private |
Updates the cached direction to increasing wires.
Definition at line 1087 of file PlaneGeo.cxx.
|
private |
Updates plane orientation.
Definition at line 891 of file PlaneGeo.cxx.
|
private |
Updates the stored .
Definition at line 935 of file PlaneGeo.cxx.
|
private |
Updates the cached normal to plane versor; needs the TPC box coordinates.
Definition at line 1046 of file PlaneGeo.cxx.
|
private |
Updates the stored view.
Definition at line 950 of file PlaneGeo.cxx.
|
private |
Updates the cached depth and width direction.
Definition at line 1067 of file PlaneGeo.cxx.
|
private |
Updates the cached direction to wire.
Definition at line 1121 of file PlaneGeo.cxx.
|
private |
Updates the stored wire pitch.
Definition at line 923 of file PlaneGeo.cxx.
|
private |
Updates the stored wire pitch with a slower, more robust algorithm.
Definition at line 1135 of file PlaneGeo.cxx.
|
private |
Updates the stored wire plane center.
Definition at line 1183 of file PlaneGeo.cxx.
|
inline |
Definition at line 963 of file PlaneGeo.h.
|
inline |
Definition at line 965 of file PlaneGeo.h.
|
inline |
Returns the projection of the specified vector on the plane.
v | the 3D vector to be projected, in world units |
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 , components following the width direction (WidthDir()
) and the depth direction (DepthDir()
) respectively.
Definition at line 1127 of file PlaneGeo.h.
|
inline |
Definition at line 1130 of file PlaneGeo.h.
|
inline |
|
static |
Returns the name of the specified view.
Definition at line 763 of file PlaneGeo.cxx.
|
inline |
Return the width of the plane.
The precise definition is arbitrary (see WidthDir()
).
Definition at line 246 of file PlaneGeo.h.
|
inline |
Return the direction of plane width.
Vector | the type of vector to return (current default: TVector3 ) |
The precise definition of the sides is arbitrary, but they are defined to lie on the wire plane and so that WidthDir(), DepthDir() and GetNormalDirection() make a orthonormal base. That base (width, depth, normal) is guaranteed to be positive defined.
Definition at line 221 of file PlaneGeo.h.
|
inline |
Definition at line 222 of file PlaneGeo.h.
geo::WireGeo const & geo::PlaneGeo::Wire | ( | unsigned int | iwire | ) | const |
Return the iwire'th wire in the plane.
cet::exception | (category "WireOutOfRange") if no such wire |
Definition at line 506 of file PlaneGeo.cxx.
Returns the wire in wireid from this plane.
wireid | full wire ID |
cet::exception | (category "WireOutOfRange") if no such wire |
The cryostat, TPC and plane numbers in wireid are ignored, as it is ignored whether wireid is invalid.
Definition at line 313 of file PlaneGeo.h.
|
inline |
Returns the coordinate of the point on the plane, in wire units.
point | world coordinate of the point to get the coordinate of |
The method returns the coordinate of the point in the direction measured by the wires on this plane starting on the first wire, in wire units (that is, wire pitches). A point on the first wire will have coordinate 0.0, one on the next wire will have coordinate 1.0, etc.
The point does not need to be on the plane, and the projection of the point to the plane is considered.
Definition at line 882 of file PlaneGeo.h.
bool geo::PlaneGeo::WireIDincreasesWithZ | ( | ) | const |
Returns whether the higher z wires have higher wire ID.
This method is related to GetIncreasingWireDirection() (it might be expressed as "GetIncreasingWireDirection()[2] > 0"), but it is implemented in a faster and independent way.
Definition at line 525 of file PlaneGeo.cxx.
|
inline |
Return the wire pitch (in centimeters). It is assumed constant.
Definition at line 411 of file PlaneGeo.h.
|
inline |
Returns the wire number iwire from this plane.
iwire | the number of local wire |
Definition at line 324 of file PlaneGeo.h.
|
inline |
Returns the wire in wireid from this plane.
wireid | full wire ID |
The cryostat, TPC and plane numbers in wireid are ignored, as it is ignored whether wireid is invalid.
Definition at line 336 of file PlaneGeo.h.
|
inline |
Transform point from world frame to local plane frame.
Definition at line 1367 of file PlaneGeo.h.
|
inline |
Transform point from world frame to local plane frame.
Definition at line 1371 of file PlaneGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 1379 of file PlaneGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 1383 of file PlaneGeo.h.
|
friend |
Definition at line 1504 of file PlaneGeo.h.
|
private |
Area covered by wires in frame base.
Definition at line 1498 of file PlaneGeo.h.
|
private |
Center of the plane, lying on the wire plane.
Definition at line 1500 of file PlaneGeo.h.
|
private |
Cosine of .
Definition at line 1485 of file PlaneGeo.h.
|
private |
Decomposition on frame coordinates; the main direction is a "width", the secondary one is just orthogonal to it ("depth"). Normal can differ in sign from the plane one.
Definition at line 1495 of file PlaneGeo.h.
|
private |
Decomposition on wire coordinates; the main direction is along the wire, the secondary one is the one measured by the wire, the normal matches the plane's normal.
Definition at line 1491 of file PlaneGeo.h.
|
private |
Size of the frame of the plane.
Definition at line 1496 of file PlaneGeo.h.
|
private |
ID of this plane.
Definition at line 1502 of file PlaneGeo.h.
|
private |
Normal to the plane, inward in TPC.
Definition at line 1487 of file PlaneGeo.h.
|
private |
Is the plane vertical or horizontal?
Definition at line 1481 of file PlaneGeo.h.
|
private |
Sine of .
Definition at line 1484 of file PlaneGeo.h.
|
private |
Plane to world transform.
Definition at line 1478 of file PlaneGeo.h.
|
private |
Does this plane measure U, V, or W?
Definition at line 1480 of file PlaneGeo.h.
|
private |
Plane volume description.
Definition at line 1479 of file PlaneGeo.h.
|
private |
List of wires in this plane.
Definition at line 1482 of file PlaneGeo.h.
|
private |
Pitch of wires in this plane.
Definition at line 1483 of file PlaneGeo.h.
|
static |
Maximum value for print verbosity.
Definition at line 802 of file PlaneGeo.h.