1 #include <mdst/dataobjects/TrackFitResult.h>
2 #include <framework/gearbox/Const.h>
5 #include <TMatrixDSym.h>
11 #include <gtest/gtest.h>
32 unsigned int nCases = 1;
33 double absError = 1e-6;
36 for (
unsigned int i = 0; i < nCases; ++i) {
38 short int charge = generator.Uniform(-1, 1) > 0 ? 1 : -1;
43 TVector2 d(generator.Uniform(-1, 1), generator.Uniform(-1, 1));
44 TVector2 pt(generator.Uniform(-1, 1), generator.Uniform(-1, 1));
45 d.Set(d.X(), -(d.X()*pt.Px()) / pt.Py());
47 TVector3 position(d.X(), d.Y(), generator.Uniform(-1, 1));
48 TVector3 momentum(pt.Px(), pt.Py(), generator.Uniform(-1, 1));
53 TrackFitResult myResult(position, momentum, cov6, charge, pType, pValue, bField, 0, 0, 0);
56 EXPECT_NEAR(position.X(), myResult.
getPosition().X(), absError);
57 EXPECT_NEAR(position.Y(), myResult.
getPosition().Y(), absError);
58 EXPECT_NEAR(position.Z(), myResult.
getPosition().Z(), absError);
59 EXPECT_NEAR(momentum.Px(), myResult.
getMomentum().Px(), absError);
60 EXPECT_NEAR(momentum.Py(), myResult.
getMomentum().Py(), absError);
61 EXPECT_NEAR(momentum.Pz(), myResult.
getMomentum().Pz(), absError);
78 unsigned int nCases = 1;
79 double absError = 1e-6;
81 for (
unsigned int iCase = 0; iCase < nCases; ++iCase) {
86 std::vector<float> tau;
87 for (
int i = 0; i < 5; ++i) {
91 std::vector<float> cov(15);
92 for (
auto& element : cov) {
93 element = generator.Gaus(1e-4);
98 for (
int i = 0; i < 5; ++i)
99 for (
int j = i; j < 5; ++j)
100 EXPECT_EQ(covariance(i, j), covariance(j, i));
103 for (
unsigned int row = 0; row < 6; ++row) {
104 for (
unsigned int col = 0; col < 6; ++col) {
105 cov6(row, col) = covariance(row, col);
114 EXPECT_NEAR(myResultCov5(0, 0), myResult2Cov5(0, 0), absError);
115 EXPECT_NEAR(myResultCov5(0, 1), myResult2Cov5(0, 1), absError);
116 EXPECT_NEAR(myResultCov5(0, 2), myResult2Cov5(0, 2), absError);
117 EXPECT_NEAR(myResultCov5(0, 3), myResult2Cov5(0, 3), absError);
118 EXPECT_NEAR(myResultCov5(0, 4), myResult2Cov5(0, 4), absError);
119 EXPECT_NEAR(myResultCov5(1, 0), myResult2Cov5(1, 0), absError);
120 EXPECT_NEAR(myResultCov5(1, 1), myResult2Cov5(1, 1), absError);
121 EXPECT_NEAR(myResultCov5(1, 2), myResult2Cov5(1, 2), absError);
122 EXPECT_NEAR(myResultCov5(1, 3), myResult2Cov5(1, 3), absError);
123 EXPECT_NEAR(myResultCov5(1, 4), myResult2Cov5(1, 4), absError);
124 EXPECT_NEAR(myResultCov5(2, 0), myResult2Cov5(2, 0), absError);
125 EXPECT_NEAR(myResultCov5(2, 1), myResult2Cov5(2, 1), absError);
126 EXPECT_NEAR(myResultCov5(2, 2), myResult2Cov5(2, 2), absError);
127 EXPECT_NEAR(myResultCov5(2, 3), myResult2Cov5(2, 3), absError);
128 EXPECT_NEAR(myResultCov5(2, 4), myResult2Cov5(2, 4), absError);
129 EXPECT_NEAR(myResultCov5(3, 0), myResult2Cov5(3, 0), absError);
130 EXPECT_NEAR(myResultCov5(3, 1), myResult2Cov5(3, 1), absError);
131 EXPECT_NEAR(myResultCov5(3, 2), myResult2Cov5(3, 2), absError);
132 EXPECT_NEAR(myResultCov5(3, 3), myResult2Cov5(3, 3), absError);
133 EXPECT_NEAR(myResultCov5(3, 4), myResult2Cov5(3, 4), absError);
134 EXPECT_NEAR(myResultCov5(4, 0), myResult2Cov5(4, 0), absError);
135 EXPECT_NEAR(myResultCov5(4, 1), myResult2Cov5(4, 1), absError);
136 EXPECT_NEAR(myResultCov5(4, 2), myResult2Cov5(4, 2), absError);
137 EXPECT_NEAR(myResultCov5(4, 3), myResult2Cov5(4, 3), absError);
138 EXPECT_NEAR(myResultCov5(4, 4), myResult2Cov5(4, 4), absError);
148 TVector3 position(0., 0., 0.);
149 TVector3 momentum(1., 1., 1.);