32 : fWireNode(&node), fTrans(
std::move(trans)), flipped(false)
45 auto lp = geo::origin<LocalPoint_t>();
51 fThetaZ = std::acos(std::clamp((
end.Z() - fCenter.Z()) /
fHalfL, -1.0, +1.0));
71 return ((TGeoTube*)
fWireNode->GetVolume()->GetShape())->GetRmax();
77 return ((TGeoTube*)
fWireNode->GetVolume()->GetShape())->GetRmin();
88 unsigned int verbosity )
const 90 std::ostringstream sstr;
void Flip()
Set to swap the start and end wire.
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
bool isParallelTo(WireGeo const &wire) const
Returns if this wire is parallel to another.
void PrintWireInfo(Stream &&out, std::string indent="", unsigned int verbosity=1) const
Prints information about this wire.
Point_t const & GetCenter() const
Returns the world coordinate of the center of the wire [cm].
double fThetaZ
angle of the wire with respect to the z direction
WireGeo(TGeoNode const &node, TransformationMatrix &&trans)
Constructor from a ROOT geometry node and a transformation.
Point_t fCenter
Center of the wire in world coordinates.
double ThetaZ() const
Returns angle of wire with respect to z axis in the Y-Z plane in radians.
void UpdateAfterSorting(WireID const &, bool flip)
double fHalfL
half length of the wire
std::string WireInfo(std::string indent="", unsigned int verbosity=1) const
Returns a string with all the information of the wire.
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
bool isfinite(Vector const &v)
Returns whether all components of the vector are finite.
Vector_t Direction() const
double RMax() const
Returns the outer half-size of the wire [cm].
std::string indent(std::size_t const i)
Utilities to extend the interface of geometry vectors.
Encapsulate the geometry of a wire.
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
double DistanceFrom(WireGeo const &wire) const
Returns 3D distance from the specified wire.
constexpr T RadiansToDegrees(T angle)
Converts the argument angle from radians into degrees ( )
Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local wire frame to world frame.
Collection of Physical constants used in LArSoft.
Namespace collecting geometry-related classes utilities.
double RMin() const
Returns the inner radius of the wire (usually 0) [cm].
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
const TGeoNode * fWireNode
Pointer to the wire node.
bool flipped
whether (0, 0, fHalfL) identified end (false) or start (true)