ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::VxTrackAtVertex Class Reference

The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designed to store the information about the trajectory fitted to the VxCandidate. More...

#include <VxTrackAtVertex.h>

Inheritance diagram for Trk::VxTrackAtVertex:
Collaboration diagram for Trk::VxTrackAtVertex:

Public Member Functions

 VxTrackAtVertex ()
 Default constructor.
virtual ~VxTrackAtVertex ()
 dtor
 VxTrackAtVertex (const VxTrackAtVertex &rhs)
 Copy constructor.
 VxTrackAtVertex (VxTrackAtVertex &&) noexcept
 Move constructor operator.
VxTrackAtVertexoperator= (const VxTrackAtVertex &)
 Assignment operator.
VxTrackAtVertexoperator= (VxTrackAtVertex &&) noexcept
 Move assignment operator.
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, NeutralParameters *neutralPerigeeAtVertex=nullptr)
 Constructor taking the perigee parameters and corresponding Chi2 value.
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, NeutralParameters *neutralPerigeeAtVertex, const TrackParameters *initialPerigee, const NeutralParameters *initialNeutralPerigee)
 Constructor taking the perigee parameters of the track, chi2, and the initial TrackParameters of the track.
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, const TrackParameters *initialPerigee)
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, NeutralParameters *neutralPerigeeAtVertex, double ndfPerTrk, LinearizedTrack *linState=nullptr)
 Constructor required for iterative vertex fitters only (with and without link to original track).
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, double ndfPerTrk, LinearizedTrack *linState=nullptr)
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, NeutralParameters *neutralPerigeeAtVertex, const TrackParameters *initialPerigee, const NeutralParameters *initialNeutralPerigee, double ndfPerTrk, LinearizedTrack *linState=nullptr)
 Constructor required for iterative vertex fitters only (with and without link to original track).
 VxTrackAtVertex (double chi2PerTrk, TrackParameters *perigeeAtVertex, const TrackParameters *initialPerigee, double ndfPerTrk, LinearizedTrack *linState=nullptr)
 VxTrackAtVertex (ITrackLink *trackOrParticleLink)
virtual VxTrackAtVertexclone () const
 Clone method.
virtual MsgStream & dump (MsgStream &sl) const
 Output Method for MsgStream, to be overloaded by child classes.
virtual std::ostream & dump (std::ostream &sl) const
 Output Method for std::ostream, to be overloaded by child classes.
FitQuality trackQuality (void) const
 Returns a pointer to the original track if any.
const TrackParametersperigeeAtVertex (void) const
 Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory was refitted with the knowledge of the reconstructed vertex.
const TrackParametersinitialPerigee (void) const
 Access to the initial perigee parameters of trajectory.
const NeutralParametersneutralPerigeeAtVertex (void) const
 Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory was refitted with the knowledge of the reconstructed vertex.
const NeutralParametersinitialNeutralPerigee (void) const
 Access to the initial perigee parameters of trajectory.
void setTrackQuality (const FitQuality &trkQuality)
 Set methods for various components.
void setOrigTrack (ITrackLink *trk)
 Setting up the initial track.
void setOrigTrackNoCache (ITrackLink *trk)
 Setting up the initial track, without caching parameters.
void setLinTrack (LinearizedTrack *myLinTrack)
 Setting up the linearized track.
void setPerigeeAtVertex (TrackParameters *perigee)
 Setting up parameters at vertex.
void setPerigeeAtVertex (NeutralParameters *perigee)
void setInitialPerigee (const TrackParameters *perigee)
 This method changes a pointer to original perigee of the track.
void setInitialPerigee (const NeutralParameters *perigee)
 This method changes a pointer to original perigee of the neutral.
bool operator== (const VxTrackAtVertex &data) const
 Equality operator required when working with vectors Compares only the equality of the parameters of the Perigee with which this object was created.
LinearizedTracklinState (void)
 Access method for the perigee linearized track.
const LinearizedTracklinState (void) const
double vtxCompatibility (void) const
 Information about fast compatibility estimation, to be given to the annealing.
void setVtxCompatibility (const double)
double weight (void) const
 Information about the weight of track in fit (given back by annealing): weight=ndf/2.
void setWeight (const double)
 Set method for a weight.
void setImpactPoint3dAtaPlane (const AtaPlane *myIP3dAtaPlane)
 Set method for ImpactPoint3dAtaPlane.
const AtaPlaneImpactPoint3dAtaPlane (void) const
 Returns ImpactPoint3dAtaPlane.
void setImpactPoint3dNeutralAtaPlane (const NeutralAtaPlane *myIP3dNeutralAtaPlane)
 Set method for ImpactPoint3dNeutralAtaPlane.
const NeutralAtaPlaneImpactPoint3dNeutralAtaPlane (void) const
 Returns ImpactPoint3dNeutralAtaPlane.
const ITrackLinktrackOrParticleLink (void) const
ITrackLinktrackOrParticleLink (void)

Static Public Member Functions

static std::size_t numberOfInstantiations ()

Static Public Attributes

static std::atomic_size_t s_numberOfInstantiations

Protected Attributes

FitQuality m_fitQuality
 The chi2 and number of degrees of freedom of the track.
double m_trkWeight
 Weight of the track with respect to vertex.
double m_VertexCompatibility
 Value of the compatibility of the track to the actual vertex, based on the estimation on the distance between the track and the vertex through the IP3dAtaPlane or IP3dNeutralAtaPlane.
TrackParametersm_perigeeAtVertex
 The perigee parameters of tracks used in the fit wrt.
NeutralParametersm_neutralPerigeeAtVertex
 The perigee parameters of neutrals used in the fit wrt.
LinearizedTrackm_linState
 Linearized track, required for the iterative vertex fitting.
const TrackParametersm_initialPerigee
 Pointer to initial (before fit) perigee state of the track.
const NeutralParametersm_initialNeutralPerigee
const AtaPlanem_ImpactPoint3dAtaPlane
 Pointer to the TrackParameters defined on the Plane with center the actual vertex estimate and passing through the point of closest approach in 3d from this vertex to the track, with direction of track perpendicular to the plane.
const NeutralAtaPlanem_ImpactPoint3dNeutralAtaPlane
ITrackLinkm_trackOrParticleLink

Detailed Description

The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designed to store the information about the trajectory fitted to the VxCandidate.

The values of VxTrackAtVertex's datamembers are set in different ways, depending on which Vertex Fitter was used in the reconstruction. The general functionality is the following:

– const initialPerigee(void) const: always returns the initial (before vertex fit) perigee state of the trajectory

– const Trk::Track* origTrack(void) const: returns a pointer to the original track if tracks were used for the vertex fit. In case the vertex was fitted directly out of a vector of ParametersBase, this pointer will be zero.

– const Trk::ParametersBase* perigeeAtVertex(void) const: returns a perigee parameters of the trajectory defined with respect to the fitted vertex. In the case of Full Billoir Vertex Fit or any iterative vertex fit (Sequential, Kalman, etc) with subsequent smoothing, the trajectory is defined at the vertex position: d0 = 0.; z_0 = 0.

In the case no refit of trajectory with the knowledge of the vertex was performed (Billoir Fast fit, iterative vertex fits without smoothing), the trajectory is just extrapolated to the point of the closest approach in the transverse plane to the fitted vertex and perigee parameters with respect to that vertex are calculated.

Author
andre.nosp@m.as.w.nosp@m.ildau.nosp@m.er@c.nosp@m.ern.c.nosp@m.h, Kiril.nosp@m.l.Pr.nosp@m.okofi.nosp@m.ev@c.nosp@m.ern.c.nosp@m.h, Giaci.nosp@m.nto..nosp@m.Piacq.nosp@m.uadi.nosp@m.o@phy.nosp@m.sik..nosp@m.uni-f.nosp@m.reib.nosp@m.urg.d.nosp@m.e

Definition at line 76 of file VxTrackAtVertex.h.

Constructor & Destructor Documentation

◆ VxTrackAtVertex() [1/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( )

Default constructor.

Definition at line 21 of file VxTrackAtVertex.cxx.

22 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
23 , m_fitQuality(Trk::FitQuality(0., 2.))
24 , m_trkWeight(1.)
26 , m_perigeeAtVertex(nullptr)
28 , m_linState(nullptr)
29 , m_initialPerigee(nullptr)
33 , m_trackOrParticleLink(nullptr)
34{
35}
ITrackLink * m_trackOrParticleLink
const NeutralAtaPlane * m_ImpactPoint3dNeutralAtaPlane
LinearizedTrack * m_linState
Linearized track, required for the iterative vertex fitting.
double m_VertexCompatibility
Value of the compatibility of the track to the actual vertex, based on the estimation on the distance...
TrackParameters * m_perigeeAtVertex
The perigee parameters of tracks used in the fit wrt.
const AtaPlane * m_ImpactPoint3dAtaPlane
Pointer to the TrackParameters defined on the Plane with center the actual vertex estimate and passin...
const TrackParameters * m_initialPerigee
Pointer to initial (before fit) perigee state of the track.
const NeutralParameters * m_initialNeutralPerigee
double m_trkWeight
Weight of the track with respect to vertex.
NeutralParameters * m_neutralPerigeeAtVertex
The perigee parameters of neutrals used in the fit wrt.
FitQuality m_fitQuality
The chi2 and number of degrees of freedom of the track.

◆ ~VxTrackAtVertex()

Trk::VxTrackAtVertex::~VxTrackAtVertex ( )
virtual

dtor

Definition at line 194 of file VxTrackAtVertex.cxx.

195{
196 delete m_perigeeAtVertex;
198 delete m_linState;
202}

◆ VxTrackAtVertex() [2/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( const VxTrackAtVertex & rhs)

Copy constructor.

Definition at line 205 of file VxTrackAtVertex.cxx.

206 : Trk::ObjectCounter<Trk::VxTrackAtVertex>(rhs)
207 , m_fitQuality(rhs.m_fitQuality)
208 , m_trkWeight(rhs.m_trkWeight)
209 , m_VertexCompatibility(rhs.m_VertexCompatibility)
210 , m_perigeeAtVertex(rhs.m_perigeeAtVertex ? rhs.m_perigeeAtVertex->clone()
211 : nullptr)
212 , m_neutralPerigeeAtVertex(rhs.m_neutralPerigeeAtVertex
213 ? rhs.m_neutralPerigeeAtVertex->clone()
214 : nullptr)
215 , m_linState(rhs.m_linState ? rhs.m_linState->clone() : nullptr)
216 ,
217 m_initialPerigee(rhs.m_initialPerigee)
218 , m_initialNeutralPerigee(rhs.m_initialNeutralPerigee)
219 , m_ImpactPoint3dAtaPlane(rhs.m_ImpactPoint3dAtaPlane
220 ? new AtaPlane(*rhs.m_ImpactPoint3dAtaPlane)
221 : nullptr)
223 rhs.m_ImpactPoint3dNeutralAtaPlane
224 ? new NeutralAtaPlane(*rhs.m_ImpactPoint3dNeutralAtaPlane)
225 : nullptr)
227 rhs.m_trackOrParticleLink ? rhs.m_trackOrParticleLink->clone() : nullptr)
228{
229}
ParametersT< NeutralParametersDim, Neutral, PlaneSurface > NeutralAtaPlane
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane

◆ VxTrackAtVertex() [3/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( VxTrackAtVertex && rhs)
noexcept

Move constructor operator.

Definition at line 269 of file VxTrackAtVertex.cxx.

270 : m_fitQuality(rhs.m_fitQuality)
271 , m_trkWeight(rhs.m_trkWeight)
272{
273 m_perigeeAtVertex = rhs.m_perigeeAtVertex;
274 rhs.m_perigeeAtVertex = nullptr;
275
276 m_neutralPerigeeAtVertex = rhs.m_neutralPerigeeAtVertex;
277 rhs.m_neutralPerigeeAtVertex = nullptr;
278
279 m_linState = rhs.m_linState;
280 rhs.m_linState = nullptr;
281
282 m_initialPerigee = rhs.m_initialPerigee;
283 m_initialNeutralPerigee = rhs.m_initialNeutralPerigee;
284 m_VertexCompatibility = rhs.m_VertexCompatibility;
285
286 m_ImpactPoint3dAtaPlane = rhs.m_ImpactPoint3dAtaPlane;
287 rhs.m_ImpactPoint3dAtaPlane = nullptr;
288
289 m_ImpactPoint3dNeutralAtaPlane = rhs.m_ImpactPoint3dNeutralAtaPlane;
290 rhs.m_ImpactPoint3dNeutralAtaPlane = nullptr;
291
292 m_trackOrParticleLink = rhs.m_trackOrParticleLink;
293 rhs.m_trackOrParticleLink = nullptr;
294}

◆ VxTrackAtVertex() [4/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
Trk::NeutralParameters * neutralPerigeeAtVertex = nullptr )

Constructor taking the perigee parameters and corresponding Chi2 value.

NOTE: using this constructor does not allow to store the initial (before refit) Perigee parameters of the track.

Definition at line 37 of file VxTrackAtVertex.cxx.

40 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
41 , m_fitQuality(Trk::FitQuality(chi2PerTrk, 2.))
42 , m_trkWeight(1.)
46 , m_linState(nullptr)
47 , m_initialPerigee(nullptr)
51 , m_trackOrParticleLink(nullptr)
52{
53}
const TrackParameters * perigeeAtVertex(void) const
Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory wa...
const NeutralParameters * neutralPerigeeAtVertex(void) const
Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory wa...

◆ VxTrackAtVertex() [5/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
Trk::NeutralParameters * neutralPerigeeAtVertex,
const TrackParameters * initialPerigee,
const NeutralParameters * initialNeutralPerigee )

Constructor taking the perigee parameters of the track, chi2, and the initial TrackParameters of the track.

Definition at line 95 of file VxTrackAtVertex.cxx.

101 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
102 , m_fitQuality(Trk::FitQuality(chi2PerTrk, 2.))
103 , m_trkWeight(1.)
107 , m_linState(nullptr)
110 , m_ImpactPoint3dAtaPlane(nullptr)
112 , m_trackOrParticleLink(nullptr)
113{
114}
const NeutralParameters * initialNeutralPerigee(void) const
Access to the initial perigee parameters of trajectory.
const TrackParameters * initialPerigee(void) const
Access to the initial perigee parameters of trajectory.

◆ VxTrackAtVertex() [6/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
const TrackParameters * initialPerigee )

Definition at line 116 of file VxTrackAtVertex.cxx.

119 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
120 , m_fitQuality(Trk::FitQuality(chi2PerTrk, 2.))
121 , m_trkWeight(1.)
124 , m_neutralPerigeeAtVertex(nullptr)
125 , m_linState(nullptr)
127 , m_initialNeutralPerigee(nullptr)
128 , m_ImpactPoint3dAtaPlane(nullptr)
130 , m_trackOrParticleLink(nullptr)
131{
132}

◆ VxTrackAtVertex() [7/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
Trk::NeutralParameters * neutralPerigeeAtVertex,
double ndfPerTrk,
Trk::LinearizedTrack * linState = nullptr )

Constructor required for iterative vertex fitters only (with and without link to original track).

In addition to the previous ones, it asks for a pointer to the LinearizedTrack

Definition at line 55 of file VxTrackAtVertex.cxx.

60 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
61 , m_fitQuality(Trk::FitQuality(chi2PerTrk, ndfPerTrk))
62 , m_trkWeight(1.)
67 , m_initialPerigee(nullptr)
71 , m_trackOrParticleLink(nullptr)
72{
73}
LinearizedTrack * linState(void)
Access method for the perigee linearized track.

◆ VxTrackAtVertex() [8/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
double ndfPerTrk,
Trk::LinearizedTrack * linState = nullptr )

Definition at line 74 of file VxTrackAtVertex.cxx.

78 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
79 , m_fitQuality(Trk::FitQuality(chi2PerTrk, ndfPerTrk))
80 , m_trkWeight(1.)
85 , m_initialPerigee(nullptr)
89 , m_trackOrParticleLink(nullptr)
90{
91}

◆ VxTrackAtVertex() [9/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
Trk::NeutralParameters * neutralPerigeeAtVertex,
const TrackParameters * initialPerigee,
const NeutralParameters * initialNeutralPerigee,
double ndfPerTrk,
Trk::LinearizedTrack * linState = nullptr )

Constructor required for iterative vertex fitters only (with and without link to original track).

In addition to the previous ones, it asks for a pointer to the LinearizedTrack, but also needs an initial track parameters.

Definition at line 134 of file VxTrackAtVertex.cxx.

142 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
143 , m_fitQuality(Trk::FitQuality(chi2PerTrk, ndfPerTrk))
144 , m_trkWeight(1.)
151 , m_ImpactPoint3dAtaPlane(nullptr)
153 , m_trackOrParticleLink(nullptr)
154{
155}

◆ VxTrackAtVertex() [10/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( double chi2PerTrk,
Trk::TrackParameters * perigeeAtVertex,
const TrackParameters * initialPerigee,
double ndfPerTrk,
Trk::LinearizedTrack * linState = nullptr )

Definition at line 156 of file VxTrackAtVertex.cxx.

161 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
162 , m_fitQuality(Trk::FitQuality(chi2PerTrk, ndfPerTrk))
163 , m_trkWeight(1.)
166 , m_neutralPerigeeAtVertex(nullptr)
169 , m_initialNeutralPerigee(nullptr)
170 , m_ImpactPoint3dAtaPlane(nullptr)
172 , m_trackOrParticleLink(nullptr)
173{
174}

◆ VxTrackAtVertex() [11/11]

Trk::VxTrackAtVertex::VxTrackAtVertex ( Trk::ITrackLink * trackOrParticleLink)

Definition at line 176 of file VxTrackAtVertex.cxx.

177 : Trk::ObjectCounter<Trk::VxTrackAtVertex>()
178 , m_fitQuality(Trk::FitQuality(0., 2.))
179 , m_trkWeight(1.)
181 , m_perigeeAtVertex(nullptr)
182 , m_neutralPerigeeAtVertex(nullptr)
183 , m_linState(nullptr)
184 , m_initialPerigee(nullptr)
185 , m_initialNeutralPerigee(nullptr)
186 , m_ImpactPoint3dAtaPlane(nullptr)
188 , m_trackOrParticleLink(nullptr)
189{
191}
void setOrigTrack(ITrackLink *trk)
Setting up the initial track.
const ITrackLink * trackOrParticleLink(void) const

Member Function Documentation

◆ clone()

VxTrackAtVertex * Trk::VxTrackAtVertex::clone ( ) const
virtual

Clone method.

Reimplemented in Trk::MVFVxTrackAtVertex.

Definition at line 364 of file VxTrackAtVertex.cxx.

365{
366 return new VxTrackAtVertex(*this);
367}
VxTrackAtVertex()
Default constructor.

◆ dump() [1/2]

MsgStream & Trk::VxTrackAtVertex::dump ( MsgStream & sl) const
virtual

Output Method for MsgStream, to be overloaded by child classes.

Reimplemented in Trk::MVFVxTrackAtVertex.

Definition at line 444 of file VxTrackAtVertex.cxx.

445{
446 sl << "Printing VxTrackAtVertex:" << endmsg;
447 const Trk::TrackParameters* inPerigee = this->initialPerigee();
448 if (inPerigee) {
449 sl << "Original Perigee: " << *(inPerigee) << endmsg;
450 } else {
451 sl << "This VxTrackAtVertex was not created using initial perigee"
452 << endmsg;
453 }
454 if (this->perigeeAtVertex() != nullptr) {
455 sl << "Charged Refitted Perigee: " << *(this->perigeeAtVertex()) << endmsg;
456 } else {
457 sl << "Charged Refitted Perigee was not created/stored in pool file." << endmsg;
458 }
459 if (this->neutralPerigeeAtVertex() != nullptr) {
460 sl << "Neutral Refitted Perigee: " << *(this->neutralPerigeeAtVertex()) << std::endl;
461 } else {
462 sl << "Neutral Refitted Perigee was not created/stored in pool file." << std::endl;
463 }
464
465 sl << m_fitQuality << "\tWeight: " << m_trkWeight << endmsg;
466 return sl;
467}
#define endmsg
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ dump() [2/2]

std::ostream & Trk::VxTrackAtVertex::dump ( std::ostream & sl) const
virtual

Output Method for std::ostream, to be overloaded by child classes.

Reimplemented in Trk::MVFVxTrackAtVertex.

Definition at line 470 of file VxTrackAtVertex.cxx.

471{
472 sl << "Printing VxTrackAtVertex:" << std::endl;
473 const Trk::TrackParameters* inPerigee = this->initialPerigee();
474 if (inPerigee) {
475 sl << "Original Perigee: " << *(inPerigee) << std::endl;
476 } else {
477 sl << "This VxTrackAtVertex was not created using initial perigee"
478 << std::endl;
479 }
480 if (this->perigeeAtVertex() != nullptr) {
481 sl << "Charged Refitted Perigee: " << *(this->perigeeAtVertex()) << std::endl;
482 } else {
483 sl << "Charged Refitted Perigee was not created/stored in pool file." << std::endl;
484 }
485 if (this->neutralPerigeeAtVertex() != nullptr) {
486 sl << "Neutral Refitted Perigee: " << *(this->neutralPerigeeAtVertex()) << std::endl;
487 } else {
488 sl << "Neutral Refitted Perigee was not created/stored in pool file." << std::endl;
489 }
490 sl << m_fitQuality << "\tWeight: " << m_trkWeight << std::endl;
491 return sl;
492}

◆ ImpactPoint3dAtaPlane()

const AtaPlane * Trk::VxTrackAtVertex::ImpactPoint3dAtaPlane ( void ) const

Returns ImpactPoint3dAtaPlane.

(const access)

◆ ImpactPoint3dNeutralAtaPlane()

const NeutralAtaPlane * Trk::VxTrackAtVertex::ImpactPoint3dNeutralAtaPlane ( void ) const

Returns ImpactPoint3dNeutralAtaPlane.

(const access)

◆ initialNeutralPerigee()

const NeutralParameters * Trk::VxTrackAtVertex::initialNeutralPerigee ( void ) const

Access to the initial perigee parameters of trajectory.

Definition at line 353 of file VxTrackAtVertex.cxx.

354{
355 if (m_initialNeutralPerigee != nullptr)
356 return m_initialNeutralPerigee; // as default always return the proper
357 // object (be consistent!)
358 if (m_trackOrParticleLink != nullptr)
359 return m_trackOrParticleLink->neutralParameters();
360 return nullptr;
361}

◆ initialPerigee()

const TrackParameters * Trk::VxTrackAtVertex::initialPerigee ( void ) const

Access to the initial perigee parameters of trajectory.

Definition at line 342 of file VxTrackAtVertex.cxx.

343{
344 if (m_initialPerigee != nullptr)
345 return m_initialPerigee; // as default always return the proper object (be
346 // consistent!)
347 if (m_trackOrParticleLink != nullptr)
348 return m_trackOrParticleLink->parameters();
349 return nullptr;
350}

◆ linState() [1/2]

LinearizedTrack * Trk::VxTrackAtVertex::linState ( void )

Access method for the perigee linearized track.

◆ linState() [2/2]

const LinearizedTrack * Trk::VxTrackAtVertex::linState ( void ) const

◆ neutralPerigeeAtVertex()

const NeutralParameters * Trk::VxTrackAtVertex::neutralPerigeeAtVertex ( void ) const

Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory was refitted with the knowledge of the reconstructed vertex.

◆ numberOfInstantiations()

std::size_t Trk::ObjectCounter< Trk::VxTrackAtVertex >::numberOfInstantiations ( )
inlinestaticinherited

Definition at line 25 of file TrkObjectCounter.h.

26 {
27#ifndef NDEBUG
28 return s_numberOfInstantiations.load();
29#endif
30 return 0;
31 }
Helper to enable counting number of instantiations in debug builds.

◆ operator=() [1/2]

VxTrackAtVertex & Trk::VxTrackAtVertex::operator= ( const VxTrackAtVertex & rhs)

Assignment operator.

Definition at line 233 of file VxTrackAtVertex.cxx.

234{
235 if (this != &rhs) {
236 m_fitQuality = rhs.m_fitQuality;
237 m_trkWeight = rhs.m_trkWeight;
238 delete m_perigeeAtVertex;
240 rhs.m_perigeeAtVertex ? rhs.m_perigeeAtVertex->clone() : nullptr;
242 m_neutralPerigeeAtVertex = rhs.m_neutralPerigeeAtVertex
243 ? rhs.m_neutralPerigeeAtVertex->clone()
244 : nullptr;
245 delete m_linState;
246 m_linState = rhs.m_linState ? rhs.m_linState->clone() : nullptr;
247 // m_initialPerigee = rhs.m_initialPerigee ?
248 // rhs.m_initialPerigee->clone() : 0;
249 m_initialPerigee = rhs.m_initialPerigee;
250 m_initialNeutralPerigee = rhs.m_initialNeutralPerigee;
252 m_ImpactPoint3dAtaPlane = rhs.m_ImpactPoint3dAtaPlane
253 ? new AtaPlane(*rhs.m_ImpactPoint3dAtaPlane)
254 : nullptr;
257 rhs.m_ImpactPoint3dNeutralAtaPlane
258 ? new NeutralAtaPlane(*rhs.m_ImpactPoint3dNeutralAtaPlane)
259 : nullptr;
260 m_VertexCompatibility = rhs.m_VertexCompatibility;
263 (rhs.m_trackOrParticleLink ? rhs.m_trackOrParticleLink->clone()
264 : nullptr);
265 }
266 return *this;
267}

◆ operator=() [2/2]

VxTrackAtVertex & Trk::VxTrackAtVertex::operator= ( VxTrackAtVertex && rhs)
noexcept

Move assignment operator.

Definition at line 297 of file VxTrackAtVertex.cxx.

298{
299 if (this != &rhs) {
300 m_fitQuality = rhs.m_fitQuality;
301 m_trkWeight = rhs.m_trkWeight;
302
303 delete m_perigeeAtVertex;
304 m_perigeeAtVertex = rhs.m_perigeeAtVertex;
305 rhs.m_perigeeAtVertex = nullptr;
306
308 m_neutralPerigeeAtVertex = rhs.m_neutralPerigeeAtVertex;
309 rhs.m_neutralPerigeeAtVertex = nullptr;
310
311 delete m_linState;
312 m_linState = rhs.m_linState;
313 rhs.m_linState = nullptr;
314
315 m_initialPerigee = rhs.m_initialPerigee;
316 m_initialNeutralPerigee = rhs.m_initialNeutralPerigee;
317 m_VertexCompatibility = rhs.m_VertexCompatibility;
318
320 m_ImpactPoint3dAtaPlane = rhs.m_ImpactPoint3dAtaPlane;
321 rhs.m_ImpactPoint3dAtaPlane = nullptr;
322
324 m_ImpactPoint3dNeutralAtaPlane = rhs.m_ImpactPoint3dNeutralAtaPlane;
325 rhs.m_ImpactPoint3dNeutralAtaPlane = nullptr;
326
328 m_trackOrParticleLink = rhs.m_trackOrParticleLink;
329 rhs.m_trackOrParticleLink = nullptr;
330 }
331 return *this;
332}

◆ operator==()

bool Trk::VxTrackAtVertex::operator== ( const VxTrackAtVertex & data) const

Equality operator required when working with vectors Compares only the equality of the parameters of the Perigee with which this object was created.

Definition at line 335 of file VxTrackAtVertex.cxx.

336{
337
338 return (this->initialPerigee() == data.initialPerigee());
339}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

◆ perigeeAtVertex()

const TrackParameters * Trk::VxTrackAtVertex::perigeeAtVertex ( void ) const

Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory was refitted with the knowledge of the reconstructed vertex.

◆ setImpactPoint3dAtaPlane()

void Trk::VxTrackAtVertex::setImpactPoint3dAtaPlane ( const AtaPlane * myIP3dAtaPlane)

Set method for ImpactPoint3dAtaPlane.

Definition at line 370 of file VxTrackAtVertex.cxx.

371{
372 if (m_ImpactPoint3dAtaPlane != nullptr)
374 m_ImpactPoint3dAtaPlane = myIP3dAtaPlane;
375}

◆ setImpactPoint3dNeutralAtaPlane()

void Trk::VxTrackAtVertex::setImpactPoint3dNeutralAtaPlane ( const NeutralAtaPlane * myIP3dNeutralAtaPlane)

Set method for ImpactPoint3dNeutralAtaPlane.

Definition at line 378 of file VxTrackAtVertex.cxx.

380{
381 if (m_ImpactPoint3dNeutralAtaPlane != nullptr)
383 m_ImpactPoint3dNeutralAtaPlane = myIP3dNeutralAtaPlane;
384}

◆ setInitialPerigee() [1/2]

void Trk::VxTrackAtVertex::setInitialPerigee ( const NeutralParameters * perigee)

This method changes a pointer to original perigee of the neutral.

If the object has EL to Neutral, the pointer will not be changed. Use setOrigTrack() method for that.

◆ setInitialPerigee() [2/2]

void Trk::VxTrackAtVertex::setInitialPerigee ( const TrackParameters * perigee)

This method changes a pointer to original perigee of the track.

If the object has EL to Track, the pointer will not be changed. Use setOrigTrack() method for that.

◆ setLinTrack()

void Trk::VxTrackAtVertex::setLinTrack ( LinearizedTrack * myLinTrack)

Setting up the linearized track.

Definition at line 403 of file VxTrackAtVertex.cxx.

404{
405 if (m_linState != nullptr)
406 delete m_linState;
407 m_linState = myLinTrack;
408}

◆ setOrigTrack()

void Trk::VxTrackAtVertex::setOrigTrack ( ITrackLink * trk)

Setting up the initial track.

Definition at line 411 of file VxTrackAtVertex.cxx.

412{
414 // setting first the actual pointer:
416
417 // setting the initial perigee to be consistent with this
418 // new track
419 if (trk != nullptr) {
420 // delete initialPerigee before, otherwise memleak!!
421 // if (m_initialPerigee!=0) { delete m_initialPerigee;
422 // m_initialPerigee=0; } const TrackParameters * tmpInPer =
423 // trk->parameters();
424 m_initialPerigee = trk->parameters();
425 m_initialNeutralPerigee = trk->neutralParameters();
426 } else {
427 m_initialPerigee = nullptr;
428 m_initialNeutralPerigee = nullptr;
429 }
430} // end of setOrigTrack method

◆ setOrigTrackNoCache()

void Trk::VxTrackAtVertex::setOrigTrackNoCache ( ITrackLink * trk)

Setting up the initial track, without caching parameters.

Definition at line 433 of file VxTrackAtVertex.cxx.

434{
437
438 m_initialPerigee = nullptr;
439 m_initialNeutralPerigee = nullptr;
440} // end of setOrigTrackNocache method

◆ setPerigeeAtVertex() [1/2]

void Trk::VxTrackAtVertex::setPerigeeAtVertex ( NeutralParameters * perigee)

Definition at line 395 of file VxTrackAtVertex.cxx.

396{
397 if (m_neutralPerigeeAtVertex != nullptr)
399 m_neutralPerigeeAtVertex = perigee;
400}

◆ setPerigeeAtVertex() [2/2]

void Trk::VxTrackAtVertex::setPerigeeAtVertex ( TrackParameters * perigee)

Setting up parameters at vertex.

Definition at line 387 of file VxTrackAtVertex.cxx.

388{
389 if (m_perigeeAtVertex != nullptr)
390 delete m_perigeeAtVertex;
391 m_perigeeAtVertex = perigee;
392}

◆ setTrackQuality()

void Trk::VxTrackAtVertex::setTrackQuality ( const FitQuality & trkQuality)

Set methods for various components.

◆ setVtxCompatibility()

void Trk::VxTrackAtVertex::setVtxCompatibility ( const double )

◆ setWeight()

void Trk::VxTrackAtVertex::setWeight ( const double )

Set method for a weight.

◆ trackOrParticleLink() [1/2]

ITrackLink * Trk::VxTrackAtVertex::trackOrParticleLink ( void )

◆ trackOrParticleLink() [2/2]

const ITrackLink * Trk::VxTrackAtVertex::trackOrParticleLink ( void ) const

◆ trackQuality()

FitQuality Trk::VxTrackAtVertex::trackQuality ( void ) const

Returns a pointer to the original track if any.

Track Quality (Chi2 and ndf per track in a veretx fit)

◆ vtxCompatibility()

double Trk::VxTrackAtVertex::vtxCompatibility ( void ) const

Information about fast compatibility estimation, to be given to the annealing.

◆ weight()

double Trk::VxTrackAtVertex::weight ( void ) const

Information about the weight of track in fit (given back by annealing): weight=ndf/2.

Member Data Documentation

◆ m_fitQuality

FitQuality Trk::VxTrackAtVertex::m_fitQuality
protected

The chi2 and number of degrees of freedom of the track.

Definition at line 317 of file VxTrackAtVertex.h.

◆ m_ImpactPoint3dAtaPlane

const AtaPlane* Trk::VxTrackAtVertex::m_ImpactPoint3dAtaPlane
protected

Pointer to the TrackParameters defined on the Plane with center the actual vertex estimate and passing through the point of closest approach in 3d from this vertex to the track, with direction of track perpendicular to the plane.

Needed by the IVertexTrackCompatibilityEstimator to estimate in a faster way the compatibility of a vertex with the track.

Definition at line 370 of file VxTrackAtVertex.h.

◆ m_ImpactPoint3dNeutralAtaPlane

const NeutralAtaPlane* Trk::VxTrackAtVertex::m_ImpactPoint3dNeutralAtaPlane
protected

Definition at line 371 of file VxTrackAtVertex.h.

◆ m_initialNeutralPerigee

const NeutralParameters* Trk::VxTrackAtVertex::m_initialNeutralPerigee
protected

Definition at line 361 of file VxTrackAtVertex.h.

◆ m_initialPerigee

const TrackParameters* Trk::VxTrackAtVertex::m_initialPerigee
protected

Pointer to initial (before fit) perigee state of the track.

It is stored separately for the back-compatibility issues: in some cases the vertex fit may be done directly on the vector of TrackParameterss, instead of vector of tracks.

Definition at line 360 of file VxTrackAtVertex.h.

◆ m_linState

LinearizedTrack* Trk::VxTrackAtVertex::m_linState
protected

Linearized track, required for the iterative vertex fitting.

Definition at line 352 of file VxTrackAtVertex.h.

◆ m_neutralPerigeeAtVertex

NeutralParameters* Trk::VxTrackAtVertex::m_neutralPerigeeAtVertex
protected

The perigee parameters of neutrals used in the fit wrt.

the fitted vertex. In case the vertex fitter used includes smoothing, this perigee state is set to refitted neutral state after the fit. These values are written to the VxPrimary part of the CBNT.

Definition at line 347 of file VxTrackAtVertex.h.

◆ m_perigeeAtVertex

TrackParameters* Trk::VxTrackAtVertex::m_perigeeAtVertex
protected

The perigee parameters of tracks used in the fit wrt.

the fitted vertex. In case the vertex fitter used includes smoothing, this perigee state is set to refitted track state after the fit. These values are written to the VxPrimary part of the CBNT.

Definition at line 338 of file VxTrackAtVertex.h.

◆ m_trackOrParticleLink

ITrackLink* Trk::VxTrackAtVertex::m_trackOrParticleLink
protected

Definition at line 374 of file VxTrackAtVertex.h.

◆ m_trkWeight

double Trk::VxTrackAtVertex::m_trkWeight
protected

Weight of the track with respect to vertex.

Definition at line 322 of file VxTrackAtVertex.h.

◆ m_VertexCompatibility

double Trk::VxTrackAtVertex::m_VertexCompatibility
protected

Value of the compatibility of the track to the actual vertex, based on the estimation on the distance between the track and the vertex through the IP3dAtaPlane or IP3dNeutralAtaPlane.

Definition at line 329 of file VxTrackAtVertex.h.

◆ s_numberOfInstantiations

std::atomic_size_t Trk::ObjectCounter< Trk::VxTrackAtVertex >::s_numberOfInstantiations
inlinestaticinherited

Definition at line 22 of file TrkObjectCounter.h.


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