Loading [MathJax]/jax/input/TeX/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
41 class MsgStream;
42 
43 namespace Trk {
44 
76 class VxTrackAtVertex : public Trk::ObjectCounter<Trk::VxTrackAtVertex>
77 {
78 
79 public:
84 
88  virtual ~VxTrackAtVertex();
89 
93  VxTrackAtVertex(const VxTrackAtVertex& rhs);
97  VxTrackAtVertex(VxTrackAtVertex&&) noexcept;
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 
195  const TrackParameters* perigeeAtVertex(void) const;
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 
227  void setOrigTrackNoCache(ITrackLink* trk);
228 
232  void setLinTrack(LinearizedTrack* myLinTrack);
233 
237  void setPerigeeAtVertex(TrackParameters* perigee);
238  void setPerigeeAtVertex(NeutralParameters* perigee);
239 
245  void setInitialPerigee(const TrackParameters* perigee);
246 
252  void setInitialPerigee(const NeutralParameters* perigee);
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 
313 protected:
318 
322  double m_trkWeight;
323 
330 
339 
348 
353 
362 
372 
373  // new link structure
375 
376 }; // end of class definitions
377 
380 MsgStream&
381 operator<<(MsgStream& sl, const VxTrackAtVertex& sf);
382 std::ostream&
383 operator<<(std::ostream& sl, const VxTrackAtVertex& sf);
384 
385 } // end of namespace definitions
386 
388 #endif
389 
Trk::VxTrackAtVertex::trackQuality
FitQuality trackQuality(void) const
Returns a pointer to the original track if any.
Trk::VxTrackAtVertex::setImpactPoint3dAtaPlane
void setImpactPoint3dAtaPlane(const AtaPlane *myIP3dAtaPlane)
Set method for ImpactPoint3dAtaPlane.
Definition: VxTrackAtVertex.cxx:379
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
TrackParameters.h
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
Trk::VxTrackAtVertex::m_initialNeutralPerigee
const NeutralParameters * m_initialNeutralPerigee
Definition: VxTrackAtVertex.h:361
Trk::VxTrackAtVertex::m_linState
LinearizedTrack * m_linState
Linearized track, required for the iterative vertex fitting.
Definition: VxTrackAtVertex.h:352
Trk::VxTrackAtVertex::trackOrParticleLink
ITrackLink * trackOrParticleLink(void)
Trk::VxTrackAtVertex::setInitialPerigee
void setInitialPerigee(const TrackParameters *perigee)
This method changes a pointer to original perigee of the track.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::VxTrackAtVertex::operator=
VxTrackAtVertex & operator=(const VxTrackAtVertex &)
Assignment operator.
Definition: VxTrackAtVertex.cxx:242
Trk::VxTrackAtVertex::dump
virtual MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Definition: VxTrackAtVertex.cxx:453
TrkObjectCounter.h
Trk::VxTrackAtVertex::setVtxCompatibility
void setVtxCompatibility(const double)
Trk::VxTrackAtVertex::m_ImpactPoint3dNeutralAtaPlane
const NeutralAtaPlane * m_ImpactPoint3dNeutralAtaPlane
Definition: VxTrackAtVertex.h:371
Trk::VxTrackAtVertex::weight
double weight(void) const
Information about the weight of track in fit (given back by annealing): weight=ndf/2.
NeutralParameters.h
Trk::VxTrackAtVertex::trackOrParticleLink
const ITrackLink * trackOrParticleLink(void) const
Trk::VxTrackAtVertex::setWeight
void setWeight(const double)
Set method for a weight.
Trk::VxTrackAtVertex::ImpactPoint3dNeutralAtaPlane
const NeutralAtaPlane * ImpactPoint3dNeutralAtaPlane(void) const
Returns ImpactPoint3dNeutralAtaPlane.
Trk::VxTrackAtVertex::ImpactPoint3dAtaPlane
const AtaPlane * ImpactPoint3dAtaPlane(void) const
Returns ImpactPoint3dAtaPlane.
Trk::ObjectCounter
Helper to enable counting number of instantiations in debug builds.
Definition: TrkObjectCounter.h:18
Trk::VxTrackAtVertex::m_ImpactPoint3dAtaPlane
const AtaPlane * m_ImpactPoint3dAtaPlane
Pointer to the TrackParameters defined on the Plane with center the actual vertex estimate and passin...
Definition: VxTrackAtVertex.h:370
Trk::VxTrackAtVertex::m_fitQuality
FitQuality m_fitQuality
The chi2 and number of degrees of freedom of the track.
Definition: VxTrackAtVertex.h:317
Trk::VxTrackAtVertex::m_trackOrParticleLink
ITrackLink * m_trackOrParticleLink
Definition: VxTrackAtVertex.h:374
Trk::VxTrackAtVertex::linState
const LinearizedTrack * linState(void) const
Trk::VxTrackAtVertex::setTrackQuality
void setTrackQuality(const FitQuality &trkQuality)
Set methods for various components.
Trk::VxTrackAtVertex::initialNeutralPerigee
const NeutralParameters * initialNeutralPerigee(void) const
Access to the initial perigee parameters of trajectory.
Definition: VxTrackAtVertex.cxx:362
Trk::VxTrackAtVertex::m_neutralPerigeeAtVertex
NeutralParameters * m_neutralPerigeeAtVertex
The perigee parameters of neutrals used in the fit wrt.
Definition: VxTrackAtVertex.h:347
Trk::VxTrackAtVertex::m_trkWeight
double m_trkWeight
Weight of the track with respect to vertex.
Definition: VxTrackAtVertex.h:322
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::VxTrackAtVertex::VxTrackAtVertex
VxTrackAtVertex()
Default constructor.
Definition: VxTrackAtVertex.cxx:30
Trk::VxTrackAtVertex::setImpactPoint3dNeutralAtaPlane
void setImpactPoint3dNeutralAtaPlane(const NeutralAtaPlane *myIP3dNeutralAtaPlane)
Set method for ImpactPoint3dNeutralAtaPlane.
Definition: VxTrackAtVertex.cxx:387
Trk::VxTrackAtVertex::m_VertexCompatibility
double m_VertexCompatibility
Value of the compatibility of the track to the actual vertex, based on the estimation on the distance...
Definition: VxTrackAtVertex.h:329
VxTrackAtVertex.icc
Trk::VxTrackAtVertex::linState
LinearizedTrack * linState(void)
Access method for the perigee linearized track.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::VxTrackAtVertex::perigeeAtVertex
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...
Trk::VxTrackAtVertex::setOrigTrack
void setOrigTrack(ITrackLink *trk)
Setting up the initial track.
Definition: VxTrackAtVertex.cxx:420
Trk::VxTrackAtVertex::m_initialPerigee
const TrackParameters * m_initialPerigee
Pointer to initial (before fit) perigee state of the track.
Definition: VxTrackAtVertex.h:360
Trk::VxTrackAtVertex::~VxTrackAtVertex
virtual ~VxTrackAtVertex()
dtor
Definition: VxTrackAtVertex.cxx:203
Trk::VxTrackAtVertex::m_perigeeAtVertex
TrackParameters * m_perigeeAtVertex
The perigee parameters of tracks used in the fit wrt.
Definition: VxTrackAtVertex.h:338
Trk::VxTrackAtVertex::operator==
bool operator==(const VxTrackAtVertex &data) const
Equality operator required when working with vectors Compares only the equality of the parameters of ...
Definition: VxTrackAtVertex.cxx:344
Trk::VxTrackAtVertex::setInitialPerigee
void setInitialPerigee(const NeutralParameters *perigee)
This method changes a pointer to original perigee of the neutral.
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::VxTrackAtVertex::clone
virtual VxTrackAtVertex * clone() const
Clone method.
Definition: VxTrackAtVertex.cxx:373
LinearizedTrack.h
FitQuality.h
Trk::VxTrackAtVertex::setOrigTrackNoCache
void setOrigTrackNoCache(ITrackLink *trk)
Setting up the initial track, without caching parameters.
Definition: VxTrackAtVertex.cxx:442
Trk::VxTrackAtVertex::neutralPerigeeAtVertex
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...
Trk::VxTrackAtVertex::setPerigeeAtVertex
void setPerigeeAtVertex(TrackParameters *perigee)
Setting up parameters at vertex.
Definition: VxTrackAtVertex.cxx:396
Trk::VxTrackAtVertex::setLinTrack
void setLinTrack(LinearizedTrack *myLinTrack)
Setting up the linearized track.
Definition: VxTrackAtVertex.cxx:412
Trk::VxTrackAtVertex::initialPerigee
const TrackParameters * initialPerigee(void) const
Access to the initial perigee parameters of trajectory.
Definition: VxTrackAtVertex.cxx:351
Trk::VxTrackAtVertex::vtxCompatibility
double vtxCompatibility(void) const
Information about fast compatibility estimation, to be given to the annealing.
Trk::LinearizedTrack
Definition: LinearizedTrack.h:43