709 geo::TPCID const & ID() const
Returns the identifier of this TPC.
void InitTPCBoundaries()
Recomputes the TPC boundary.
geo::Point_t GetCathodeCenterImpl() const
decltype(auto) LengthDir() const
Returns the direction Length() is measured on.
PlaneGeo const * PlanePtr(PlaneID const &planeid) const
Returns the plane in planeid from this TPC.
Point_t ComposePoint(DecomposedVector_t const &decomp) const
Returns the 3D vector from composition of projection and distance.
decltype(auto) WidthDir() const
Returns the direction Width() is measured on.
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.
Point_t GetCathodeCenter() const
geo::BoxBoundedGeo fActiveBox
Box of the active volume.
std::vector< double > fPlane0Pitch
Pitch between planes.
Point_t ComposePoint(WireDecomposedVector_t const &decomp) const
Returns the 3D point from composition of projection and distance.
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 UpdatePlaneCache()
Updates plane cached information.
void PrintTPCInfo(Stream &&out, std::string indent="", unsigned int verbosity=1) const
Prints information about this TPC.
void MakePlane(GeoNodePath_t &path, size_t depth)
std::vector< geo::PlaneGeo > PlaneCollection_t
void FindPlane(GeoNodePath_t &path, size_t depth)
decltype(auto) HeightDir() const
Returns the direction Height() is measured on.
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.
Vector_t const & DepthDir() const
Return the direction of plane depth.
LocalVector_t toLocalCoords(geo::Vector_t const &world) const
Transform direction vector from world to local.
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 fLength
Length of total volume.
geo::Point3DBase_t< TPCGeoCoordinatesTag > LocalPoint_t
Type of points in the local GDML TPC frame.
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.
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).
PlaneCollection_t fPlanes
List of planes in this plane.
geo::BoxBoundedGeo const & ActiveBoundingBox() const
Returns the box of the active volume of this TPC.
std::vector< geo::PlaneID::PlaneID_t > fViewToPlaneNumber
Index of the plane for each view (InvalidID if none).
static bool CoordinateContained(double c, double const *range, double wiggle=1.)
WidthDepthProjection_t PointWidthDepthProjection(geo::Point_t const &point) const
Returns the projection of the specified point on the plane.
Vector_t RefDepthDir() const
Return the direction of reference plane depth.
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.
Point_t ProjectionReferencePoint() const
Returns the reference point used by PointProjection().
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::TPCID fID
ID of this TPC.
geo::Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local TPC frame to world frame.
double Width() const
Width is associated with x coordinate [cm].
double Height() const
Height is associated with y coordinate [cm].
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.
TPCGeo(TGeoNode const &node, geo::TransformationMatrix &&trans, PlaneCollection_t &&planes)
Point_t GetCenter() const
Returns the center of the TPC volume in world coordinates [cm].
Projection_t Projection(geo::Vector_t const &v) const
Returns the projection of the specified vector on the plane.
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.
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.
geo::PlaneGeo::WDDecomposedVector_t DecomposedVector_t
Data structure with plane and drift projections of a 3D vector.
PlaneCollection_t const & ElementIteratorBox
Type returned by IterateElements().
double ActiveHalfWidth() const
Half width (associated with x coordinate) of active TPC volume [cm].
ElementIteratorBox IterateElements() const
Returns an object for iterating through all geo::PlaneGeo.
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.
unsigned int MaxWires() const
Returns the largest number of wires among the planes in this TPC.
Point_t ComposePoint(double distance, Projection_t const &proj) const
Returns the 3D point from composition of projection and distance.
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.
std::vector< std::vector< double > > fPlaneLocation
xyz locations of planes in the TPC.
Point_t GetActiveVolumeCenter() const
Returns the center of the TPC active volume in world coordinates [cm].
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.
Encapsulate the geometry of a wire.
ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >, WidthDepthReferenceTag > WidthDepthProjection_t
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].
std::string TPCInfo(std::string indent="", unsigned int verbosity=1) const
Returns a string with information about this TPC.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
TGeoVolume * fActiveVolume
Active volume of LAr, called volTPCActive in GDML file.
double DriftDistance() const
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.
double ActiveWidth() const
Width (associated with x coordinate) of active TPC volume [cm].
geo::PlaneID const & ID() const
Returns the identifier of this plane.
Vector_t const & WidthDir() const
Return the direction of plane width.
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.
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.
Vector_t RefWidthDir() const
Return the direction of reference plane width.
GenVector3DBase_t< double, C > Vector3DBase_t
IDparameter< geo::TPCID > TPCID
Member type of validated geo::TPCID parameter.
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.
ElementIteratorBox IteratePlanes() const
Returns an object for iterating through all geo::PlaneGeo.
Vector_t DriftDir() const
Returns the direction of the drift (vector pointing toward the planes).
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.
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.
LocalPoint_t toLocalCoords(geo::Point_t const &world) const
Transform point from world frame to local TPC frame.
geo::Point_t GetFrontFaceCenter() const
Returns the center of the active TPC volume side facing negative z.
double fHalfHeight
Half height of total volume.
double HalfWidth() const
Width is associated with x coordinate [cm].
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
double fActiveHalfHeight
Half height of active volume.
void DriftPoint(geo::Point_t &position, double distance) const
Shifts the position of an electron drifted by a distance.