16 #include "TGeoMatrix.h" 25 (
double const* local,
double* world)
const 27 details::checkVectorBufferOverlap(local, world);
31 = geo::vect::makeFromCoords<typename TransformationMatrix_t::Point>(local);
32 auto const world_v = fGeoMatrix(local_v);
41 (
double const* local,
double* world)
const 43 details::checkVectorBufferOverlap(local, world);
47 = geo::vect::makeFromCoords<typename TransformationMatrix_t::Vector>(local);
48 auto const world_v = fGeoMatrix(local_v);
57 (
double const* world,
double* local)
const 59 details::checkVectorBufferOverlap(local, world);
63 = geo::vect::makeFromCoords<typename TransformationMatrix_t::Point>(world);
64 auto const local_v = fGeoMatrix.ApplyInverse(world_v);
73 (
const double* world,
double* local)
const 75 details::checkVectorBufferOverlap(local, world);
79 = geo::vect::makeFromCoords<typename TransformationMatrix_t::Vector>(world);
80 auto const local_v = fGeoMatrix.ApplyInverse(world_v);
87 ROOT::Math::Transform3D
90 (TGeoMatrix
const& trans)
92 double const* rot = trans.GetRotationMatrix();
93 double const* transl = trans.GetTranslation();
94 double const* scale = trans.GetScale();
96 for (
auto ptr = scale; ptr != scale + 3; ++ptr)
98 throw std::runtime_error
99 (
"Matrix with scaling can't be converted to Transform3D");
102 rot[0], rot[1], rot[2], transl[0],
103 rot[3], rot[4], rot[5], transl[1],
104 rot[6], rot[7], rot[8], transl[2]
unsigned int fillCoords(Coords &dest, Vector const &src)
Fills a coordinate array with the coordinates of a vector.
def convert(inputfile, outputfile="wire-cell-garfield-fine-response.json.bz2", average=False, shaped=False)