29 const Acts::Vector3 &bfield,
30 const Acts::ParticleHypothesis &particle_hypothesis)
32 Acts::FreeToPathMatrix path_length_deriv;
33 static_assert(path_length_deriv.cols() == 8);
34 path_length_deriv.segment<3>(Acts::eFreePos0) = direction;
35 path_length_deriv(0,Acts::eFreeTime) =
computeDtDs(particle_hypothesis,qop);
36 path_length_deriv.segment<3>(Acts::eFreeDir0) = (qop * direction.cross(bfield)).transpose();
37 path_length_deriv(0,Acts::eFreeQOverP) = 0.;
38 return path_length_deriv;
62 const Acts::BoundTrackParameters ¶m,
63 const Acts::Vector3 &magnFieldVect,
64 const Acts::ParticleHypothesis &particle_hypothesis)
66 if (param.covariance().has_value()) {
67 Acts::FreeVector freeParams = Acts::transformBoundToFreeParameters(
68 param.referenceSurface(), tgContext, param.parameters());
69 Acts::Vector3 position = freeParams.segment<3>(Acts::eFreePos0);
70 Acts::Vector3 direction = freeParams.segment<3>(Acts::eFreeDir0);
72 Acts::BoundToFreeMatrix boundToFreeJacobian = param.referenceSurface().boundToFreeJacobian(tgContext, position, direction);
73 Acts::FreeMatrix freeTransportJacobian = Acts::FreeMatrix::Identity();
74 Acts::FreeToBoundMatrix freeToBoundJacobian;
76 param.parameters()[Acts::eBoundQOverP],
79 Acts::BoundMatrix fullTransportJacobian;
80 Acts::detail::boundToCurvilinearTransportJacobian(direction,
82 freeTransportJacobian,
84 freeToPathDerivatives,
85 fullTransportJacobian);
87 return fullTransportJacobian * param.covariance().value() * fullTransportJacobian.transpose();
Acts::FreeToPathMatrix computeFreeToPathDerivatives(const Acts::Vector3 &direction, double qop, const Acts::Vector3 &bfield, const Acts::ParticleHypothesis &particle_hypothesis)
Compute the path length derivatives for the free/bound to curvilinear paramter transform.
std::optional< Acts::BoundMatrix > convertActsBoundCovToCurvilinearParam(const Acts::GeometryContext &tgContext, const Acts::BoundTrackParameters ¶m, const Acts::Vector3 &magnFieldVect, const Acts::ParticleHypothesis &particle_hypothesis)
Convert the covariance of the given Acts track parameters into curvilinear parameterisation.