ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Trk::AlignTrack Class Reference

#include <AlignTrack.h>

Inheritance diagram for Trk::AlignTrack:
Collaboration diagram for Trk::AlignTrack:

Public Types

enum  AlignTrackType {
  Unknown = 0, Original = 1, NormalRefitted = 2, BeamspotConstrained = 3,
  VertexConstrained = 4, VertexMember = 5, NTrackTypes
}
 

Public Member Functions

 AlignTrack (const Track &associatedTrack)
 constructor takes the track containing the original TrackStateOnSurface objects More...
 
 AlignTrack (const Track &associatedTrack, AlignTSOSCollection *alignTSOSCollection)
 constructor takes collection of alignTSOS and the track containing the original TrackStateOnSurface objects More...
 
 AlignTrack (const AlignTrack &alignTrack)
 copy constructor More...
 
virtual ~AlignTrack ()
 destructor More...
 
AlignTrackoperator= (const AlignTrack &alignTrack)
 assignment operator More...
 
void setAlignTSOSCollection (AlignTSOSCollection *atsosColl)
 sets collection of AlignTSOS More...
 
const AlignTSOSCollectionalignTSOSCollection () const
 returns collection of alignTSOS More...
 
AlignTSOSCollection::const_iterator firstAtsos () const
 retrieve iterator pointer to first element in collection More...
 
AlignTSOSCollection::const_iterator lastAtsos () const
 returns iterator pointer to last element in collection More...
 
AlignTSOSCollection::iterator firstAtsos ()
 retrieve non-const iterator pointer to first element in collection More...
 
AlignTSOSCollection::iterator lastAtsos ()
 returns non-const iterator pointer to last element in collection More...
 
const TrackoriginalTrack () const
 retrieve pointer to original track More...
 
void setOriginalTrack (const Track *track)
 set pointer to original track More...
 
AlignTrackType type () const
 get and set the refit type More...
 
void setType (AlignTrackType type)
 
void doFindPerigee () const
 For the AlignTrack, if there is pseudo-measurement in the TSOS collection, the perigee will not alway be in the first position. More...
 
bool isSLTrack () const
 method to determine whether a straight line track or not More...
 
void dump (MsgStream &msg)
 dump align track information More...
 
const Amg::SymMatrixXlocalErrorMatrix () const
 local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar() More...
 
const Amg::SymMatrixXlocalErrorMatrixInv () const
 inverse local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar() More...
 
int nAlignTSOSMeas () const
 number of alignTSOS (including scatterers if included on AlignTrack More...
 
const std::vector< AlignModuleDerivatives > * derivatives () const
 The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w.r.t. More...
 
void setDerivatives (std::vector< AlignModuleDerivatives > *vec)
 
const std::vector< AlignModuleDerivatives > * derivativeErr () const
 The Amg::VectorX is a vector of errors in first-derivatives of the alignTSOS on the alignTrack w.r.t. More...
 
void setDerivativeErr (std::vector< AlignModuleDerivatives > *vec)
 
const std::vector< std::pair< AlignModule *, std::vector< double > > > * actualSecondDerivatives () const
 The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w.r.t. More...
 
void setActualSecondDerivatives (std::vector< std::pair< AlignModule *, std::vector< double > > > *vec)
 
const Amg::VectorXresidualVector () const
 Vector of residuals of the alignTSOS on the alignTrack, to be set by AlignTrackDresser. More...
 
void setResidualVector (Amg::VectorX *vec)
 
const Amg::SymMatrixXweightMatrix () const
 Weight matrix is W from Si alignment (see Eqn. More...
 
void setWeightMatrix (Amg::SymMatrixX *mat)
 
const Amg::SymMatrixXweightMatrixFirstDeriv () const
 First deriv weight matrix can be either W from Si alignment (see Eqn. More...
 
void setWeightMatrixFirstDeriv (Amg::SymMatrixX *mat)
 
double chi2 () const
 locally calculated chi2 More...
 
void setChi2 (double chi2)
 
double chi2dof () const
 locally calculated chi2 More...
 
void setChi2dof (double chi2dof)
 
const Amg::MatrixXderivativeMatrix () const
 set and get derivative matrix More...
 
void setDerivativeMatrix (const Amg::MatrixX *matrix)
 
const Amg::SymMatrixXfullCovarianceMatrix () const
 set and get full covariance matrix More...
 
void setFullCovarianceMatrix (const Amg::SymMatrixX *matrix)
 
double trackAlignParamQuality (int i) const
 set and get array (one entry per alignment parameter) of fit chi2 of chi2 vs. More...
 
void setTrackAlignParamQuality (int i, double val)
 
const Trk::TracktrackWithoutScattering () const
 returns track with ScatteringAngle pointers all set to zero (used for refit by iPat) More...
 
const AlignVertexgetVtx () const
 set and get pointer to the associated vertex More...
 
AlignVertexgetVtx ()
 
void setVtx (AlignVertex *const vtx)
 
bool refitD0 () const
 get refit flags More...
 
bool refitZ0 () const
 
bool refitPhi () const
 
bool refitTheta () const
 
bool refitQovP () const
 
void setRefitD0 (bool flag)
 set refit flags More...
 
void setRefitZ0 (bool flag)
 
void setRefitPhi (bool flag)
 
void setRefitTheta (bool flag)
 
void setRefitQovP (bool flag)
 
bool isValid () const
 returns true if the track has non-nullptr fitQuality and non-empty Trk::TrackStates More...
 
const FitQualityfitQuality () const
 return a pointer to the fit quality const-overload More...
 
FitQualityfitQuality ()
 return a pointer to the fit quality non-const overload More...
 
void setFitQuality (std::unique_ptr< FitQuality > quality)
 set FitQuality. More...
 
const Trk::TrackStatestrackStateOnSurfaces () const
 return a pointer to a const DataVector of const TrackStateOnSurfaces. More...
 
Trk::TrackStatestrackStateOnSurfaces ()
 return a pointer to a DataVector of const TrackStateOnSurfaces. More...
 
void setTrackStateOnSurfaces (std::unique_ptr< Trk::TrackStates > input)
 Set the TrackStateOnSurfaces. More...
 
const TrackInfoinfo () const
 Returns a const ref to info of a const tracks. More...
 
TrackInfoinfo ()
 returns a ref to the info. More...
 
void setInfo (const TrackInfo &input)
 set the info. More...
 
const Trk::TrackSummarytrackSummary () const
 Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr) More...
 
Trk::TrackSummarytrackSummary ()
 Returns a pointer to the Trk::TrackSummary owned by this track (could be nullptr) More...
 
void setTrackSummary (std::unique_ptr< Trk::TrackSummary > input)
 Set the track summary. More...
 
const PerigeeperigeeParameters () const
 return Perigee. More...
 
const DataVector< const TrackParameters > * trackParameters () const
 Return a pointer to a vector of TrackParameters. More...
 
const DataVector< const MeasurementBase > * measurementsOnTrack () const
 return a pointer to a vector of MeasurementBase (NOT including any that come from outliers). More...
 
const DataVector< const MeasurementBase > * outliersOnTrack () const
 return a pointer to a vector of MeasurementBase, which represent outliers (i.e. More...
 
void resetCaches ()
 reset all caches More...
 

Static Public Member Functions

static bool isSLTrack (const Track *track)
 static method to determine whether a track is straight line or not More...
 
static void dumpTrackInfo (const Track &track, MsgStream &msg)
 dump track information More...
 
static void dumpLessTrackInfo (const Track &track, MsgStream &msg)
 dump less track information More...
 
static std::size_t numberOfInstantiations ()
 

Static Public Attributes

static std::atomic_size_t s_numberOfInstantiations
 

Protected Types

typedef Trk::TrackStates::const_iterator TSoS_iterator
 

Protected Member Functions

void findPerigee () const
 Find perigee in the vector of track parameters. More...
 
void copyHelper (const Track &rhs)
 Helper method to factor common part of copy ctor and copy assignment. More...
 

Protected Attributes

std::unique_ptr< TrackStatesm_trackStateVector = nullptr
 TrackStateOnSurface. More...
 
CxxUtils::CachedValue< DataVector< const TrackParameters > > m_cachedParameterVector {}
 A vector of TrackParameters: these can be any of the classes that derive from Trk::TrackParameters, for example, Perigee, MeasuredPerigee, AtaCylinder etc. More...
 
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedMeasurementVector {}
 A vector of MeasurementBase: these objects represent the "hits" on the track (but not outliers - see m_cachedOutlierVector) More...
 
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedOutlierVector {}
 These objects represent the "outliers" on the track. More...
 
CxxUtils::CachedValue< const Perigee * > m_perigeeParameters {}
 A pointer to the Track's Perigee parameters. More...
 
std::unique_ptr< FitQualitym_fitQuality {nullptr}
 A pointer to the Track's FitQuality. More...
 
std::unique_ptr< Trk::TrackSummarym_trackSummary {nullptr}
 Datamember to cache the TrackSummary. More...
 
Trk::TrackInfo m_trackInfo {}
 This is a class which stores the identity of where the track was created, fitted, which properties the reconstruction had. More...
 

Private Member Functions

 AlignTrack ()
 
void setAlignParameters ()
 sets derivatives of alignment parameters More...
 
void findPerigeeImpl () const
 find PerigeeImpl. More...
 

Private Attributes

const Trackm_originalTrack
 point to original track More...
 
AlignTrackType m_type
 refit type of this alignTrack More...
 
int m_nAlignTSOSMeas
 variables More...
 
AlignTSOSCollectionm_alignTSOSCollection {}
 collection of alignTSOS that make up the alignTrack More...
 
Amg::SymMatrixXm_localErrorMat
 matrix containing local error matrices along diagonal More...
 
Amg::SymMatrixXm_localErrorMatInv
 inverse matrix containing local error matrices along diagonal More...
 
const Amg::MatrixXm_derivativeMatrix
 matrix containing derivative matrix from track fitter More...
 
const Amg::SymMatrixXm_fullCovarianceMatrix
 matrix containing full covariance matrix from track fitter More...
 
std::vector< AlignModuleDerivatives > * m_derivatives
 
std::vector< AlignModuleDerivatives > * m_derivativeErr
 
std::vector< std::pair< AlignModule *, std::vector< double > > > * m_actualSecondDerivatives
 
Amg::VectorXm_residuals
 
Amg::MatrixXm_weights
 
Amg::MatrixXm_weightsFirstDeriv
 
double m_chi2
 
double m_chi2dof
 
AlignVertexm_vtx
 pointer to the associated vertex More...
 
bool m_refitD0
 
bool m_refitZ0
 
bool m_refitPhi
 
bool m_refitTheta
 
bool m_refitQovP
 
double * m_trackAlignParamQuality
 
CxxUtils::CachedUniquePtr< Trk::Trackm_trackWithoutScattering
 

describes the quality of contribution to track to alignment parameter (used by shifting derivatives)

More...
 

Detailed Description

Definition at line 41 of file AlignTrack.h.

Member Typedef Documentation

◆ TSoS_iterator

Definition at line 228 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

Member Enumeration Documentation

◆ AlignTrackType

Enumerator
Unknown 

default type

Original 

not refitted, just copy constructed from original Track

NormalRefitted 

normally refitted, without adding any pseudo-measurement

BeamspotConstrained 

refitted with beamspot constraint

VertexConstrained 

refitted with vertex constraint

VertexMember 

Refitted with 3DoF from the VTX.

NTrackTypes 

total number of track types

Definition at line 45 of file AlignTrack.h.

45  {
46  Unknown = 0,
47  Original = 1,
48  NormalRefitted = 2,
50  VertexConstrained = 4,
51  VertexMember = 5,
52 
54  };

Constructor & Destructor Documentation

◆ AlignTrack() [1/4]

AlignTrack::AlignTrack ( const Track associatedTrack)

constructor takes the track containing the original TrackStateOnSurface objects

Definition at line 17 of file AlignTrack.cxx.

18  : Track(associatedTrack)
19  , m_originalTrack(nullptr)
20  , m_type(Unknown)
21  , m_nAlignTSOSMeas(0)
22  , m_alignTSOSCollection(nullptr)
23  , m_localErrorMat(nullptr)
24  , m_localErrorMatInv(nullptr)
25  , m_derivativeMatrix(nullptr)
26  , m_fullCovarianceMatrix(nullptr)
27  , m_derivatives(nullptr)
28  , m_derivativeErr(nullptr)
29  , m_actualSecondDerivatives(nullptr)
30  , m_residuals(nullptr)
31  , m_weights(nullptr)
32  , m_weightsFirstDeriv(nullptr)
33  , m_chi2(0.)
34  , m_chi2dof(0.)
35  , m_trackAlignParamQuality(new double[6])
37  {
38  for (int i=0;i<6;i++) m_trackAlignParamQuality[i]=0.;
39  m_vtx=nullptr;
40  m_refitD0=true;
41  m_refitZ0=true;
42  m_refitPhi=true;
43  m_refitTheta=true;
44  m_refitQovP=true;
45  }

◆ AlignTrack() [2/4]

AlignTrack::AlignTrack ( const Track associatedTrack,
AlignTSOSCollection alignTSOSCollection 
)

constructor takes collection of alignTSOS and the track containing the original TrackStateOnSurface objects

Definition at line 48 of file AlignTrack.cxx.

50  : Track(associatedTrack)
51  , m_originalTrack(nullptr)
52  , m_type(Unknown)
53  , m_nAlignTSOSMeas(0)
54  , m_localErrorMat(nullptr)
55  , m_localErrorMatInv(nullptr)
56  , m_derivativeMatrix(nullptr)
57  , m_fullCovarianceMatrix(nullptr)
58  , m_derivatives(nullptr)
59  , m_derivativeErr(nullptr)
60  , m_actualSecondDerivatives(nullptr)
61  , m_residuals(nullptr)
62  , m_weights(nullptr)
63  , m_weightsFirstDeriv(nullptr)
64  , m_chi2(0.)
65  , m_chi2dof(0.)
66  , m_trackAlignParamQuality(new double[6])
68  {
69  for (int i=0;i<6;i++) m_trackAlignParamQuality[i]=0.;
71  m_vtx=nullptr;
72  m_refitD0=true;
73  m_refitZ0=true;
74  m_refitPhi=true;
75  m_refitTheta=true;
76  m_refitQovP=true;
77  }

◆ AlignTrack() [3/4]

AlignTrack::AlignTrack ( const AlignTrack alignTrack)

copy constructor

Definition at line 80 of file AlignTrack.cxx.

81  : Track(atrack)
82  , m_originalTrack(atrack.m_originalTrack)
83  , m_type(atrack.m_type)
84  , m_nAlignTSOSMeas(atrack.m_nAlignTSOSMeas)
85  , m_localErrorMat(atrack.m_localErrorMat ?
86  new Amg::SymMatrixX(*(atrack.m_localErrorMat)) : nullptr)
87  , m_localErrorMatInv(atrack.m_localErrorMatInv ?
88  new Amg::SymMatrixX(*(atrack.m_localErrorMatInv)) : nullptr)
89  , m_derivativeMatrix(atrack.m_derivativeMatrix ?
90  new Amg::MatrixX(*(atrack.m_derivativeMatrix)) : nullptr)
91  , m_fullCovarianceMatrix(atrack.m_fullCovarianceMatrix ?
92  new Amg::SymMatrixX(*(atrack.m_fullCovarianceMatrix)) : nullptr)
93  , m_derivatives(atrack.m_derivatives ?
94  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivatives)) : nullptr)
95  , m_derivativeErr(atrack.m_derivativeErr ?
96  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivativeErr)) : nullptr)
97  , m_actualSecondDerivatives(atrack.m_actualSecondDerivatives ?
98  new std::vector<std::pair<AlignModule*,std::vector<double> > > (*(atrack.m_actualSecondDerivatives)) : nullptr)
99  , m_residuals(atrack.m_residuals ?
100  new Amg::VectorX(*(atrack.m_residuals)) : nullptr)
101  , m_weights(atrack.m_weights ?
102  new Amg::SymMatrixX(*(atrack.m_weights)) : nullptr)
103  , m_weightsFirstDeriv(atrack.m_weightsFirstDeriv ?
104  new Amg::SymMatrixX(*(atrack.m_weightsFirstDeriv)) : nullptr)
105  , m_chi2(atrack.m_chi2)
106  , m_chi2dof(atrack.m_chi2dof)
107  , m_trackAlignParamQuality(new double[6])
109  {
110  if (atrack.m_trackWithoutScattering) {
111  m_trackWithoutScattering.set(std::make_unique<Trk::Track>(*(atrack.m_trackWithoutScattering)));
112  }
113 
114  for (int i=0;i<6;i++)
115  m_trackAlignParamQuality[i] = atrack.m_trackAlignParamQuality[i];
116 
117  // copy AlignTSOSCollection
118  if(atrack.m_alignTSOSCollection!=nullptr) {
119  AlignTSOSCollection * aTSOScoll = new AlignTSOSCollection;
120  aTSOScoll->reserve(atrack.m_alignTSOSCollection->size());
121  AlignTSOSIt itAtsos_end = atrack.m_alignTSOSCollection->end();
122  for(AlignTSOSIt itAtsos = atrack.m_alignTSOSCollection->begin(); itAtsos!=itAtsos_end; ++itAtsos) {
123  assert(*itAtsos!=0); // check that is defined.
124  AlignTSOS * atsos = new AlignTSOS(**itAtsos);
125  aTSOScoll->push_back(atsos);
126  }
127  m_alignTSOSCollection=aTSOScoll;
128  }
129  else
130  m_alignTSOSCollection=nullptr;
131 
132  findPerigee();
133  m_vtx=nullptr;
134  m_refitD0=true;
135  m_refitZ0=true;
136  m_refitPhi=true;
137  m_refitTheta=true;
138  m_refitQovP=true;
139  }

◆ ~AlignTrack()

AlignTrack::~AlignTrack ( )
virtual

destructor

Definition at line 220 of file AlignTrack.cxx.

221  {
223  delete m_residuals; m_residuals=nullptr;
224  delete m_weights; m_weights=nullptr;
226 
227  delete m_derivatives; m_derivatives=nullptr;
228  delete m_derivativeErr; m_derivativeErr=nullptr;
230 
231  delete m_localErrorMat; m_localErrorMat=nullptr;
232  delete m_localErrorMatInv; m_localErrorMatInv=nullptr;
233 
235  delete m_derivativeMatrix; m_derivativeMatrix=nullptr;
236 
237  delete [] m_trackAlignParamQuality;
238  }

◆ AlignTrack() [4/4]

Trk::AlignTrack::AlignTrack ( )
private

Member Function Documentation

◆ actualSecondDerivatives()

const std::vector<std::pair<AlignModule*,std::vector<double> > >* Trk::AlignTrack::actualSecondDerivatives ( ) const
inline

The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w.r.t.

a particular alignment parameter. There is one Amg::VectorX in the vector for each alignment parameter of each align module. Set by DerivCalcTool.

Definition at line 146 of file AlignTrack.h.

146 { return m_actualSecondDerivatives; }

◆ alignTSOSCollection()

const AlignTSOSCollection * AlignTrack::alignTSOSCollection ( ) const
inline

returns collection of alignTSOS

Definition at line 267 of file AlignTrack.h.

267 { return m_alignTSOSCollection; }

◆ chi2()

double Trk::AlignTrack::chi2 ( ) const
inline

locally calculated chi2

Definition at line 165 of file AlignTrack.h.

165 { return m_chi2; }

◆ chi2dof()

double Trk::AlignTrack::chi2dof ( ) const
inline

locally calculated chi2

Definition at line 169 of file AlignTrack.h.

169 { return m_chi2dof; }

◆ copyHelper()

void Track::copyHelper ( const Track rhs)
protectedinherited

Helper method to factor common part of copy ctor and copy assignment.

Definition at line 56 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

56  {
57  // set the author to be that of the Track being copied.
58  m_trackInfo = rhs.m_trackInfo;
59 
60  // create & copy other variables if available
61  if (rhs.fitQuality() != nullptr) {
62  m_fitQuality = std::make_unique<Trk::FitQuality>(*(rhs.m_fitQuality));
63  }
64  // create & copy other variables
65  if (rhs.trackSummary() != nullptr) {
66  m_trackSummary = std::make_unique<Trk::TrackSummary>(*(rhs.m_trackSummary));
67  }
68  // Create the TrackStateVector and the perigeeParameters
69 
70  if (rhs.m_trackStateVector != nullptr) {
71  m_trackStateVector = std::make_unique<TrackStates>();
72  m_trackStateVector->reserve(rhs.m_trackStateVector->size());
73 
74  TSoS_iterator itTSoSEnd = rhs.m_trackStateVector->cend();
75  for (TSoS_iterator itTSoS = rhs.m_trackStateVector->cbegin();
76  itTSoS != itTSoSEnd; ++itTSoS) {
77  assert(*itTSoS != nullptr); // check that is defined.
78  // clone and store
79  TrackStateOnSurface* tsos = (**itTSoS).clone();
80  m_trackStateVector->push_back(tsos);
81  // Check if this a perigee so we can already cache it
82  if (tsos != nullptr && tsos->type(TrackStateOnSurface::Perigee)) {
83  const Trk::Perigee* perigee = nullptr;
84  const Trk::TrackParameters* tp = tsos->trackParameters();
85  if (tp && tp->type() == Trk::AtaSurface &&
86  tp->surfaceType() == Trk::SurfaceType::Perigee) {
87  perigee = static_cast<const Trk::Perigee*>(tp);
88  }
89  if (perigee != nullptr) {
90  m_perigeeParameters.store(perigee); // Now they will be valid
91  }
92  }
93  }
94  }
95 }

◆ derivativeErr()

const std::vector<AlignModuleDerivatives>* Trk::AlignTrack::derivativeErr ( ) const
inline

The Amg::VectorX is a vector of errors in first-derivatives of the alignTSOS on the alignTrack w.r.t.

a particular alignment parameter. There is one Amg::VectorX in the vector for each alignment parameter of each align module. Set by DerivCalcTool.

Definition at line 140 of file AlignTrack.h.

140 { return m_derivativeErr; }

◆ derivativeMatrix()

const Amg::MatrixX* Trk::AlignTrack::derivativeMatrix ( ) const
inline

set and get derivative matrix

Definition at line 173 of file AlignTrack.h.

173 { return m_derivativeMatrix; }

◆ derivatives()

const std::vector<AlignModuleDerivatives>* Trk::AlignTrack::derivatives ( ) const
inline

The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w.r.t.

a particular alignment parameter. There is one Amg::VectorX in the vector for each alignment parameter of each align module. Set by DerivCalcTool.

Definition at line 133 of file AlignTrack.h.

133 { return m_derivatives; }

◆ doFindPerigee()

void Trk::AlignTrack::doFindPerigee ( ) const
inline

For the AlignTrack, if there is pseudo-measurement in the TSOS collection, the perigee will not alway be in the first position.

We should explicitly do the perigee finding. Fortunately, base Class already has a protected function which loop over the TSOS colleciton to do perigee search and assigin the perigee parameters at the perigee. Just call it

Definition at line 104 of file AlignTrack.h.

104 { findPerigee();}

◆ dump()

void AlignTrack::dump ( MsgStream &  msg)

dump align track information

Definition at line 316 of file AlignTrack.cxx.

317  {
318  msg<<"dumping AlignTrack"<<endmsg;
319  double chi2=0.;
320  int imeas(1);
321  if (m_alignTSOSCollection) {
322  int natsos = m_alignTSOSCollection->size();
323  for (int iatsos=0;iatsos<natsos;iatsos++) {
324  const AlignTSOS* atsos=(*m_alignTSOSCollection)[iatsos];
325  std::vector<Residual>::const_iterator itRes = atsos->firstResidual();
326  std::vector<Residual>::const_iterator itRes_end = atsos->lastResidual();
327  for ( ; itRes != itRes_end; ++itRes,++imeas) {
328  double resNorm = itRes->residualNorm();
329  chi2 += resNorm*resNorm;
330  //msg<<"resNorm="<<resNorm
331  // <<", errorMat("<<imeas<<")="<<(*m_localErrorMat)(imeas,imeas)
332  // <<endmsg;
333  }
334  msg<<"iatsos "<<iatsos<<", chi2="<<chi2<<*atsos<<endmsg;
335  }
336  }
337  msg<<"total chi2: "<<m_chi2<<endmsg;
338  }

◆ dumpLessTrackInfo()

void AlignTrack::dumpLessTrackInfo ( const Track track,
MsgStream &  msg 
)
static

dump less track information

Definition at line 276 of file AlignTrack.cxx.

277  {
278  int ntsos(0);
279  for (const TrackStateOnSurface* tsos : *track.trackStateOnSurfaces()) {
280  msg<<"ntsos "<<ntsos<<":"<<", type "<<tsos->dumpType();
281  //msg << " perigee center of this TSOS: "<< tsos->trackParameters()->associatedSurface()->center() << endmsg;
282 
283  if (tsos->type(TrackStateOnSurface::Perigee))
284  msg << ", Perigee"<<endmsg;
285 
286  else if (tsos->type(TrackStateOnSurface::Outlier))
287  msg << ", Outlier"<<endmsg;
288 
289  else if ( !tsos->type(TrackStateOnSurface::Scatterer) &&
290  !tsos->type(TrackStateOnSurface::InertMaterial)) {
291  msg << "," << ( tsos->fitQualityOnSurface() )<<endmsg;
292  }
293 
294  else {
295 
296  const MaterialEffectsBase* meb = tsos->materialEffectsOnTrack();
297  const MaterialEffectsOnTrack* meot = dynamic_cast<const MaterialEffectsOnTrack*>(meb);
298 
299  if (meot) {
300  msg<<", meot";
301  if (meot->scatteringAngles())
302  msg<<", have angles"<<endmsg;
303  else
304  msg<<", no angles"<<endmsg;
305  }
306  else if (tsos->type(TrackStateOnSurface::InertMaterial))
307  msg<<", InertMaterial"<<endmsg;
308  else
309  msg << ", hmm... no material effects on track!"<<endmsg;
310  }
311  ++ntsos;
312  }
313  }

◆ dumpTrackInfo()

void AlignTrack::dumpTrackInfo ( const Track track,
MsgStream &  msg 
)
static

dump track information

Definition at line 269 of file AlignTrack.cxx.

270  {
271  for (const TrackStateOnSurface* tsos : *track.trackStateOnSurfaces())
272  msg<<*tsos;
273  }

◆ findPerigee()

void Track::findPerigee ( ) const
protectedinherited

Find perigee in the vector of track parameters.

It can be used to lazy-init the m_perigeeParameters

Definition at line 123 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

123  {
124  if (!m_perigeeParameters.isValid()) {
125  findPerigeeImpl();
126  }
127 }

◆ findPerigeeImpl()

void Track::findPerigeeImpl ( ) const
privateinherited

find PerigeeImpl.

Assumes that Perigee parameters are currently inValid.

Definition at line 129 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

129  {
130  // loop through all passed parameters and, if there is a at Perigee in there,
131  // assign it to Perigee parameters. There should never be more
132  // than one perigee type.
133  // Note that there can be other objects, like VertexOnTrack measurements, with
134  // params at a Perigee surface, thus the TSoS check.
135 
136  const Trk::Perigee* tmpPerigeeParameters = nullptr;
137  if (!m_trackStateVector) {
138  return;
139  }
141  m_trackStateVector->cbegin();
143  m_trackStateVector->cend();
144  for (; it != itEnd; ++it) {
145  if ((*it)->type(TrackStateOnSurface::Perigee)) {
146  const Trk::TrackParameters* tp = (*it)->trackParameters();
147  if (tp && tp->type() == Trk::AtaSurface &&
148  tp->surfaceType() == Trk::SurfaceType::Perigee) {
149  tmpPerigeeParameters = static_cast<const Trk::Perigee*>(tp);
150  }
151 
152  if (tmpPerigeeParameters != nullptr) {
153  break; // found perigee so stop loop.
154  }
155  }
156  }
157  // set to value and valid
158  if (tmpPerigeeParameters) {
159  m_perigeeParameters.set(tmpPerigeeParameters);
160  }
161 }

◆ firstAtsos() [1/2]

AlignTSOSCollection::iterator AlignTrack::firstAtsos ( )
inline

retrieve non-const iterator pointer to first element in collection

Definition at line 282 of file AlignTrack.h.

282 { return m_alignTSOSCollection->begin(); }

◆ firstAtsos() [2/2]

AlignTSOSCollection::const_iterator AlignTrack::firstAtsos ( ) const
inline

retrieve iterator pointer to first element in collection

Definition at line 279 of file AlignTrack.h.

279 { return m_alignTSOSCollection->cbegin(); }

◆ fitQuality() [1/2]

FitQuality* Trk::Track::fitQuality ( )
inherited

return a pointer to the fit quality non-const overload

◆ fitQuality() [2/2]

const FitQuality* Trk::Track::fitQuality ( ) const
inherited

return a pointer to the fit quality const-overload

◆ fullCovarianceMatrix()

const Amg::SymMatrixX* Trk::AlignTrack::fullCovarianceMatrix ( ) const
inline

set and get full covariance matrix

Definition at line 177 of file AlignTrack.h.

177 { return m_fullCovarianceMatrix; }

◆ getVtx() [1/2]

AlignVertex* Trk::AlignTrack::getVtx ( )
inline

Definition at line 189 of file AlignTrack.h.

189 { return m_vtx; }

◆ getVtx() [2/2]

const AlignVertex* Trk::AlignTrack::getVtx ( ) const
inline

set and get pointer to the associated vertex

Definition at line 188 of file AlignTrack.h.

188 { return m_vtx; }

◆ info() [1/2]

TrackInfo& Trk::Track::info ( )
inherited

returns a ref to the info.

non-const overload

◆ info() [2/2]

const TrackInfo& Trk::Track::info ( ) const
inherited

Returns a const ref to info of a const tracks.

◆ isSLTrack() [1/2]

bool AlignTrack::isSLTrack ( ) const

method to determine whether a straight line track or not

Definition at line 263 of file AlignTrack.cxx.

264  {
265  return isSLTrack(this);
266  }

◆ isSLTrack() [2/2]

bool AlignTrack::isSLTrack ( const Track track)
static

static method to determine whether a track is straight line or not

Definition at line 241 of file AlignTrack.cxx.

242  {
243  const Perigee* pp = track->perigeeParameters();
244  if( pp ){
245 
246 
247  const AmgSymMatrix(5)* covMatrix = pp->covariance();
248  if( covMatrix ){
249  // sum covariance terms of momentum, use it to determine whether fit was SL fit
250  double momCov = 0.;
251  for( int i=0;i<5;++i )
252  momCov += fabs( (*covMatrix)(4,i));
253  for( int i=0;i<4;++i )
254  momCov += fabs( (*covMatrix)(i,4));
255  if( momCov < 1e-10 )
256  return true;
257  }
258  }
259  return false;
260  }

◆ isValid()

bool Trk::Track::isValid ( ) const
inherited

returns true if the track has non-nullptr fitQuality and non-empty Trk::TrackStates

◆ lastAtsos() [1/2]

AlignTSOSCollection::iterator AlignTrack::lastAtsos ( )
inline

returns non-const iterator pointer to last element in collection

Definition at line 283 of file AlignTrack.h.

283 { return m_alignTSOSCollection->end(); }

◆ lastAtsos() [2/2]

AlignTSOSCollection::const_iterator AlignTrack::lastAtsos ( ) const
inline

returns iterator pointer to last element in collection

Definition at line 280 of file AlignTrack.h.

280 { return m_alignTSOSCollection->cend(); }

◆ localErrorMatrix()

const Amg::SymMatrixX* Trk::AlignTrack::localErrorMatrix ( ) const
inline

local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar()

Definition at line 122 of file AlignTrack.h.

122 { return m_localErrorMat; }

◆ localErrorMatrixInv()

const Amg::SymMatrixX* Trk::AlignTrack::localErrorMatrixInv ( ) const
inline

inverse local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar()

Definition at line 125 of file AlignTrack.h.

125 { return m_localErrorMatInv; }

◆ measurementsOnTrack()

const DataVector< const Trk::MeasurementBase > * Track::measurementsOnTrack ( ) const
inherited

return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).

This DataVector is lazily created by this method and cached.

Returns
Pointer to a DV of MeasurementBase. The MeasurementBases are not owned by the DV (it is a view)

Definition at line 178 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

179  {
180  if (!m_trackStateVector) {
181  return nullptr;
182  }
183 
184  // We only need to do work if not valid.
185  if (!m_cachedMeasurementVector.isValid()) {
186  // create new DataVector which DOES NOT OWN ELEMENTS .
187  DataVector<const Trk::MeasurementBase> tmpMeasurementVector(
189  // for measurements on track it is very likely that #(meas) ~ #(TSOS)->
190  // reserve(#(TSOS))
191  tmpMeasurementVector.reserve(m_trackStateVector->size());
192 
193  TSoS_iterator itTSoSEnd = m_trackStateVector->cend();
194  for (TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
195  ++itTSoS) {
196  if (!(*itTSoS)->type(TrackStateOnSurface::Outlier)) {
197  const Trk::MeasurementBase* rot = (*itTSoS)->measurementOnTrack();
198  // does it have a measurement ?
199  if (rot != nullptr) {
200  tmpMeasurementVector.push_back(rot);
201  }
202  }
203  }
204  m_cachedMeasurementVector.set(std::move(tmpMeasurementVector));
205  }
206 
207  return m_cachedMeasurementVector.ptr();
208 }

◆ nAlignTSOSMeas()

int Trk::AlignTrack::nAlignTSOSMeas ( ) const
inline

number of alignTSOS (including scatterers if included on AlignTrack

Definition at line 128 of file AlignTrack.h.

128 { return m_nAlignTSOSMeas; }

◆ numberOfInstantiations()

static std::size_t Trk::ObjectCounter< Trk::Track >::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  }

◆ operator=()

AlignTrack & AlignTrack::operator= ( const AlignTrack alignTrack)

assignment operator

Definition at line 142 of file AlignTrack.cxx.

143  {
144  if (this!=&atrack) {
145 
146  // assign Track content
147  Track::operator=(atrack);
148 
149  // now fill the extra stuff
150  m_originalTrack = atrack.m_originalTrack;
151  m_type = atrack.m_type;
152  m_nAlignTSOSMeas = atrack.m_nAlignTSOSMeas;
153  m_chi2 = atrack.m_chi2;
154  m_chi2dof = atrack.m_chi2dof;
155  m_vtx = atrack.m_vtx;
156  m_refitD0 = atrack.m_refitD0;
157  m_refitZ0 = atrack.m_refitZ0;
158  m_refitPhi = atrack.m_refitPhi;
159  m_refitTheta = atrack.m_refitTheta;
160  m_refitQovP = atrack.m_refitQovP;
161 
162  for (int i=0;i<6;i++)
163  m_trackAlignParamQuality[i] = atrack.m_trackAlignParamQuality[i];
164 
165  // copy AlignTSOSCollection
166  delete m_alignTSOSCollection;
167  if(atrack.m_alignTSOSCollection!=nullptr) {
168  AlignTSOSCollection * aTSOScoll = new AlignTSOSCollection;
169  aTSOScoll->reserve(atrack.m_alignTSOSCollection->size());
170  AlignTSOSIt itAtsos_end = atrack.m_alignTSOSCollection->end();
171  for(AlignTSOSIt itAtsos = atrack.m_alignTSOSCollection->begin(); itAtsos!=itAtsos_end; ++itAtsos) {
172  assert(*itAtsos!=0); // check that is defined.
173  AlignTSOS * atsos = new AlignTSOS(**itAtsos);
174  aTSOScoll->push_back(atsos);
175  }
176  m_alignTSOSCollection=aTSOScoll;
177  }
178  else
179  m_alignTSOSCollection=nullptr;
180 
181  findPerigee();
182 
183  // fill matrices, vectors, etc.
184  delete m_derivatives;
185  m_derivatives = atrack.m_derivatives ?
186  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivatives)) : nullptr;
187  delete m_derivativeErr;
188  m_derivativeErr = atrack.m_derivativeErr ?
189  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivativeErr)) : nullptr;
191  m_actualSecondDerivatives = atrack.m_actualSecondDerivatives ?
192  new std::vector<std::pair<AlignModule*,std::vector<double> > > (*(atrack.m_actualSecondDerivatives)) : nullptr;
193  delete m_localErrorMat;
194  m_localErrorMat = atrack.m_localErrorMat ?
195  new Amg::SymMatrixX(*(atrack.m_localErrorMat)) : nullptr;
196  delete m_localErrorMatInv;
197  m_localErrorMatInv = atrack.m_localErrorMatInv ?
198  new Amg::SymMatrixX(*(atrack.m_localErrorMatInv)) : nullptr;
199  delete m_derivativeMatrix;
200  m_derivativeMatrix = atrack.m_derivativeMatrix ?
201  new Amg::MatrixX(*(atrack.m_derivativeMatrix)) : nullptr;
202  delete m_fullCovarianceMatrix;
203  m_fullCovarianceMatrix = atrack.m_fullCovarianceMatrix ?
204  new Amg::SymMatrixX(*(atrack.m_fullCovarianceMatrix)) : nullptr;
205  delete m_residuals;
206  m_residuals = atrack.m_residuals ?
207  new Amg::VectorX(*(atrack.m_residuals)) : nullptr;
208  delete m_weights;
209  m_weights = atrack.m_weights ?
210  new Amg::SymMatrixX(*(atrack.m_weights)) : nullptr;
211  delete m_weightsFirstDeriv;
212  m_weightsFirstDeriv = atrack.m_weightsFirstDeriv ?
213  new Amg::SymMatrixX(*(atrack.m_weightsFirstDeriv)) : nullptr;
214  }
215 
216  return *this;
217  }

◆ originalTrack()

const Track* Trk::AlignTrack::originalTrack ( ) const
inline

retrieve pointer to original track

Definition at line 90 of file AlignTrack.h.

90 { return m_originalTrack; }

◆ outliersOnTrack()

const DataVector< const Trk::MeasurementBase > * Track::outliersOnTrack ( ) const
inherited

return a pointer to a vector of MeasurementBase, which represent outliers (i.e.

measurements not used in the track fit). This DataVector is created lazily by this method and then cached.

Returns
Pointer to a DV of MeasurementBase, representing outliers. The MeasurementBases are not owned by the DV (it is a view)

Definition at line 210 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

211  {
212  if (!m_trackStateVector) {
213  return nullptr;
214  }
215  // We only need to do work if not valid
216  if (!m_cachedOutlierVector.isValid()) {
217  // create new DataVector which DOES NOT OWN ELEMENTS .
219  TSoS_iterator itTSoSEnd = m_trackStateVector->cend();
220  for (TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
221  ++itTSoS) {
222  if ((*itTSoS)->type(TrackStateOnSurface::Outlier)) {
223  const Trk::MeasurementBase* rot = (*itTSoS)->measurementOnTrack();
224  assert(rot != nullptr);
225  tmpOutlierVector.push_back(rot);
226  }
227  }
228  m_cachedOutlierVector.set(std::move(tmpOutlierVector));
229  }
230  return m_cachedOutlierVector.ptr();
231 }

◆ perigeeParameters()

const Trk::Perigee * Track::perigeeParameters ( ) const
inherited

return Perigee.

Can be nullptr if no perigee parameters were assigned to the Track.

This method performs lazy initialization and caches the result.

PLEASE NOTE! if there is more than one Perigee in trackStateOnSurfaces (which there shouldn't be!!), only the first one will be returned by Trk::Track::perigeeParameters Although the Perigee is just a type of TrackParameter, it has a dedicated method because of the specific physics interest

Definition at line 163 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

163  {
164  if (!m_perigeeParameters.isValid()) {
165  // findPerigee performs the setting of the parameters
166  // i.e does the CachedValue set
167  findPerigeeImpl();
168  }
169 
170  // Return payload if valid
171  if (m_perigeeParameters.isValid()) {
172  return *(m_perigeeParameters.ptr());
173  }
174 
175  return nullptr;
176 }

◆ refitD0()

bool Trk::AlignTrack::refitD0 ( ) const
inline

get refit flags

Definition at line 193 of file AlignTrack.h.

193 { return m_refitD0; }

◆ refitPhi()

bool Trk::AlignTrack::refitPhi ( ) const
inline

Definition at line 195 of file AlignTrack.h.

195 { return m_refitPhi; }

◆ refitQovP()

bool Trk::AlignTrack::refitQovP ( ) const
inline

Definition at line 197 of file AlignTrack.h.

197 { return m_refitQovP; }

◆ refitTheta()

bool Trk::AlignTrack::refitTheta ( ) const
inline

Definition at line 196 of file AlignTrack.h.

196 { return m_refitTheta; }

◆ refitZ0()

bool Trk::AlignTrack::refitZ0 ( ) const
inline

Definition at line 194 of file AlignTrack.h.

194 { return m_refitZ0; }

◆ resetCaches()

void Trk::Track::resetCaches ( )
inherited

reset all caches

◆ residualVector()

const Amg::VectorX* Trk::AlignTrack::residualVector ( ) const
inline

Vector of residuals of the alignTSOS on the alignTrack, to be set by AlignTrackDresser.

Owned by AlignTrack.

Definition at line 150 of file AlignTrack.h.

150 { return m_residuals; }

◆ setActualSecondDerivatives()

void Trk::AlignTrack::setActualSecondDerivatives ( std::vector< std::pair< AlignModule *, std::vector< double > > > *  vec)
inline

Definition at line 147 of file AlignTrack.h.

◆ setAlignParameters()

void Trk::AlignTrack::setAlignParameters ( )
private

sets derivatives of alignment parameters

◆ setAlignTSOSCollection()

void AlignTrack::setAlignTSOSCollection ( AlignTSOSCollection atsosColl)

sets collection of AlignTSOS

Definition at line 341 of file AlignTrack.cxx.

342  {
343  m_alignTSOSCollection=atsosColl;
344 
345  // calculate m_nAlignTSOSMeas
346  int natsos = m_alignTSOSCollection->size();
347  for (int iatsos=0;iatsos<natsos;iatsos++)
348  m_nAlignTSOSMeas += (*m_alignTSOSCollection)[iatsos]->nResDim();
349 
350  // calculate V and Vinv
352  m_localErrorMat->setZero();
354  m_localErrorMatInv->setZero();
355 
356  int matrixindex(0);
359  for ( ; itAtsos != itAtsos_end; ++itAtsos) {
360  const AlignTSOS * atsos = *itAtsos;
361  std::vector<Residual>::const_iterator itRes = atsos->firstResidual();
362  std::vector<Residual>::const_iterator itRes_end = atsos->lastResidual();
363  for ( ; itRes != itRes_end; ++itRes) {
364  (*m_localErrorMat)(matrixindex,matrixindex) = itRes->errSq();
365  (*m_localErrorMatInv)(matrixindex,matrixindex) = 1./itRes->errSq();
366  matrixindex++;
367  }
368  }
369  }

◆ setChi2()

void Trk::AlignTrack::setChi2 ( double  chi2)
inline

Definition at line 166 of file AlignTrack.h.

166 { m_chi2=chi2; }

◆ setChi2dof()

void Trk::AlignTrack::setChi2dof ( double  chi2dof)
inline

Definition at line 170 of file AlignTrack.h.

170 { m_chi2dof=chi2dof; }

◆ setDerivativeErr()

void Trk::AlignTrack::setDerivativeErr ( std::vector< AlignModuleDerivatives > *  vec)
inline

Definition at line 141 of file AlignTrack.h.

141 { m_derivativeErr=vec; }

◆ setDerivativeMatrix()

void AlignTrack::setDerivativeMatrix ( const Amg::MatrixX matrix)
inline

Definition at line 269 of file AlignTrack.h.

269  {
272  }

◆ setDerivatives()

void Trk::AlignTrack::setDerivatives ( std::vector< AlignModuleDerivatives > *  vec)
inline

Definition at line 134 of file AlignTrack.h.

134 { m_derivatives=vec; }

◆ setFitQuality()

void Trk::Track::setFitQuality ( std::unique_ptr< FitQuality quality)
inherited

set FitQuality.

◆ setFullCovarianceMatrix()

void AlignTrack::setFullCovarianceMatrix ( const Amg::SymMatrixX matrix)
inline

Definition at line 274 of file AlignTrack.h.

◆ setInfo()

void Trk::Track::setInfo ( const TrackInfo input)
inherited

set the info.

◆ setOriginalTrack()

void Trk::AlignTrack::setOriginalTrack ( const Track track)
inline

set pointer to original track

Definition at line 93 of file AlignTrack.h.

◆ setRefitD0()

void Trk::AlignTrack::setRefitD0 ( bool  flag)
inline

set refit flags

Definition at line 200 of file AlignTrack.h.

200 { m_refitD0 = flag; }

◆ setRefitPhi()

void Trk::AlignTrack::setRefitPhi ( bool  flag)
inline

Definition at line 202 of file AlignTrack.h.

202 { m_refitPhi = flag; }

◆ setRefitQovP()

void Trk::AlignTrack::setRefitQovP ( bool  flag)
inline

Definition at line 204 of file AlignTrack.h.

204 { m_refitQovP = flag; }

◆ setRefitTheta()

void Trk::AlignTrack::setRefitTheta ( bool  flag)
inline

Definition at line 203 of file AlignTrack.h.

203 { m_refitTheta = flag; }

◆ setRefitZ0()

void Trk::AlignTrack::setRefitZ0 ( bool  flag)
inline

Definition at line 201 of file AlignTrack.h.

201 { m_refitZ0 = flag; }

◆ setResidualVector()

void Trk::AlignTrack::setResidualVector ( Amg::VectorX vec)
inline

Definition at line 151 of file AlignTrack.h.

151 { m_residuals=vec;}

◆ setTrackAlignParamQuality()

void Trk::AlignTrack::setTrackAlignParamQuality ( int  i,
double  val 
)
inline

Definition at line 182 of file AlignTrack.h.

◆ setTrackStateOnSurfaces()

void Trk::Track::setTrackStateOnSurfaces ( std::unique_ptr< Trk::TrackStates input)
inherited

Set the TrackStateOnSurfaces.

◆ setTrackSummary()

void Trk::Track::setTrackSummary ( std::unique_ptr< Trk::TrackSummary input)
inherited

Set the track summary.

◆ setType()

void Trk::AlignTrack::setType ( AlignTrackType  type)
inline

Definition at line 97 of file AlignTrack.h.

97 {m_type = type;}

◆ setVtx()

void Trk::AlignTrack::setVtx ( AlignVertex *const  vtx)
inline

Definition at line 190 of file AlignTrack.h.

190 { m_vtx = vtx; }

◆ setWeightMatrix()

void Trk::AlignTrack::setWeightMatrix ( Amg::SymMatrixX mat)
inline

Definition at line 157 of file AlignTrack.h.

157 { m_weights=mat; }

◆ setWeightMatrixFirstDeriv()

void Trk::AlignTrack::setWeightMatrixFirstDeriv ( Amg::SymMatrixX mat)
inline

Definition at line 162 of file AlignTrack.h.

◆ trackAlignParamQuality()

double Trk::AlignTrack::trackAlignParamQuality ( int  i) const
inline

set and get array (one entry per alignment parameter) of fit chi2 of chi2 vs.

alignment params (used for numerical derivatives)

Definition at line 181 of file AlignTrack.h.

181 { return m_trackAlignParamQuality[i]; }

◆ trackParameters()

const DataVector< const Trk::TrackParameters > * Track::trackParameters ( ) const
inherited

Return a pointer to a vector of TrackParameters.

It is created Lazily by this method and then cached.

Returns
Pointer to a DV of TrackParameters, or 0. The TrackParameters are not owned by the DV (it is a view)

Definition at line 97 of file Tracking/TrkEvent/TrkTrack/src/Track.cxx.

98  {
99 
100  if (!m_trackStateVector) {
101  return nullptr;
102  }
103  // Do work only if it is not valid.
104  if (!m_cachedParameterVector.isValid()) {
105  // create cached parameter vector (which DOES NOT OWN ELEMENTS)
106  DataVector<const Trk::TrackParameters> tmp_ParameterVector(
108  tmp_ParameterVector.reserve(m_trackStateVector->size());
109  TSoS_iterator itTSoSEnd = m_trackStateVector->cend();
110  for (TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
111  ++itTSoS) {
112  const TrackParameters* trackParameters = (*itTSoS)->trackParameters();
113  // check to make sure that the TrackParameters exists first
114  if (trackParameters != nullptr) {
115  tmp_ParameterVector.push_back(trackParameters);
116  }
117  }
118  m_cachedParameterVector.set(std::move(tmp_ParameterVector));
119  }
120  return m_cachedParameterVector.ptr();
121 }

◆ trackStateOnSurfaces() [1/2]

Trk::TrackStates* Trk::Track::trackStateOnSurfaces ( )
inherited

return a pointer to a DataVector of const TrackStateOnSurfaces.

non-const overload

◆ trackStateOnSurfaces() [2/2]

const Trk::TrackStates* Trk::Track::trackStateOnSurfaces ( ) const
inherited

return a pointer to a const DataVector of const TrackStateOnSurfaces.

const overload

◆ trackSummary() [1/2]

Trk::TrackSummary* Trk::Track::trackSummary ( )
inherited

Returns a pointer to the Trk::TrackSummary owned by this track (could be nullptr)

◆ trackSummary() [2/2]

const Trk::TrackSummary* Trk::Track::trackSummary ( ) const
inherited

Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)

◆ trackWithoutScattering()

const Trk::Track * AlignTrack::trackWithoutScattering ( ) const

returns track with ScatteringAngle pointers all set to zero (used for refit by iPat)

Definition at line 423 of file AlignTrack.cxx.

424  {
425  if (not m_trackWithoutScattering) {
426 
428  if (!states) return nullptr;
429 
430  // loop over TSOSs
432  Trk::TrackStates::const_iterator tsit_end = states->end();
433 
434  // This is the list of new TSOS
435  auto newTrackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
436  newTrackStateOnSurfaces->reserve( states->size() );
437 
438  for (; tsit!=tsit_end ; ++tsit) {
439  auto newMeas = (*tsit)->measurementOnTrack() ? (*tsit)->measurementOnTrack()->uniqueClone() : nullptr;
440  auto newPars = (*tsit)->trackParameters() ? (*tsit)->trackParameters()->uniqueClone() : nullptr;
441  auto newFitQoS= (*tsit)->fitQualityOnSurface();
442  auto meb = (*tsit)->materialEffectsOnTrack() ? (*tsit)->materialEffectsOnTrack()->uniqueClone() : nullptr;
443 
444  if (meb) {
445  //meot is just used as observer, not owner, so can safely duplicate the pointer
446  const auto *meot=dynamic_cast<const Trk::MaterialEffectsOnTrack*>(meb.get());
447  if (meot) {
448  double tinX0=meot->thicknessInX0();
449  std::unique_ptr<Trk::EnergyLoss> eLoss =
450  meot->energyLoss()
451  ? std::unique_ptr<Trk::EnergyLoss>(meot->energyLoss()->clone())
452  : nullptr;
453  const Trk::Surface& surf = meot->associatedSurface();
454  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes> typeMaterial;
455  if (eLoss) typeMaterial.set(MaterialEffectsBase::EnergyLossEffects);
457  new Trk::MaterialEffectsOnTrack(tinX0,std::nullopt,std::move(eLoss),surf,typeMaterial);
458  meb.reset(newmeot);
459  }
460  }
461 
462  std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
465  typePattern.set(i);
466  }
467  const Trk::TrackStateOnSurface* newTsos =
468  new Trk::TrackStateOnSurface(newFitQoS,
469  std::move(newMeas),
470  std::move(newPars),
471  std::move(meb),
472  typePattern);
473  newTrackStateOnSurfaces->push_back(newTsos);
474  }
475 
476  m_trackWithoutScattering.set(std::make_unique<Trk::Track>( this->info(), std::move(newTrackStateOnSurfaces),
477  this->fitQuality() ?
478  this->fitQuality()->uniqueClone() : nullptr ));
479  }
480  return m_trackWithoutScattering.get();
481  }

◆ type()

AlignTrackType Trk::AlignTrack::type ( ) const
inline

get and set the refit type

Definition at line 96 of file AlignTrack.h.

96 {return m_type;}

◆ weightMatrix()

const Amg::SymMatrixX* Trk::AlignTrack::weightMatrix ( ) const
inline

Weight matrix is W from Si alignment (see Eqn.

10 of INDET-PUB-2005-002).
It is related to the residual covariance matrix from TRT alignment by W= V^{-1}RV (R is defined in Eqn. 18 of ATL-INDET-PUB-2007-009).

Definition at line 156 of file AlignTrack.h.

156 { return m_weights; }

◆ weightMatrixFirstDeriv()

const Amg::SymMatrixX* Trk::AlignTrack::weightMatrixFirstDeriv ( ) const
inline

First deriv weight matrix can be either W from Si alignment (see Eqn.

10 of INDET-PUB-2005-002) or the inverse local error matrix

Definition at line 161 of file AlignTrack.h.

161 { return m_weightsFirstDeriv; }

Member Data Documentation

◆ m_actualSecondDerivatives

std::vector<std::pair<AlignModule *,std::vector<double> > >* Trk::AlignTrack::m_actualSecondDerivatives
private

Definition at line 239 of file AlignTrack.h.

◆ m_alignTSOSCollection

AlignTSOSCollection* Trk::AlignTrack::m_alignTSOSCollection {}
private

collection of alignTSOS that make up the alignTrack

Definition at line 223 of file AlignTrack.h.

◆ m_cachedMeasurementVector

CxxUtils::CachedValue<DataVector<const MeasurementBase> > Trk::Track::m_cachedMeasurementVector {}
protectedinherited

A vector of MeasurementBase: these objects represent the "hits" on the track (but not outliers - see m_cachedOutlierVector)

It is created in the return method by looping over all Trk::TrackStateOnSurface adding their pointers to the payload of m_cachedMeasurementVector

Definition at line 271 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_cachedOutlierVector

CxxUtils::CachedValue<DataVector<const MeasurementBase> > Trk::Track::m_cachedOutlierVector {}
protectedinherited

These objects represent the "outliers" on the track.

It is created in the return method by looping over all Trk::TrackStateOnSurface adding their pointers to the payload of m_cachedRioVector

Definition at line 280 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_cachedParameterVector

CxxUtils::CachedValue<DataVector<const TrackParameters> > Trk::Track::m_cachedParameterVector {}
protectedinherited

A vector of TrackParameters: these can be any of the classes that derive from Trk::TrackParameters, for example, Perigee, MeasuredPerigee, AtaCylinder etc.

It is created in the return method by looping over all Trk::TrackStateOnSurface adding their pointers to the payload of m_cachedParameterVector

Definition at line 260 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_chi2

double Trk::AlignTrack::m_chi2
private

Definition at line 245 of file AlignTrack.h.

◆ m_chi2dof

double Trk::AlignTrack::m_chi2dof
private

Definition at line 246 of file AlignTrack.h.

◆ m_derivativeErr

std::vector<AlignModuleDerivatives >* Trk::AlignTrack::m_derivativeErr
private

Definition at line 238 of file AlignTrack.h.

◆ m_derivativeMatrix

const Amg::MatrixX* Trk::AlignTrack::m_derivativeMatrix
private

matrix containing derivative matrix from track fitter

Definition at line 232 of file AlignTrack.h.

◆ m_derivatives

std::vector<AlignModuleDerivatives >* Trk::AlignTrack::m_derivatives
private

Definition at line 237 of file AlignTrack.h.

◆ m_fitQuality

std::unique_ptr<FitQuality> Trk::Track::m_fitQuality {nullptr}
protectedinherited

A pointer to the Track's FitQuality.

Definition at line 293 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_fullCovarianceMatrix

const Amg::SymMatrixX* Trk::AlignTrack::m_fullCovarianceMatrix
private

matrix containing full covariance matrix from track fitter

Definition at line 235 of file AlignTrack.h.

◆ m_localErrorMat

Amg::SymMatrixX* Trk::AlignTrack::m_localErrorMat
private

matrix containing local error matrices along diagonal

Definition at line 226 of file AlignTrack.h.

◆ m_localErrorMatInv

Amg::SymMatrixX* Trk::AlignTrack::m_localErrorMatInv
private

inverse matrix containing local error matrices along diagonal

Definition at line 229 of file AlignTrack.h.

◆ m_nAlignTSOSMeas

int Trk::AlignTrack::m_nAlignTSOSMeas
private

variables

Definition at line 220 of file AlignTrack.h.

◆ m_originalTrack

const Track* Trk::AlignTrack::m_originalTrack
private

point to original track

Definition at line 214 of file AlignTrack.h.

◆ m_perigeeParameters

CxxUtils::CachedValue<const Perigee*> Trk::Track::m_perigeeParameters {}
protectedinherited

A pointer to the Track's Perigee parameters.

This will be null if the track does not contain a Perigee or MeasuredPerigee parameter

Definition at line 288 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_refitD0

bool Trk::AlignTrack::m_refitD0
private

Definition at line 251 of file AlignTrack.h.

◆ m_refitPhi

bool Trk::AlignTrack::m_refitPhi
private

Definition at line 253 of file AlignTrack.h.

◆ m_refitQovP

bool Trk::AlignTrack::m_refitQovP
private

Definition at line 255 of file AlignTrack.h.

◆ m_refitTheta

bool Trk::AlignTrack::m_refitTheta
private

Definition at line 254 of file AlignTrack.h.

◆ m_refitZ0

bool Trk::AlignTrack::m_refitZ0
private

Definition at line 252 of file AlignTrack.h.

◆ m_residuals

Amg::VectorX* Trk::AlignTrack::m_residuals
private

Definition at line 241 of file AlignTrack.h.

◆ m_trackAlignParamQuality

double* Trk::AlignTrack::m_trackAlignParamQuality
private

Definition at line 257 of file AlignTrack.h.

◆ m_trackInfo

Trk::TrackInfo Trk::Track::m_trackInfo {}
protectedinherited

This is a class which stores the identity of where the track was created, fitted, which properties the reconstruction had.

Definition at line 304 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_trackStateVector

std::unique_ptr<TrackStates> Trk::Track::m_trackStateVector = nullptr
protectedinherited

TrackStateOnSurface.

These objects link the various parameters related to a surface, for example, TrackParameter, RIO_OnTrack and FitQualityOnSurface

Definition at line 248 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_trackSummary

std::unique_ptr<Trk::TrackSummary> Trk::Track::m_trackSummary {nullptr}
protectedinherited

Datamember to cache the TrackSummary.

Definition at line 298 of file Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h.

◆ m_trackWithoutScattering

CxxUtils::CachedUniquePtr<Trk::Track> Trk::AlignTrack::m_trackWithoutScattering
private

describes the quality of contribution to track to alignment parameter (used by shifting derivatives)

Definition at line 259 of file AlignTrack.h.

◆ m_type

AlignTrackType Trk::AlignTrack::m_type
private

refit type of this alignTrack

Definition at line 217 of file AlignTrack.h.

◆ m_vtx

AlignVertex* Trk::AlignTrack::m_vtx
private

pointer to the associated vertex

Definition at line 249 of file AlignTrack.h.

◆ m_weights

Amg::MatrixX* Trk::AlignTrack::m_weights
private

Definition at line 242 of file AlignTrack.h.

◆ m_weightsFirstDeriv

Amg::MatrixX* Trk::AlignTrack::m_weightsFirstDeriv
private

Definition at line 243 of file AlignTrack.h.

◆ s_numberOfInstantiations

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

Definition at line 22 of file TrkObjectCounter.h.


The documentation for this class was generated from the following files:
Trk::AlignTrack::setAlignTSOSCollection
void setAlignTSOSCollection(AlignTSOSCollection *atsosColl)
sets collection of AlignTSOS
Definition: AlignTrack.cxx:341
Trk::TrackStateOnSurface::Perigee
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Definition: TrackStateOnSurface.h:117
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::Track::fitQuality
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
Trk::AlignTSOSCollection
DataVector< AlignTSOS > AlignTSOSCollection
Definition: AlignTrack.h:35
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:32
Trk::Track::m_cachedMeasurementVector
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedMeasurementVector
A vector of MeasurementBase: these objects represent the "hits" on the track (but not outliers - see ...
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:271
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::TrackStateOnSurface::TrackStateOnSurfaceType
TrackStateOnSurfaceType
Definition: TrackStateOnSurface.h:98
Trk::AlignTrack::m_fullCovarianceMatrix
const Amg::SymMatrixX * m_fullCovarianceMatrix
matrix containing full covariance matrix from track fitter
Definition: AlignTrack.h:235
Trk::AlignTrack::VertexMember
@ VertexMember
Refitted with 3DoF from the VTX.
Definition: AlignTrack.h:51
Trk::AlignTrack::m_refitTheta
bool m_refitTheta
Definition: AlignTrack.h:254
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
DataVector::const_iterator
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition: DataVector.h:837
Trk::AlignTrack::m_actualSecondDerivatives
std::vector< std::pair< AlignModule *, std::vector< double > > > * m_actualSecondDerivatives
Definition: AlignTrack.h:239
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
Trk::AlignTrack::m_localErrorMatInv
Amg::SymMatrixX * m_localErrorMatInv
inverse matrix containing local error matrices along diagonal
Definition: AlignTrack.h:229
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::Track::info
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
Trk::AlignTrack::m_refitQovP
bool m_refitQovP
Definition: AlignTrack.h:255
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
Trk::Track::m_cachedParameterVector
CxxUtils::CachedValue< DataVector< const TrackParameters > > m_cachedParameterVector
A vector of TrackParameters: these can be any of the classes that derive from Trk::TrackParameters,...
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:260
Trk::AlignTrack::m_residuals
Amg::VectorX * m_residuals
Definition: AlignTrack.h:241
skel.it
it
Definition: skel.GENtoEVGEN.py:423
Trk::AlignTrack::Unknown
@ Unknown
default type
Definition: AlignTrack.h:46
Trk::Perigee
ParametersT< 5, Charged, PerigeeSurface > Perigee
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:29
ParticleTest.tp
tp
Definition: ParticleTest.py:25
uniqueClone
std::unique_ptr< T_Obj > uniqueClone(const T_Obj *obj)
Definition: ObjContainer.h:49
Trk::AlignTrack::m_refitPhi
bool m_refitPhi
Definition: AlignTrack.h:253
DataVector::cend
const_iterator cend() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::MaterialEffectsBase::thicknessInX0
double thicknessInX0() const
returns the actually traversed material .
Trk::AlignTrack::m_trackAlignParamQuality
double * m_trackAlignParamQuality
Definition: AlignTrack.h:257
Trk::Track::TSoS_iterator
Trk::TrackStates::const_iterator TSoS_iterator
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:228
Trk::AlignTrack::m_localErrorMat
Amg::SymMatrixX * m_localErrorMat
matrix containing local error matrices along diagonal
Definition: AlignTrack.h:226
Trk::AlignTrack::isSLTrack
bool isSLTrack() const
method to determine whether a straight line track or not
Definition: AlignTrack.cxx:263
Trk::TrackParameters
ParametersBase< 5, Charged > TrackParameters
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:24
Trk::Track::m_cachedOutlierVector
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedOutlierVector
These objects represent the "outliers" on the track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:280
Trk::AlignTrack::m_originalTrack
const Track * m_originalTrack
point to original track
Definition: AlignTrack.h:214
Trk::AlignTrack::m_derivativeErr
std::vector< AlignModuleDerivatives > * m_derivativeErr
Definition: AlignTrack.h:238
Trk::AlignTrack::m_nAlignTSOSMeas
int m_nAlignTSOSMeas
variables
Definition: AlignTrack.h:220
Trk::Track::m_fitQuality
std::unique_ptr< FitQuality > m_fitQuality
A pointer to the Track's FitQuality.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:293
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
Trk::AlignTrack::m_derivatives
std::vector< AlignModuleDerivatives > * m_derivatives
Definition: AlignTrack.h:237
Trk::Track::m_trackSummary
std::unique_ptr< Trk::TrackSummary > m_trackSummary
Datamember to cache the TrackSummary.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:298
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
AlignModule
AlignModule is a grouping of TrkDetElementBase objects, grouped according to the type of alignment,...
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::Track::findPerigee
void findPerigee() const
Find perigee in the vector of track parameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:123
Trk::Track::m_perigeeParameters
CxxUtils::CachedValue< const Perigee * > m_perigeeParameters
A pointer to the Track's Perigee parameters.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:288
Trk::AlignTrack::firstAtsos
AlignTSOSCollection::const_iterator firstAtsos() const
retrieve iterator pointer to first element in collection
Definition: AlignTrack.h:279
Trk::AlignTrack::BeamspotConstrained
@ BeamspotConstrained
refitted with beamspot constraint
Definition: AlignTrack.h:49
Trk::Track::Track
Track()=default
Default constructor Here for POOL and simple tests.
lumiFormat.i
int i
Definition: lumiFormat.py:92
Trk::AlignTrack::chi2dof
double chi2dof() const
locally calculated chi2
Definition: AlignTrack.h:169
Trk::Track::m_trackStateVector
std::unique_ptr< TrackStates > m_trackStateVector
TrackStateOnSurface.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:248
AlignTSOS
AlignTSOS is a TSOS with extra variables useful for alignment. It is created using an implementation ...
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::AlignTrack::m_derivativeMatrix
const Amg::MatrixX * m_derivativeMatrix
matrix containing derivative matrix from track fitter
Definition: AlignTrack.h:232
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
urldecode::states
states
Definition: urldecode.h:39
master.flag
bool flag
Definition: master.py:29
Trk::AlignTrack::m_trackWithoutScattering
CxxUtils::CachedUniquePtr< Trk::Track > m_trackWithoutScattering
describes the quality of contribution to track to alignment parameter (used by shifting derivatives)
Definition: AlignTrack.h:259
Trk::AlignTrack::m_refitD0
bool m_refitD0
Definition: AlignTrack.h:251
Trk::AlignTrack::m_refitZ0
bool m_refitZ0
Definition: AlignTrack.h:252
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::AlignTrack::m_weightsFirstDeriv
Amg::MatrixX * m_weightsFirstDeriv
Definition: AlignTrack.h:243
DataVector< const Trk::MeasurementBase >
Trk::Track::m_trackInfo
Trk::TrackInfo m_trackInfo
This is a class which stores the identity of where the track was created, fitted, which properties th...
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:304
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::Track::trackParameters
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:97
Trk::SurfaceType::Perigee
@ Perigee
Trk::AlignTrack::m_chi2dof
double m_chi2dof
Definition: AlignTrack.h:246
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
Trk::TrackStateOnSurface::InertMaterial
@ InertMaterial
This represents inert material, and so will contain MaterialEffectsBase.
Definition: TrackStateOnSurface.h:105
Trk::AlignTrack::m_chi2
double m_chi2
Definition: AlignTrack.h:245
Trk::MaterialEffectsBase::EnergyLossEffects
@ EnergyLossEffects
contains energy loss corrections
Definition: MaterialEffectsBase.h:48
Trk::AlignTrack::m_vtx
AlignVertex * m_vtx
pointer to the associated vertex
Definition: AlignTrack.h:249
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::AlignTrack::m_alignTSOSCollection
AlignTSOSCollection * m_alignTSOSCollection
collection of alignTSOS that make up the alignTrack
Definition: AlignTrack.h:223
Trk::AlignTSOSIt
DataVector< AlignTSOS >::const_iterator AlignTSOSIt
Definition: AlignTrack.h:38
Trk::AlignTrack::alignTSOSCollection
const AlignTSOSCollection * alignTSOSCollection() const
returns collection of alignTSOS
Definition: AlignTrack.h:267
Trk::AtaSurface
@ AtaSurface
Definition: ParametersCommon.h:29
Trk::AlignTrack::m_type
AlignTrackType m_type
refit type of this alignTrack
Definition: AlignTrack.h:217
Trk::AlignTrack::chi2
double chi2() const
locally calculated chi2
Definition: AlignTrack.h:165
Trk::ObjectCounter< Trk::Track >::s_numberOfInstantiations
static std::atomic_size_t s_numberOfInstantiations
Definition: TrkObjectCounter.h:22
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
Trk::AlignTrack::Original
@ Original
not refitted, just copy constructed from original Track
Definition: AlignTrack.h:47
Trk::AlignTrack::NormalRefitted
@ NormalRefitted
normally refitted, without adding any pseudo-measurement
Definition: AlignTrack.h:48
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
Trk::Track::operator=
Track & operator=(const Track &rhs)
assignment operator
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:42
Trk::TrackStateOnSurface::Scatterer
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
Definition: TrackStateOnSurface.h:113
DataVector::cbegin
const_iterator cbegin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Trk::Track::findPerigeeImpl
void findPerigeeImpl() const
find PerigeeImpl.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:129
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::AlignTrack::NTrackTypes
@ NTrackTypes
total number of track types
Definition: AlignTrack.h:53
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::AlignTrack::VertexConstrained
@ VertexConstrained
refitted with vertex constraint
Definition: AlignTrack.h:50
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
python.KeyStore.msg
msg
Definition: KeyStore.py:26
Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes
@ NumberOfTrackStateOnSurfaceTypes
Definition: TrackStateOnSurface.h:152
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Trk::AlignTrack::lastAtsos
AlignTSOSCollection::const_iterator lastAtsos() const
returns iterator pointer to last element in collection
Definition: AlignTrack.h:280
Trk::AlignTrack::type
AlignTrackType type() const
get and set the refit type
Definition: AlignTrack.h:96
Amg::SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Definition: EventPrimitives.h:30
Trk::AlignTrack::m_weights
Amg::MatrixX * m_weights
Definition: AlignTrack.h:242