ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::GaussianTrackDensity Class Referencefinal

Implementation of IVertexTrackDensityEstimator modeling reconstructed tracks as two-dimensional Gaussian distributions in (d0, z0) space and sampling the aggregate density distribution at user-requested points along the beam axis. More...

#include <GaussianTrackDensity.h>

Inheritance diagram for Trk::GaussianTrackDensity:
Collaboration diagram for Trk::GaussianTrackDensity:

Classes

class  TrackDensity
struct  TrackDensityEval
struct  TrackEntry

Public Member Functions

virtual double globalMaximum (const std::vector< const Track * > &vectorTrk) const override final
 Find position of global maximum for density function.
virtual double globalMaximum (const std::vector< const Track * > &vectorTrk, std::unique_ptr< ITrackDensity > &density) const override final
 Find position of global maximum for density function.
virtual double globalMaximum (const std::vector< const TrackParameters * > &perigeeList) const override final
 Find position of global maximum for density function.
virtual double globalMaximum (const std::vector< const TrackParameters * > &perigeeList, std::unique_ptr< ITrackDensity > &density) const override final
 Find position of global maximum for density function.
virtual std::pair< double, double > globalMaximumWithWidth (const std::vector< const TrackParameters * > &perigeeList) const override final

Private Member Functions

double globalMaximumImpl (const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
 Find position of global maximum for density function.
std::pair< double, double > globalMaximumWithWidthImpl (const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
 Find position of global maximum with Gaussian width for density function.
void addTracks (const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
 Add a set of tracks to a density object.

Private Attributes

Gaudi::Property< double > m_d0MaxSignificance
Gaudi::Property< double > m_z0MaxSignificance
Gaudi::Property< bool > m_gaussStep

Detailed Description

Implementation of IVertexTrackDensityEstimator modeling reconstructed tracks as two-dimensional Gaussian distributions in (d0, z0) space and sampling the aggregate density distribution at user-requested points along the beam axis.

Author
Dave Casper dcasp.nosp@m.er@u.nosp@m.ci.ed.nosp@m.u
Christos Anastopoulos (Athena MT)

Definition at line 31 of file GaussianTrackDensity.h.

Member Function Documentation

◆ addTracks()

void Trk::GaussianTrackDensity::addTracks ( const std::vector< const TrackParameters * > & perigeeList,
TrackDensity & density ) const
private

Add a set of tracks to a density object.

Parameters
perigeeListSet of track parameters to add.
densityDensity object to which to add.

Definition at line 109 of file GaussianTrackDensity.cxx.

111 {
112 const double d0SignificanceCut = m_d0MaxSignificance * m_d0MaxSignificance;
113 const double z0SignificanceCut = m_z0MaxSignificance * m_z0MaxSignificance;
114
115 for (const TrackParameters* iparam : perigeeList) {
116 if (iparam && iparam->surfaceType() == Trk::SurfaceType::Perigee) {
117 density.addTrack(*(static_cast<const Perigee*>(iparam)),
118 d0SignificanceCut,
119 z0SignificanceCut);
120 }
121 }
122 }
Gaudi::Property< double > m_d0MaxSignificance
Gaudi::Property< double > m_z0MaxSignificance
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ globalMaximum() [1/4]

double Trk::GaussianTrackDensity::globalMaximum ( const std::vector< const Track * > & vectorTrk) const
finaloverridevirtual

Find position of global maximum for density function.

Parameters
vectorTrkList of input tracks.

Definition at line 20 of file GaussianTrackDensity.cxx.

21 {
22 std::vector<const TrackParameters*> perigeeList;
23 perigeeList.reserve(vectorTrk.size());
24
25 for (const Track* itrk : vectorTrk)
26 {
27 perigeeList.push_back(itrk->perigeeParameters());
28 }
29
31 return globalMaximumImpl (perigeeList, d);
32 }
Gaudi::Property< bool > m_gaussStep
double globalMaximumImpl(const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
Find position of global maximum for density function.

◆ globalMaximum() [2/4]

double Trk::GaussianTrackDensity::globalMaximum ( const std::vector< const Track * > & vectorTrk,
std::unique_ptr< ITrackDensity > & density ) const
finaloverridevirtual

Find position of global maximum for density function.

Parameters
vectorTrkList of input tracks.
density[out]Helper to hold density results.

Definition at line 40 of file GaussianTrackDensity.cxx.

42 {
43 std::vector<const TrackParameters*> perigeeList;
44 perigeeList.reserve(vectorTrk.size());
45
46 for (const Track* itrk : vectorTrk)
47 {
48 perigeeList.push_back(itrk->perigeeParameters());
49 }
50 return globalMaximum (perigeeList, density);
51 }
virtual double globalMaximum(const std::vector< const Track * > &vectorTrk) const override final
Find position of global maximum for density function.

◆ globalMaximum() [3/4]

double Trk::GaussianTrackDensity::globalMaximum ( const std::vector< const TrackParameters * > & perigeeList) const
finaloverridevirtual

Find position of global maximum for density function.

Parameters
perigeeListList of input tracks.
vectorTrkList of input tracks.

Definition at line 58 of file GaussianTrackDensity.cxx.

59 {
61 return globalMaximumImpl (perigeeList, d);
62 }

◆ globalMaximum() [4/4]

double Trk::GaussianTrackDensity::globalMaximum ( const std::vector< const TrackParameters * > & perigeeList,
std::unique_ptr< ITrackDensity > & density ) const
finaloverridevirtual

Find position of global maximum for density function.

Parameters
perigeeListList of input tracks.
density[out]Helper to hold density results.

Definition at line 70 of file GaussianTrackDensity.cxx.

72 {
73 auto d = std::make_unique<TrackDensity> (m_gaussStep);
74 TrackDensity* dp = d.get();
75 density = std::move(d);
76 return globalMaximumImpl (perigeeList, *dp);
77 }

◆ globalMaximumImpl()

double Trk::GaussianTrackDensity::globalMaximumImpl ( const std::vector< const TrackParameters * > & perigeeList,
TrackDensity & density ) const
private

Find position of global maximum for density function.

Parameters
pergigeeListList of input tracks.
densityHelper density object.

Definition at line 90 of file GaussianTrackDensity.cxx.

92 {
93 addTracks (perigeeList, density);
94 return density.globalMaximum ();
95 }
void addTracks(const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
Add a set of tracks to a density object.

◆ globalMaximumWithWidth()

std::pair< double, double > Trk::GaussianTrackDensity::globalMaximumWithWidth ( const std::vector< const TrackParameters * > & perigeeList) const
finaloverridevirtual

Definition at line 79 of file GaussianTrackDensity.cxx.

80 {
82 return globalMaximumWithWidthImpl (perigeeList, d);
83 }
std::pair< double, double > globalMaximumWithWidthImpl(const std::vector< const TrackParameters * > &perigeeList, TrackDensity &density) const
Find position of global maximum with Gaussian width for density function.

◆ globalMaximumWithWidthImpl()

std::pair< double, double > Trk::GaussianTrackDensity::globalMaximumWithWidthImpl ( const std::vector< const TrackParameters * > & perigeeList,
TrackDensity & density ) const
private

Find position of global maximum with Gaussian width for density function.

Parameters
pergigeeListList of input tracks.
densityHelper density object.

Definition at line 97 of file GaussianTrackDensity.cxx.

99 {
100 addTracks (perigeeList, density);
101 return density.globalMaximumWithWidth ();
102 }

Member Data Documentation

◆ m_d0MaxSignificance

Gaudi::Property<double> Trk::GaussianTrackDensity::m_d0MaxSignificance
private
Initial value:
{
this,
"MaxD0Significance",
3.5,
"Maximum radial impact parameter significance to use track"
}

Definition at line 230 of file GaussianTrackDensity.h.

230 {
231 this,
232 "MaxD0Significance",
233 3.5,
234 "Maximum radial impact parameter significance to use track"
235 };

◆ m_gaussStep

Gaudi::Property<bool> Trk::GaussianTrackDensity::m_gaussStep
private
Initial value:
{
this,
"GaussianStep",
true,
"Peak search: True means assume Gaussian behavior, False means "
"Newton/parabolic"
}

Definition at line 249 of file GaussianTrackDensity.h.

249 {
250 this,
251 "GaussianStep",
252 true,
253 "Peak search: True means assume Gaussian behavior, False means "
254 "Newton/parabolic"
255 };

◆ m_z0MaxSignificance

Gaudi::Property<double> Trk::GaussianTrackDensity::m_z0MaxSignificance
private
Initial value:
{
this,
"MaxZ0Significance",
12.0,
"Maximum longitudinal impact parameter significance to include track in "
"weight"
}

Definition at line 239 of file GaussianTrackDensity.h.

239 {
240 this,
241 "MaxZ0Significance",
242 12.0,
243 "Maximum longitudinal impact parameter significance to include track in "
244 "weight"
245 };

The documentation for this class was generated from the following files: