9 #ifndef LARCOREALG_GEOMETRY_AUXDETGEO_H 10 #define LARCOREALG_GEOMETRY_AUXDETGEO_H 19 #include "TGeoVolume.h" 20 #include "TGeoMatrix.h" 60 AuxDetGeo(std::vector<const TGeoNode*>& path,
71 void GetCenter(
double* xyz,
double localz=0.0)
const;
157 (
double const worldLoc[3],
size_t& sv)
const;
188 template <
typename Stream>
190 (Stream&& out, std::string
indent =
"",
unsigned int verbosity = 1)
const;
224 template <
typename Stream>
228 unsigned int verbosity
232 out <<
"\"" <<
Name() <<
"\"";
234 if (verbosity-- <= 0)
return;
237 out <<
" centered at " <<
GetCenter() <<
" cm";
239 if (verbosity-- <= 0)
return;
248 if (verbosity-- <= 0)
return;
251 out <<
"\n" << indent
254 case 0: out <<
"no sensitive volume";
break;
255 case 1: out <<
"1 sensitive volume";
break;
259 if (verbosity-- <= 0)
return;
273 #endif // LARCOREALG_GEOMETRY_AUXDETGEO_H ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
void FindAuxDetSensitive(std::vector< const TGeoNode * > &path, unsigned int depth)
LocalPoint_t toLocalCoords(geo::Point_t const &world) const
Transform point from world frame to local auxiliary detector frame.
void LocalToWorld(const double *auxdet, double *world) const
Transform point from local auxiliary detector frame to world frame.
constexpr bool nonEqual(Value_t a, Value_t b) const
Returns whether a and b are farther than the threshold.
double Length_t
Type used for coordinates and distances. They are measured in centimeters.
Encapsulate the geometry of the sensitive portion of an auxiliary detector.
AuxDetSensitiveGeo const & SensitiveVolume(size_t sv) const
double fHalfWidth2
2nd half width (width1==width2 for boxes), at +z/2
geo::Length_t DistanceToPoint(geo::Point_t const &point) const
Returns the distance of point from the center of the detector.
Provides simple real number checks.
LocalTransformation_t fTrans
Auxiliary detector-to-world transformation.
void WorldToLocal(const double *world, double *auxdet) const
Transform point from world frame to local auxiliary detector frame.
LocalVector_t toLocalCoords(geo::Vector_t const &world) const
Transform direction vector from world to local.
double fHalfWidth1
1st half width of volume, at -z/2 in local coordinates
void WorldToLocalVect(const double *world, double *auxdet) const
Transform direction vector from world to local.
void SortSubVolumes(geo::GeoObjectSorter const &sorter)
geo::Vector_t toWorldCoords(LocalVector_t const &local) const
Transform direction vector from local to world.
geo::Point3DBase_t< AuxDetGeoCoordinatesTag > LocalPoint_t
Type of points in the local GDML auxiliary detector frame.
double fLength
length of volume, along z direction in local
Class for approximate comparisons.
AuxDetSensitiveGeo const & PositionToSensitiveVolume(geo::Point_t const &point, size_t &sv) const
std::vector< AuxDetSensitiveGeo * > fSensitive
sensitive volumes in the detector
Interface to algorithm class for sorting geo::XXXGeo objects.
double HalfWidth2() const
Returns the distance of point from the center of the detector.
const TGeoVolume * fTotalVolume
Total volume of AuxDet, called vol*.
void LocalToWorldVect(const double *auxdet, double *world) const
Transform direction vector from local to world.
void MakeAuxDetSensitive(std::vector< const TGeoNode * > &path, int depth)
geo::Vector3DBase_t< AuxDetGeoCoordinatesTag > LocalVector_t
Type of displacement vectors in the local GDML auxiliary detector frame.
std::size_t FindSensitiveVolume(geo::Point_t const &point) const
double HalfHeight() const
Returns the distance of point from the center of the detector.
std::string indent(std::size_t const i)
AuxDetGeo(std::vector< const TGeoNode * > &path, int depth)
size_t NSensitiveVolume() const
geo::Vector_t GetNormalVector() const
Returns the unit normal vector to the detector.
Definition of data types for geometry description.
double Length() const
Returns the distance of point from the center of the detector.
const TGeoVolume * TotalVolume() const
Returns the distance of point from the center of the detector.
static constexpr unsigned int MaxVerbosity
Maximum verbosity supported by PrintAuxDetInfo().
GenPoint3DBase_t< double, C > Point3DBase_t
Type of 3D point with representation in double precision.
GenVector3DBase_t< double, C > Vector3DBase_t
double HalfWidth1() const
Returns the distance of point from the center of the detector.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Namespace collecting geometry-related classes utilities.
double fHalfHeight
half height of volume
void InitShapeSize()
Extracts the size of the detector from the geometry information.
void PrintAuxDetInfo(Stream &&out, std::string indent="", unsigned int verbosity=1) const
Prints information about this auxiliary detector.
geo::Point_t toWorldCoords(LocalPoint_t const &local) const
Transform point from local auxiliary detector frame to world frame.
void GetCenter(double *xyz, double localz=0.0) const
Return the center position of an AuxDet.