LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "AuxDetGeo.h"
Classes | |
struct | AuxDetGeoCoordinatesTag |
Public Types | |
using | AuxDetSensitiveList_t = std::vector< geo::AuxDetSensitiveGeo > |
Type of list of sensitive volumes. More... | |
Types for geometry-local reference vectors. | |
These types represents points and displacement vectors in the reference frame defined in the auxiliary detector geometry box from the GDML geometry description. No alias is explicitly defined for the LArSoft global vector types, Remember the | |
using | LocalPoint_t = geo::Point3DBase_t< AuxDetGeoCoordinatesTag > |
Type of points in the local GDML auxiliary detector frame. More... | |
using | LocalVector_t = geo::Vector3DBase_t< AuxDetGeoCoordinatesTag > |
Type of displacement vectors in the local GDML auxiliary detector frame. More... | |
Public Member Functions | |
AuxDetGeo (TGeoNode const &node, geo::TransformationMatrix &&trans, AuxDetSensitiveList_t &&sensitive) | |
geo::Point_t | GetCenter (double localz=0.0) const |
Returns the geometric center of the sensitive volume. More... | |
geo::Vector_t | GetNormalVector () const |
Returns the unit normal vector to the detector. More... | |
std::string | Name () const |
AuxDetSensitiveGeo const & | SensitiveVolume (size_t sv) const |
size_t | NSensitiveVolume () const |
void | SortSubVolumes (geo::GeoObjectSorter const &sorter) |
template<typename Stream > | |
void | PrintAuxDetInfo (Stream &&out, std::string indent="", unsigned int verbosity=1) const |
Prints information about this auxiliary detector. More... | |
std::string | AuxDetInfo (std::string indent="", unsigned int verbosity=1) const |
Returns a string with auxiliary detector information. More... | |
Box geometry | |
double | Length () const |
Returns the distance of point from the center of the detector. More... | |
double | HalfWidth1 () const |
Returns the distance of point from the center of the detector. More... | |
double | HalfWidth2 () const |
Returns the distance of point from the center of the detector. More... | |
double | HalfHeight () const |
Returns the distance of point from the center of the detector. More... | |
const TGeoVolume * | TotalVolume () const |
Returns the distance of point from the center of the detector. More... | |
geo::Length_t | DistanceToPoint (geo::Point_t const &point) const |
Returns the distance of point from the center of the detector. More... | |
Coordinate transformation | |
geo::Point_t | toWorldCoords (LocalPoint_t const &local) const |
Transform point from local auxiliary detector frame to world frame. More... | |
geo::Vector_t | toWorldCoords (LocalVector_t const &local) const |
Transform direction vector from local to world. More... | |
LocalPoint_t | toLocalCoords (geo::Point_t const &world) const |
Transform point from world frame to local auxiliary detector frame. More... | |
LocalVector_t | toLocalCoords (geo::Vector_t const &world) const |
Transform direction vector from world to local. More... | |
Access to the sensitive volumes in the detector | |
std::size_t | FindSensitiveVolume (geo::Point_t const &point) const |
AuxDetSensitiveGeo const & | PositionToSensitiveVolume (geo::Point_t const &point, size_t &sv) const |
Static Public Attributes | |
static constexpr unsigned int | MaxVerbosity = 4 |
Maximum verbosity supported by PrintAuxDetInfo() . More... | |
Private Types | |
using | LocalTransformation_t = geo::LocalTransformationGeo< geo::TransformationMatrix, LocalPoint_t, LocalVector_t > |
Private Member Functions | |
void | InitShapeSize () |
Extracts the size of the detector from the geometry information. More... | |
Private Attributes | |
const TGeoVolume * | fTotalVolume |
Total volume of AuxDet, called vol*. More... | |
LocalTransformation_t | fTrans |
Auxiliary detector-to-world transformation. More... | |
double | fLength |
length of volume, along z direction in local More... | |
double | fHalfWidth1 |
1st half width of volume, at -z/2 in local coordinates More... | |
double | fHalfWidth2 |
2nd half width (width1==width2 for boxes), at +z/2 More... | |
double | fHalfHeight |
half height of volume More... | |
std::vector< AuxDetSensitiveGeo > | fSensitive |
sensitive volumes in the detector More... | |
Definition at line 38 of file AuxDetGeo.h.
using geo::AuxDetGeo::AuxDetSensitiveList_t = std::vector<geo::AuxDetSensitiveGeo> |
Type of list of sensitive volumes.
Definition at line 41 of file AuxDetGeo.h.
Type of points in the local GDML auxiliary detector frame.
Definition at line 63 of file AuxDetGeo.h.
|
private |
Definition at line 188 of file AuxDetGeo.h.
Type of displacement vectors in the local GDML auxiliary detector frame.
Definition at line 66 of file AuxDetGeo.h.
geo::AuxDetGeo::AuxDetGeo | ( | TGeoNode const & | node, |
geo::TransformationMatrix && | trans, | ||
AuxDetSensitiveList_t && | sensitive | ||
) |
Definition at line 32 of file AuxDetGeo.cxx.
References fSensitive, fTotalVolume, fTrans, InitShapeSize(), geo::LocalTransformation< StoredMatrix >::Matrix(), and MF_LOG_DEBUG.
std::string geo::AuxDetGeo::AuxDetInfo | ( | std::string | indent = "" , |
unsigned int | verbosity = 1 |
||
) | const |
Returns a string with auxiliary detector information.
PrintAuxDetInfo()
The arguments and provided information are the same as in PrintAuxDetInfo()
.
Definition at line 109 of file AuxDetGeo.cxx.
References PrintAuxDetInfo().
Referenced by NSensitiveVolume().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 96 of file AuxDetGeo.h.
Referenced by TotalVolume().
std::size_t geo::AuxDetGeo::FindSensitiveVolume | ( | geo::Point_t const & | point | ) | const |
Definition at line 66 of file AuxDetGeo.cxx.
References fSensitive, and SensitiveVolume().
Referenced by Name(), and PositionToSensitiveVolume().
geo::Point_t geo::AuxDetGeo::GetCenter | ( | double | localz = 0.0 | ) | const |
Returns the geometric center of the sensitive volume.
localz | (default: 0 ) distance from the center along the length of the volume (z) [cm] |
Definition at line 52 of file AuxDetGeo.cxx.
References toWorldCoords().
Referenced by PrintAuxDetInfo(), and TotalVolume().
geo::Vector_t geo::AuxDetGeo::GetNormalVector | ( | ) | const |
Returns the unit normal vector to the detector.
Definition at line 60 of file AuxDetGeo.cxx.
References toWorldCoords().
Referenced by PrintAuxDetInfo().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 90 of file AuxDetGeo.h.
References fHalfHeight.
Referenced by PrintAuxDetInfo().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 88 of file AuxDetGeo.h.
References fHalfWidth1.
Referenced by PrintAuxDetInfo().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 89 of file AuxDetGeo.h.
References fHalfWidth2.
Referenced by PrintAuxDetInfo().
|
private |
Extracts the size of the detector from the geometry information.
Definition at line 118 of file AuxDetGeo.cxx.
References fHalfHeight, fHalfWidth1, fHalfWidth2, fLength, and fTotalVolume.
Referenced by AuxDetGeo().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 87 of file AuxDetGeo.h.
References fLength.
Referenced by PrintAuxDetInfo().
|
inline |
Definition at line 131 of file AuxDetGeo.h.
References FindSensitiveVolume(), fTotalVolume, and PositionToSensitiveVolume().
Referenced by PrintAuxDetInfo().
|
inline |
Definition at line 144 of file AuxDetGeo.h.
References AuxDetInfo(), fSensitive, art::detail::indent(), PrintAuxDetInfo(), and SortSubVolumes().
Referenced by geo::AuxDetChannelMapAlg::NearestSensitiveAuxDet(), geo::ChannelMapAlg::NearestSensitiveAuxDet(), geo::GeometryCore::Print(), PrintAuxDetInfo(), and larg4::LArG4::produce().
AuxDetSensitiveGeo const & geo::AuxDetGeo::PositionToSensitiveVolume | ( | geo::Point_t const & | point, |
size_t & | sv | ||
) | const |
Definition at line 91 of file AuxDetGeo.cxx.
References FindSensitiveVolume(), and SensitiveVolume().
Referenced by Name().
void geo::AuxDetGeo::PrintAuxDetInfo | ( | Stream && | out, |
std::string | indent = "" , |
||
unsigned int | verbosity = 1 |
||
) | const |
Prints information about this auxiliary detector.
Stream | type of output stream to use |
out | stream to send the information to |
indent | prepend each line with this string |
verbosity | amount of information printed |
Note that the first line out the output is not indented.
The constant MaxVerbosity
is set to the highest supported verbosity level.
Definition at line 211 of file AuxDetGeo.h.
References e, GetCenter(), GetNormalVector(), HalfHeight(), HalfWidth1(), HalfWidth2(), Length(), Name(), lar::util::RealComparisons< RealType >::nonEqual(), and NSensitiveVolume().
Referenced by AuxDetInfo(), NSensitiveVolume(), and geo::GeometryCore::Print().
|
inline |
Definition at line 143 of file AuxDetGeo.h.
References fSensitive.
Referenced by geo::AuxDetGeometryCore::ChannelToAuxDetSensitive(), geo::GeometryCore::ChannelToAuxDetSensitive(), FindSensitiveVolume(), geo::AuxDetChannelMapAlg::NearestSensitiveAuxDet(), geo::ChannelMapAlg::NearestSensitiveAuxDet(), geo::AuxDetGeometryCore::PositionToAuxDetSensitive(), geo::GeometryCore::PositionToAuxDetSensitive(), PositionToSensitiveVolume(), and geo::GeometryCore::Print().
void geo::AuxDetGeo::SortSubVolumes | ( | geo::GeoObjectSorter const & | sorter | ) |
Definition at line 103 of file AuxDetGeo.cxx.
References fSensitive, and geo::GeoObjectSorter::SortAuxDetSensitive().
Referenced by NSensitiveVolume().
|
inline |
Transform point from world frame to local auxiliary detector frame.
Definition at line 118 of file AuxDetGeo.h.
References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toLocalCoords().
|
inline |
Transform direction vector from world to local.
Definition at line 124 of file AuxDetGeo.h.
References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toLocalCoords().
|
inline |
Returns the distance of point
from the center of the detector.
Definition at line 91 of file AuxDetGeo.h.
References DistanceToPoint(), fTotalVolume, and GetCenter().
Referenced by geo::sortAuxDetStandard().
|
inline |
Transform point from local auxiliary detector frame to world frame.
Definition at line 106 of file AuxDetGeo.h.
References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toWorldCoords().
Referenced by GetCenter(), and GetNormalVector().
|
inline |
Transform direction vector from local to world.
Definition at line 112 of file AuxDetGeo.h.
References fTrans, and geo::LocalTransformationGeo< StoredMatrix, LocalPoint, LocalVector >::toWorldCoords().
|
private |
half height of volume
Definition at line 195 of file AuxDetGeo.h.
Referenced by HalfHeight(), and InitShapeSize().
|
private |
1st half width of volume, at -z/2 in local coordinates
Definition at line 193 of file AuxDetGeo.h.
Referenced by HalfWidth1(), and InitShapeSize().
|
private |
2nd half width (width1==width2 for boxes), at +z/2
Definition at line 194 of file AuxDetGeo.h.
Referenced by HalfWidth2(), and InitShapeSize().
|
private |
length of volume, along z direction in local
Definition at line 192 of file AuxDetGeo.h.
Referenced by InitShapeSize(), and Length().
|
private |
sensitive volumes in the detector
Definition at line 196 of file AuxDetGeo.h.
Referenced by AuxDetGeo(), FindSensitiveVolume(), NSensitiveVolume(), SensitiveVolume(), and SortSubVolumes().
|
private |
Total volume of AuxDet, called vol*.
Definition at line 190 of file AuxDetGeo.h.
Referenced by AuxDetGeo(), InitShapeSize(), Name(), and TotalVolume().
|
private |
Auxiliary detector-to-world transformation.
Definition at line 191 of file AuxDetGeo.h.
Referenced by AuxDetGeo(), toLocalCoords(), and toWorldCoords().
|
static |
Maximum verbosity supported by PrintAuxDetInfo()
.
Definition at line 184 of file AuxDetGeo.h.
Referenced by geo::GeometryCore::Print().