ATLAS Offline Software
Loading...
Searching...
No Matches
VxTrackAtVertex.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 VxTrackAtVertex.h - Description
7 -------------------
8 begin : 03-03-2004
9 changes : 28-02-2006 by Kirill Prokofiev
10 email : Kirill.Prokofiev@cern.ch
11 Added pointer to the PerigeeLinearizedTrack required by
12 iterative vertex fitters
13 changes : 28-02-2006 by Giacinto Piacquadio
14 changes : added support for non integer ndf < 2 (2 remains default)
15 (adaptive vertexing methods)
16 changes : 20-03-2006 by Kirill Prokofiev
17 : Equality operator added
18 changes : 27-03-2006 by Kirill Prokofiev
19 added support for storage of the refitted track state
20 for vertex fitters with track smoothing.
21 changes: 06-04-2006 by Giacinto Piacquadio
22 added support for ParametersBase At the ImpactPoint in 3d Plane
23 changes: 08-06-2006 by Kirill Prokofiev
24 set methods added. Allow to use the smoothed chi2 of tracks.
25 changes: 05-12-2006 by Kirill Prokofiev
26 EDM cleanup: private ElementLink, modified FitQuality instead
27 of separate ndf and chi2.
28 ***************************************************************************/
29
30#ifndef VXVERTEX_VXTRACKATVERTEX_H
31#define VXVERTEX_VXTRACKATVERTEX_H
32
39#include <atomic>
40
41class MsgStream;
42
43namespace Trk {
44
75
76class VxTrackAtVertex : public Trk::ObjectCounter<Trk::VxTrackAtVertex>
77{
78
79public:
84
88 virtual ~VxTrackAtVertex();
89
102
107
113 VxTrackAtVertex(double chi2PerTrk,
116
121 VxTrackAtVertex(double chi2PerTrk,
126 VxTrackAtVertex(double chi2PerTrk,
129
135 VxTrackAtVertex(double chi2PerTrk,
138 double ndfPerTrk,
139 LinearizedTrack* linState = nullptr);
140 VxTrackAtVertex(double chi2PerTrk,
142 double ndfPerTrk,
143 LinearizedTrack* linState = nullptr);
144
150 VxTrackAtVertex(double chi2PerTrk,
155 double ndfPerTrk,
156 LinearizedTrack* linState = nullptr);
157 VxTrackAtVertex(double chi2PerTrk,
160 double ndfPerTrk,
161 LinearizedTrack* linState = nullptr);
162
164
168 virtual VxTrackAtVertex* clone() const;
169
173 virtual MsgStream& dump(MsgStream& sl) const;
174
178 virtual std::ostream& dump(std::ostream& sl) const;
179
183 // const Track* origTrack(void) const;
184
189
196
200 const TrackParameters* initialPerigee(void) const;
201
208
212 const NeutralParameters* initialNeutralPerigee(void) const;
213
217 void setTrackQuality(const FitQuality& trkQuality);
218
222 void setOrigTrack(ITrackLink* trk);
223
228
232 void setLinTrack(LinearizedTrack* myLinTrack);
233
237 void setPerigeeAtVertex(TrackParameters* perigee);
239
245 void setInitialPerigee(const TrackParameters* perigee);
246
253
259 bool operator==(const VxTrackAtVertex& data) const;
260
265
266 const LinearizedTrack* linState(void) const;
267
272 double vtxCompatibility(void) const;
273
274 void setVtxCompatibility(const double);
275
280 double weight(void) const;
281
285 void setWeight(const double);
286
290 void setImpactPoint3dAtaPlane(const AtaPlane* myIP3dAtaPlane);
291
295 const AtaPlane* ImpactPoint3dAtaPlane(void) const;
296
301 const NeutralAtaPlane* myIP3dNeutralAtaPlane);
302
307
308 // hack: access methods to the new link:
309 const ITrackLink* trackOrParticleLink(void) const;
310
312
313protected:
318
323
330
339
348
353
362
372
373 // new link structure
375
376}; // end of class definitions
377
380MsgStream&
381operator<<(MsgStream& sl, const VxTrackAtVertex& sf);
382std::ostream&
383operator<<(std::ostream& sl, const VxTrackAtVertex& sf);
384
385} // end of namespace definitions
386
388#endif
389
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition FitQuality.h:97
Helper to enable counting number of instantiations in debug builds.
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
bool operator==(const VxTrackAtVertex &data) const
Equality operator required when working with vectors Compares only the equality of the parameters of ...
void setTrackQuality(const FitQuality &trkQuality)
Set methods for various components.
ITrackLink * m_trackOrParticleLink
void setImpactPoint3dAtaPlane(const AtaPlane *myIP3dAtaPlane)
Set method for ImpactPoint3dAtaPlane.
VxTrackAtVertex & operator=(const VxTrackAtVertex &)
Assignment operator.
ITrackLink * trackOrParticleLink(void)
const NeutralAtaPlane * m_ImpactPoint3dNeutralAtaPlane
const NeutralParameters * initialNeutralPerigee(void) const
Access to the initial perigee parameters of trajectory.
void setPerigeeAtVertex(TrackParameters *perigee)
Setting up parameters at vertex.
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 NeutralAtaPlane * ImpactPoint3dNeutralAtaPlane(void) const
Returns ImpactPoint3dNeutralAtaPlane.
const LinearizedTrack * linState(void) const
void setOrigTrackNoCache(ITrackLink *trk)
Setting up the initial track, without caching parameters.
void setOrigTrack(ITrackLink *trk)
Setting up the initial track.
void setWeight(const double)
Set method for a weight.
const TrackParameters * initialPerigee(void) const
Access to the initial perigee parameters of trajectory.
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...
void setInitialPerigee(const NeutralParameters *perigee)
This method changes a pointer to original perigee of the neutral.
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.
LinearizedTrack * linState(void)
Access method for the perigee linearized track.
FitQuality trackQuality(void) const
Returns a pointer to the original track if any.
double vtxCompatibility(void) const
Information about fast compatibility estimation, to be given to the annealing.
double weight(void) const
Information about the weight of track in fit (given back by annealing): weight=ndf/2.
void setImpactPoint3dNeutralAtaPlane(const NeutralAtaPlane *myIP3dNeutralAtaPlane)
Set method for ImpactPoint3dNeutralAtaPlane.
virtual VxTrackAtVertex * clone() const
Clone method.
const ITrackLink * trackOrParticleLink(void) const
const NeutralParameters * m_initialNeutralPerigee
void setLinTrack(LinearizedTrack *myLinTrack)
Setting up the linearized track.
double m_trkWeight
Weight of the track with respect to vertex.
void setInitialPerigee(const TrackParameters *perigee)
This method changes a pointer to original perigee of the track.
NeutralParameters * m_neutralPerigeeAtVertex
The perigee parameters of neutrals used in the fit wrt.
void setVtxCompatibility(const double)
FitQuality m_fitQuality
The chi2 and number of degrees of freedom of the track.
VxTrackAtVertex()
Default constructor.
virtual ~VxTrackAtVertex()
dtor
const AtaPlane * ImpactPoint3dAtaPlane(void) const
Returns ImpactPoint3dAtaPlane.
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
ParametersT< NeutralParametersDim, Neutral, PlaneSurface > NeutralAtaPlane
ParametersBase< TrackParametersDim, Charged > TrackParameters
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane
-event-from-file