Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add white paper for (cross-)covariance matrices in the Billoir vertex fit #2667

Merged
merged 5 commits into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,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 matrix are derived
felix-russo marked this conversation as resolved.
Show resolved Hide resolved
/// 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.
Expand All @@ -37,6 +38,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 <typename input_track_t, typename linearizer_t>
Expand Down
6 changes: 3 additions & 3 deletions Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ Acts::FullBilloirVertexFitter<input_track_t, linearizer_t>::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;
Expand Down Expand Up @@ -261,11 +261,11 @@ Acts::FullBilloirVertexFitter<input_track_t, linearizer_t>::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;
Expand Down
11 changes: 10 additions & 1 deletion docs/white_papers.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Binary file added docs/white_papers/figures/billoir-covariances.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading