EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
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/blob/sPHENIX/Core/include/Acts/Vertexing/GaussianTrackDensity.hpp>
Classes | |
struct | Config |
The Config struct. More... | |
class | GaussianTrackDensityStore |
struct | State |
The State struct. More... | |
struct | TrackEntry |
Struct to store information for a single track. More... | |
Public Member Functions | |
GaussianTrackDensity ()=default | |
Default constructor. | |
GaussianTrackDensity (const Config &cfg) | |
Constructor with config. | |
std::pair< double, double > | globalMaximumWithWidth (State &state, const std::vector< const input_track_t * > &trackList, const std::function< BoundTrackParameters(input_track_t)> &extractParameters) 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. | |
double | globalMaximum (State &state, const std::vector< const input_track_t * > &trackList, const std::function< BoundTrackParameters(input_track_t)> &extractParameters) const |
Calculates the z position of the global maximum. | |
Private Member Functions | |
void | addTracks (State &state, const std::vector< const input_track_t * > &trackList, const std::function< BoundTrackParameters(input_track_t)> &extractParameters) const |
Add a track to the set being considered. | |
std::tuple< double, double, double > | trackDensityAndDerivatives (State &state, double z) const |
Evaluate the density function and its two first derivatives at the specified coordinate along the beamline. | |
std::tuple< double, double, double > | updateMaximum (double newZ, double newValue, double newSecondDerivative, double maxZ, double maxValue, double maxSecondDerivative) const |
Update the current maximum values. | |
double | stepSize (double y, double dy, double ddy) const |
Calculates the step size. | |
Private Attributes | |
Config | m_cfg |
The configuration. | |
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)
Definition at line 24 of file GaussianTrackDensity.hpp.
View newest version in sPHENIX GitHub at line 24 of file GaussianTrackDensity.hpp
|
default |
Default constructor.
|
inline |
Constructor with config.
Definition at line 93 of file GaussianTrackDensity.hpp.
View newest version in sPHENIX GitHub at line 93 of file GaussianTrackDensity.hpp
|
private |
Add a track to the set being considered.
state | The track density state |
trackList | All input tracks |
extractParameters | Function extracting BoundTrackParameters from InputTrack |
Definition at line 69 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 69 of file GaussianTrackDensity.ipp
References Acts::SingleBoundTrackParameters< charge_t >::covariance(), Acts::eBoundLoc0, Acts::eBoundLoc1, M_PI, Acts::SingleBoundTrackParameters< charge_t >::parameters(), and Acts::GaussianTrackDensity< input_track_t >::State::trackEntries.
double Acts::GaussianTrackDensity< input_track_t >::globalMaximum | ( | State & | state, |
const std::vector< const input_track_t * > & | trackList, | ||
const std::function< BoundTrackParameters(input_track_t)> & | extractParameters | ||
) | const |
Calculates the z position of the global maximum.
state | The track density state |
trackList | All input tracks |
extractParameters | Function extracting BoundTrackParameters from InputTrack |
Definition at line 61 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 61 of file GaussianTrackDensity.ipp
std::pair< double, double > Acts::GaussianTrackDensity< input_track_t >::globalMaximumWithWidth | ( | State & | state, |
const std::vector< const input_track_t * > & | trackList, | ||
const std::function< BoundTrackParameters(input_track_t)> & | extractParameters | ||
) | 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.
state | The track density state |
trackList | All input tracks |
extractParameters | Function extracting BoundTrackParameters from InputTrack |
Definition at line 13 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 13 of file GaussianTrackDensity.ipp
References Acts::Test::stepSize, and Acts::GaussianTrackDensity< input_track_t >::State::trackEntries.
|
private |
Calculates the step size.
y | Position value |
dy | First derivative |
ddy | Second derivative |
Definition at line 145 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 145 of file GaussianTrackDensity.ipp
|
private |
Evaluate the density function and its two first derivatives at the specified coordinate along the beamline.
state | The track density state |
z | z-position along the beamline |
Definition at line 122 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 122 of file GaussianTrackDensity.ipp
References Acts::GaussianTrackDensity< input_track_t >::GaussianTrackDensityStore::addTrackToDensity(), Acts::GaussianTrackDensity< input_track_t >::GaussianTrackDensityStore::densityAndDerivatives(), and Acts::GaussianTrackDensity< input_track_t >::State::trackEntries.
|
private |
Update the current maximum values.
newZ | The new z value |
newValue | The new value at z position |
newSecondDerivative | The new second derivative |
Definition at line 133 of file GaussianTrackDensity.ipp.
View newest version in sPHENIX GitHub at line 133 of file GaussianTrackDensity.ipp
|
private |
The configuration.
Definition at line 134 of file GaussianTrackDensity.hpp.
View newest version in sPHENIX GitHub at line 134 of file GaussianTrackDensity.hpp