772 geo::TPCID const & ID() const
Returns the identifier of this TPC.
void InitTPCBoundaries()
Recomputes the TPC boundary.
double DistanceFromReferencePlane(TVector3 const &point) const
Returns the plane used for reference by projection methods.
geo::Point_t GetCathodeCenterImpl() const
PlaneGeo const * PlanePtr(PlaneID const &planeid) const
Returns the plane in planeid from this TPC.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
bool HasPlane(unsigned int iplane) const
Returns whether a plane with index iplane is present in this TPC.
const PlaneGeo & Plane(PlaneID const &planeid) const
Returns the plane in planeid from this TPC.
void DriftPoint(TVector3 &position, double distance) const
Shifts the position of an electron drifted by a distance.
Vector DriftDir() const
Returns the direction of the drift (vector pointing toward the planes).
geo::BoxBoundedGeo fActiveBox
Box of the active volume.
std::vector< double > fPlane0Pitch
Pitch between planes.
double PlanePitch(unsigned int p1=0, unsigned int p2=1) const
Returns the center of the TPC volume in world coordinates [cm].
WidthDepthProjection_t VectorWidthDepthProjection(geo::Vector_t const &v) const
Returns the projection of the specified vector on the plane.
void PrintTPCInfo(Stream &&out, std::string indent="", unsigned int verbosity=1) const
Prints information about this TPC.
Point GetActiveVolumeCenter() const
Returns the center of the TPC active volume in world coordinates [cm].
void MakePlane(GeoNodePath_t &path, size_t depth)
Point ComposePoint(double distance, Projection_t const &proj) const
Returns the 3D point from composition of projection and distance.
void FindPlane(GeoNodePath_t &path, size_t depth)
geo::Vector_t toWorldCoords(LocalVector_t const &local) const
Transform direction vector from local to world.
double DistanceFromReferencePlane(geo::Point_t const &point) const
Returns the distance of the specified point from reference plane.
Projection_t VectorProjection(geo::Vector_t const &v) const
Returns the projection of the specified vector on the plane.
LocalVector_t toLocalCoords(geo::Vector_t const &world) const
Transform direction vector from world to local.
decltype(auto) LengthDir() const
Returns the direction Length() is measured on.
double fLength
Length of total volume.
TPCGeo(GeoNodePath_t &path, size_t depth)
geo::Point3DBase_t< TPCGeoCoordinatesTag > LocalPoint_t
Type of points in the local GDML TPC frame.
Point ComposePoint(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
double ComputeDriftDistance() const
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
double ActiveHalfHeight() const
Half height (associated with y coordinate) of active TPC volume [cm].
const TGeoVolume * TotalVolume() const
Half width (associated with x coordinate) of active TPC volume [cm].
unsigned int Nplanes() const
Number of planes in this tpc.
double fActiveHalfWidth
Half width of active volume.
Projection_t PointProjection(TVector3 const &point) const
Returns the projection of the specified point on the plane.
Point GetCathodeCenter() const
geo::Point_t GetFrontFaceCenterImpl() const
The data type to uniquely identify a Plane.
Geometry information for a single TPC.
geo::PlaneGeo const & FirstPlane() const
Returns the first wire plane (the closest to TPC center).
::geo::Point_t toPoint(Point const &p)
Convert the specified point into a geo::Point_t.
geo::BoxBoundedGeo const & ActiveBoundingBox() const
Returns the box of the active volume of this TPC.
Point ComposePoint(WireDecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
::geo::Vector_t toVector(Vector const &v)
Convert the specified vector into a geo::Vector_t.
std::vector< geo::PlaneID::PlaneID_t > fViewToPlaneNumber
Index of the plane for each view (InvalidID if none).
WidthDepthProjection_t PointWidthDepthProjection(geo::Point_t const &point) const
Returns the projection of the specified point on the plane.
std::vector< PlaneGeo > fPlanes
List of planes in this plane.
Vector RefWidthDir() const
Return the direction of reference plane width.
double ActiveMass() const
Half width (associated with x coordinate) of active TPC volume [cm].
geo::Vector3DBase_t< TPCGeoCoordinatesTag > LocalVector_t
Type of displacement vectors in the local GDML TPC frame.
double HalfLength() const
Length is associated with z coordinate [cm].
void UpdateAfterSorting(geo::TPCID tpcid)
Performs all updates after cryostat has sorted TPCs.
TVector3 WorldToLocal(TVector3 const &world) const
Transform point from world frame to local TPC frame.
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
void SortSubVolumes(geo::GeoObjectSorter const &sorter)
Apply sorting to the PlaneGeo objects.
geo::Vector_t fHeightDir
Direction height refers to.
geo::Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local TPC frame to world frame.
geo::TPCID fID
ID of this TPC.
double Width() const
Width is associated with x coordinate [cm].
double Height() const
Height is associated with y coordinate [cm].
TVector3 LocalToWorld(const TVector3 &local) const
Transform point from local TPC frame to world frame.
void DriftPoint(geo::Point_t &position, double distance) const
Shifts the position of an electron drifted by a distance.
double Length() const
Length is associated with z coordinate [cm].
Interface to algorithm class for sorting geo::XXXGeo objects.
Point ProjectionReferencePoint() const
Returns the reference point used by PointProjection().
Projection_t Projection(geo::Vector_t const &v) const
Returns the projection of the specified vector on the plane.
ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > WidthDepthProjection_t
geo::Vector_t fWidthDir
Direction width refers to.
double ActiveHalfLength() const
Length (associated with z coordinate) of active TPC volume [cm].
double fHalfWidth
Half width of total volume.
Vector RefDepthDir() const
Return the direction of reference plane depth.
WidthDepthDecomposer_t::DecomposedVector_t WDDecomposedVector_t
geo::PlaneGeo const & SmallestPlane() const
Returns the wire plane with the smallest surface.
enum geo::driftdir DriftDirection_t
Drift direction: positive or negative.
double fActiveLength
Length of active volume.
std::tuple< double, double, const reco::ClusterHit3D * > Point
Definitions used by the VoronoiDiagram algorithm.
geo::PlaneGeo::WDDecomposedVector_t DecomposedVector_t
Data structure with plane and drift projections of a 3D vector.
double ActiveHalfWidth() const
Half width (associated with x coordinate) of active TPC volume [cm].
void WorldToLocal(const double *world, double *tpc) const
Transform point from world frame to local TPC frame.
Point GetCenter() const
Returns the centre of the wire plane in world coordinates [cm].
std::string indent(std::size_t const i)
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
Utilities to extend the interface of geometry vectors.
bool HasElement(geo::PlaneID const &planeid) const
Returns whether the plane in planeid is present in this TPC.
geo::PlaneGeo::WidthDepthProjection_t Projection_t
Type of 2D vector projection on a plane.
void UpdatePlaneViewCache()
Refills the plane vs. view cache of the TPC.
bool HasPlane(geo::PlaneID const &planeid) const
Returns whether the plane in planeid is present in this TPC.
bool HasElement(unsigned int iplane) const
Returns whether a plane with index iplane is present in this TPC.
TGeoVolume * fTotalVolume
Total volume of TPC, called volTPC in GDML file.
DriftDirection_t fDriftDirection
Direction of the electron drift in the TPC.
const TGeoVolume * ActiveVolume() const
Half width (associated with x coordinate) of active TPC volume [cm].
double WirePitch(unsigned plane=0) const
Returns the center of the TPC volume in world coordinates [cm].
const PlaneGeo & GetElement(PlaneID const &planeid) const
Returns the plane in planeid from this TPC.
double ActiveHeight() const
Height (associated with y coordinate) of active TPC volume [cm].
geo::Point_t Min() const
Returns the corner point with the smallest coordinates.
The data type to uniquely identify a TPC.
PlaneID_t Plane
Index of the plane within its TPC.
TVector3 WorldToLocalVect(TVector3 const &world) const
Transform direction vector from world to local.
unsigned int MaxWires() const
Returns the largest number of wires among the planes in this TPC.
Definition of data types for geometry description.
double Plane0Pitch(unsigned int p) const
Returns the center of the TPC volume in world coordinates [cm].
DriftDirection_t DriftDirection() const
Returns an enumerator value describing the drift direction.
void SortPlanes(std::vector< geo::PlaneGeo > &) const
Sorts (in place) the specified PlaneGeo objects by drift distance.
double ActiveLength() const
Length (associated with z coordinate) of active TPC volume [cm].
Provides a base class aware of world box coordinates.
Projection_t Projection(geo::Point_t const &point) const
Returns the projection of the specified point on the plane.
std::vector< std::vector< double > > fPlaneLocation
xyz locations of planes in the TPC.
Encapsulate the geometry of a wire.
Tag for vectors in the "local" GDML coordinate frame of the TPC.
geo::PlaneGeo const & ReferencePlane() const
Returns the plane used for reference by projection methods.
double HalfHeight() const
Height is associated with y coordinate [cm].
Vector DepthDir() const
Return the direction of plane depth.
DecomposedVector_t DecomposePoint(TVector3 const &point) const
Decomposes a 3D point in two components.
Projection_t VectorProjection(TVector3 const &v) const
Returns the projection of the specified vector on the plane.
void LocalToWorldVect(const double *tpc, double *world) const
Transform direction vector from local to world.
TGeoVolume * fActiveVolume
Active volume of LAr, called volTPCActive in GDML file.
double DriftDistance() const
decltype(auto) HeightDir() const
Returns the direction Height() is measured on.
A base class aware of world box coordinatesAn object describing a simple shape can inherit from this ...
std::vector< TGeoNode const * > GeoNodePath_t
Encapsulate the construction of a single detector plane.
double DistanceFromPlane(geo::Point_t const &point) const
Returns the distance of the specified point from the wire plane.
PlaneGeo const * PlanePtr(unsigned int iplane) const
Returns the plane number iplane from this TPC.
PlaneGeo const * GetElementPtr(PlaneID const &planeid) const
Returns the plane in planeid from this TPC.
short int DetectDriftDirection() const
Returns the expected drift direction based on geometry.
Point GetFrontFaceCenter() const
Returns the center of the active TPC volume side facing negative z.
double ActiveWidth() const
Width (associated with x coordinate) of active TPC volume [cm].
geo::PlaneID const & ID() const
Returns the identifier of this plane.
geo::PlaneGeo const & LastPlane() const
Returns the last wire plane (the farther from TPC center).
geo::Vector_t fLengthDir
Direction length refers to.
geo::BoxBoundedGeo const & BoundingBox() const
Returns the bounding box of this TPC.
unsigned int NElements() const
Number of planes in this tpc.
LocalTransformation_t fTrans
TPC-to-world transformation.
geo::WireGeo::GeoNodePath_t GeoNodePath_t
void ResetDriftDirection()
Recomputes the drift direction; needs planes to have been initialised.
DecomposedVector_t DecomposePoint(geo::Point_t const &point) const
Decomposes a 3D point in two components.
void WorldToLocalVect(const double *world, double *tpc) const
Transform direction vector from world to local.
Vector WidthDir() const
Return the direction of plane width.
WDDecomposedVector_t DecomposePointWidthDepth(geo::Point_t const &point) const
Decomposes a 3D point in two components.
geo::Vector_t fDriftDir
Direction electrons drift along.
GenPoint3DBase_t< double, C > Point3DBase_t
Type of 3D point with representation in double precision.
GenVector3DBase_t< double, C > Vector3DBase_t
std::set< geo::View_t > Views() const
Returns a set of all views covered in this TPC.
geo::PlaneID const & ReferencePlaneID() const
Returns the ID of the plane used for reference by projection methods.
PlaneGeo const & Plane(geo::View_t view) const
Return the plane in the tpc with View_t view.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
static constexpr unsigned int MaxVerbosity
Maximum verbosity supported by PrintTPCInfo().
Namespace collecting geometry-related classes utilities.
Projection_t PointProjection(geo::Point_t const &point) const
Returns the projection of the specified point on the plane.
TVector3 LocalToWorldVect(const TVector3 &local) const
Transform direction vector from local to world.
geo::Point_t fActiveCenter
Center of the active volume, in world coordinates [cm].
geo::Point_t Max() const
Returns the corner point with the largest coordinates.
void LocalToWorld(const double *tpc, double *world) const
Transform point from local TPC frame to world frame.
LocalPoint_t toLocalCoords(geo::Point_t const &world) const
Transform point from world frame to local TPC frame.
const double * PlaneLocation(unsigned int p) const
Returns the coordinates of the center of the specified plane [cm].
double fHalfHeight
Half height of total volume.
double HalfWidth() const
Width is associated with x coordinate [cm].
decltype(auto) WidthDir() const
Returns the direction Width() is measured on.
double fActiveHalfHeight
Half height of active volume.
Point GetCenter() const
Returns the center of the TPC volume in world coordinates [cm].
void DriftPoint(geo::Point_t &position, double distance) const
Shifts the position of an electron drifted by a distance.