1329
Point_t ComposePoint(DecomposedVector_t const &decomp) const
Returns the 3D point from composition of projection and distance.
unsigned int NElements() const
Number of wires in this plane.
WireGeo const & Wire(WireID const &wireid) const
Returns the wire in wireid from this plane.
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
Vector_t GetNormalAxis() const
Returns a direction normal to the plane (pointing is not defined).
TGeoNode const * fNode
Node within full geometry.
auto VectorSecondaryComponent(Vector_t const &v) const
Returns the secondary component of a vector.
ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > WidthDepthDisplacement_t
Type for vector projections in the plane frame base representation.
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 ...
Point_t const & GetCenter() const
Returns the world coordinate of the center of the wire [cm].
Point_t ComposePoint(WireDecomposedVector_t const &decomp) const
Returns the 3D point from composition of projection and distance.
WireCollection_t const & ElementIteratorBox
Type returned by IterateElements().
BoxBoundedGeo BoundingBox() const
auto PointNormalComponent(Point_t const &point) const
Returns the secondary component of a point.
std::string PlaneInfo(std::string indent="", unsigned int verbosity=1) const
Returns a string with plane information.
void UpdateIncreasingWireDir()
Updates the cached direction to increasing wires.
double fWirePitch
Pitch of wires in this plane.
TGeoVolume const & Volume() const
static std::string ViewName(View_t view)
Returns the name of the specified view.
void UpdateWirePitch()
Updates the stored wire pitch.
void UpdateWidthDepthDir()
Updates the cached depth and width direction.
Vector_t const & DepthDir() const
Return the direction of plane depth.
void DriftPoint(Point_t &position) const
Shifts the position along drift direction to fall on the plane.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Point_t const & GetCenter() const
Returns the centre of the wire plane in world coordinates [cm].
double WireCoordinate(Point_t const &point) const
Returns the coordinate of the point on the plane, in wire units.
Vector_t const & NormalDir() const
Returns the plane normal axis direction.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
WireID NearestWireID(Point_t const &pos) const
Returns the ID of wire closest to the specified position.
enum geo::_plane_orient Orient_t
Enumerate the possible plane projections.
WireCoordProjection_t Projection(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
void UpdateOrientation()
Updates plane orientation.
void UpdateAfterSorting(PlaneID planeid, BoxBoundedGeo const &TPCbox)
Performs all needed updates after the TPC has sorted the planes.
The data type to uniquely identify a Plane.
Point_t fCenter
Center of the plane, lying on the wire plane.
bool isProjectionOnPlane(Point_t const &point) const
Returns if the projection of specified point is within the plane.
Vector_t ComposeVector(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
auto WirePtr(WireID const &wireid) const
Returns the wire in wireid from this plane.
Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local plane frame to world frame.
WireGeo const & Wire(unsigned int iwire) const
double DistanceFromPlane(Point_t const &point) const
Returns the distance of the specified point from the wire plane.
WireID_t Wire
Index of the wire within its plane.
PlaneID fID
ID of this plane.
Rect const & ActiveArea() const
Returns an area covered by the wires in the plane.
WidthDepthProjection_t VectorWidthDepthProjection(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
Vector_t ComposeVector(WireDecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
void UpdatePlaneNormal(BoxBoundedGeo const &TPCbox)
Updates the cached normal to plane versor; needs the TPC box coordinates.
WidthDepthProjection_t MoveProjectionToPlane(WidthDepthProjection_t const &proj) const
Returns the projection, moved onto the plane if necessary.
View_t fView
Does this plane measure U, V, or W?
LocalVector_t toLocalCoords(Vector_t const &world) const
Transform direction vector from world to local.
void DetectGeometryDirections()
Sets the geometry directions.
WireGeo const & NearestWire(Point_t const &pos) const
Returns the wire closest to the specified position.
double InterWireProjectedDistance(WireCoordProjection_t const &projDir) const
Returns the distance between wires along the specified direction.
Rect fActiveArea
Area covered by wires in frame base.
void DriftPoint(Point_t &position, double distance) const
Shifts the position of an electron drifted by a distance.
IDparameter< geo::PlaneID > PlaneID
Member type of validated geo::PlaneID parameter.
double ThetaZ() const
Angle of the wires from positive z axis; .
Projection_t ProjectPointOnPlane(Point_t const &point) const
Returns the projection of the specified point on the plane.
Interface to algorithm class for sorting geo::AuxDet objects .
double PlaneCoordinateFrom(Point_t const &point, WireGeo const &refWire) const
Returns the coordinate of point on the plane respect to a wire.
View_t View() const
Which coordinate does this plane measure.
double PlaneCoordinate(Point_t const &point) const
Returns the coordinate of the point on the plane.
Point_t GetBoxCenter() const
Returns the centre of the box representing the plane.
double InterWireDistance(Vector_t const &dir) const
Returns the distance between wires along the specified direction.
WireGeo const & MiddleWire() const
Return the middle wire in the plane.
Classes to project and compose a vector on a plane.
WidthDepthDecomposer_t::DecomposedVector_t WDDecomposedVector_t
WidthDepthDecomposer_t fDecompFrame
std::function< bool(T const &, T const &)> Compare
void UpdatePhiZ()
Updates the stored .
double PhiZ() const
Angle from positive z axis of the wire coordinate axis, in radians.
Planes that are in the vertical plane (e.g. ArgoNeuT).
TGeoVolume const * TPCVolume() const
Tag for vectors in the "local" GDML coordinate frame of the plane.
Vector_t const & GetWireDirection() const
Returns the direction of the wires.
WireCollection_t fWire
List of wires in this plane.
WireGeo const & GetElement(WireID const &wireid) const
Returns the wire in wireid from this plane.
double Depth() const
Return the depth of the plane.
std::string indent(std::size_t const i)
WidthDepthProjection_t PointWidthDepthProjection(Point_t const &point) const
Returns the projection of the specified point on the plane.
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
double Width() const
Return the width of the plane.
Utilities to extend the interface of geometry vectors.This library provides facilities that can be us...
std::vector< WireGeo > WireCollection_t
WireGeo const & FirstWire() const
Return the first wire in the plane.
DecomposedVector_t DecomposePoint(Point_t const &point) const
Decomposes a 3D point in two components.
void SortWires(Compare< WireGeo > cmp)
Apply sorting to WireGeo objects.
ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WireCoordinateReferenceTag > WireCoordProjection_t
Type for projections in the wire base representation.
Vector_t ComposeVector(double distance, WireCoordProjection_t const &proj) const
Returns the 3D vector from composition of projection and distance.
Range_t width
Range along width direction.
double CosPhiZ() const
Cosine of PhiZ()
void UpdateWirePitchSlow()
Updates the stored wire pitch with a slower, more robust algorithm.
bool HasElement(unsigned int iwire) const
Returns whether a wire with index iwire is present in this plane.
double SinPhiZ() const
Sine of PhiZ()
void SetView(View_t view)
Set the signal view (for TPCGeo).
std::vector< TGeoNode const * > GeoNodePath_t
LocalTransformation_t fTrans
Plane to world transform.
Definition of data types for geometry description.
Point_t ReferencePoint() const
Returns the reference point for the plane coordinate, as a 3D point.
void UpdateView()
Updates the stored view.
Provides a base class aware of world box coordinates.
static std::string OrientationName(Orient_t orientation)
Returns the name of the specified orientation.
auto GetElementPtr(WireID const &wireid) const
Returns the wire in wireid from this plane.
typename PlaneDecomposer_t::DecomposedVector_t DecomposedVector_t
Type representing a decomposition on the plane.
PlaneGeo(TGeoNode const *node, TransformationMatrix &&trans, WireCollection_t &&wires)
Construct a representation of a single plane of the detector.
Orient_t Orientation() const
What is the orientation of the plane.
Encapsulate the geometry of a wire .
ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > WidthDepthProjection_t
Vector_t toWorldCoords(LocalVector_t const &local) const
Transform direction vector from local to world.
Point_t ComposePoint(double distance, WireCoordProjection_t const &proj) const
Returns the 3D point from composition of projection and distance.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Range_t depth
Range along depth direction.
Tag for plane frame base vectors.
Vector_t const & SecondaryDir() const
Returns the plane secondary axis direction.
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 ...
Vector_t const & MainDir() const
Returns the plane main axis direction.
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 ...
WireID ClosestWireID(WireID::WireID_t wireNo) const
Returns the closest valid wire ID to the specified wire.
Vector3DBase_t< PlaneGeoCoordinatesTag > LocalVector_t
Type of displacement vectors in the local GDML wire plane frame.
A base class aware of world box coordinatesAn object describing a simple shape can inherit from this ...
auto PointSecondaryComponent(Point_t const &point) const
Returns the secondary component of a point.
Projection_t ProjectVectorOnPlane(Vector_t const &v) const
Returns the projection of the specified vector on the plane.
double InterWireProjectedDistance(Vector_t const &dir) const
Returns the distance between wires along the specified direction.
bool HasWire(unsigned int iwire) const
Returns whether a wire with index iwire is present in this plane.
void PrintPlaneInfo(Stream &&out, std::string indent="", unsigned int verbosity=1) const
Prints information about this plane.
bool HasWire(WireID const &wireid) const
Returns whether the wire in wireid is present in this plane.
auto WirePtr(unsigned int iwire) const
Returns the wire number iwire from this plane.
Point_t ComposePoint(WDDecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
LocalPoint_t toLocalCoords(Point_t const &world) const
Transform point from world frame to local plane frame.
Vector_t const & WidthDir() const
Return the direction of plane width.
WireGeo const & LastWire() const
Return the last wire in the plane.
unsigned int Nwires() const
Number of wires in this plane.
bool WireIDincreasesWithZ() const
Returns whether the higher z wires have higher wire ID.
Some simple functions to represent geometry entitiesThis library is simple and header-only.
WireDecomposer_t::DecomposedVector_t WireDecomposedVector_t
Type describing a 3D point or vector decomposed on a plane on wire base.
double fCosPhiZ
Cosine of .
Data_t upper
Ending coordinate.
Vector_t const & GetIncreasingWireDirection() const
Returns the direction of increasing wires.
Vector_t const & GetNormalDirection() const
Returns the direction normal to the plane.
GenPoint3DBase_t< double, C > Point3DBase_t
Type of 3D point with representation in double precision.
unsigned int WireID_t
Type for the ID number.
void UpdateWirePlaneCenter()
Updates the stored wire plane center.
bool shouldFlipWire(WireGeo const &wire) const
Whether the specified wire should have start and end swapped.
GenVector3DBase_t< double, C > Vector3DBase_t
WireDecomposer_t fDecompWire
WireCoordProjection_t Projection(Point_t const &point) const
Returns the projection of the specified point on the plane.
WireDecomposedVector_t DecomposePoint(Point_t const &point) const
Decomposes a 3D point in two components.
bool HasElement(WireID const &wireid) const
Returns whether the wire in wireid is present in this plane.
void UpdateDecompWireOrigin()
Updates the position of the wire coordinate decomposition.
Point_t ProjectionReferencePoint() const
Returns the reference point used by PointProjection().
void UpdateActiveArea()
Updates the internally used active area.
Point_t MovePointOverPlane(Point_t const &point) const
Returns the point, moved so that its projection is over the plane.
WDDecomposedVector_t DecomposePointWidthDepth(Point_t const &point) const
Decomposes a 3D point in two components.
Data_t lower
Starting coordinate.
static constexpr unsigned int MaxVerbosity
Maximum value for print verbosity.
Point3DBase_t< PlaneGeoCoordinatesTag > LocalPoint_t
Type of points in the local GDML wire plane frame.
PlaneID const & ID() const
Returns the identifier of this plane.
Orient_t fOrientation
Is the plane vertical or horizontal?
void UpdateWireDir()
Updates the cached direction to wire.
Point_t ComposePoint(double distance, WidthDepthProjection_t const &proj) const
Returns the 3D point from composition of projection and distance.
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
double WirePitch() const
Return the wire pitch (in centimeters). It is assumed constant.
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 ...
Tag for wire base vectors.
constexpr PlaneID const & asPlaneID() const
Conversion to WireID (for convenience of notation).