5#ifndef TRKALIGNEVENT_ALIGNTRACK_H
6#define TRKALIGNEVENT_ALIGNTRACK_H
8#include "GaudiKernel/MsgStream.h"
Cached unique_ptr with atomic update.
std::vector< size_t > vec
An STL vector of pointers that by default owns its pointed-to elements.
AlignVertex is a simple structure to store objects belonging to a vertex.
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
DataModel_detail::iterator< DataVector > iterator
const Amg::SymMatrixX * fullCovarianceMatrix() const
set and get full covariance matrix
Amg::VectorX * m_residuals
void setAlignParameters()
sets derivatives of alignment parameters
void setWeightMatrix(Amg::SymMatrixX *mat)
static void dumpTrackInfo(const Track &track, MsgStream &msg)
dump track information
AlignTSOSCollection::const_iterator lastAtsos() const
returns iterator pointer to last element in collection
double chi2() const
locally calculated chi2
std::vector< AlignModuleDerivatives > * m_derivativeErr
const Amg::SymMatrixX * localErrorMatrixInv() const
inverse local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar()
int nAlignTSOSMeas() const
number of alignTSOS (including scatterers if included on AlignTrack
virtual ~AlignTrack()
destructor
const Amg::SymMatrixX * m_fullCovarianceMatrix
matrix containing full covariance matrix from track fitter
const std::vector< AlignModuleDerivatives > * derivatives() const
The Amg::VectorX is a vector of first-derivatives of the alignTSOS on the alignTrack w....
void setChi2(double chi2)
const Amg::MatrixX * m_derivativeMatrix
matrix containing derivative matrix from track fitter
void setOriginalTrack(const Track *track)
set pointer to original track
const Track * originalTrack() const
retrieve pointer to original track
const Amg::SymMatrixX * localErrorMatrix() const
local error matrix, calculated by AlignTrack by calling atsos->hitDistanceVar()
void setActualSecondDerivatives(std::vector< std::pair< AlignModule *, std::vector< double > > > *vec)
@ VertexMember
Refitted with 3DoF from the VTX.
@ NTrackTypes
total number of track types
@ NormalRefitted
normally refitted, without adding any pseudo-measurement
@ Original
not refitted, just copy constructed from original Track
@ BeamspotConstrained
refitted with beamspot constraint
@ VertexConstrained
refitted with vertex constraint
const Amg::VectorX * residualVector() const
Vector of residuals of the alignTSOS on the alignTrack, to be set by AlignTrackDresser.
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....
void setRefitZ0(bool flag)
void setTrackAlignParamQuality(int i, double val)
AlignVertex * m_vtx
pointer to the associated vertex
static void dumpLessTrackInfo(const Track &track, MsgStream &msg)
dump less track information
const std::vector< AlignModuleDerivatives > * derivativeErr() const
The Amg::VectorX is a vector of errors in first-derivatives of the alignTSOS on the alignTrack w....
void setDerivatives(std::vector< AlignModuleDerivatives > *vec)
void setRefitPhi(bool flag)
Amg::MatrixX * m_weightsFirstDeriv
AlignTSOSCollection::const_iterator firstAtsos() const
retrieve iterator pointer to first element in collection
void setWeightMatrixFirstDeriv(Amg::SymMatrixX *mat)
const AlignTSOSCollection * alignTSOSCollection() const
returns collection of alignTSOS
const Amg::MatrixX * derivativeMatrix() const
set and get derivative matrix
void setRefitQovP(bool flag)
void doFindPerigee() const
For the AlignTrack, if there is pseudo-measurement in the TSOS collection, the perigee will not alway...
const Track * m_originalTrack
point to original track
void setVtx(AlignVertex *const vtx)
void setType(AlignTrackType type)
const Amg::SymMatrixX * weightMatrixFirstDeriv() const
First deriv weight matrix can be either W from Si alignment (see Eqn.
double trackAlignParamQuality(int i) const
set and get array (one entry per alignment parameter) of fit chi2 of chi2 vs.
const Trk::Track * trackWithoutScattering() const
returns track with ScatteringAngle pointers all set to zero (used for refit by iPat)
std::vector< AlignModuleDerivatives > * m_derivatives
AlignTrackType m_type
refit type of this alignTrack
void setRefitD0(bool flag)
set refit flags
std::vector< std::pair< AlignModule *, std::vector< double > > > * m_actualSecondDerivatives
void setChi2dof(double chi2dof)
AlignTrack(const Track &associatedTrack)
constructor takes the track containing the original TrackStateOnSurface objects
AlignTrack & operator=(const AlignTrack &alignTrack)
assignment operator
void setDerivativeErr(std::vector< AlignModuleDerivatives > *vec)
void setDerivativeMatrix(const Amg::MatrixX *matrix)
void setResidualVector(Amg::VectorX *vec)
double * m_trackAlignParamQuality
const AlignVertex * getVtx() const
set and get pointer to the associated vertex
int m_nAlignTSOSMeas
variables
AlignTSOSCollection * m_alignTSOSCollection
collection of alignTSOS that make up the alignTrack
Amg::SymMatrixX * m_localErrorMat
matrix containing local error matrices along diagonal
AlignTrackType type() const
get and set the refit type
void setAlignTSOSCollection(AlignTSOSCollection *atsosColl)
sets collection of AlignTSOS
bool refitD0() const
get refit flags
void setRefitTheta(bool flag)
const Amg::SymMatrixX * weightMatrix() const
Weight matrix is W from Si alignment (see Eqn.
void setFullCovarianceMatrix(const Amg::SymMatrixX *matrix)
CxxUtils::CachedUniquePtr< Trk::Track > m_trackWithoutScattering
bool isSLTrack() const
method to determine whether a straight line track or not
Amg::SymMatrixX * m_localErrorMatInv
inverse matrix containing local error matrices along diagonal
double chi2dof() const
locally calculated chi2
void findPerigee() const
Find perigee in the vector of track parameters.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
CachedUniquePtrT< const T > CachedUniquePtr
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
DataVector< AlignTSOS >::const_iterator AlignTSOSIt
DataVector< AlignTSOS > AlignTSOSCollection
std::string dumpAlignTrackType(const AlignTrack::AlignTrackType type)
std::pair< AlignModule *, std::vector< Amg::VectorX > > AlignModuleDerivatives