11#include "GaudiKernel/MsgStream.h"
76 itTSoS != itTSoSEnd; ++itTSoS) {
77 assert(*itTSoS !=
nullptr);
89 if (perigee !=
nullptr) {
144 for (; it != itEnd; ++it) {
149 tmpPerigeeParameters =
static_cast<const Trk::Perigee*
>(tp);
152 if (tmpPerigeeParameters !=
nullptr) {
158 if (tmpPerigeeParameters) {
199 if (rot !=
nullptr) {
224 assert(rot !=
nullptr);
236 std::string name(
"Track ");
237 sl << name <<
"Author = " << track.info().dumpInfo() <<
endmsg;
238 if (track.fitQuality() !=
nullptr) {
239 sl << *(track.fitQuality()) <<
endmsg;
241 if (track.trackSummary() !=
nullptr) {
242 sl << *(track.trackSummary()) <<
endmsg;
244 sl <<
"No TrackSummary available in this track." <<
endmsg;
246 if (track.trackStateOnSurfaces() !=
nullptr) {
247 sl << name <<
"has " << (track.trackStateOnSurfaces()->size())
248 <<
" trackStateOnSurface(s)" <<
endmsg;
252 if (sl.level() < MSG::INFO) {
255 track.trackStateOnSurfaces()->cbegin();
257 for (; it != track.trackStateOnSurfaces()->cend(); ++it) {
258 sl <<
" --------- Start of TrackStateOnSurface \t" << num <<
"\t-------"
261 sl <<
" --------- End of TrackStateOnSurface \t" << num++
270 std::string name(
"Track ");
271 sl << name <<
"Author = " << track.info().dumpInfo() << std::endl;
272 if (track.fitQuality() !=
nullptr) {
273 sl << *(track.fitQuality()) << std::endl;
275 if (track.trackSummary() !=
nullptr) {
276 sl << *(track.trackSummary()) << std::endl;
278 sl <<
"No TrackSummary available in this track." << std::endl;
281 if (track.trackStateOnSurfaces() !=
nullptr) {
282 sl << name <<
"has " << (track.trackStateOnSurfaces()->size())
283 <<
" trackStateOnSurface(s)" << std::endl;
285 track.trackStateOnSurfaces()->cbegin();
287 for (; it != track.trackStateOnSurfaces()->cend(); ++it) {
288 sl <<
" --------- Start of TrackStateOnSurface \t" << num <<
"\t-------"
291 sl <<
" --------- End of TrackStateOnSurface \t" << num++ <<
"\t-------"
DataModel_detail::const_iterator< DataVector > const_iterator
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
This class is the pure abstract base class for all fittable tracking measurements.
virtual constexpr SurfaceType surfaceType() const override=0
Returns the Surface Type enum for the surface used to define the derived class.
virtual constexpr ParametersType type() const override=0
Return the ParametersType enum.
Contains information about the 'fitter' of this track.
represents the track state (measurement, material, fit parameters and quality) at a surface.
virtual TrackStateOnSurface * clone() const
Pseudo-constructor: needed to avoid excessive RTTI.
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
CxxUtils::CachedValue< DataVector< const TrackParameters > > m_cachedParameterVector
A vector of TrackParameters: these can be any of the classes that derive from Trk::TrackParameters,...
Track()=default
Default constructor Here for POOL and simple tests.
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedMeasurementVector
A vector of MeasurementBase: these objects represent the "hits" on the track (but not outliers - see ...
std::unique_ptr< Trk::TrackSummary > m_trackSummary
Datamember to cache the TrackSummary.
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Trk::TrackInfo m_trackInfo
This is a class which stores the identity of where the track was created, fitted, which properties th...
void resetCaches()
reset all caches
void findPerigeeImpl() const
find PerigeeImpl.
Trk::TrackStates::const_iterator TSoS_iterator
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
const Perigee * perigeeParameters() const
return Perigee.
Track & operator=(const Track &rhs)
assignment operator
std::unique_ptr< TrackStates > m_trackStateVector
TrackStateOnSurface.
CxxUtils::CachedValue< DataVector< const MeasurementBase > > m_cachedOutlierVector
These objects represent the "outliers" on the track.
const DataVector< const MeasurementBase > * outliersOnTrack() const
return a pointer to a vector of MeasurementBase, which represent outliers (i.e.
CxxUtils::CachedValue< const Perigee * > m_perigeeParameters
A pointer to the Track's Perigee parameters.
std::unique_ptr< FitQuality > m_fitQuality
A pointer to the Track's FitQuality.
void copyHelper(const Track &rhs)
Helper method to factor common part of copy ctor and copy assignment.
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
void findPerigee() const
Find perigee in the vector of track parameters.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
ParametersBase< TrackParametersDim, Charged > TrackParameters