diff --git a/Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp b/Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp index 850b36c4c23..9736c5a9e56 100644 --- a/Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp +++ b/Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp @@ -24,8 +24,9 @@ namespace Acts { /// @brief Vertex fitter class implementing the Billoir vertex fitter /// /// This class implements the Billoir vertex fitter from Ref. (1). It is also -/// useful to have a look at Ref. (2). Note that the Billoir vertex fitter -/// outputs one 4D vertex position and nTrack momenta at this very point. +/// useful to have a look at Ref. (2). The cross-covariance matrices are derived +/// in Ref. (3). Note that the Billoir vertex fitter outputs one 4D vertex +/// position and nTrack momenta at this very point. /// /// Ref. (1): /// Fast vertex fitting with a local parametrization of tracks. @@ -38,6 +39,11 @@ namespace Acts { /// Detectors. /// Author(s) Fruehwirth, R ; Strandli, A /// +/// Ref. (3): +/// ACTS White Paper: Cross-Covariance Matrices in the Billoir Vertex Fit +/// https://acts.readthedocs.io/en/latest/white_papers/billoir-covariances.html +/// Author(s) Russo, F +/// /// @tparam input_track_t Track object type /// @tparam linearizer_t Track linearizer type template diff --git a/Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp b/Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp index be254c7910c..94b5dc9ad94 100644 --- a/Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp +++ b/Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp @@ -208,7 +208,7 @@ Acts::FullBilloirVertexFitter::fit( invCovV += vertexingOptions.constraint.fullCovariance().inverse(); } - // Covariance matrix of the 4D vertex position + // Covariance matrix of the 4D vertex position, see Ref. (3) SquareMatrix4 covV = invCovV.inverse(); // Update of the vertex position Vector4 deltaV = covV * deltaVFac; @@ -261,11 +261,11 @@ Acts::FullBilloirVertexFitter::fit( transMat(5, 3) = 1.; // cov(V,P) - // TODO: This is incorrect (see Ref. (2)), but it will not be needed + // TODO: This is incorrect (see Ref. (3)), but it will not be needed // anyway once we replace fittedParams with fittedMomentum ActsMatrix<4, 3> covVP = billoirTrack.B; - // cov(P,P), 3x3 matrix + // cov(P,P), 3x3 matrix, see Ref. (3) ActsSquareMatrix<3> covP = billoirTrack.Cinv + billoirTrack.BCinv.transpose() * covV * billoirTrack.BCinv; diff --git a/docs/white_papers.toml b/docs/white_papers.toml index 8856df2aeca..fe76dbf7cae 100644 --- a/docs/white_papers.toml +++ b/docs/white_papers.toml @@ -19,9 +19,18 @@ description = "Given the impact parameters $(d_0, z_0, t_0)$ of a track in Perig [[white_papers]] repository = "https://github.com/beomki-yeo/path-correction-term-from-momentum-variation" slug = "correction-for-transport-jacobian" -pdf_url = "https://github.com/beomki-yeo/path-correction-term-from-momentum-variation/releases/download/v2.0/main.pdf" +pdf_url = "https://github.com/acts-project/path-correction-term-from-momentum-variation/releases/download/v2.0/main.pdf" [white_papers.metadata] authors = [ "Beomki Yeo",] title = "A Correction Term for Transport Jacobian from the Direction Variation" description = "In the track extension model of ACTS, the covariance of a track is updated for every surface intersection by applying a jacobian matrix, the composition of the coordinate transformation and free space transport. In the derivation of the transport jacobian, it is necessary to consider the path difference coming from the track displacement, which appears as a direction variation term with respect to the path length. \n\n\nThe motivation of this white paper is that the author failed in finding any reference explaining this clearly. (Please let the author know if anyone finds it) There are bunch of references which calculate this term with an ideal helix model, but it is not very useful with the runge-kutta based track extension model. Therefore, in this note, we are deriving the term thoroughly and demonstrate how it is implemented in the source code." +[[white_papers]] +repository = "https://github.com/felix-russo/billoir-covariances" +slug = "billoir-covariances" +pdf_url = "https://github.com/felix-russo/billoir-covariances/releases/download/v0.0/main.pdf" + +[white_papers.metadata] +authors = [ "Felix Russo",] +title = "Cross-Covariance Matrices in the Billoir Vertex Fit" +description = "In this white paper we derive\n\\begin{itemize}\n \\item the 4x4 covariance matrix of the vertex position,\n \\item the 4x3 cross-covariance matrix between the vertex position and the $i$-th particle momentum,\n \\item and the 3x3 cross-covariance matrix between the $i$-th and the $j$-th particle momentum.\n\\end{itemize}" diff --git a/docs/white_papers/figures/billoir-covariances.png b/docs/white_papers/figures/billoir-covariances.png new file mode 100644 index 00000000000..b0a7ee74634 Binary files /dev/null and b/docs/white_papers/figures/billoir-covariances.png differ