Class to model tracks as 2D density functions based on their d0 and z0 perigee parameters (mean value) and covariance matrices (determining the width of the function).
More...
#include <Acts/Vertexing/GaussianTrackDensity.hpp>
Class to model tracks as 2D density functions based on their d0 and z0 perigee parameters (mean value) and covariance matrices (determining the width of the function).
◆ GaussianTrackDensity()
| Acts::GaussianTrackDensity::GaussianTrackDensity |
( |
const Config & | cfg | ) |
|
|
explicit |
Constructor with config.
- Parameters
-
| cfg | The configuration parameters |
◆ globalMaximum()
| Result< std::optional< double > > Acts::GaussianTrackDensity::globalMaximum |
( |
State & | state, |
|
|
const std::vector< InputTrack > & | trackList ) const |
Calculates the z position of the global maximum.
- Parameters
-
| state | The track density state |
| trackList | All input tracks |
- Returns
- z position of the global maximum
◆ globalMaximumWithWidth()
| Result< std::optional< std::pair< double, double > > > Acts::GaussianTrackDensity::globalMaximumWithWidth |
( |
State & | state, |
|
|
const std::vector< InputTrack > & | trackList ) const |
Calculates z position of global maximum with Gaussian width for density function.
Strategy: The global maximum must be somewhere near a track. Since we can calculate the first and second derivatives, at each point we can determine a) whether the function is curved up (minimum) or down (maximum) b) the distance to nearest maximum, assuming either Newton (parabolic) or Gaussian local behavior. For each track where the second derivative is negative, find step to nearest maximum, take that step and then do one final refinement. The largest density encountered in this procedure (after checking all tracks) is considered the maximum.
- Parameters
-
| state | The track density state |
| trackList | All input tracks |
- Returns
- Pair of position of global maximum and Gaussian width