Set of drift volumes. More...
#include <DriftPartitions.h>
Classes | |
struct | DriftVolume_t |
Data associated to a single drift volume. More... | |
Public Types | |
using | TPCPartition_t = geo::part::Partition< geo::TPCGeo const > |
Type of TPC collection for the partition of a single drift volume. More... | |
using | Range_t = lar::util::simple_geo::Range< double > |
Type for description of drift range. More... | |
using | Position_t = geo::Point_t |
Type representing a position in 3D space. More... | |
using | Direction_t = geo::Vector_t |
Type representing a direction in 3D space (norm is not constrained). More... | |
using | Projection_t = ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< double >> |
Type representing a position in the 2D space. More... | |
using | DriftDir_t = Direction_t |
Type representing the drift direction (assumed to have norm 1). More... | |
using | Decomposer_t = geo::Decomposer< Direction_t, Position_t, Projection_t > |
Object used to compute projections on drift volume readout plane. More... | |
Public Member Functions | |
DriftPartitions (Decomposer_t const &decomp) | |
Constructor: no partition, but sets the main "drift" direction. More... | |
template<typename Stream > | |
void | print (Stream &&out) const |
Printout of the drift volume information. More... | |
void | addPartition (std::unique_ptr< TPCPartition_t > &&part) |
Adds the specified partition as a new drift volume. More... | |
Drift volume lookup. | |
double | driftCoord (Position_t const &pos) const |
Returns drift coordinate (in the drift-volume-specific frame) of pos . More... | |
DriftVolume_t const * | driftVolumeAt (Position_t const &pos) const |
DriftVolume_t const * | driftVolumeAt (double drift) const |
Returns which volume contains the specified drift (nullptr if none). More... | |
geo::TPCGeo const * | TPCat (Position_t const &pos) const |
Returns which TPC contains the specified position (nullptr if none). More... | |
Public Attributes | |
std::vector< DriftVolume_t > | volumes |
All drift volumes, sorted by position. More... | |
Decomposer_t | decomposer |
Decomposition on drift, width and depth axes. More... | |
Private Member Functions | |
std::vector< DriftVolume_t >::iterator | volumeAfter (double pos) |
Returns an iterator to the drift volume starting after pos . More... | |
std::vector< DriftVolume_t >::const_iterator | volumeAfter (double pos) const |
Returns an iterator to the drift volume starting after pos . More... | |
Range_t | computeCoverage (TPCPartition_t const &TPCpart) const |
Computes the coverage of the specified partition in the drift direction. More... | |
Set of drift volumes.
A drift volume is a set of TPCs whose readout planes lie on the same geometric plane.
Definition at line 89 of file DriftPartitions.h.
Object used to compute projections on drift volume readout plane.
Definition at line 139 of file DriftPartitions.h.
Type representing a direction in 3D space (norm is not constrained).
Definition at line 129 of file DriftPartitions.h.
Type representing the drift direction (assumed to have norm 1).
Definition at line 136 of file DriftPartitions.h.
Type representing a position in 3D space.
Definition at line 126 of file DriftPartitions.h.
using geo::DriftPartitions::Projection_t = ROOT::Math::DisplacementVector2D<ROOT::Math::Cartesian2D<double>> |
Type representing a position in the 2D space.
Definition at line 133 of file DriftPartitions.h.
using geo::DriftPartitions::Range_t = lar::util::simple_geo::Range<double> |
Type for description of drift range.
Definition at line 96 of file DriftPartitions.h.
using geo::DriftPartitions::TPCPartition_t = geo::part::Partition<geo::TPCGeo const> |
Type of TPC collection for the partition of a single drift volume.
Definition at line 93 of file DriftPartitions.h.
|
inlineexplicit |
Constructor: no partition, but sets the main "drift" direction.
Definition at line 147 of file DriftPartitions.h.
void geo::DriftPartitions::addPartition | ( | std::unique_ptr< TPCPartition_t > && | part | ) |
Adds the specified partition as a new drift volume.
Definition at line 100 of file DriftPartitions.cxx.
|
private |
Computes the coverage of the specified partition in the drift direction.
Definition at line 110 of file DriftPartitions.cxx.
|
inline |
Returns drift coordinate (in the drift-volume-specific frame) of pos
.
Definition at line 153 of file DriftPartitions.h.
|
inline |
Returns which partition contains the specified position.
nullptr
if none) Definition at line 158 of file DriftPartitions.h.
geo::DriftPartitions::DriftVolume_t const * geo::DriftPartitions::driftVolumeAt | ( | double | drift | ) | const |
Returns which volume contains the specified drift (nullptr
if none).
Definition at line 80 of file DriftPartitions.cxx.
void geo::DriftPartitions::print | ( | Stream && | out | ) | const |
Printout of the drift volume information.
Definition at line 296 of file DriftPartitions.h.
geo::TPCGeo const * geo::DriftPartitions::TPCat | ( | Position_t const & | pos | ) | const |
Returns which TPC contains the specified position (nullptr
if none).
Definition at line 90 of file DriftPartitions.cxx.
|
inlineprivate |
Returns an iterator to the drift volume starting after pos
.
Definition at line 279 of file DriftPartitions.h.
|
inlineprivate |
Returns an iterator to the drift volume starting after pos
.
Definition at line 286 of file DriftPartitions.h.
Decomposer_t geo::DriftPartitions::decomposer |
Decomposition on drift, width and depth axes.
Definition at line 144 of file DriftPartitions.h.
std::vector<DriftVolume_t> geo::DriftPartitions::volumes |
All drift volumes, sorted by position.
Definition at line 143 of file DriftPartitions.h.