1 #include <tracking/vxdCaTracking/ThreeHitFilters.h>
2 #include <gtest/gtest.h>
20 TVector3 innerHit(1., 1., 0.), centerHit(3., 3., 0.), outerHitEvil(6., 3., 0.), outerHitSimple(6., 4., 0.);
28 aFilter.
resetValues(outerHitEvil, centerHit, innerHit);
35 aFilter.
resetValues(outerHitSimple, centerHit, innerHit);
40 aFilter.
resetValues(outerHitEvil, centerHit, innerHit);
50 TVector3 innerHit(1., 1., 0.), centerHit(3., 3., 0.), outerHitEvil(6., 3., 0.), outerHitSimple(6., 4., 0.);
59 EXPECT_DOUBLE_EQ(26.5650511770779893515721937204532946712042, aFilter.
fullAngle3D());
67 TVector3 innerHit(1., 1., 0.), centerHit(3., 3., 0.), outerHit(6., 4., 1.);
68 TVector3 cent_inner = centerHit - innerHit, outer_center = outerHit - centerHit;
73 EXPECT_DOUBLE_EQ(31.4821541052938556040832384555411729852856, aFilter.
fullAngle3D());
74 EXPECT_DOUBLE_EQ(0.090909090909090909091, aFilter.
calcAngle3D());
76 EXPECT_DOUBLE_EQ(26.5650511770779893515721937204532946712042, aFilter.
fullAngleXY());
79 EXPECT_FLOAT_EQ(17.54840061379229806435203716652846677620, aFilter.
fullAngleRZ());
80 EXPECT_FLOAT_EQ(cos(17.54840061379229806435203716652846677620 * M_PI / 180.), aFilter.
calcAngleRZ());
82 EXPECT_DOUBLE_EQ(0.4636476090008061162142562314612144020285, aFilter.
fullAngle2D(outer_center, cent_inner));
83 EXPECT_DOUBLE_EQ(0.89442719099991586, aFilter.
calcAngle2D(outer_center, cent_inner));
90 TVector3 innerHit(1., 1., 0.), centerHit(3., 3., 0.), outerHit(6., 4., 1.), sigma(.01, .01, .01), unrealsigma(2, 2, 2),
91 outerhighHit(4., 6., 1.);
99 EXPECT_DOUBLE_EQ(1., aFilter.
calcSign(outerHit, centerHit, innerHit, sigma, sigma, sigma));
100 EXPECT_DOUBLE_EQ(-1., aFilter.
calcSign(outerhighHit, centerHit, innerHit, sigma, sigma, sigma));
101 EXPECT_DOUBLE_EQ(-1., aFilter.
calcSign(innerHit, centerHit, outerHit, sigma, sigma, sigma));
102 EXPECT_DOUBLE_EQ(0., aFilter.
calcSign(outerHit, centerHit, innerHit, unrealsigma, unrealsigma,
105 EXPECT_LT(0., aFilter.
calcSign(outerHit, centerHit, innerHit));
106 EXPECT_GT(0., aFilter.
calcSign(outerhighHit, centerHit, innerHit));
107 EXPECT_GT(0., aFilter.
calcSign(innerHit, centerHit, outerHit));
108 EXPECT_LT(0., aFilter.
calcSign(outerHit, centerHit, innerHit));
110 EXPECT_DOUBLE_EQ(1., aFilter.
calcSign(outerHit, centerHit, innerHit));
111 EXPECT_DOUBLE_EQ(-1., aFilter.
calcSign(outerhighHit, centerHit, innerHit));
112 EXPECT_DOUBLE_EQ(-1., aFilter.
calcSign(innerHit, centerHit, outerHit));
119 TVector3 innerHit(1., 1., 0.), centerHit(3., 3., 1.), outerHit(6., 4., 3.);
120 TVector3 cent_inner = centerHit - innerHit, outer_center = outerHit - centerHit;
125 outerHit.RotateZ(.4);
126 centerHit.RotateZ(.4);
127 innerHit.RotateZ(.4);
128 aFilter.
resetValues(outerHit, centerHit, innerHit);
138 TVector3 innerHit(1., 2., 0.), centerHit(3., 2., 1.), outerHit(3., 4., 3.);
139 TVector3 cent_inner = centerHit - innerHit, outer_center = outerHit - centerHit;
141 TVector3 innerHit2(1., 1., 0.), centerHit2(3., 3., 0.), outerHitEvil(6., 3., 0.);
143 double pt = 0, ptTrue = 0;
145 aFilter.
resetValues(outerHit, centerHit, innerHit);
146 ptTrue = aFilter.
calcPt(1.414213562373095048801688724209698078570);
147 aFilter.
resetValues(outerHit, centerHit, innerHit);
149 EXPECT_DOUBLE_EQ(ptTrue, pt);
151 ptTrue = 0.017118925181688543;
152 aFilter.
resetValues(outerHitEvil, centerHit2, innerHit2);
154 EXPECT_DOUBLE_EQ(ptTrue, pt);
158 ptTrue = aFilter.
calcPt(1.414213562373095048801688724209698078570);
160 EXPECT_ANY_THROW(aFilter.
calcPt());