LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
geo::CryostatGeo Class Reference

Geometry information for a single cryostat. More...

#include "CryostatGeo.h"

Inheritance diagram for geo::CryostatGeo:
geo::BoxBoundedGeo

Classes

struct  CryostatGeoCoordinatesTag
 Tag for vectors in the "local" GDML coordinate frame of the cryostat. More...
 

Public Types

using GeoNodePath_t = geo::WireGeo::GeoNodePath_t
 
using Coords_t = geo::Point_t
 Type of the coordinate triplet. More...
 
using Coord_t = Coords_t::Scalar
 Type of the coordinate. More...
 
Types for geometry-local reference vectors.

These types represents points and displacement vectors in the reference frame defined in the cryostat geometry box from the GDML geometry description.

No alias is explicitly defined for the LArSoft global vector types, geo::Point_t and geo::Vector_t.

Remember the LocalPoint_t and LocalVector_t vectors from different instances of geo::CryostatGeo have the same type but are not compatible.

using LocalPoint_t = geo::Point3DBase_t< CryostatGeoCoordinatesTag >
 Type of points in the local GDML cryostat frame. More...
 
using LocalVector_t = geo::Vector3DBase_t< CryostatGeoCoordinatesTag >
 Type of displacement vectors in the local GDML cryostat frame. More...
 

Public Member Functions

 CryostatGeo (std::vector< const TGeoNode * > &path, int depth)
 Construct a representation of a single cryostat of the detector. More...
 
void SortSubVolumes (geo::GeoObjectSorter const &sorter)
 Method to sort TPCGeo objects. More...
 
void UpdateAfterSorting (geo::CryostatID cryoid)
 Performs all needed updates after geometry has sorted the cryostats. More...
 
TPC access
unsigned int NTPC () const
 Number of TPCs in this cryostat. More...
 
unsigned int NElements () const
 Alias for NTPC(). More...
 
bool HasTPC (unsigned int itpc) const
 Returns whether a TPC with index itpc is present in this cryostat. More...
 
bool HasElement (unsigned int itpc) const
 Alias for HasTPC(). More...
 
bool HasTPC (geo::TPCID const &tpcid) const
 Returns whether the TPC in tpcid is present in this cryostat. More...
 
bool HasElement (geo::TPCID const &tpcid) const
 Alias for HasTPC(geo::TPCID const&) More...
 
const TPCGeoTPC (unsigned int itpc) const
 Return the itpc'th TPC in the cryostat. More...
 
const TPCGeoTPC (TPCID const &tpcid) const
 Returns the TPC in tpcid from this cryostat. More...
 
const TPCGeoGetElement (TPCID const &tpcid) const
 Alias for TPC(). More...
 
auto const & TPCs () const
 Returns a container with references to all TPCs. More...
 
TPCGeo const * TPCPtr (unsigned int itpc) const
 Returns the TPC number itpc from this cryostat. More...
 
TPCGeo const * TPCPtr (TPCID const &tpcid) const
 Returns the TPC in tpcid from this cryostat. More...
 
TPCGeo const * GetElementPtr (TPCID const &tpcid) const
 Alias for TPCPtr(). More...
 
geo::TPCID::TPCID_t FindTPCAtPosition (double const worldLoc[3], double const wiggle) const
 Returns the index of the TPC at specified location. More...
 
geo::TPCID PositionToTPCID (geo::Point_t const &point, double wiggle) const
 Returns the ID of the TPC at specified location. More...
 
TPCGeo const & PositionToTPC (geo::Point_t const &point, double wiggle) const
 Returns the ID of the TPC at specified location. More...
 
TPCGeo const & PositionToTPC (double const worldLoc[3], double wiggle) const
 Returns the ID of the TPC at specified location. More...
 
geo::TPCGeo const * PositionToTPCptr (geo::Point_t const &point, double wiggle) const
 Returns a pointer to the TPC at specified location. More...
 
unsigned int MaxPlanes () const
 Returns the largest number of planes among the TPCs in this cryostat. More...
 
unsigned int MaxWires () const
 Returns the largest number of wires among the TPCs in this cryostat. More...
 
Optical detector access
unsigned int NOpDet () const
 Number of optical detectors in this TPC. More...
 
const OpDetGeoOpDet (unsigned int iopdet) const
 Return the iopdet'th optical detector in the cryostat. More...
 
unsigned int GetClosestOpDet (geo::Point_t const &point) const
 
unsigned int GetClosestOpDet (double const *point) const
 
geo::OpDetGeo const * GetClosestOpDetPtr (geo::Point_t const &point) const
 
std::string OpDetGeoName () const
 Get name of opdet geometry element. More...
 
Coordinate transformation
void LocalToWorld (const double *cryo, double *world) const
 Transform point from local cryostat frame to world frame. More...
 
template<typename Point >
Point LocalToWorld (Point const &local) const
 
geo::Point_t toWorldCoords (LocalPoint_t const &local) const
 Transform point from local cryostat frame to world frame. More...
 
void LocalToWorldVect (const double *cryo, double *world) 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 *cryo) const
 Transform point from world frame to local cryostat frame. More...
 
template<typename Point >
Point WorldToLocal (Point const &world) const
 
LocalPoint_t toLocalCoords (geo::Point_t const &world) const
 Transform point from world frame to local cryostat frame. More...
 
void WorldToLocalVect (const double *world, double *cryo) 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...
 
Dimension queries
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...
 
Containment in the full volume
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
 
Containment in a fiducial volume
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...
 
Setting dimensions
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_tGetIntersections (geo::Point_t const &TrajectoryStart, geo::Vector_t const &TrajectoryDirect) const
 Calculates the entry and exit points of a trajectory on the box surface. More...
 

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.)
 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_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 (Coord_t &var, Coord_t value)
 Sets var to value if value is larger than the current var value. 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...
 

Private Types

using TPCList_t = std::vector< TPCGeo >
 Type used internally to store the TPCs. More...
 
using LocalTransformation_t = geo::LocalTransformationGeo< TGeoHMatrix, LocalPoint_t, LocalVector_t >
 

Private Member Functions

void FindTPC (std::vector< const TGeoNode * > &path, unsigned int depth)
 
void MakeTPC (std::vector< const TGeoNode * > &path, int depth)
 
void FindOpDet (std::vector< const TGeoNode * > &path, unsigned int depth)
 
void MakeOpDet (std::vector< const TGeoNode * > &path, int depth)
 
void InitCryoBoundaries ()
 Fill the boundary information of the cryostat. More...
 

Private Attributes

LocalTransformation_t fTrans
 Cryostat-to-world transformation. More...
 
TPCList_t fTPCs
 List of tpcs in this cryostat. More...
 
std::vector< OpDetGeofOpDets
 List of opdets in this cryostat. More...
 
TGeoVolume * fVolume
 Total volume of cryostat, called volCryostat in GDML file. More...
 
std::string fOpDetGeoName
 Name of opdet geometry elements in gdml. More...
 
geo::CryostatID fID
 ID of this cryostat. More...
 

Cryostat geometry information

static constexpr unsigned int MaxVerbosity = 3
 Maximum verbosity supported by PrintCryostatInfo(). More...
 
double HalfWidth () const
 Half width of the cryostat [cm]. More...
 
double HalfHeight () const
 Half height of the cryostat [cm]. More...
 
double HalfLength () const
 Half height of the cryostat [cm]. More...
 
double Width () const
 Full width of the cryostat [cm]. More...
 
double Height () const
 Full height of the cryostat [cm]. More...
 
double Length () const
 Length of the cryostat [cm]. More...
 
double Mass () const
 Mass of the cryostat. More...
 
const TGeoVolume * Volume () const
 Pointer to ROOT's volume descriptor. More...
 
geo::BoxBoundedGeo const & Boundaries () const
 Returns boundaries of the cryostat (in centimetres). More...
 
void Boundaries (double *boundaries) const
 Fills boundaries of the cryostat (in centimetres). More...
 
geo::Point_t GetCenter () const
 Returns the geometrical center of the cryostat. More...
 
geo::BoxBoundedGeo const & BoundingBox () const
 Returns the bounding box of this cryostat. More...
 
geo::CryostatID const & ID () const
 Returns the identifier of this cryostat. More...
 
template<typename Stream >
void PrintCryostatInfo (Stream &&out, std::string indent="", unsigned int verbosity=1) const
 Prints information about this cryostat. More...
 

Detailed Description

Geometry information for a single cryostat.

Definition at line 36 of file CryostatGeo.h.

Member Typedef Documentation

using geo::BoxBoundedGeo::Coord_t = Coords_t::Scalar
inherited

Type of the coordinate.

Definition at line 38 of file BoxBoundedGeo.h.

Type of the coordinate triplet.

Definition at line 37 of file BoxBoundedGeo.h.

Type of points in the local GDML cryostat frame.

Definition at line 65 of file CryostatGeo.h.

Type of displacement vectors in the local GDML cryostat frame.

Definition at line 68 of file CryostatGeo.h.

using geo::CryostatGeo::TPCList_t = std::vector<TPCGeo>
private

Type used internally to store the TPCs.

Definition at line 39 of file CryostatGeo.h.

Constructor & Destructor Documentation

geo::CryostatGeo::CryostatGeo ( std::vector< const TGeoNode * > &  path,
int  depth 
)

Construct a representation of a single cryostat of the detector.

Todo:
: remove the hard-coded 600 in favor of selecting sorting the same way as in ChannelMapAlgs (LArSoft issue #16812)

Definition at line 66 of file CryostatGeo.cxx.

References geo::DUNE_opdet_sort(), FindOpDet(), FindTPC(), fOpDetGeoName, fOpDets, fVolume, InitCryoBoundaries(), LOG_DEBUG, geo::opdet_sort(), and util::SortByPointers().

67  : fTrans(path, depth)
68  , fVolume(nullptr)
69  {
70 
71  // all planes are going to be contained in the volume named volCryostat
72  // now get the total volume of the Cryostat
73  fVolume = path[depth]->GetVolume();
74  if(!fVolume)
75  throw cet::exception("CryostatGeo") << "cannot find cryostat outline volume\n";
76 
77  LOG_DEBUG("Geometry") << "cryostat volume is " << fVolume->GetName();
78 
79  // set the bounding box
81 
82  // find the tpcs for the cryostat so that you can use them later
83  this->FindTPC(path, depth);
84 
85 
86  // Set OpDetName;
87  fOpDetGeoName = "volOpDetSensitive";
88 
89  // find the opdets for the cryostat so that you can use them later
90  this->FindOpDet(path, depth);
91 
92  // sort the OpDets according to xyz position
93  // 600 intended to separate dune10kt geometry from others when sorting
96  auto sorter = (fOpDets.size() != 600)? opdet_sort: DUNE_opdet_sort;
98  [&sorter](auto& coll){ std::sort(coll.begin(), coll.end(), sorter); }
99  );
100 
101  }
void InitCryoBoundaries()
Fill the boundary information of the cryostat.
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
std::string fOpDetGeoName
Name of opdet geometry elements in gdml.
Definition: CryostatGeo.h:412
std::vector< OpDetGeo > fOpDets
List of opdets in this cryostat.
Definition: CryostatGeo.h:410
void SortByPointers(Coll &coll, Sorter sorter)
Applies sorting indirectly, minimizing data copy.
void FindOpDet(std::vector< const TGeoNode * > &path, unsigned int depth)
static bool DUNE_opdet_sort(const OpDetGeo *t1, const OpDetGeo *t2)
Definition: CryostatGeo.cxx:50
void FindTPC(std::vector< const TGeoNode * > &path, unsigned int depth)
static bool opdet_sort(const OpDetGeo *t1, const OpDetGeo *t2)
Definition: CryostatGeo.cxx:32
#define LOG_DEBUG(id)
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

Member Function Documentation

geo::BoxBoundedGeo const& geo::CryostatGeo::Boundaries ( ) const
inline

Returns boundaries of the cryostat (in centimetres).

Returns
boundaries in a geo::BoxBoundedGeo

Definition at line 99 of file CryostatGeo.h.

References BoundingBox().

Referenced by geo::GeometryCore::CryostatBoundaries(), and GetCenter().

100  { return BoundingBox(); }
geo::BoxBoundedGeo const & BoundingBox() const
Returns the bounding box of this cryostat.
Definition: CryostatGeo.h:112
void geo::CryostatGeo::Boundaries ( double *  boundaries) const

Fills boundaries of the cryostat (in centimetres).

Parameters
boundariesfilled as: [0] -x [1] +x [2] -y [3] +y [4] -z [5] +z

Definition at line 317 of file CryostatGeo.cxx.

References GetClosestOpDetPtr(), geo::BoxBoundedGeo::MaxX(), geo::BoxBoundedGeo::MaxY(), geo::BoxBoundedGeo::MaxZ(), geo::BoxBoundedGeo::MinX(), geo::BoxBoundedGeo::MinY(), and geo::BoxBoundedGeo::MinZ().

317  {
318  boundaries[0] = MinX();
319  boundaries[1] = MaxX();
320  boundaries[2] = MinY();
321  boundaries[3] = MaxY();
322  boundaries[4] = MinZ();
323  boundaries[5] = MaxZ();
324  } // CryostatGeo::CryostatBoundaries(double*)
double MinX() const
Returns the world x coordinate of the start of the box.
Definition: BoxBoundedGeo.h:90
double MaxX() const
Returns the world x coordinate of the end of the box.
Definition: BoxBoundedGeo.h:93
double MinZ() const
Returns the world z coordinate of the start of the box.
double MaxY() const
Returns the world y coordinate of the end of the box.
double MaxZ() const
Returns the world z coordinate of the end of the box.
double MinY() const
Returns the world y coordinate of the start of the box.
geo::BoxBoundedGeo const& geo::CryostatGeo::BoundingBox ( ) const
inline

Returns the bounding box of this cryostat.

Definition at line 112 of file CryostatGeo.h.

Referenced by Boundaries(), and PrintCryostatInfo().

113  { return static_cast<geo::BoxBoundedGeo const&>(*this); }
A base class aware of world box coordinatesAn object describing a simple shape can inherit from this ...
Definition: BoxBoundedGeo.h:35
geo::Point_t geo::BoxBoundedGeo::Center ( ) const
inlineinherited

Returns the center point of the box.

Definition at line 141 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CenterX(), geo::BoxBoundedGeo::CenterY(), and geo::BoxBoundedGeo::CenterZ().

Referenced by geo::buildDriftVolumes(), GetCenter(), and geo::PlaneGeo::UpdatePlaneNormal().

142  { return { CenterX(), CenterY(), CenterZ() }; }
double CenterX() const
Returns the world x coordinate of the center of the box.
Definition: BoxBoundedGeo.h:96
double CenterZ() const
Returns the world z coordinate of the center of the box.
double CenterY() const
Returns the world y coordinate of the center of the box.
double geo::BoxBoundedGeo::CenterX ( ) const
inlineinherited

Returns the world x coordinate of the center of the box.

Definition at line 96 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxX(), and geo::BoxBoundedGeo::MinX().

Referenced by geo::BoxBoundedGeo::Center().

96 { return (MinX() + MaxX()) / 2.; }
double MinX() const
Returns the world x coordinate of the start of the box.
Definition: BoxBoundedGeo.h:90
double MaxX() const
Returns the world x coordinate of the end of the box.
Definition: BoxBoundedGeo.h:93
double geo::BoxBoundedGeo::CenterY ( ) const
inlineinherited

Returns the world y coordinate of the center of the box.

Definition at line 111 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxY(), and geo::BoxBoundedGeo::MinY().

Referenced by geo::BoxBoundedGeo::Center().

111 { return (MinY() + MaxY()) / 2.; }
double MaxY() const
Returns the world y coordinate of the end of the box.
double MinY() const
Returns the world y coordinate of the start of the box.
double geo::BoxBoundedGeo::CenterZ ( ) const
inlineinherited

Returns the world z coordinate of the center of the box.

Definition at line 126 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxZ(), and geo::BoxBoundedGeo::MinZ().

Referenced by geo::BoxBoundedGeo::Center().

126 { return (MinZ() + MaxZ()) / 2.; }
double MinZ() const
Returns the world z coordinate of the start of the box.
double MaxZ() const
Returns the world z coordinate of the end of the box.
bool geo::BoxBoundedGeo::ContainsPosition ( geo::Point_t const &  point,
double  wiggle = 1.0 
) const
inlineinherited

Returns whether this volume contains the specified point.

Parameters
pointthe point [cm]
wiggleexpansion factor for the range
Returns
whether the specified coordinate is in this volume

If the wiggle is larger than 1, each size of the volume is expanded by the wiggle factor. If the wiggle is less than 1, each size is shrinked.

Definition at line 207 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::ContainsX(), and geo::BoxBoundedGeo::ContainsYZ().

Referenced by geo::BoxBoundedGeo::ContainsPosition(), geo::BoxBoundedGeo::ContainsYZ(), and geo::GeometryCore::MaterialName().

208  {
209  return ContainsX(point.X(), wiggle)
210  && ContainsYZ(point.Y(), point.Z(), wiggle);
211  } // ContainsPosition()
bool ContainsX(double x, double const wiggle=1) const
Returns whether this TPC contains the specified world x coordinate.
bool ContainsYZ(double y, double z, double const wiggle=1) const
Returns if TPC contains the specified world y and z coordinates.
bool geo::BoxBoundedGeo::ContainsPosition ( TVector3 const &  point,
double  wiggle = 1.0 
) const
inherited
See also
ContainsPosition(geo::Point_t const&, double) const.

Definition at line 18 of file BoxBoundedGeo.cxx.

References geo::BoxBoundedGeo::ContainsPosition(), and geo::vect::toPoint().

19  { return ContainsPosition(geo::vect::toPoint(point), wiggle); }
::geo::Point_t toPoint(Point const &p)
Convert the specified point into a geo::Point_t.
bool ContainsPosition(geo::Point_t const &point, double wiggle=1.0) const
Returns whether this volume contains the specified point.
bool geo::BoxBoundedGeo::ContainsPosition ( double const *  point,
double  wiggle = 1.0 
) const
inherited
See also
ContainsPosition(geo::Point_t const&, double) const.

Definition at line 23 of file BoxBoundedGeo.cxx.

References geo::vect::makePointFromCoords().

24  { return ContainsPosition(geo::vect::makePointFromCoords(point), wiggle); }
GENVECTOR_CONSTEXPR::geo::Point_t makePointFromCoords(Coords &&coords)
Creates a geo::Point_t from its coordinates (see makeFromCoords()).
bool ContainsPosition(geo::Point_t const &point, double wiggle=1.0) const
Returns whether this volume contains the specified point.
bool geo::BoxBoundedGeo::ContainsX ( double  x,
double const  wiggle = 1 
) const
inlineinherited

Returns whether this TPC contains the specified world x coordinate.

Parameters
xthe absolute ("world") coordinate x
wiggleexpansion factor for the range (see ContainsPosition())
Returns
whether the specified coordinate is in this TPC
See also
ContainsPosition()

Note that x is by definition the drift direction, and a reconstructed x typically depends on an assumption respect to the event time.

Definition at line 161 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxX(), and geo::BoxBoundedGeo::MinX().

Referenced by geo::BoxBoundedGeo::ContainsPosition().

162  { return CoordinateContained(x, MinX(), MaxX(), wiggle); }
Float_t x
Definition: compare.C:6
double MinX() const
Returns the world x coordinate of the start of the box.
Definition: BoxBoundedGeo.h:90
double MaxX() const
Returns the world x coordinate of the end of the box.
Definition: BoxBoundedGeo.h:93
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
bool geo::BoxBoundedGeo::ContainsY ( double  y,
double const  wiggle = 1 
) const
inlineinherited

Returns whether this TPC contains the specified world y coordinate.

Parameters
ythe absolute ("world") coordinate y
wiggleexpansion factor for the range (see ContainsPosition())
Returns
whether the specified coordinate is in this TPC
See also
ContainsPosition()

Definition at line 171 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxY(), and geo::BoxBoundedGeo::MinY().

Referenced by geo::BoxBoundedGeo::ContainsYZ().

172  { return CoordinateContained(y, MinY(), MaxY(), wiggle); }
Float_t y
Definition: compare.C:6
double MaxY() const
Returns the world y coordinate of the end of the box.
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
double MinY() const
Returns the world y coordinate of the start of the box.
bool geo::BoxBoundedGeo::ContainsYZ ( double  y,
double  z,
double const  wiggle = 1 
) const
inlineinherited

Returns if TPC contains the specified world y and z coordinates.

Parameters
ythe absolute ("world") coordinate y
zthe absolute ("world") coordinate z
wiggleexpansion factor for the range (see ContainsPosition())
Returns
whether the specified coordinate is in this TPC
See also
ContainsPosition()

Definition at line 192 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::ContainsPosition(), geo::BoxBoundedGeo::ContainsY(), and geo::BoxBoundedGeo::ContainsZ().

Referenced by geo::BoxBoundedGeo::ContainsPosition().

193  { return ContainsY(y, wiggle) && ContainsZ(z, wiggle); }
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
bool ContainsY(double y, double const wiggle=1) const
Returns whether this TPC contains the specified world y coordinate.
bool ContainsZ(double z, double const wiggle=1) const
Returns whether this TPC contains the specified world z coordinate.
bool geo::BoxBoundedGeo::ContainsZ ( double  z,
double const  wiggle = 1 
) const
inlineinherited

Returns whether this TPC contains the specified world z coordinate.

Parameters
zthe absolute ("world") coordinate z
wiggleexpansion factor for the range (see ContainsPosition())
Returns
whether the specified coordinate is in this TPC
See also
ContainsPosition()

Definition at line 181 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxZ(), and geo::BoxBoundedGeo::MinZ().

Referenced by geo::BoxBoundedGeo::ContainsYZ().

182  { return CoordinateContained(z, MinZ(), MaxZ(), wiggle); }
Double_t z
Definition: plot.C:279
double MinZ() const
Returns the world z coordinate of the start of the box.
double MaxZ() const
Returns the world z coordinate of the end of the box.
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
static bool geo::BoxBoundedGeo::CoordinateContained ( double  c,
double  min,
double  max,
double  wiggle = 1. 
)
inlinestaticinherited

Returns whether the specified coordinate is in a range.

Parameters
cthe coordinate
minlower boundary of the range
maxupper boundary of the range
wiggleexpansion factor for the range
Returns
whether the specified coordinate is in a 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.

Definition at line 333 of file BoxBoundedGeo.h.

Referenced by geo::BoxBoundedGeo::ContainsX(), geo::BoxBoundedGeo::ContainsY(), geo::BoxBoundedGeo::ContainsZ(), geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::InFiducialX(), geo::BoxBoundedGeo::InFiducialY(), and geo::BoxBoundedGeo::InFiducialZ().

334  {
335  return (c >= (min > 0? min / wiggle: min * wiggle))
336  && (c <= (max < 0? max / wiggle: max * wiggle));
337  } // CoordinateContained()
Int_t max
Definition: plot.C:27
Int_t min
Definition: plot.C:26
static bool geo::BoxBoundedGeo::CoordinateContained ( double  c,
double const *  range,
double  wiggle = 1. 
)
inlinestaticinherited

Returns whether the specified coordinate is in a range.

Parameters
cthe coordinate
rangepointer to [ lower boundary, upper boundary ] of the range
wiggleexpansion factor for the range
Returns
whether the specified coordinate is in a range
See also
CoordinateContained(double, double, double, double)

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.

Definition at line 351 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained().

352  { return CoordinateContained(c, range[0], range[1], wiggle); }
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
void geo::BoxBoundedGeo::ExtendToInclude ( Coord_t  x,
Coord_t  y,
Coord_t  z 
)
inlineinherited

Extends the current box to also include the specified point.

Parameters
xx coordinate of the point to include
yy coordinate of the point to include
zz coordinate of the point to include

Definition at line 392 of file BoxBoundedGeo.h.

Referenced by geo::PlaneGeo::BoundingBox(), evd_tool::StandardDrawer::DetOutline3D(), and lar::example::SpacePointIsolationAlg::fillAlgConfigFromGeometry().

393  { ExtendToInclude(geo::Point_t(x, y, z)); }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
void ExtendToInclude(Coord_t x, Coord_t y, Coord_t z)
Extends the current box to also include the specified point.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:187
void geo::BoxBoundedGeo::ExtendToInclude ( geo::Point_t const &  point)
inlineinherited

Extends the current box to also include the specified point.

Parameters
pointcoordinates of the point to include

Definition at line 399 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_max, geo::BoxBoundedGeo::c_min, geo::BoxBoundedGeo::set_max(), and geo::BoxBoundedGeo::set_min().

400  {
401  set_min(c_min, point);
402  set_max(c_max, point);
403  }
static void set_min(Coord_t &var, Coord_t value)
Sets var to value if value is smaller than the current var value.
static void set_max(Coord_t &var, Coord_t value)
Sets var to value if value is larger than the current var value.
Coords_t c_max
maximum coordinates (x, y, z)
Coords_t c_min
minimum coordinates (x, y, z)
void geo::BoxBoundedGeo::ExtendToInclude ( BoxBoundedGeo const &  box)
inlineinherited

Extends the current box to also include the specified one.

Parameters
boxthe box to include

It is assumed that the box has its boundaries properly sorted.

Definition at line 411 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_max, geo::BoxBoundedGeo::c_min, geo::BoxBoundedGeo::GetIntersections(), geo::BoxBoundedGeo::Max(), geo::BoxBoundedGeo::Min(), geo::BoxBoundedGeo::set_max(), and geo::BoxBoundedGeo::set_min().

412  {
413  set_min(c_min, box.Min());
414  set_max(c_max, box.Max());
415  } // ExtendToInclude()
static void set_min(Coord_t &var, Coord_t value)
Sets var to value if value is smaller than the current var value.
static void set_max(Coord_t &var, Coord_t value)
Sets var to value if value is larger than the current var value.
Coords_t c_max
maximum coordinates (x, y, z)
Coords_t c_min
minimum coordinates (x, y, z)
void geo::CryostatGeo::FindOpDet ( std::vector< const TGeoNode * > &  path,
unsigned int  depth 
)
private

Definition at line 188 of file CryostatGeo.cxx.

References MakeOpDet(), and OpDetGeoName().

Referenced by CryostatGeo(), and toLocalCoords().

190  {
191 
192  const char* nm = path[depth]->GetName();
193  if( (strncmp(nm, OpDetGeoName().c_str(), 6) == 0) ){
194  this->MakeOpDet(path,depth);
195  return;
196  }
197 
198  //explore the next layer down
199  unsigned int deeper = depth+1;
200  if(deeper >= path.size()){
201  throw cet::exception("BadTGeoNode") << "exceeded maximum TGeoNode depth\n";
202  }
203 
204  const TGeoVolume *v = path[depth]->GetVolume();
205  int nd = v->GetNdaughters();
206  for(int i = 0; i < nd; ++i){
207  path[deeper] = v->GetNode(i);
208  this->FindOpDet(path, deeper);
209  }
210 
211  }
std::string OpDetGeoName() const
Get name of opdet geometry element.
Definition: CryostatGeo.h:311
void FindOpDet(std::vector< const TGeoNode * > &path, unsigned int depth)
void MakeOpDet(std::vector< const TGeoNode * > &path, int depth)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void geo::CryostatGeo::FindTPC ( std::vector< const TGeoNode * > &  path,
unsigned int  depth 
)
private

Definition at line 105 of file CryostatGeo.cxx.

References MakeTPC().

Referenced by CryostatGeo(), and toLocalCoords().

107  {
108 
109  const char* nm = path[depth]->GetName();
110  if( (strncmp(nm, "volTPC", 6) == 0) ){
111  this->MakeTPC(path,depth);
112  return;
113  }
114 
115  //explore the next layer down
116  unsigned int deeper = depth+1;
117  if(deeper >= path.size()){
118  throw cet::exception("BadTGeoNode") << "exceeded maximum TGeoNode depth\n";
119  }
120 
121  const TGeoVolume *v = path[depth]->GetVolume();
122  int nd = v->GetNdaughters();
123  for(int i = 0; i < nd; ++i){
124  path[deeper] = v->GetNode(i);
125  this->FindTPC(path, deeper);
126  }
127 
128  }
void FindTPC(std::vector< const TGeoNode * > &path, unsigned int depth)
void MakeTPC(std::vector< const TGeoNode * > &path, int depth)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
geo::TPCID::TPCID_t geo::CryostatGeo::FindTPCAtPosition ( double const  worldLoc[3],
double const  wiggle 
) const

Returns the index of the TPC at specified location.

Parameters
worldLoc3D coordinates of the point (world reference frame)
wigglea small factor (like 1+epsilon) to avoid rounding errors
Returns
the TPC index, or geo::TPCID::InvalidID if no TPC is there
Deprecated:
Use PositionToTPCID() instead

Definition at line 236 of file CryostatGeo.cxx.

References geo::TPCID::InvalidID, geo::vect::makePointFromCoords(), PositionToTPCID(), and geo::TPCID::TPC.

Referenced by GetElementPtr(), evd::SimulationDrawer::MCTruth3D(), and OpDet().

237  {
238  geo::TPCID tpcid
239  = PositionToTPCID(geo::vect::makePointFromCoords(worldLoc), wiggle);
240  return tpcid? tpcid.TPC: geo::TPCID::InvalidID;
241  } // CryostatGeo::FindTPCAtPosition()
The data type to uniquely identify a TPC.
Definition: geo_types.h:195
static const TPCID_t InvalidID
Special code for an invalid ID.
Definition: geo_types.h:200
TPCID_t TPC
Index of the TPC within its cryostat.
Definition: geo_types.h:203
GENVECTOR_CONSTEXPR::geo::Point_t makePointFromCoords(Coords &&coords)
Creates a geo::Point_t from its coordinates (see makeFromCoords()).
geo::TPCID PositionToTPCID(geo::Point_t const &point, double wiggle) const
Returns the ID of the TPC at specified location.
geo::Point_t geo::CryostatGeo::GetCenter ( ) const
inline

Returns the geometrical center of the cryostat.

Definition at line 108 of file CryostatGeo.h.

References Boundaries(), and geo::BoxBoundedGeo::Center().

Referenced by PrintCryostatInfo().

109  { return Boundaries().Center(); }
geo::BoxBoundedGeo const & Boundaries() const
Returns boundaries of the cryostat (in centimetres).
Definition: CryostatGeo.h:99
geo::Point_t Center() const
Returns the center point of the box.
unsigned int geo::CryostatGeo::GetClosestOpDet ( geo::Point_t const &  point) const

Returns the index of the optical detector in this cryostat closest to point.

Definition at line 339 of file CryostatGeo.cxx.

References geo::OpDetGeo::DistanceToPoint(), max, NOpDet(), and OpDet().

Referenced by GetClosestOpDet(), geo::GeometryCore::GetClosestOpDet(), GetClosestOpDetPtr(), and NOpDet().

339  {
340  unsigned int ClosestDet = std::numeric_limits<unsigned int>::max();
341  double ClosestDist = std::numeric_limits<double>::max();
342 
343  for(unsigned int o = 0U; o < NOpDet(); ++o) {
344  double const ThisDist = OpDet(o).DistanceToPoint(point);
345  if(ThisDist < ClosestDist) {
346  ClosestDist = ThisDist;
347  ClosestDet = o;
348  }
349  } // for
350  return ClosestDet;
351  } // CryostatGeo::GetClosestOpDet(geo::Point_t)
Int_t max
Definition: plot.C:27
const OpDetGeo & OpDet(unsigned int iopdet) const
Return the iopdet&#39;th optical detector in the cryostat.
double DistanceToPoint(geo::Point_t const &point) const
Returns the distance of the specified point from detector center [cm].
Definition: OpDetGeo.cxx:97
unsigned int NOpDet() const
Number of optical detectors in this TPC.
Definition: CryostatGeo.h:295
unsigned int geo::CryostatGeo::GetClosestOpDet ( double const *  point) const
See also
GetClosestOpDet(geo::Point_t const&) const

Definition at line 354 of file CryostatGeo.cxx.

References GetClosestOpDet(), and geo::vect::makePointFromCoords().

unsigned int GetClosestOpDet(geo::Point_t const &point) const
GENVECTOR_CONSTEXPR::geo::Point_t makePointFromCoords(Coords &&coords)
Creates a geo::Point_t from its coordinates (see makeFromCoords()).
geo::OpDetGeo const * geo::CryostatGeo::GetClosestOpDetPtr ( geo::Point_t const &  point) const

Returns the optical detector det in this cryostat nearest to point. If there are no optical detectors, nullptr is returned.

Definition at line 331 of file CryostatGeo.cxx.

References GetClosestOpDet(), max, and OpDet().

Referenced by Boundaries(), and NOpDet().

332  {
333  unsigned int iOpDet = GetClosestOpDet(point);
334  return
335  (iOpDet == std::numeric_limits<double>::max())? nullptr: &OpDet(iOpDet);
336  }
unsigned int GetClosestOpDet(geo::Point_t const &point) const
Int_t max
Definition: plot.C:27
const OpDetGeo & OpDet(unsigned int iopdet) const
Return the iopdet&#39;th optical detector in the cryostat.
const TPCGeo& geo::CryostatGeo::GetElement ( TPCID const &  tpcid) const
inline

Alias for TPC().

Definition at line 197 of file CryostatGeo.h.

References TPC().

198  { return TPC(tpcid); }
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc&#39;th TPC in the cryostat.
TPCGeo const* geo::CryostatGeo::GetElementPtr ( TPCID const &  tpcid) const
inline

Alias for TPCPtr().

Definition at line 231 of file CryostatGeo.h.

References FindTPCAtPosition(), PositionToTPC(), PositionToTPCID(), and TPCPtr().

232  { return TPCPtr(tpcid); }
TPCGeo const * TPCPtr(unsigned int itpc) const
Returns the TPC number itpc from this cryostat.
Definition: CryostatGeo.h:217
std::vector< TVector3 > geo::BoxBoundedGeo::GetIntersections ( TVector3 const &  TrajectoryStart,
TVector3 const &  TrajectoryDirect 
) const
inherited

Calculates the entry and exit points of a trajectory on the box surface.

Author
Christoph Rudolf von Rohr (crohr.nosp@m.@fna.nosp@m.l.gov)
Date
July 27th, 2015
Parameters
TrajectoryStartposition of the trajectory source
TrajectoryDirectdirection vector of the trajectory

This member is public since it just gives an output and does not change any member. The algorithm works only for a box shaped active volume with facing walls parallel to axis. If the return std::vector is empty the trajectory does not intersect with the box. Normally the return value should have one (if the trajectory originates in the box) or two (else) entries. If the return value has two entries the first represents the entry point and the second the exit point

Definition at line 118 of file BoxBoundedGeo.cxx.

Referenced by geo::BoxBoundedGeo::ExtendToInclude(), and geo::BoxBoundedGeo::GetIntersections().

119  {
120  std::vector<TVector3> intersections;
121  for (auto const& point: GetIntersections(geo::Point_t(TrajectoryStart), geo::Vector_t(TrajectoryDirect)))
122  intersections.emplace_back(point.X(), point.Y(), point.Z());
123  return intersections;
124  } // GetIntersections(TVector3)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Definition: geo_vectors.h:167
std::vector< TVector3 > GetIntersections(TVector3 const &TrajectoryStart, TVector3 const &TrajectoryDirect) const
Calculates the entry and exit points of a trajectory on the box surface.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:187
std::vector< geo::Point_t > geo::BoxBoundedGeo::GetIntersections ( geo::Point_t const &  TrajectoryStart,
geo::Vector_t const &  TrajectoryDirect 
) const
inherited

Calculates the entry and exit points of a trajectory on the box surface.

Author
Christoph Rudolf von Rohr (crohr.nosp@m.@fna.nosp@m.l.gov)
Date
July 27th, 2015
Parameters
TrajectoryStartposition of the trajectory source
TrajectoryDirectdirection vector of the trajectory

This member is public since it just gives an output and does not change any member. The algorithm works only for a box shaped active volume with facing walls parallel to axis. If the return std::vector is empty the trajectory does not intersect with the box. Normally the return value should have one (if the trajectory originates in the box) or two (else) entries. If the return value has two entries the first represents the entry point and the second the exit point

Definition at line 27 of file BoxBoundedGeo.cxx.

References geo::vect::bindCoord(), geo::BoxBoundedGeo::c_max, geo::BoxBoundedGeo::c_min, geo::vect::coord(), geo::BoxBoundedGeo::GetIntersections(), geo::BoxBoundedGeo::Max(), and geo::BoxBoundedGeo::Min().

30  {
31 
32  std::vector<geo::Point_t> IntersectionPoints;
33  std::vector<double> LineParameters;
34 
35  // Generate normal vectors and offsets for every plane of the box
36  // All normal vectors are headed outwards
37  // BUG the double brace syntax is required to work around clang bug 21629
38  // (https://bugs.llvm.org/show_bug.cgi?id=21629)
39  static std::array<geo::Vector_t, 6U> const NormalVectors = {{
40  -geo::Xaxis<geo::Vector_t>(), geo::Xaxis<geo::Vector_t>(), // anode, cathode,
41  -geo::Yaxis<geo::Vector_t>(), geo::Yaxis<geo::Vector_t>(), // bottom, top,
42  -geo::Zaxis<geo::Vector_t>(), geo::Zaxis<geo::Vector_t>() // upstream, downstream
43  }};
44  // BUG the double brace syntax is required to work around clang bug 21629
45  // (https://bugs.llvm.org/show_bug.cgi?id=21629)
46  std::array<geo::Point_t, 6U> const NormalVectorOffsets = {{
47  geo::Point_t{ Min().X(), Min().Y(), Min().Z() }, // Anode offset
48  geo::Point_t{ Max().X(), Min().Y(), Min().Z() }, // Cathode
49  geo::Point_t{ Min().X(), Min().Y(), Min().Z() }, // Bottom
50  geo::Point_t{ Min().X(), Max().Y(), Min().Z() }, // Top
51  geo::Point_t{ Min().X(), Min().Y(), Min().Z() }, // upstream
52  geo::Point_t{ Min().X(), Min().Y(), Max().Z() } // downstream
53  }};
54 
55  // Loop over all surfaces of the box
56  for(unsigned int face_no = 0; face_no < NormalVectors.size(); face_no++)
57  {
58  // Check if trajectory and surface are not parallel
59  if(NormalVectors[face_no].Dot(TrajectoryDirect))
60  {
61  // Calculate the line parameter for the intersection points
62  LineParameters.push_back( NormalVectors[face_no].Dot(NormalVectorOffsets.at(face_no) - TrajectoryStart)
63  / NormalVectors[face_no].Dot(TrajectoryDirect) );
64  }
65  else continue;
66 
67  // Calculate intersection point using the line parameter
68  IntersectionPoints.push_back( TrajectoryStart + LineParameters.back()*TrajectoryDirect );
69 
70  // Coordinate which should be ignored when checking for limits added by Christoph Rudolf von Rohr 05/21/2016
71  unsigned int NoCheckCoord;
72 
73  // Calculate NoCheckCoord out of the face_no
74  if(face_no % 2)
75  {
76  // Convert odd face number to coordinate
77  NoCheckCoord = (face_no - 1)/2;
78  }
79  else
80  {
81  // Convert even face number to coordinate
82  NoCheckCoord = face_no/2;
83  }
84 
85  // Loop over all three space coordinates
86  unsigned int coord = 0;
87  for(auto extractCoord: geo::vect::coordReaders<geo::Point_t>())
88  {
89  auto const lastPointCoord = geo::vect::bindCoord(IntersectionPoints.back(), extractCoord);
90  auto const minCoord = geo::vect::bindCoord(c_min, extractCoord);
91  auto const maxCoord = geo::vect::bindCoord(c_max, extractCoord);
92 
93  // Changed by Christoph Rudolf von Rohr 05/21/2016
94  // Then check if point is not within the surface limits at this coordinate, without looking
95  // at the plane normal vector coordinate. We can assume, that our algorithm already found this coordinate correctily.
96  // In rare cases, looking for boundaries in this coordinate causes unexpected behavior due to floating point inaccuracies.
97  if( coord++ != NoCheckCoord && ((lastPointCoord() > maxCoord()) || (lastPointCoord() < minCoord)) )
98  {
99  // if off limits, get rid of the useless data and break the coordinate loop
100  LineParameters.pop_back();
101  IntersectionPoints.pop_back();
102  break;
103  }
104  }// coordinate loop
105  }// Surcaces loop
106 
107  // sort points according to their parameter value (first is entry, second is exit)
108  if(LineParameters.size() == 2 && LineParameters.front() > LineParameters.back())
109  {
110  std::swap(IntersectionPoints.front(),IntersectionPoints.back());
111  }
112 
113  return IntersectionPoints;
114  } // GetIntersections()
auto coord(Vector &v, unsigned int n) noexcept
Returns an object to manage the coordinate n of a vector.
constexpr auto bindCoord(Vector const &v, CoordReader_t< Vector > helper)
Binds the specified constant vector to the coordinate reader.
geo::Point_t Min() const
Returns the corner point with the smallest coordinates.
Coords_t c_max
maximum coordinates (x, y, z)
void swap(art::HLTGlobalStatus &lhs, art::HLTGlobalStatus &rhs)
Coords_t c_min
minimum coordinates (x, y, z)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:187
geo::Point_t Max() const
Returns the corner point with the largest coordinates.
double geo::CryostatGeo::HalfHeight ( ) const

Half height of the cryostat [cm].

Definition at line 305 of file CryostatGeo.cxx.

References fVolume.

Referenced by geo::GeometryCore::CryostatHalfHeight(), Height(), and InitCryoBoundaries().

306  {
307  return static_cast<TGeoBBox const*>(fVolume->GetShape())->GetDY();
308  }
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
double geo::CryostatGeo::HalfLength ( ) const

Half height of the cryostat [cm].

Definition at line 311 of file CryostatGeo.cxx.

References fVolume.

Referenced by InitCryoBoundaries(), and Length().

312  {
313  return static_cast<TGeoBBox const*>(fVolume->GetShape())->GetDZ();
314  }
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
double geo::BoxBoundedGeo::HalfSizeX ( ) const
inlineinherited

Returns the size from the center to the border on X dimension.

Definition at line 102 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::SizeX().

102 { return SizeX() / 2.0; }
double SizeX() const
Returns the full size in the X dimension.
Definition: BoxBoundedGeo.h:99
double geo::BoxBoundedGeo::HalfSizeY ( ) const
inlineinherited

Returns the size from the center to the border on Y dimension.

Definition at line 117 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::SizeY().

117 { return SizeY() / 2.0; }
double SizeY() const
Returns the full size in the Y dimension.
double geo::BoxBoundedGeo::HalfSizeZ ( ) const
inlineinherited

Returns the size from the center to the border on Z dimension.

Definition at line 132 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::SizeZ().

132 { return SizeZ() / 2.0; }
double SizeZ() const
Returns the full size in the Z dimension.
double geo::CryostatGeo::HalfWidth ( ) const

Half width of the cryostat [cm].

Definition at line 299 of file CryostatGeo.cxx.

References fVolume.

Referenced by geo::GeometryCore::CryostatHalfWidth(), InitCryoBoundaries(), and Width().

300  {
301  return static_cast<TGeoBBox const*>(fVolume->GetShape())->GetDX();
302  }
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
bool geo::CryostatGeo::HasElement ( unsigned int  itpc) const
inline

Alias for HasTPC().

Definition at line 167 of file CryostatGeo.h.

References HasTPC().

167 { return HasTPC(itpc); }
bool HasTPC(unsigned int itpc) const
Returns whether a TPC with index itpc is present in this cryostat.
Definition: CryostatGeo.h:164
bool geo::CryostatGeo::HasElement ( geo::TPCID const &  tpcid) const
inline

Alias for HasTPC(geo::TPCID const&)

Definition at line 179 of file CryostatGeo.h.

References HasTPC(), and TPC().

179 { return HasTPC(tpcid); }
bool HasTPC(unsigned int itpc) const
Returns whether a TPC with index itpc is present in this cryostat.
Definition: CryostatGeo.h:164
bool geo::CryostatGeo::HasTPC ( unsigned int  itpc) const
inline

Returns whether a TPC with index itpc is present in this cryostat.

Parameters
itpcindex of TPC in this cryostat
Returns
whether the TPC with index itpc is present in this cryostat

Definition at line 164 of file CryostatGeo.h.

References NTPC().

Referenced by HasElement(), geo::GeometryCore::HasTPC(), and TPCPtr().

164 { return itpc < NTPC(); }
unsigned int NTPC() const
Number of TPCs in this cryostat.
Definition: CryostatGeo.h:155
bool geo::CryostatGeo::HasTPC ( geo::TPCID const &  tpcid) const
inline

Returns whether the TPC in tpcid is present in this cryostat.

Parameters
tpcidfull TPC ID
Returns
whether the TPC in tpcid is present in this cryostat

The cryostat number in tpcid is ignored, as it is ignored whether tpcid is invalid.

Definition at line 177 of file CryostatGeo.h.

References HasTPC(), and geo::TPCID::TPC.

Referenced by HasTPC().

177 { return HasTPC(tpcid.TPC); }
bool HasTPC(unsigned int itpc) const
Returns whether a TPC with index itpc is present in this cryostat.
Definition: CryostatGeo.h:164
double geo::CryostatGeo::Height ( ) const
inline

Full height of the cryostat [cm].

Definition at line 89 of file CryostatGeo.h.

References HalfHeight().

Referenced by PrintCryostatInfo().

89 { return 2. * HalfHeight(); }
double HalfHeight() const
Half height of the cryostat [cm].
bool geo::BoxBoundedGeo::InFiducialX ( double  x,
double  neg_margin,
double  pos_margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world x coordinate.

Parameters
xthe absolute ("world") coordinate x
neg_marginhow far within the TPC the fiducial region starts
pos_marginhow far before the TPC the fiducial region ends
Returns
whether the specified coordinate is in this TPC fiducial volume

The fiducial volume is defined by the specified margins, that denote how much of the coordinate is not fiducial. For example,

bool bWithin = tpc->InFiducialX(x, 5., 8.);

on a TPC with x from 0 to 100 (cm, presumably) will return true for all x between 5 and 92. If positive margin is not specified, it's assumed to be the same as the negative one. Specifying a negative mergin effectively extends the TPC volume. Note that x is by definition the drift direction, and a reconstructed x typically depends on an assumption respect to the event time.

Definition at line 243 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxX(), and geo::BoxBoundedGeo::MinX().

Referenced by geo::BoxBoundedGeo::InFiducialX().

244  {
245  return CoordinateContained(x, MinX() + neg_margin, MaxX() - pos_margin);
246  }
Float_t x
Definition: compare.C:6
double MinX() const
Returns the world x coordinate of the start of the box.
Definition: BoxBoundedGeo.h:90
double MaxX() const
Returns the world x coordinate of the end of the box.
Definition: BoxBoundedGeo.h:93
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
bool geo::BoxBoundedGeo::InFiducialX ( double  x,
double  margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world x coordinate.

See also
InFiducialX(double, double, double) const

Margins are symmetric.

Definition at line 253 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::InFiducialX().

254  { return InFiducialX(x, margin, margin); }
Float_t x
Definition: compare.C:6
bool InFiducialX(double x, double neg_margin, double pos_margin) const
Returns whether TPC fiducial volume contains world x coordinate.
bool geo::BoxBoundedGeo::InFiducialY ( double  y,
double  neg_margin,
double  pos_margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world y coordinate.

Parameters
ythe absolute ("world") coordinate y
neg_marginhow far within the TPC the fiducial region starts
pos_marginhow far before the TPC the fiducial region ends
Returns
whether the specified coordinate is in this TPC fiducial volume

The fiducial volume is defined by the specified margins, that denote how much of the coordinate is not fiducial. For example,

bool bWithin = tpc->InFiducialY(y, 5., 8.);

on a TPC with y from 0 to 100 (cm, presumably) will return true for all y between 5 and 92. If positive margin is not specified, it's assumed to be the same as the negative one. Specifying a negative mergin effectively extends the TPC volume.

Definition at line 274 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxY(), and geo::BoxBoundedGeo::MinY().

Referenced by geo::BoxBoundedGeo::InFiducialY().

275  {
276  return CoordinateContained(y, MinY() + neg_margin, MaxY() - pos_margin);
277  }
Float_t y
Definition: compare.C:6
double MaxY() const
Returns the world y coordinate of the end of the box.
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
double MinY() const
Returns the world y coordinate of the start of the box.
bool geo::BoxBoundedGeo::InFiducialY ( double  y,
double  margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world y coordinate.

See also
InFiducialY(double, double, double) const

Margins are symmetric.

Definition at line 284 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::InFiducialY().

285  { return InFiducialY(y, margin, margin); }
Float_t y
Definition: compare.C:6
bool InFiducialY(double y, double neg_margin, double pos_margin) const
Returns whether TPC fiducial volume contains world y coordinate.
bool geo::BoxBoundedGeo::InFiducialZ ( double  z,
double  neg_margin,
double  pos_margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world z coordinate.

Parameters
zthe absolute ("world") coordinate y
neg_marginhow far within the TPC the fiducial region starts
pos_marginhow far before the TPC the fiducial region ends
Returns
whether the specified coordinate is in this TPC fiducial volume

The fiducial volume is defined by the specified margins, that denote how much of the coordinate is not fiducial. For example,

bool bWithin = tpc->InFiducialZ(z, 5., 8.);

on a TPC with z from 0 to 100 (cm, presumably) will return true for all z between 5 and 92. If positive margin is not specified, it's assumed to be the same as the negative one. Specifying a negative mergin effectively extends the TPC volume.

Definition at line 305 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), geo::BoxBoundedGeo::MaxZ(), and geo::BoxBoundedGeo::MinZ().

Referenced by geo::BoxBoundedGeo::InFiducialZ().

306  {
307  return CoordinateContained(z, MinZ() + neg_margin, MaxZ() - pos_margin);
308  }
Double_t z
Definition: plot.C:279
double MinZ() const
Returns the world z coordinate of the start of the box.
double MaxZ() const
Returns the world z coordinate of the end of the box.
static bool CoordinateContained(double c, double min, double max, double wiggle=1.)
Returns whether the specified coordinate is in a range.
bool geo::BoxBoundedGeo::InFiducialZ ( double  z,
double  margin 
) const
inlineinherited

Returns whether TPC fiducial volume contains world z coordinate.

See also
InFiducialZ(double, double, double) const

Margins are symmetric.

Definition at line 315 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::CoordinateContained(), and geo::BoxBoundedGeo::InFiducialZ().

316  { return InFiducialZ(z, margin, margin); }
Double_t z
Definition: plot.C:279
bool InFiducialZ(double z, double neg_margin, double pos_margin) const
Returns whether TPC fiducial volume contains world z coordinate.
void geo::CryostatGeo::InitCryoBoundaries ( )
private

Fill the boundary information of the cryostat.

Definition at line 358 of file CryostatGeo.cxx.

References HalfHeight(), HalfLength(), HalfWidth(), geo::BoxBoundedGeo::SetBoundaries(), toWorldCoords(), and Volume().

Referenced by CryostatGeo(), and toLocalCoords().

358  {
359 
360  // check that this is indeed a box
361  if (!dynamic_cast<TGeoBBox*>(Volume()->GetShape())) {
362  // at initialisation time we don't know yet our real ID
363  throw cet::exception("CryostatGeo") << "Cryostat is not a box! (it is a "
364  << Volume()->GetShape()->IsA()->GetName() << ")\n";
365  }
366 
367  // get the half width, height, etc of the cryostat
368  const double halflength = HalfLength();
369  const double halfwidth = HalfWidth();
370  const double halfheight = HalfHeight();
371 
373  toWorldCoords(LocalPoint_t{ -halfwidth, -halfheight, -halflength }),
374  toWorldCoords(LocalPoint_t{ +halfwidth, +halfheight, +halflength })
375  );
376 
377  } // CryostatGeo::InitCryoBoundaries()
double HalfLength() const
Half height of the cryostat [cm].
const TGeoVolume * Volume() const
Pointer to ROOT&#39;s volume descriptor.
Definition: CryostatGeo.h:95
geo::Point3DBase_t< CryostatGeoCoordinatesTag > LocalPoint_t
Type of points in the local GDML cryostat frame.
Definition: CryostatGeo.h:65
double HalfWidth() const
Half width of the cryostat [cm].
double HalfHeight() const
Half height of the cryostat [cm].
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.
geo::Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local cryostat frame to world frame.
Definition: CryostatGeo.h:337
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
double geo::CryostatGeo::Length ( ) const
inline

Length of the cryostat [cm].

Definition at line 91 of file CryostatGeo.h.

References HalfLength().

Referenced by geo::GeometryCore::CryostatLength(), and PrintCryostatInfo().

91 { return 2. * HalfLength(); }
double HalfLength() const
Half height of the cryostat [cm].
void geo::CryostatGeo::LocalToWorld ( const double *  cryo,
double *  world 
) const
inline

Transform point from local cryostat frame to world frame.

Definition at line 321 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::LocalToWorld().

Referenced by geo::sortCryoStandard().

322  { fTrans.LocalToWorld(cryo, world); }
void LocalToWorld(double const *local, double *world) const
Transforms a point from local frame to world frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
template<typename Point >
Point geo::CryostatGeo::LocalToWorld ( Point const &  local) const
inline

Transform point from local cryostat frame to world frame.

Deprecated:
This method breaks the distinction between local and global vectors, since input and output vectors share the same type; use the "official" vector types geo::Point_t, geo::CryostatGeo::LocalPoint_t, geo::Vector_t and geo::CryostatGeo::LocalVector_t, and then use the method geo::CryostatGeo::toWorldCoords() instead.

Definition at line 333 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::LocalToWorld().

334  { return fTrans.LocalToWorld(local); }
void LocalToWorld(double const *local, double *world) const
Transforms a point from local frame to world frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
void geo::CryostatGeo::LocalToWorldVect ( const double *  cryo,
double *  world 
) const
inline

Transform direction vector from local to world.

Definition at line 341 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::LocalToWorldVect().

342  { fTrans.LocalToWorldVect(cryo, world); }
void LocalToWorldVect(double const *local, double *world) const
Transforms a vector from local frame to world frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
void geo::CryostatGeo::MakeOpDet ( std::vector< const TGeoNode * > &  path,
int  depth 
)
private

Definition at line 214 of file CryostatGeo.cxx.

References fOpDets.

Referenced by FindOpDet(), and toLocalCoords().

215  {
216  fOpDets.emplace_back(path, depth);
217  }
std::vector< OpDetGeo > fOpDets
List of opdets in this cryostat.
Definition: CryostatGeo.h:410
void geo::CryostatGeo::MakeTPC ( std::vector< const TGeoNode * > &  path,
int  depth 
)
private

Definition at line 131 of file CryostatGeo.cxx.

References fTPCs.

Referenced by FindTPC(), and toLocalCoords().

132  {
133  fTPCs.emplace_back(path, depth);
134  }
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
double geo::CryostatGeo::Mass ( ) const
inline

Mass of the cryostat.

Definition at line 93 of file CryostatGeo.h.

References fVolume.

93 { return fVolume->Weight(); }
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
geo::Point_t geo::BoxBoundedGeo::Max ( ) const
inlineinherited

Returns the corner point with the largest coordinates.

Definition at line 138 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_max.

Referenced by geo::BoxBoundedGeo::ExtendToInclude(), geo::BoxBoundedGeo::GetIntersections(), geo::GeometryCore::MaterialName(), PrintCryostatInfo(), and geo::TPCGeo::PrintTPCInfo().

138 { return c_max; }
Coords_t c_max
maximum coordinates (x, y, z)
unsigned int geo::CryostatGeo::MaxPlanes ( ) const

Returns the largest number of planes among the TPCs in this cryostat.

Definition at line 279 of file CryostatGeo.cxx.

References fTPCs, geo::TPCGeo::Nplanes(), and TPC().

Referenced by ems::MultiEMShowers::convCluster(), ems::EMShower3D::LinkCandidates(), PositionToTPC(), and PrintCryostatInfo().

279  {
280  unsigned int maxPlanes = 0;
281  for (geo::TPCGeo const& TPC: fTPCs) {
282  unsigned int maxPlanesInTPC = TPC.Nplanes();
283  if (maxPlanesInTPC > maxPlanes) maxPlanes = maxPlanesInTPC;
284  } // for
285  return maxPlanes;
286  } // CryostatGeo::MaxPlanes()
unsigned int Nplanes() const
Number of planes in this tpc.
Definition: TPCGeo.h:145
Geometry information for a single TPC.
Definition: TPCGeo.h:37
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc&#39;th TPC in the cryostat.
unsigned int geo::CryostatGeo::MaxWires ( ) const

Returns the largest number of wires among the TPCs in this cryostat.

Definition at line 289 of file CryostatGeo.cxx.

References fTPCs, geo::TPCGeo::MaxWires(), and TPC().

Referenced by PositionToTPC(), and PrintCryostatInfo().

289  {
290  unsigned int maxWires = 0;
291  for (geo::TPCGeo const& TPC: fTPCs) {
292  unsigned int maxWiresInTPC = TPC.MaxWires();
293  if (maxWiresInTPC > maxWires) maxWires = maxWiresInTPC;
294  } // for
295  return maxWires;
296  } // CryostatGeo::MaxWires()
Geometry information for a single TPC.
Definition: TPCGeo.h:37
unsigned int MaxWires() const
Returns the largest number of wires among the planes in this TPC.
Definition: TPCGeo.cxx:332
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc&#39;th TPC in the cryostat.
geo::Point_t geo::BoxBoundedGeo::Min ( ) const
inlineinherited

Returns the corner point with the smallest coordinates.

Definition at line 135 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_min.

Referenced by geo::BoxBoundedGeo::ExtendToInclude(), geo::BoxBoundedGeo::GetIntersections(), geo::GeometryCore::MaterialName(), PrintCryostatInfo(), and geo::TPCGeo::PrintTPCInfo().

135 { return c_min; }
Coords_t c_min
minimum coordinates (x, y, z)
unsigned int geo::CryostatGeo::NElements ( ) const
inline

Alias for NTPC().

Definition at line 157 of file CryostatGeo.h.

References fTPCs.

Referenced by geo::GeometryCore::NTPC().

157 { return fTPCs.size(); }
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
unsigned int geo::CryostatGeo::NOpDet ( ) const
inline

Number of optical detectors in this TPC.

Definition at line 295 of file CryostatGeo.h.

References fOpDets, GetClosestOpDet(), GetClosestOpDetPtr(), and OpDet().

Referenced by GetClosestOpDet(), geo::GeometryCore::NOpDets(), geo::GeometryCore::OpDetFromCryo(), geo::GeometryCore::OpDetGeoFromOpDet(), and PrintCryostatInfo().

295 { return fOpDets.size(); }
std::vector< OpDetGeo > fOpDets
List of opdets in this cryostat.
Definition: CryostatGeo.h:410
const OpDetGeo & geo::CryostatGeo::OpDet ( unsigned int  iopdet) const

Return the iopdet'th optical detector in the cryostat.

Definition at line 220 of file CryostatGeo.cxx.

References FindTPCAtPosition(), and fOpDets.

Referenced by cosmic::BeamFlashTrackMatchTaggerAlg::FillFlashProperties(), opdet::FlashHypothesisAnaAlg::FillOpDetPositions(), GetClosestOpDet(), GetClosestOpDetPtr(), NOpDet(), and geo::GeometryCore::OpDetGeoFromOpDet().

221  {
222  if(iopdet >= fOpDets.size()){
223  throw cet::exception("OpDetOutOfRange") << "Request for non-existant OpDet "
224  << iopdet;
225  }
226 
227  return fOpDets[iopdet];
228  }
std::vector< OpDetGeo > fOpDets
List of opdets in this cryostat.
Definition: CryostatGeo.h:410
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::string geo::CryostatGeo::OpDetGeoName ( ) const
inline

Get name of opdet geometry element.

Definition at line 311 of file CryostatGeo.h.

References fOpDetGeoName.

Referenced by FindOpDet(), and geo::GeometryCore::OpDetGeoName().

311 { return fOpDetGeoName; }
std::string fOpDetGeoName
Name of opdet geometry elements in gdml.
Definition: CryostatGeo.h:412
TPCGeo const & geo::CryostatGeo::PositionToTPC ( geo::Point_t const &  point,
double  wiggle 
) const

Returns the ID of the TPC at specified location.

Parameters
pointthe location (world reference frame)
wigglea small factor (like 1+epsilon) to avoid rounding errors
Returns
the ID of the TPC at the specified point (invalid ID if none)

Definition at line 257 of file CryostatGeo.cxx.

References ID(), and PositionToTPCptr().

Referenced by GetElementPtr(), PositionToTPC(), and PositionToTPCID().

258  {
259  geo::TPCGeo const* tpc = PositionToTPCptr(point, wiggle);
260  if (!tpc) {
261  throw cet::exception("CryostatGeo")
262  << "Can't find any TPC for position " << point << " within " << ID()
263  << "\n";
264  }
265  return *tpc;
266  }
Geometry information for a single TPC.
Definition: TPCGeo.h:37
geo::TPCGeo const * PositionToTPCptr(geo::Point_t const &point, double wiggle) const
Returns a pointer to the TPC at specified location.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
geo::CryostatID const & ID() const
Returns the identifier of this cryostat.
Definition: CryostatGeo.h:116
TPCGeo const& geo::CryostatGeo::PositionToTPC ( double const  worldLoc[3],
double  wiggle 
) const
inline

Returns the ID of the TPC at specified location.

Parameters
worldLoc3D coordinates of the point (world reference frame)
wigglea small factor (like 1+epsilon) to avoid rounding errors
Returns
the ID of the TPC at the specified point (invalid ID if none)

Definition at line 268 of file CryostatGeo.h.

References geo::vect::makePointFromCoords(), MaxPlanes(), MaxWires(), PositionToTPC(), and PositionToTPCptr().

269  { return PositionToTPC(geo::vect::makePointFromCoords(worldLoc), wiggle); }
TPCGeo const & PositionToTPC(geo::Point_t const &point, double wiggle) const
Returns the ID of the TPC at specified location.
GENVECTOR_CONSTEXPR::geo::Point_t makePointFromCoords(Coords &&coords)
Creates a geo::Point_t from its coordinates (see makeFromCoords()).
geo::TPCID geo::CryostatGeo::PositionToTPCID ( geo::Point_t const &  point,
double  wiggle 
) const

Returns the ID of the TPC at specified location.

Parameters
point3D coordinates of the point (world reference frame)
wigglea small factor (like 1+epsilon) to avoid rounding errors
Returns
the ID of the TPC at the specified point (invalid ID if none)

Definition at line 247 of file CryostatGeo.cxx.

References geo::TPCGeo::ID(), PositionToTPC(), and PositionToTPCptr().

Referenced by FindTPCAtPosition(), geo::GeometryCore::FindTPCAtPosition(), and GetElementPtr().

248  {
249  geo::TPCGeo const* tpc = PositionToTPCptr(point, wiggle);
250  return tpc? tpc->ID(): geo::TPCID{};
251  }
geo::TPCID const & ID() const
Returns the identifier of this TPC.
Definition: TPCGeo.h:278
Geometry information for a single TPC.
Definition: TPCGeo.h:37
geo::TPCGeo const * PositionToTPCptr(geo::Point_t const &point, double wiggle) const
Returns a pointer to the TPC at specified location.
The data type to uniquely identify a TPC.
Definition: geo_types.h:195
geo::TPCGeo const * geo::CryostatGeo::PositionToTPCptr ( geo::Point_t const &  point,
double  wiggle 
) const

Returns a pointer to the TPC at specified location.

Parameters
pointposition in space [cm]
wigglea small factor (like 1+ε) to avoid rounding errors
Returns
a pointer to the geo::TPCGeo at point (nullptr if none)

Definition at line 270 of file CryostatGeo.cxx.

References TPCs().

Referenced by PositionToTPC(), PositionToTPCID(), and geo::GeometryCore::PositionToTPCptr().

271  {
272  for (auto const& tpc: TPCs())
273  if (tpc.ContainsPosition(point, wiggle)) return &tpc;
274  return nullptr;
275  } // CryostatGeo::PositionToTPCptr()
auto const & TPCs() const
Returns a container with references to all TPCs.
Definition: CryostatGeo.h:210
template<typename Stream >
void geo::CryostatGeo::PrintCryostatInfo ( Stream &&  out,
std::string  indent = "",
unsigned int  verbosity = 1 
) const

Prints information about this cryostat.

Template Parameters
Streamtype of output stream to use
Parameters
outstream to send the information to
indentprepend each line with this string
verbosityamount of information printed

Note that the first line out the output is not indented.

Verbosity levels

  • 0: only cryostat ID
  • 1 _(default)_: also center and size
  • 2: also number of TPCs, optical detectors, and maximum wires per plane
  • and of planes for TPC
  • 3: also information on bounding box

The constant MaxVerbosity is set to the highest supported verbosity level.

Definition at line 423 of file CryostatGeo.h.

References BoundingBox(), GetCenter(), Height(), ID(), Length(), geo::BoxBoundedGeo::Max(), MaxPlanes(), MaxWires(), geo::BoxBoundedGeo::Min(), NOpDet(), NTPC(), and Width().

Referenced by ID().

427  {
428 
429  //----------------------------------------------------------------------------
430  out << "Cryostat " << std::string(ID());
431 
432  if (verbosity-- <= 0) return; // 0
433 
434  //----------------------------------------------------------------------------
435  out
436  << " (" << Width() << " x " << Height() << " x " << Length() << ") cm^3 at "
437  << GetCenter();
438 
439  if (verbosity-- <= 0) return; // 1
440 
441  //----------------------------------------------------------------------------
442 
443  out << "\n" << indent
444  << "hosts " << NTPC() << " TPCs (largest number of planes: " << MaxPlanes()
445  << ", of wires: " << MaxWires() << ") and "
446  << NOpDet() << " optical detectors"
447  ;
448 
449  if (verbosity-- <= 0) return; // 2
450 
451  //----------------------------------------------------------------------------
452  // print also the containing box
453  geo::BoxBoundedGeo const& box = BoundingBox();
454  out << "\n" << indent
455  << "bounding box: " << box.Min() << " -- " << box.Max();
456 
457 // if (verbosity-- <= 0) return; // 3
458 
459  //----------------------------------------------------------------------------
460 } // geo::CryostatGeo::PrintCryostatInfo()
geo::Point_t GetCenter() const
Returns the geometrical center of the cryostat.
Definition: CryostatGeo.h:108
unsigned int MaxPlanes() const
Returns the largest number of planes among the TPCs in this cryostat.
geo::BoxBoundedGeo const & BoundingBox() const
Returns the bounding box of this cryostat.
Definition: CryostatGeo.h:112
double Height() const
Full height of the cryostat [cm].
Definition: CryostatGeo.h:89
std::string indent(std::size_t const i)
double Width() const
Full width of the cryostat [cm].
Definition: CryostatGeo.h:87
unsigned int NTPC() const
Number of TPCs in this cryostat.
Definition: CryostatGeo.h:155
geo::Point_t Min() const
Returns the corner point with the smallest coordinates.
unsigned int MaxWires() const
Returns the largest number of wires among the TPCs in this cryostat.
A base class aware of world box coordinatesAn object describing a simple shape can inherit from this ...
Definition: BoxBoundedGeo.h:35
unsigned int NOpDet() const
Number of optical detectors in this TPC.
Definition: CryostatGeo.h:295
geo::Point_t Max() const
Returns the corner point with the largest coordinates.
double Length() const
Length of the cryostat [cm].
Definition: CryostatGeo.h:91
geo::CryostatID const & ID() const
Returns the identifier of this cryostat.
Definition: CryostatGeo.h:116
static void geo::BoxBoundedGeo::set_max ( Coord_t var,
Coord_t  value 
)
inlinestaticinherited

Sets var to value if value is larger than the current var value.

Definition at line 446 of file BoxBoundedGeo.h.

References fhicl::detail::atom::value().

Referenced by geo::BoxBoundedGeo::ExtendToInclude().

447  { if (value > var) var = value; }
std::string value(boost::any const &)
static void geo::BoxBoundedGeo::set_max ( Coords_t var,
geo::Point_t const &  value 
)
inlinestaticinherited

Sets each coordinate of var to the one in value if the latter is larger.

Definition at line 458 of file BoxBoundedGeo.h.

459  {
460  if (value.X() > var.X()) var.SetX(value.X());
461  if (value.Y() > var.Y()) var.SetY(value.Y());
462  if (value.Z() > var.Z()) var.SetZ(value.Z());
463  }
std::string value(boost::any const &)
static void geo::BoxBoundedGeo::set_min ( Coord_t var,
Coord_t  value 
)
inlinestaticinherited

Sets var to value if value is smaller than the current var value.

Definition at line 442 of file BoxBoundedGeo.h.

References fhicl::detail::atom::value().

Referenced by geo::BoxBoundedGeo::ExtendToInclude().

443  { if (value < var) var = value; }
std::string value(boost::any const &)
static void geo::BoxBoundedGeo::set_min ( Coords_t var,
geo::Point_t const &  value 
)
inlinestaticinherited

Sets each coordinate of var to the one in value if the latter is smaller.

Definition at line 450 of file BoxBoundedGeo.h.

451  {
452  if (value.X() < var.X()) var.SetX(value.X());
453  if (value.Y() < var.Y()) var.SetY(value.Y());
454  if (value.Z() < var.Z()) var.SetZ(value.Z());
455  }
std::string value(boost::any const &)
void geo::BoxBoundedGeo::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 
)
inlineinherited

Sets the boundaries in world coordinates as specified.

Parameters
x_minlower x coordinate
x_maxupper x coordinate
y_minlower y coordinate
y_maxupper y coordinate
z_minlower z coordinate
z_maxupper z coordinate

Definition at line 367 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_max, geo::BoxBoundedGeo::c_min, and geo::BoxBoundedGeo::SortCoordinates().

Referenced by geo::PlaneGeo::BoundingBox(), InitCryoBoundaries(), and geo::TPCGeo::InitTPCBoundaries().

372  {
373  c_min.SetXYZ(x_min, y_min, z_min);
374  c_max.SetXYZ(x_max, y_max, z_max);
375  SortCoordinates();
376  }
double x_min
Definition: berger.C:15
Coords_t c_max
maximum coordinates (x, y, z)
double x_max
Definition: berger.C:16
Coords_t c_min
minimum coordinates (x, y, z)
void SortCoordinates()
Makes sure each coordinate of the minimum point is smaller than maximum.
void geo::BoxBoundedGeo::SetBoundaries ( Coords_t  lower,
Coords_t  upper 
)
inlineinherited

Sets the boundaries in world coordinates as specified.

Parameters
lowerlower coordinates (x, y, z)
upperupper coordinates (x, y, z)

Definition at line 383 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::c_max, geo::BoxBoundedGeo::c_min, and geo::BoxBoundedGeo::SortCoordinates().

384  { c_min = lower; c_max = upper; SortCoordinates(); }
Coords_t c_max
maximum coordinates (x, y, z)
Coords_t c_min
minimum coordinates (x, y, z)
void SortCoordinates()
Makes sure each coordinate of the minimum point is smaller than maximum.
double geo::BoxBoundedGeo::SizeX ( ) const
inlineinherited

Returns the full size in the X dimension.

Definition at line 99 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxX(), and geo::BoxBoundedGeo::MinX().

Referenced by geo::BoxBoundedGeo::HalfSizeX().

99 { return MaxX() - MinX(); }
double MinX() const
Returns the world x coordinate of the start of the box.
Definition: BoxBoundedGeo.h:90
double MaxX() const
Returns the world x coordinate of the end of the box.
Definition: BoxBoundedGeo.h:93
double geo::BoxBoundedGeo::SizeY ( ) const
inlineinherited

Returns the full size in the Y dimension.

Definition at line 114 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxY(), and geo::BoxBoundedGeo::MinY().

Referenced by geo::BoxBoundedGeo::HalfSizeY().

114 { return MaxY() - MinY(); }
double MaxY() const
Returns the world y coordinate of the end of the box.
double MinY() const
Returns the world y coordinate of the start of the box.
double geo::BoxBoundedGeo::SizeZ ( ) const
inlineinherited

Returns the full size in the Z dimension.

Definition at line 129 of file BoxBoundedGeo.h.

References geo::BoxBoundedGeo::MaxZ(), and geo::BoxBoundedGeo::MinZ().

Referenced by geo::BoxBoundedGeo::HalfSizeZ().

129 { return MaxZ() - MinZ(); }
double MinZ() const
Returns the world z coordinate of the start of the box.
double MaxZ() const
Returns the world z coordinate of the end of the box.
void geo::CryostatGeo::SortSubVolumes ( geo::GeoObjectSorter const &  sorter)

Method to sort TPCGeo objects.

Definition at line 139 of file CryostatGeo.cxx.

References fTPCs, util::SortByPointers(), geo::TPCGeo::SortSubVolumes(), geo::GeoObjectSorter::SortTPCs(), and TPC().

Referenced by toLocalCoords().

140  {
141  //
142  // TPCs
143  //
145  (fTPCs, [&sorter](auto& coll){ sorter.SortTPCs(coll); });
146 
147  for (geo::TPCGeo& TPC: fTPCs) {
148  TPC.SortSubVolumes(sorter);
149  } // for TPCs
150 
151  //
152  // optical detectors
153  //
154 
155  // sorting of optical detectors happens elsewhere
156 
157  } // CryostatGeo::SortSubVolumes()
Geometry information for a single TPC.
Definition: TPCGeo.h:37
void SortSubVolumes(geo::GeoObjectSorter const &sorter)
Apply sorting to the PlaneGeo objects.
Definition: TPCGeo.cxx:225
void SortByPointers(Coll &coll, Sorter sorter)
Applies sorting indirectly, minimizing data copy.
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc&#39;th TPC in the cryostat.
LocalPoint_t geo::CryostatGeo::toLocalCoords ( geo::Point_t const &  world) const
inline

Transform point from world frame to local cryostat frame.

Definition at line 365 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toLocalCoords().

366  { return fTrans.toLocalCoords(world); }
LocalPoint_t toLocalCoords(GlobalPoint_t const &world) const
Transforms a point from world frame to local frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
LocalVector_t geo::CryostatGeo::toLocalCoords ( geo::Vector_t const &  world) const
inline

Transform direction vector from world to local.

Definition at line 373 of file CryostatGeo.h.

References FindOpDet(), FindTPC(), fTrans, InitCryoBoundaries(), MakeOpDet(), MakeTPC(), SortSubVolumes(), geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toLocalCoords(), and UpdateAfterSorting().

374  { return fTrans.toLocalCoords(world); }
LocalPoint_t toLocalCoords(GlobalPoint_t const &world) const
Transforms a point from world frame to local frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
geo::Point_t geo::CryostatGeo::toWorldCoords ( LocalPoint_t const &  local) const
inline

Transform point from local cryostat frame to world frame.

Definition at line 337 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toWorldCoords().

Referenced by InitCryoBoundaries().

338  { return fTrans.toWorldCoords(local); }
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
GlobalPoint_t toWorldCoords(LocalPoint_t const &local) const
Transforms a point from local frame to world frame.
geo::Vector_t geo::CryostatGeo::toWorldCoords ( LocalVector_t const &  local) const
inline

Transform direction vector from local to world.

Definition at line 345 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toWorldCoords().

346  { return fTrans.toWorldCoords(local); }
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
GlobalPoint_t toWorldCoords(LocalPoint_t const &local) const
Transforms a point from local frame to world frame.
const TPCGeo & geo::CryostatGeo::TPC ( unsigned int  itpc) const

Return the itpc'th TPC in the cryostat.

Exceptions
cet::exception(category "TPCOutOfRange") if no such TPC

Definition at line 174 of file CryostatGeo.cxx.

References TPCPtr().

Referenced by geo::buildDriftVolumes(), pma::ProjectionMatchingAlg::buildShowerSeg(), lar_pandora::LArPandoraOutput::CalculateT0(), util::DetectorPropertiesServiceArgoNeuT::CalculateXTicksParams(), detinfo::DetectorPropertiesStandard::CalculateXTicksParams(), lar_pandora::LArPandoraInput::CreatePandoraHits2D(), lar_pandora::LArPandoraInput::CreatePandoraReadoutGaps(), evd_tool::ICARUSDrawer::DetOutline3D(), hit::DisambigCheater::DisambigCheater(), evd::RecoBaseDrawer::DrawTrack2D(), cluster::EndPointAlg::EndPoint(), cluster::HoughBaseAlg::FastTransform(), trkf::SpacePointAlg::fillComplexSpacePoint(), vertex::FeatureVertexFinder::Find2dClusterVertexCandidates(), corner::CornerFinderAlg::get_feature_points_fast(), GetElement(), trkf::BezierTrack::GetProjectedPointUVWT(), trkf::BezierTrack::GetProjectedPointUVWX(), trkf::BezierTrack::GetTrackPitch(), lar_pandora::LArPandoraInput::GetTrueX0(), lar_pandora::PFParticleHitDumper::GetUVW(), groupTPCsByDriftDir(), HasElement(), cluster::fuzzyClusterAlg::InitFuzzy(), geo::ChannelMapStandardAlg::Initialize(), trkf::SpacePointAlg::makeSpacePoints(), MaxPlanes(), MaxWires(), cluster::ClusterCheater::produce(), vertex::HarrisVertexFinder::produce(), vertex::FeatureVertexFinder::produce(), evd::SimulationDrawer::SimulationDrawer(), SortSubVolumes(), apa::APAGeometryAlg::ThreeChanPos(), TPC(), geo::GeometryCore::TPC(), cluster::HoughBaseAlg::Transform(), apa::DisambigAlg::TrivialDisambig(), DUNE::NeutrinoTrackingEff::truthLength(), trkf::SpacePointAlg::update(), apa::DisambigAlg::UseEndPts(), and trkf::VertexFitAlg::VertexFit().

175  {
176  TPCGeo const* pTPC = TPCPtr(itpc);
177  if(!pTPC){
178  throw cet::exception("TPCOutOfRange") << "Request for non-existant TPC "
179  << itpc << "\n";
180  }
181 
182  return *pTPC;
183  }
TPCGeo const * TPCPtr(unsigned int itpc) const
Returns the TPC number itpc from this cryostat.
Definition: CryostatGeo.h:217
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
const TPCGeo& geo::CryostatGeo::TPC ( TPCID const &  tpcid) const
inline

Returns the TPC in tpcid from this cryostat.

Parameters
tpcidfull TPC ID
Returns
a constant reference to the TPC in tpcid
Exceptions
cet::exception(category "TPCOutOfRange") if no such TPC

The cryostat number in tpcid is ignored, as it is ignored whether tpcid is invalid.

Definition at line 194 of file CryostatGeo.h.

References TPC(), and geo::TPCID::TPC.

195  { return TPC(tpcid.TPC); }
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc&#39;th TPC in the cryostat.
TPCGeo const* geo::CryostatGeo::TPCPtr ( unsigned int  itpc) const
inline

Returns the TPC number itpc from this cryostat.

Parameters
itpcthe number of local TPC
Returns
a constant pointer to the TPC, or nullptr if it does not exist

Definition at line 217 of file CryostatGeo.h.

References fTPCs, and HasTPC().

Referenced by GetElementPtr(), TPC(), TPCPtr(), and geo::GeometryCore::TPCPtr().

218  { return HasTPC(itpc)? &(fTPCs[itpc]): nullptr; }
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
bool HasTPC(unsigned int itpc) const
Returns whether a TPC with index itpc is present in this cryostat.
Definition: CryostatGeo.h:164
TPCGeo const* geo::CryostatGeo::TPCPtr ( TPCID const &  tpcid) const
inline

Returns the TPC in tpcid from this cryostat.

Parameters
tpcidfull TPC ID
Returns
a constant pointer to the TPC, or nullptr if it does not exist

The cryostat number in tpcid is ignored, as it is ignored whether tpcid is invalid.

Definition at line 228 of file CryostatGeo.h.

References geo::TPCID::TPC, and TPCPtr().

229  { return TPCPtr(tpcid.TPC); }
TPCGeo const * TPCPtr(unsigned int itpc) const
Returns the TPC number itpc from this cryostat.
Definition: CryostatGeo.h:217
auto const& geo::CryostatGeo::TPCs ( ) const
inline

Returns a container with references to all TPCs.

Returns
a container with references to all TPCs

The returned value can be used in a range-for loop like:

for (geo::TPCGeo const& tpc: cryo.TPCs()) { ... }

Definition at line 210 of file CryostatGeo.h.

References fTPCs.

Referenced by PositionToTPCptr().

210 { return fTPCs; }
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
void geo::CryostatGeo::UpdateAfterSorting ( geo::CryostatID  cryoid)

Performs all needed updates after geometry has sorted the cryostats.

Definition at line 161 of file CryostatGeo.cxx.

References fID, fTPCs, and NTPC().

Referenced by toLocalCoords().

161  {
162 
163  // update the cryostat ID
164  fID = cryoid;
165 
166  // trigger all the TPCs to update as well
167  for (unsigned int tpc = 0; tpc < NTPC(); ++tpc)
169 
170  } // CryostatGeo::UpdateAfterSorting()
unsigned int NTPC() const
Number of TPCs in this cryostat.
Definition: CryostatGeo.h:155
geo::CryostatID fID
ID of this cryostat.
Definition: CryostatGeo.h:413
The data type to uniquely identify a TPC.
Definition: geo_types.h:195
void UpdateAfterSorting(geo::CryostatID cryoid)
Performs all needed updates after geometry has sorted the cryostats.
TPCList_t fTPCs
List of tpcs in this cryostat.
Definition: CryostatGeo.h:409
const TGeoVolume* geo::CryostatGeo::Volume ( ) const
inline

Pointer to ROOT's volume descriptor.

Definition at line 95 of file CryostatGeo.h.

References fVolume.

Referenced by InitCryoBoundaries().

95 { return fVolume; }
TGeoVolume * fVolume
Total volume of cryostat, called volCryostat in GDML file.
Definition: CryostatGeo.h:411
double geo::CryostatGeo::Width ( ) const
inline

Full width of the cryostat [cm].

Definition at line 87 of file CryostatGeo.h.

References HalfWidth().

Referenced by PrintCryostatInfo().

87 { return 2. * HalfWidth(); }
double HalfWidth() const
Half width of the cryostat [cm].
void geo::CryostatGeo::WorldToLocal ( const double *  world,
double *  cryo 
) const
inline

Transform point from world frame to local cryostat frame.

Definition at line 349 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::WorldToLocal().

350  { fTrans.WorldToLocal(world, cryo); }
void WorldToLocal(double const *world, double *local) const
Transforms a point from world frame to local frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
template<typename Point >
Point geo::CryostatGeo::WorldToLocal ( Point const &  world) const
inline

Transform point from world frame to local cryostat frame.

Deprecated:
This method breaks the distinction between local and global vectors, since input and output vectors share the same type; use the "official" vector types geo::Point_t, geo::CryostatGeo::LocalPoint_t, geo::Vector_t and geo::CryostatGeo::LocalVector_t, and then use the method geo::CryostatGeo::toLocalCoords() instead.

Definition at line 361 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::WorldToLocal().

362  { return fTrans.WorldToLocal(world); }
void WorldToLocal(double const *world, double *local) const
Transforms a point from world frame to local frame.
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
void geo::CryostatGeo::WorldToLocalVect ( const double *  world,
double *  cryo 
) const
inline

Transform direction vector from world to local.

Definition at line 369 of file CryostatGeo.h.

References fTrans, and geo::LocalTransformation< StoredMatrix >::WorldToLocalVect().

370  { fTrans.WorldToLocalVect(world, cryo); }
LocalTransformation_t fTrans
Cryostat-to-world transformation.
Definition: CryostatGeo.h:408
void WorldToLocalVect(const double *world, double *local) const
Transforms a vector from world frame to local frame.

Member Data Documentation

geo::CryostatID geo::CryostatGeo::fID
private

ID of this cryostat.

Definition at line 413 of file CryostatGeo.h.

Referenced by ID(), and UpdateAfterSorting().

std::string geo::CryostatGeo::fOpDetGeoName
private

Name of opdet geometry elements in gdml.

Definition at line 412 of file CryostatGeo.h.

Referenced by CryostatGeo(), and OpDetGeoName().

std::vector<OpDetGeo> geo::CryostatGeo::fOpDets
private

List of opdets in this cryostat.

Definition at line 410 of file CryostatGeo.h.

Referenced by CryostatGeo(), MakeOpDet(), NOpDet(), and OpDet().

TPCList_t geo::CryostatGeo::fTPCs
private

List of tpcs in this cryostat.

Definition at line 409 of file CryostatGeo.h.

Referenced by MakeTPC(), MaxPlanes(), MaxWires(), NElements(), NTPC(), SortSubVolumes(), TPCPtr(), TPCs(), and UpdateAfterSorting().

LocalTransformation_t geo::CryostatGeo::fTrans
private

Cryostat-to-world transformation.

Definition at line 408 of file CryostatGeo.h.

Referenced by LocalToWorld(), LocalToWorldVect(), toLocalCoords(), toWorldCoords(), WorldToLocal(), and WorldToLocalVect().

TGeoVolume* geo::CryostatGeo::fVolume
private

Total volume of cryostat, called volCryostat in GDML file.

Definition at line 411 of file CryostatGeo.h.

Referenced by CryostatGeo(), HalfHeight(), HalfLength(), HalfWidth(), Mass(), and Volume().

constexpr unsigned int geo::CryostatGeo::MaxVerbosity = 3
static

Maximum verbosity supported by PrintCryostatInfo().

Definition at line 145 of file CryostatGeo.h.


The documentation for this class was generated from the following files: