Geometry information for a single TPC. More...
#include <TPCGeo.h>
Classes | |
struct | TPCGeoCoordinatesTag |
Tag for vectors in the "local" GDML coordinate frame of the TPC. More... | |
Public Types | |
using | PlaneCollection_t = std::vector< geo::PlaneGeo > |
using | GeoNodePath_t = geo::WireGeo::GeoNodePath_t |
using | ElementIteratorBox = PlaneCollection_t const & |
Type returned by IterateElements() . More... | |
using | Projection_t = geo::PlaneGeo::WidthDepthProjection_t |
Type of 2D vector projection on a plane. More... | |
using | DecomposedVector_t = geo::PlaneGeo::WDDecomposedVector_t |
Data structure with plane and drift projections of a 3D vector. More... | |
Types for geometry-local reference vectors. | |
These types represents points and displacement vectors in the reference frame defined in the TPC 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< TPCGeoCoordinatesTag > |
Type of points in the local GDML TPC frame. More... | |
using | LocalVector_t = geo::Vector3DBase_t< TPCGeoCoordinatesTag > |
Type of displacement vectors in the local GDML TPC frame. More... | |
Public Types inherited from geo::BoxBoundedGeo | |
using | Coords_t = geo::Point_t |
Type of the coordinate triplet. More... | |
using | Coord_t = Coords_t::Scalar |
Type of the coordinate. More... | |
Public Member Functions | |
TPCGeo (TGeoNode const &node, geo::TransformationMatrix &&trans, PlaneCollection_t &&planes) | |
PlaneGeo const & | Plane (geo::View_t view) const |
Return the plane in the tpc with View_t view. More... | |
PlaneGeo const & | Plane (unsigned int iplane) const |
PlaneGeo const * | PlanePtr (unsigned int iplane) const |
Returns the plane number iplane from this TPC. More... | |
geo::PlaneGeo const & | SmallestPlane () const |
Returns the wire plane with the smallest surface. More... | |
geo::PlaneGeo const & | FirstPlane () const |
Returns the first wire plane (the closest to TPC center). More... | |
geo::PlaneGeo const & | LastPlane () const |
Returns the last wire plane (the farther from TPC center). More... | |
unsigned int | MaxWires () const |
Returns the largest number of wires among the planes in this TPC. More... | |
std::set< geo::View_t > | Views () const |
Returns a set of all views covered in this TPC. More... | |
short int | DetectDriftDirection () const |
Returns the expected drift direction based on geometry. More... | |
void | SortSubVolumes (geo::GeoObjectSorter const &sorter) |
Apply sorting to the PlaneGeo objects. More... | |
void | UpdateAfterSorting (geo::TPCID tpcid) |
Performs all updates after cryostat has sorted TPCs. More... | |
template<typename Stream > | |
void | PrintTPCInfo (Stream &&out, std::string indent="", unsigned int verbosity=1) const |
Prints information about this TPC. More... | |
std::string | TPCInfo (std::string indent="", unsigned int verbosity=1) const |
Returns a string with information about this TPC. More... | |
TPC properties | |
double | ActiveHalfWidth () const |
Half width (associated with x coordinate) of active TPC volume [cm]. More... | |
double | ActiveWidth () const |
Width (associated with x coordinate) of active TPC volume [cm]. More... | |
double | ActiveHalfHeight () const |
Half height (associated with y coordinate) of active TPC volume [cm]. More... | |
double | ActiveHeight () const |
Height (associated with y coordinate) of active TPC volume [cm]. More... | |
double | ActiveLength () const |
Length (associated with z coordinate) of active TPC volume [cm]. More... | |
double | ActiveHalfLength () const |
Length (associated with z coordinate) of active TPC volume [cm]. More... | |
double | HalfWidth () const |
Width is associated with x coordinate [cm]. More... | |
double | Width () const |
Width is associated with x coordinate [cm]. More... | |
double | HalfHeight () const |
Height is associated with y coordinate [cm]. More... | |
double | Height () const |
Height is associated with y coordinate [cm]. More... | |
double | Length () const |
Length is associated with z coordinate [cm]. More... | |
double | HalfLength () const |
Length is associated with z coordinate [cm]. More... | |
double | ActiveMass () const |
const TGeoVolume * | ActiveVolume () const |
const TGeoVolume * | TotalVolume () const |
template<typename Vector > | |
decltype(auto) | WidthDir () const |
Returns the direction Width() is measured on. More... | |
decltype(auto) | WidthDir () const |
Returns the direction Width() is measured on. More... | |
template<typename Vector > | |
decltype(auto) | HeightDir () const |
Returns the direction Height() is measured on. More... | |
decltype(auto) | HeightDir () const |
Returns the direction Height() is measured on. More... | |
template<typename Vector > | |
decltype(auto) | LengthDir () const |
Returns the direction Length() is measured on. More... | |
decltype(auto) | LengthDir () const |
Returns the direction Length() is measured on. More... | |
DriftDirection_t | DriftDirection () const |
Returns an enumerator value describing the drift direction. More... | |
template<typename Vector > | |
Vector | DriftDir () const |
Returns the direction of the drift (vector pointing toward the planes). More... | |
DefaultVector_t | DriftDir () const |
Returns the direction of the drift (vector pointing toward the planes). More... | |
double | DriftDistance () const |
Plane access | |
unsigned int | Nplanes () const |
Number of planes in this tpc. More... | |
unsigned int | NElements () const |
bool | HasPlane (unsigned int iplane) const |
Returns whether a plane with index iplane is present in this TPC. More... | |
bool | HasElement (unsigned int iplane) const |
bool | HasPlane (geo::PlaneID const &planeid) const |
Returns whether the plane in planeid is present in this TPC. More... | |
bool | HasElement (geo::PlaneID const &planeid) const |
const PlaneGeo & | Plane (PlaneID const &planeid) const |
Returns the plane in planeid from this TPC. More... | |
const PlaneGeo & | GetElement (PlaneID const &planeid) const |
PlaneGeo const * | PlanePtr (PlaneID const &planeid) const |
Returns the plane in planeid from this TPC. More... | |
PlaneGeo const * | GetElementPtr (PlaneID const &planeid) const |
ElementIteratorBox | IterateElements () const |
Returns an object for iterating through all geo::PlaneGeo . More... | |
ElementIteratorBox | IteratePlanes () const |
TPC geometry properties | |
template<typename Point > | |
Point | GetCenter () const |
Returns the center of the TPC volume in world coordinates [cm]. More... | |
DefaultPoint_t | GetCenter () const |
Returns the center of the TPC volume in world coordinates [cm]. More... | |
template<typename Point > | |
Point | GetActiveVolumeCenter () const |
Returns the center of the TPC active volume in world coordinates [cm]. More... | |
DefaultPoint_t | GetActiveVolumeCenter () const |
Returns the center of the TPC active volume in world coordinates [cm]. More... | |
template<typename Point > | |
Point | GetCathodeCenter () const |
DefaultPoint_t | GetCathodeCenter () const |
template<typename Point > | |
Point | GetFrontFaceCenter () const |
Returns the center of the active TPC volume side facing negative z. More... | |
geo::Point_t | GetFrontFaceCenter () const |
Returns the center of the active TPC volume side facing negative z. More... | |
geo::BoxBoundedGeo const & | BoundingBox () const |
Returns the bounding box of this TPC. More... | |
geo::BoxBoundedGeo const & | ActiveBoundingBox () const |
Returns the box of the active volume of this TPC. More... | |
const double * | PlaneLocation (unsigned int p) const |
double | Plane0Pitch (unsigned int p) const |
double | PlanePitch (unsigned int p1=0, unsigned int p2=1) const |
double | WirePitch (unsigned plane=0) const |
geo::TPCID const & | ID () const |
Returns the identifier of this TPC. More... | |
Projection on a wire plane | |
These methods deal with projection of points and vectors on a plane, using a geometric reference base which is not dependent on the wire direction. Technically, the objects are projected on the reference plane, that happens to be the first wire plane. In practice, the important bit is that all entities are consistently decomposed into a drift component and a remaining component. If which plane the projection happens on should matter, then geo::PlaneGeo can be used directly (but note that geo::PlaneGeo defines two different frames, and the names of the frame equivalent to the one used here are different). | |
geo::PlaneGeo const & | ReferencePlane () const |
Returns the plane used for reference by projection methods. More... | |
geo::PlaneID const & | ReferencePlaneID () const |
Returns the ID of the plane used for reference by projection methods. More... | |
template<typename Vector > | |
Vector | RefWidthDir () const |
Return the direction of reference plane width. More... | |
DefaultPoint_t | RefWidthDir () const |
template<typename Vector > | |
Vector | RefDepthDir () const |
Return the direction of reference plane depth. More... | |
DefaultPoint_t | RefDepthDir () const |
double | DistanceFromReferencePlane (geo::Point_t const &point) const |
Returns the distance of the specified point from reference plane. More... | |
double | DistanceFromReferencePlane (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 |
DecomposedVector_t | DecomposePoint (geo::Point_t const &point) const |
Decomposes a 3D point in two components. More... | |
DecomposedVector_t | DecomposePoint (TVector3 const &point) const |
template<typename Point > | |
Point | ProjectionReferencePoint () const |
Returns the reference point used by PointProjection() . More... | |
DefaultPoint_t | ProjectionReferencePoint () const |
Projection_t | Projection (geo::Point_t const &point) const |
Returns the projection of the specified point on the plane. More... | |
Projection_t | PointProjection (geo::Point_t const &point) const |
Projection_t | PointProjection (TVector3 const &point) const |
Projection_t | Projection (geo::Vector_t const &v) const |
Returns the projection of the specified vector on the plane. More... | |
Projection_t | VectorProjection (geo::Vector_t const &v) const |
Projection_t | VectorProjection (TVector3 const &v) const |
template<typename Point > | |
Point | ComposePoint (DecomposedVector_t const &decomp) const |
Returns the 3D vector from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (DecomposedVector_t const &decomp) const |
template<typename Point > | |
Point | ComposePoint (double distance, Projection_t const &proj) const |
Returns the 3D point from composition of projection and distance. More... | |
DefaultPoint_t | ComposePoint (double distance, Projection_t const &proj) const |
Coordinate transformation | |
void | LocalToWorld (const double *tpc, double *world) const |
Transform point from local TPC frame to world frame. More... | |
TVector3 | LocalToWorld (const TVector3 &local) const |
Transform point from local TPC frame to world frame. More... | |
geo::Point_t | toWorldCoords (LocalPoint_t const &local) const |
Transform point from local TPC frame to world frame. More... | |
void | LocalToWorldVect (const double *tpc, 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 *tpc) const |
Transform point from world frame to local TPC frame. More... | |
TVector3 | WorldToLocal (TVector3 const &world) const |
Transform point from world frame to local TPC frame. More... | |
LocalPoint_t | toLocalCoords (geo::Point_t const &world) const |
Transform point from world frame to local TPC frame. More... | |
void | WorldToLocalVect (const double *world, double *tpc) 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... | |
Public Member Functions inherited from geo::BoxBoundedGeo | |
BoxBoundedGeo ()=default | |
Default constructor: sets an empty volume. More... | |
BoxBoundedGeo (Coord_t x_min, Coord_t x_max, Coord_t y_min, Coord_t y_max, Coord_t z_min, Coord_t z_max) | |
Constructor: sets the boundaries in world coordinates as specified. More... | |
BoxBoundedGeo (Coords_t lower, Coords_t upper) | |
Constructor: sets the boundaries in world coordinates as specified. More... | |
double | MinX () const |
Returns the world x coordinate of the start of the box. More... | |
double | MaxX () const |
Returns the world x coordinate of the end of the box. More... | |
double | CenterX () const |
Returns the world x coordinate of the center of the box. More... | |
double | SizeX () const |
Returns the full size in the X dimension. More... | |
double | HalfSizeX () const |
Returns the size from the center to the border on X dimension. More... | |
double | MinY () const |
Returns the world y coordinate of the start of the box. More... | |
double | MaxY () const |
Returns the world y coordinate of the end of the box. More... | |
double | CenterY () const |
Returns the world y coordinate of the center of the box. More... | |
double | SizeY () const |
Returns the full size in the Y dimension. More... | |
double | HalfSizeY () const |
Returns the size from the center to the border on Y dimension. More... | |
double | MinZ () const |
Returns the world z coordinate of the start of the box. More... | |
double | MaxZ () const |
Returns the world z coordinate of the end of the box. More... | |
double | CenterZ () const |
Returns the world z coordinate of the center of the box. More... | |
double | SizeZ () const |
Returns the full size in the Z dimension. More... | |
double | HalfSizeZ () const |
Returns the size from the center to the border on Z dimension. More... | |
geo::Point_t | Min () const |
Returns the corner point with the smallest coordinates. More... | |
geo::Point_t | Max () const |
Returns the corner point with the largest coordinates. More... | |
geo::Point_t | Center () const |
Returns the center point of the box. More... | |
bool | ContainsX (double x, double const wiggle=1) const |
Returns whether this TPC contains the specified world x coordinate. More... | |
bool | ContainsY (double y, double const wiggle=1) const |
Returns whether this TPC contains the specified world y coordinate. More... | |
bool | ContainsZ (double z, double const wiggle=1) const |
Returns whether this TPC contains the specified world z coordinate. More... | |
bool | ContainsYZ (double y, double z, double const wiggle=1) const |
Returns if TPC contains the specified world y and z coordinates. More... | |
bool | ContainsPosition (geo::Point_t const &point, double wiggle=1.0) const |
Returns whether this volume contains the specified point. More... | |
bool | ContainsPosition (TVector3 const &point, double wiggle=1.0) const |
bool | ContainsPosition (double const *point, double wiggle=1.0) const |
bool | InFiducialX (double x, double neg_margin, double pos_margin) const |
Returns whether TPC fiducial volume contains world x coordinate. More... | |
bool | InFiducialX (double x, double margin) const |
Returns whether TPC fiducial volume contains world x coordinate. More... | |
bool | InFiducialY (double y, double neg_margin, double pos_margin) const |
Returns whether TPC fiducial volume contains world y coordinate. More... | |
bool | InFiducialY (double y, double margin) const |
Returns whether TPC fiducial volume contains world y coordinate. More... | |
bool | InFiducialZ (double z, double neg_margin, double pos_margin) const |
Returns whether TPC fiducial volume contains world z coordinate. More... | |
bool | InFiducialZ (double z, double margin) const |
Returns whether TPC fiducial volume contains world z coordinate. More... | |
bool | OverlapsX (geo::BoxBoundedGeo const &other) const |
Returns if the x coordinates covered by this and other box overlap. More... | |
bool | OverlapsY (geo::BoxBoundedGeo const &other) const |
Returns if the y coordinates covered by this and other box overlap. More... | |
bool | OverlapsZ (geo::BoxBoundedGeo const &other) const |
Returns if the z coordinates covered by this and other box overlap. More... | |
bool | Overlaps (geo::BoxBoundedGeo const &other) const |
Returns if this and other box overlap. More... | |
void | SetBoundaries (Coord_t x_min, Coord_t x_max, Coord_t y_min, Coord_t y_max, Coord_t z_min, Coord_t z_max) |
Sets the boundaries in world coordinates as specified. More... | |
void | SetBoundaries (Coords_t lower, Coords_t upper) |
Sets the boundaries in world coordinates as specified. More... | |
void | ExtendToInclude (Coord_t x, Coord_t y, Coord_t z) |
Extends the current box to also include the specified point. More... | |
void | ExtendToInclude (geo::Point_t const &point) |
Extends the current box to also include the specified point. More... | |
void | ExtendToInclude (BoxBoundedGeo const &box) |
Extends the current box to also include the specified one. More... | |
std::vector< TVector3 > | GetIntersections (TVector3 const &TrajectoryStart, TVector3 const &TrajectoryDirect) const |
Calculates the entry and exit points of a trajectory on the box surface. More... | |
std::vector< geo::Point_t > | GetIntersections (geo::Point_t const &TrajectoryStart, geo::Vector_t const &TrajectoryDirect) const |
Static Public Member Functions | |
static bool | CoordinateContained (double c, double min, double max, double wiggle=1.) |
Returns whether the specified coordinate is in a range. More... | |
static bool | CoordinateContained (double c, double const *range, double wiggle=1.) |
Static Public Member Functions inherited from geo::BoxBoundedGeo | |
static bool | CoordinateContained (double c, double min, double max, double wiggle=1.) |
Returns whether the specified coordinate is in a range. More... | |
static bool | CoordinateContained (double c, double const *range, double wiggle=1.) |
Returns whether the specified coordinate is in a range. More... | |
static void | set_min (Coord_t &var, Coord_t value) |
Sets var to value if value is smaller than the current var value. More... | |
static void | set_max (Coord_t &var, Coord_t value) |
Sets var to value if value is larger than the current var value. More... | |
static void | set_min (Coords_t &var, geo::Point_t const &value) |
Sets each coordinate of var to the one in value if the latter is smaller. More... | |
static void | set_max (Coords_t &var, geo::Point_t const &value) |
Sets each coordinate of var to the one in value if the latter is larger. More... | |
Static Public Attributes | |
static constexpr unsigned int | MaxVerbosity = 6 |
Maximum verbosity supported by PrintTPCInfo() . 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 | FindPlane (GeoNodePath_t &path, size_t depth) |
void | MakePlane (GeoNodePath_t &path, size_t depth) |
void | ResetDriftDirection () |
Recomputes the drift direction; needs planes to have been initialised. More... | |
double | ComputeDriftDistance () const |
void | UpdatePlaneViewCache () |
Refills the plane vs. view cache of the TPC. More... | |
void | UpdatePlaneCache () |
Updates plane cached information. More... | |
void | InitTPCBoundaries () |
Recomputes the TPC boundary. More... | |
void | SortPlanes (std::vector< geo::PlaneGeo > &) const |
Sorts (in place) the specified PlaneGeo objects by drift distance. More... | |
geo::Point_t | GetFrontFaceCenterImpl () const |
geo::Point_t | GetCathodeCenterImpl () const |
Private Attributes | |
LocalTransformation_t | fTrans |
TPC-to-world transformation. More... | |
PlaneCollection_t | fPlanes |
List of planes in this plane. More... | |
TGeoVolume * | fActiveVolume |
Active volume of LAr, called volTPCActive in GDML file. More... | |
TGeoVolume * | fTotalVolume |
Total volume of TPC, called volTPC in GDML file. More... | |
DriftDirection_t | fDriftDirection |
Direction of the electron drift in the TPC. More... | |
std::vector< double > | fPlane0Pitch |
Pitch between planes. More... | |
std::vector< std::vector < double > > | fPlaneLocation |
xyz locations of planes in the TPC. More... | |
geo::Point_t | fActiveCenter |
Center of the active volume, in world coordinates [cm]. More... | |
double | fActiveHalfWidth |
Half width of active volume. More... | |
double | fActiveHalfHeight |
Half height of active volume. More... | |
double | fActiveLength |
Length of active volume. More... | |
double | fHalfWidth |
Half width of total volume. More... | |
double | fHalfHeight |
Half height of total volume. More... | |
double | fLength |
Length of total volume. More... | |
geo::Vector_t | fWidthDir |
Direction width refers to. More... | |
geo::Vector_t | fHeightDir |
Direction height refers to. More... | |
geo::Vector_t | fLengthDir |
Direction length refers to. More... | |
geo::Vector_t | fDriftDir |
Direction electrons drift along. More... | |
geo::BoxBoundedGeo | fActiveBox |
Box of the active volume. More... | |
geo::TPCID | fID |
ID of this TPC. More... | |
std::vector < geo::PlaneID::PlaneID_t > | fViewToPlaneNumber |
Index of the plane for each view (InvalidID if none). More... | |
|
private |
|
private |
using geo::TPCGeo::ElementIteratorBox = PlaneCollection_t const& |
Type returned by IterateElements()
.
|
private |
using geo::TPCGeo::PlaneCollection_t = std::vector<geo::PlaneGeo> |
geo::TPCGeo::TPCGeo | ( | TGeoNode const & | node, |
geo::TransformationMatrix && | trans, | ||
PlaneCollection_t && | planes | ||
) |
Definition at line 40 of file TPCGeo.cxx.
|
inline |
Returns the box of the active volume of this TPC.
Definition at line 320 of file TPCGeo.h.
|
inline |
Half height (associated with y coordinate) of active TPC volume [cm].
Definition at line 99 of file TPCGeo.h.
|
inline |
|
inline |
Half width (associated with x coordinate) of active TPC volume [cm].
Definition at line 95 of file TPCGeo.h.
|
inline |
Height (associated with y coordinate) of active TPC volume [cm].
Definition at line 101 of file TPCGeo.h.
|
inline |
|
inline |
Definition at line 118 of file TPCGeo.h.
|
inline |
Definition at line 119 of file TPCGeo.h.
|
inline |
Width (associated with x coordinate) of active TPC volume [cm].
Definition at line 97 of file TPCGeo.h.
|
inline |
|
inline |
Returns the 3D vector from composition of projection and distance.
Point | type of point to be returned |
decomp | decomposed point |
This is the "inverse" operation respect to DecomposePoint()
. The argument stores the two components, orthogonal and parallel to the plane, and compose them into a 3D point which departs from the reference point (ProjectionReferencePoint()
) by those components. See ComposePoint(double, Projection_t const&)
for more details.
Definition at line 524 of file TPCGeo.h.
|
inline |
|
inline |
Returns the 3D point from composition of projection and distance.
Point | type of point to be returned |
distance | distance of the target point from the reference plane |
proj | projection of the target point on the reference plane |
The returned point is the reference point, 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()
.
Definition at line 550 of file TPCGeo.h.
|
inline |
Definition at line 552 of file TPCGeo.h.
|
private |
Computes the distance between the cathode and the last wire plane (last respect to the sorting order).
Definition at line 450 of file TPCGeo.cxx.
|
inlinestatic |
Returns whether the specified coordinate is in a range.
c | the coordinate |
min | lower boundary of the range |
max | upper boundary of the range |
wiggle | expansion factor for the range |
If the wiggle is larger than 1, the range is expanded by the wiggle factor. If the wiggle is less than 1, the range is shrinked.
|
inlinestatic |
Definition at line 699 of file TPCGeo.h.
|
inline |
Decomposes a 3D point in two components.
point | the point to be decomposed |
The point is decomposed in:
The distance is from the reference plane (DistanceFromReferencePlane()
). The projection on the plane is obtained following the same convention as PointProjection()
.
Definition at line 445 of file TPCGeo.h.
|
inline |
Definition at line 447 of file TPCGeo.h.
short int geo::TPCGeo::DetectDriftDirection | ( | ) | const |
Returns the expected drift direction based on geometry.
The return value is coded as follow:
The current implementation is based on the assumption that electrons in the middle of TPC will drift toward the wire planes, and it "never fails".
Definition at line 157 of file TPCGeo.cxx.
|
inline |
Returns the distance of the specified point from reference plane.
point | a point in world coordinates [cm] |
The distance is defined positive if the point lies in the inner side with respect to the reference plane.
It should match the drift distance from that plane.
Definition at line 404 of file TPCGeo.h.
|
inline |
Definition at line 406 of file TPCGeo.h.
Vector geo::TPCGeo::DriftDir | ( | ) | const |
Returns the direction of the drift (vector pointing toward the planes).
Definition at line 773 of file TPCGeo.h.
|
inline |
|
inline |
Returns an enumerator value describing the drift direction.
Definition at line 144 of file TPCGeo.h.
|
inline |
|
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 operation is delegated to the reference plane (see geo::Plane::DriftPoint()
).
Definition at line 421 of file TPCGeo.h.
|
inline |
Definition at line 423 of file TPCGeo.h.
|
private |
|
inline |
|
inline |
Returns the center of the TPC active volume in world coordinates [cm].
Definition at line 288 of file TPCGeo.h.
|
inline |
|
inline |
Returns the center of the active volume face opposite to the wire planes [cm]
Definition at line 298 of file TPCGeo.h.
|
inline |
|
private |
Definition at line 330 of file TPCGeo.cxx.
Point geo::TPCGeo::GetCenter | ( | ) | const |
Returns the center of the TPC volume in world coordinates [cm].
Definition at line 779 of file TPCGeo.h.
|
inline |
Definition at line 214 of file TPCGeo.h.
Definition at line 237 of file TPCGeo.h.
|
inline |
Returns the center of the active TPC volume side facing negative z.
Definition at line 308 of file TPCGeo.h.
|
inline |
|
private |
Definition at line 374 of file TPCGeo.cxx.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 176 of file TPCGeo.h.
|
inline |
Definition at line 190 of file TPCGeo.h.
|
inline |
Returns whether a plane with index iplane is present in this TPC.
iplane | index of plane in this TPC |
Definition at line 175 of file TPCGeo.h.
|
inline |
Returns whether the plane in planeid is present in this TPC.
planeid | full plane ID |
The cryostat and TPC numbers in planeid are ignored, as it is ignored whether planeid is invalid.
Definition at line 188 of file TPCGeo.h.
|
inline |
Height is associated with y coordinate [cm].
Definition at line 113 of file TPCGeo.h.
|
inline |
|
inline |
|
inline |
|
private |
Recomputes the TPC boundary.
Definition at line 464 of file TPCGeo.cxx.
auto geo::TPCGeo::IterateElements | ( | ) | const |
Returns an object for iterating through all geo::PlaneGeo
.
geo::PlaneGeo
For example, this snippet computes MaxWires()
of TPC
(a TPCGeo
):
The resulting sequence exposes the planes within the TPC in their ID order, from plane 0
to Nplanes() - 1
.
Definition at line 308 of file TPCGeo.cxx.
|
inline |
Definition at line 268 of file TPCGeo.h.
|
inline |
Returns the last wire plane (the farther from TPC center).
Definition at line 248 of file TPCGeo.h.
|
inline |
|
inline |
|
inline |
|
inline |
Transform point from local TPC frame to world frame.
Definition at line 563 of file TPCGeo.h.
|
inline |
Transform point from local TPC frame to world frame.
Definition at line 567 of file TPCGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 575 of file TPCGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 579 of file TPCGeo.h.
|
private |
unsigned int geo::TPCGeo::MaxWires | ( | ) | const |
Returns the largest number of wires among the planes in this TPC.
Definition at line 297 of file TPCGeo.cxx.
|
inline |
const PlaneGeo & geo::TPCGeo::Plane | ( | geo::View_t | view | ) | const |
Return the plane in the tpc with View_t view.
Definition at line 263 of file TPCGeo.cxx.
const PlaneGeo & geo::TPCGeo::Plane | ( | unsigned int | iplane | ) | const |
Return the iplane'th plane in the TPC.
cet::exception | (category "PlaneOutOfRange") if no such plane |
Definition at line 252 of file TPCGeo.cxx.
Returns the plane in planeid from this TPC.
planeid | full plane ID |
cet::exception | (category "PlaneOutOfRange") if no such plane |
The cryostat and TPC numbers in planeid are ignored, as it is ignored whether planeid is invalid.
Definition at line 212 of file TPCGeo.h.
double geo::TPCGeo::Plane0Pitch | ( | unsigned int | p | ) | const |
Definition at line 324 of file TPCGeo.cxx.
const double * geo::TPCGeo::PlaneLocation | ( | unsigned int | p | ) | const |
Returns the coordinates of the center of the specified plane [cm]
Plane(p).GetCenter()
or equivalent. Definition at line 382 of file TPCGeo.cxx.
double geo::TPCGeo::PlanePitch | ( | unsigned int | p1 = 0 , |
unsigned int | p2 = 1 |
||
) | const |
Definition at line 388 of file TPCGeo.cxx.
|
inline |
Returns the plane number iplane from this TPC.
iplane | the number of local plane |
Definition at line 223 of file TPCGeo.h.
Returns the plane in planeid from this TPC.
planeid | full plane ID |
The cryostat and TPC numbers in planeid are ignored, as it is ignored whether planeid is invalid.
Definition at line 235 of file TPCGeo.h.
|
inline |
Definition at line 482 of file TPCGeo.h.
|
inline |
Definition at line 484 of file TPCGeo.h.
void geo::TPCGeo::PrintTPCInfo | ( | Stream && | out, |
std::string | indent = "" , |
||
unsigned int | verbosity = 1 |
||
) | const |
Prints information about this TPC.
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 |
Note that the first line out the output is not indented.
The constant MaxVerbosity
is set to the highest supported verbosity level.
Definition at line 789 of file TPCGeo.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 reference plane. The vector is expressed as , components following the width direction (RefWidthDir()
) and the depth direction (RefDepthDir()
) respectively. The origin point is returned by ProjectionReferencePoint()
. All coordinates are in centimeters.
Definition at line 480 of file TPCGeo.h.
|
inline |
Returns the projection of the specified vector on the plane.
v | the 3D vector to be projected, in world units [cm] |
The returned vector is a 2D vector expressing the projection of the vector (from world units) on the reference plane. The vector is expressed as , components following the width direction (RefWidthDir()
) and the depth direction (RefDepthDir()
) respectively. All coordinates are in centimeters.
Definition at line 501 of file TPCGeo.h.
|
inline |
Returns the reference point used by PointProjection()
.
Point | type of point to be returned |
The returned point is such that its decomposition results in a null projection and a 0 distance from the plane.
Definition at line 460 of file TPCGeo.h.
|
inline |
|
inline |
Return the direction of reference plane depth.
Vector | type of vector to return (current default: TVector3 ) |
The precise definition of the vector is arbitrary, but it is defined to lie on the wire plane and so that RefWidthDir(), RefDepthDir() and a vector opposite to DriftDir() make a orthonormal base. That base (width, depth, normal) is guaranteed to be positive defined.
Definition at line 388 of file TPCGeo.h.
|
inline |
|
inline |
Returns the plane used for reference by projection methods.
Definition at line 354 of file TPCGeo.h.
|
inline |
Returns the ID of the plane used for reference by projection methods.
Definition at line 357 of file TPCGeo.h.
|
inline |
Return the direction of reference plane width.
Vector | type of vector to return (current default: TVector3 ) |
The precise definition of the vector is arbitrary, but it is defined to lie on the wire plane and so that RefWidthDir(), RefDepthDir() and a vector opposite to DriftDir() make a orthonormal base. That base (width, depth, normal) is guaranteed to be positive defined.
Definition at line 372 of file TPCGeo.h.
|
inline |
|
private |
Recomputes the drift direction; needs planes to have been initialised.
Definition at line 402 of file TPCGeo.cxx.
geo::PlaneGeo const & geo::TPCGeo::SmallestPlane | ( | ) | const |
|
private |
Sorts (in place) the specified PlaneGeo
objects by drift distance.
Definition at line 529 of file TPCGeo.cxx.
void geo::TPCGeo::SortSubVolumes | ( | geo::GeoObjectSorter const & | sorter | ) |
Apply sorting to the PlaneGeo objects.
Definition at line 201 of file TPCGeo.cxx.
|
inline |
Transform point from world frame to local TPC frame.
Definition at line 595 of file TPCGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 607 of file TPCGeo.h.
|
inline |
Definition at line 120 of file TPCGeo.h.
|
inline |
Transform point from local TPC frame to world frame.
Definition at line 571 of file TPCGeo.h.
|
inline |
Transform direction vector from local to world.
Definition at line 583 of file TPCGeo.h.
std::string geo::TPCGeo::TPCInfo | ( | std::string | indent = "" , |
unsigned int | verbosity = 1 |
||
) | const |
Returns a string with information about this TPC.
PrintTPCInfo()
Arguments and provided information are the same as in PrintTPCInfo()
.
Definition at line 244 of file TPCGeo.cxx.
void geo::TPCGeo::UpdateAfterSorting | ( | geo::TPCID | tpcid | ) |
Performs all updates after cryostat has sorted TPCs.
Definition at line 220 of file TPCGeo.cxx.
|
private |
Updates plane cached information.
Definition at line 506 of file TPCGeo.cxx.
|
private |
Refills the plane vs. view cache of the TPC.
Definition at line 489 of file TPCGeo.cxx.
|
inline |
Definition at line 503 of file TPCGeo.h.
|
inline |
Definition at line 505 of file TPCGeo.h.
std::set< geo::View_t > geo::TPCGeo::Views | ( | ) | const |
Returns a set of all views covered in this TPC.
Definition at line 313 of file TPCGeo.cxx.
|
inline |
Width is associated with x coordinate [cm].
Definition at line 109 of file TPCGeo.h.
|
inline |
|
inline |
double geo::TPCGeo::WirePitch | ( | unsigned | plane = 0 | ) | const |
Definition at line 396 of file TPCGeo.cxx.
|
inline |
Transform point from world frame to local TPC frame.
Definition at line 587 of file TPCGeo.h.
|
inline |
Transform point from world frame to local TPC frame.
Definition at line 591 of file TPCGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 599 of file TPCGeo.h.
|
inline |
Transform direction vector from world to local.
Definition at line 603 of file TPCGeo.h.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
static |
Maximum verbosity supported by PrintTPCInfo()
.