2 #define BOOST_TEST_MODULE LmdSensorAlignment
6 #include <boost/test/unit_test.hpp>
8 #include "TGeoMatrix.h"
14 BOOST_AUTO_TEST_SUITE(LmdSensorAlignment)
19 point.SetX(gRandom->Uniform(scale));
20 point.SetY(gRandom->Uniform(scale));
28 gRandom =
new TRandom3();
30 std::vector<TVector3> original_points;
31 unsigned int num_points(100);
32 for (
unsigned int i = 0;
i < num_points; ++
i) {
36 TGeoCombiTrans ideal_matrix;
38 ideal_matrix.RotateZ(angle);
41 ideal_matrix.SetTranslation(shiftx, shifty, 0.0);
44 for (
auto const&
point : original_points) {
48 ideal_matrix.MasterToLocal(a, b);
49 pair.
setHit2(TVector3(b[0], b[1], b[2]));
57 double tolerance(1e-10);
58 BOOST_CHECK_CLOSE(result.
val[0][1], -sinangle, tolerance);
59 BOOST_CHECK_CLOSE(result.
val[1][0], sinangle, tolerance);
60 BOOST_CHECK_CLOSE(result.
val[0][3], shiftx, tolerance);
61 BOOST_CHECK_CLOSE(result.
val[1][3], shifty, tolerance);
67 gRandom =
new TRandom3();
69 std::vector<TVector3> original_points;
70 unsigned int num_points(50);
71 for (
unsigned int i = 0;
i < num_points; ++
i) {
75 TGeoRotation lmd_rot(
"lmd_rot");
77 lmd_rot.RotateY(0.04 / 3.14 * 180.);
79 TGeoCombiTrans simple_trafo_to_lmd;
80 simple_trafo_to_lmd.SetRotation(lmd_rot);
81 simple_trafo_to_lmd.SetTranslation(7.0, 3.0, 1100.0);
83 TGeoCombiTrans ideal_matrix;
85 ideal_matrix.RotateZ(angle);
88 ideal_matrix.SetTranslation(shiftx, shifty, 0.0);
91 for (
auto const&
point : original_points) {
94 ideal_matrix.MasterToLocal(a, b);
97 simple_trafo_to_lmd.LocalToMaster(a, newa);
99 simple_trafo_to_lmd.LocalToMaster(b, newb);
101 for(
unsigned i = 0;
i < 3; ++
i) {
102 newa[
i] = (float)newa[
i];
103 newb[
i] = (float)newb[
i];
106 simple_trafo_to_lmd.MasterToLocal(newa, a);
107 simple_trafo_to_lmd.MasterToLocal(newb, b);
109 pair.
setHit1(TVector3(a[0], a[1], a[2]));
110 pair.
setHit2(TVector3(b[0], b[1], b[2]));
118 double tolerance(1e-5);
119 BOOST_CHECK_SMALL(
std::fabs(result.
val[0][1] + sinangle), tolerance);
120 BOOST_CHECK_SMALL(
std::fabs(result.
val[1][0]- sinangle), tolerance);
121 BOOST_CHECK_SMALL(
std::fabs(result.
val[0][3] - shiftx), tolerance);
122 BOOST_CHECK_SMALL(
std::fabs(result.
val[1][3]- shifty) , tolerance);
125 BOOST_AUTO_TEST_SUITE_END()
void setHit2(const TVector3 &hit2)
void setHit1(const TVector3 &hit1)
TVector3 createRandomPoint()
friend F32vec4 sin(const F32vec4 &a)
bool addSimplePair(const PndLmdHitPair &pair)
BOOST_AUTO_TEST_CASE(SimpleICPTest_Double)
friend F32vec4 fabs(const F32vec4 &a)
const Matrix & getResultMatrix() const