113 const float maxDiagonal[5] = {1.f, 1.f, 1.f, 1.f, 1.f};
114 sanitizeCovariance(
state, maxDiagonal);
115 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(0, 0)], 0.25f, 1e-4f);
137 const float maxDiagonal[5] = {1.f, 1.f, 1.f, 1.f, 1.f};
138 sanitizeCovariance(
state, maxDiagonal);
140 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(0, 0)], 1.f, 1e-4f);
141 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(1, 0)], 0.5f, 1e-4f);
142 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(2, 0)], 0.2f, 1e-4f);
144 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(1, 1)], 0.3f, 1e-4f);
147 BOOST_CHECK_LE(maxCorrelationViolation(
state), 1.e-4f);
164 const float maxDiagonal[5] = {1.e30f, 1.e30f, 1.e30f, 1.e30f, 1.e30f};
165 sanitizeCovariance(
state, maxDiagonal);
166 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(1, 0)], -6.f, 1e-4f);
167 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(2, 0)], 3.f, 1e-4f);
168 BOOST_CHECK_LE(maxCorrelationViolation(
state), 1.e-4f);
184 const float maxDiagonal[5] = {1.e30f, 1.e30f, 1.e30f, 1.e30f, 1.e30f};
185 sanitizeCovariance(
state, maxDiagonal);
187 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(1, 3)], 5.f, 1e-4f);
209 const float cov[15] = {
210 0.0615117364f, -0.0162716303f, 0.00781002454f, -0.00648284703f, 0.00164899346f, 0.000680086901f,
211 0.000152464694f, -0.000262976653f, -1.178005e-05f, 1.45164713e-05f,
212 -0.22814776f, 0.0546577908f, 0.0237723477f, -0.000194984852f, 0.822642863f};
213 for (
int i = 0;
i < 15; ++
i) {
218 meas.
frame.
u = 0.633100867f;
219 meas.frame.v = -6.10807085f;
220 meas.covariance.uu = 1.18710993e-07f;
221 meas.covariance.uv = 0.f;
222 meas.covariance.vv = 3.60069805e-07f;
226 const bool ok = Propagator::updateBarrel(
state, meas,
chi2);
230 BOOST_CHECK_CLOSE(
state.
covariance[packedCovarianceIndex(4, 4)], 0.0328048468f, 5.f);
252 const float cov[15] = {
253 5.45968469e-05f, 7.92145147e-05f, 2.34508334e-05f, 0.000361069426f, 9.60996113e-05f, 0.00121101411f,
254 0.00140110496f, 0.0018511567f, 0.00489055132f, 0.0514357649f,
255 0.117691882f, 0.0217776336f, 0.452787817f, 1.21933973f, 168.588654f};
256 for (
int i = 0;
i < 15; ++
i) {
261 meas.
frame.
u = -3.4059999f;
262 meas.frame.v = -3.04678011f;
263 meas.covariance.uu = 4.4239976e-05f;
264 meas.covariance.uv = 0.f;
265 meas.covariance.vv = 0.000105412393f;
269 const bool ok = Propagator::updateForward(
state, meas,
chi2);
310 const float cov[15] = {
311 1.98605832e-07f, -7.50241043e-08f, 2.4906555e-07f, -9.13163856e-09f, -3.06560999e-08f, 1.98362322e-05f,
312 3.80933152e-09f, -3.28565477e-08f, -7.25654581e-06f, 1.45164713e-05f,
313 -1.76052566e-07f, -8.04973183e-07f, 0.00468764221f, -0.000194984852f, 0.822642863f};
314 for (
int i = 0;
i < 15; ++
i) {
319 linRef.
kind = SurfaceKind::Cylinder;
320 linRef.referenceCoordinate = 19.2192478f;
321 linRef.alpha = -0.12901926f;
322 linRef.parameters[0] = 3.03678894f;
323 linRef.parameters[1] = -30.962265f;
324 linRef.parameters[2] = 0.137899101f;
325 linRef.parameters[3] = -1.58717895f;
326 linRef.parameters[4] = 1.21498108f;
328 const float targetX = 3.76323366f;
329 const float bz = 5.00675011f;
331 const bool ok = Propagator::propagateBarrel(
state, linRef, targetX, bz);
344 BOOST_CHECK_LE(maxCorrelationViolation(
state), 1.e-3f);
349 meas.
frame.
u = 0.633100867f;
350 meas.frame.v = -6.10807085f;
351 meas.covariance.uu = 1.18710993e-07f;
352 meas.covariance.uv = 0.f;
353 meas.covariance.vv = 3.60069805e-07f;
356 BOOST_REQUIRE(Propagator::updateBarrel(
state, meas,
chi2));
424 const float cov[15] = {
425 0.0615117364f, -0.0162716303f, 0.00781002454f, -0.00648284703f, 0.00164899346f, 0.000680086901f,
426 0.000152464694f, -0.000262976653f, -1.178005e-05f, 1.45164713e-05f,
427 -0.22814776f, 0.0546577908f, 0.0237723477f, -0.000194984852f, 0.822642863f};
428 for (
int i = 0;
i < 15; ++
i) {
432 meas.
frame.
u = 0.633100867f;
433 meas.frame.v = -6.10807085f;
434 meas.covariance.uu = 1.18710993e-07f;
435 meas.covariance.vv = 3.60069805e-07f;
438 BOOST_REQUIRE(Propagator::updateBarrel(
state, meas,
chi2));
474 const float cov[15] = {
475 1.98605832e-07f, -7.50241043e-08f, 2.4906555e-07f, -9.13163856e-09f, -3.06560999e-08f, 1.98362322e-05f,
476 3.80933152e-09f, -3.28565477e-08f, -7.25654581e-06f, 1.45164713e-05f,
477 -1.76052566e-07f, -8.04973183e-07f, 0.00468764221f, -0.000194984852f, 0.822642863f};
478 for (
int i = 0;
i < 15; ++
i) {
482 linRef.
kind = SurfaceKind::Cylinder;
483 linRef.referenceCoordinate = 19.2192478f;
484 linRef.alpha = -0.12901926f;
485 linRef.parameters[0] = 3.03678894f;
486 linRef.parameters[1] = -30.962265f;
487 linRef.parameters[2] = 0.137899101f;
488 linRef.parameters[3] = -1.58717895f;
489 linRef.parameters[4] = 1.21498108f;
491 BOOST_REQUIRE(Propagator::propagateBarrel(
state, linRef, 3.76323366f, 5.00675011f));
564 const float cov[15] = {
565 5.45968469e-05f, 7.92145147e-05f, 2.34508334e-05f, 0.000361069426f, 9.60996113e-05f, 0.00121101411f,
566 0.00140110496f, 0.0018511567f, 0.00489055132f, 0.0514357649f,
567 0.117691882f, 0.0217776336f, 0.452787817f, 1.21933973f, 168.588654f};
568 for (
int i = 0;
i < 15; ++
i) {
572 meas.
frame.
u = -3.4059999f;
573 meas.frame.v = -3.04678011f;
574 meas.covariance.uu = 4.4239976e-05f;
575 meas.covariance.vv = 0.000105412393f;
578 BOOST_REQUIRE(Propagator::updateForward(
state, meas,
chi2));