All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
geo_optical_vectors.h
Go to the documentation of this file.
1 /**
2  * @file larcoreobj/SimpleTypesAndConstants/geo_optical_vectors.h
3  * @brief Definitions of vector data types for optical detectors.
4  * @author Gianluca Petrillo (petrillo@fnal.gov)
5  * @date May 14, 2020
6  * @ingroup Geometry
7  * @see larcoreobj/SimpleTypesAndConstants/geo_vectors.h
8  *
9  * This library depends on ROOT GenVector.
10  * In the CET link list in `CMakeLists.txt`, link to `ROOT::GenVector`.
11  */
12 
13 #ifndef LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_OPTICAL_VECTORS_H
14 #define LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_OPTICAL_VECTORS_H
15 
16 // LArSoft libraries
18 
19 
20 namespace geo {
21 
22  /**
23  * @name Optical detector vector types.
24  * @ingroup Geometry
25  *
26  * Special tags for a generic "optical detector local coordinate system"
27  * are defined here, together with data types using them.
28  *
29  * While the world coordinate system makes sense to be defined in this way,
30  * a local system depends by definition by the object it is anchored to:
31  * while two world coordinate vectors are always compatible, two local
32  * coordinate vectors are compatible only if they belong to the same local
33  * object. The purpose of these definitions is to declare the incompatibility
34  * between world coordinate vectors and the ones local to optical detectors,
35  * without attempting to claim that two of the latter are necessarily
36  * compatible.
37  *
38  */
39  /// @{
40 
41  /// The tag defining the optical detector local reference frame.
43 
44 
45  /// Type of optical local 3D displacement vector.
46  /// @tparam T data type for coordinate representation
47  template <typename T>
50 
51  /// Type of optical local 3D point.
52  /// @tparam T data type for coordinate representation
53  template <typename T>
56 
57 
58  /// Type of optical 3D displacement vector with representation in
59  /// double precision.
61 
62  /// Type of optical 3D point with representation in double precision.
64 
65 
66  /// @}
67 
68 
69  //----------------------------------------------------------------------------
70 
71 } // namespace geo
72 
73 
74 #endif // LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_OPTICAL_VECTORS_H
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< T >, C > GenPoint3DBase_t
Definition: geo_vectors.h:82
Definitions of geometry vector data types.
OpticalPoint3DBase_t< double > OpticalPoint_t
Type of optical 3D point with representation in double precision.
GenVector3DBase_t< T, OpticalLocalCoordinateSystemTag > OpticalVector3DBase_t
OpticalVector3DBase_t< double > OpticalVector_t
The tag defining the optical detector local reference frame.
GenPoint3DBase_t< T, OpticalLocalCoordinateSystemTag > OpticalPoint3DBase_t
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< T >, C > GenVector3DBase_t
Definition: geo_vectors.h:75