11 #include "GaudiKernel/MsgStream.h"
19 m_trackStateVector(std::move(trackStateOnSurfaces)),
20 m_cachedParameterVector{},
21 m_cachedMeasurementVector{},
22 m_cachedOutlierVector{},
23 m_perigeeParameters{},
33 m_cachedParameterVector{},
34 m_cachedMeasurementVector{},
35 m_cachedOutlierVector{},
36 m_perigeeParameters{},
37 m_fitQuality(
nullptr) {
45 m_fitQuality.reset(
nullptr);
46 m_trackSummary.reset(
nullptr);
49 m_trackStateVector.reset();
62 m_fitQuality = std::make_unique<Trk::FitQuality>(*(rhs.
m_fitQuality));
66 m_trackSummary = std::make_unique<Trk::TrackSummary>(*(rhs.
m_trackSummary));
71 m_trackStateVector = std::make_unique<TrackStates>();
76 itTSoS != itTSoSEnd; ++itTSoS) {
77 assert(*itTSoS !=
nullptr);
80 m_trackStateVector->push_back(tsos);
89 if (perigee !=
nullptr) {
90 m_perigeeParameters.store(perigee);
100 if (!m_trackStateVector) {
104 if (!m_cachedParameterVector.isValid()) {
108 tmp_ParameterVector.
reserve(m_trackStateVector->size());
110 for (
TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
114 if (trackParameters !=
nullptr) {
115 tmp_ParameterVector.
push_back(trackParameters);
118 m_cachedParameterVector.set(std::move(tmp_ParameterVector));
120 return m_cachedParameterVector.ptr();
124 if (!m_perigeeParameters.isValid()) {
137 if (!m_trackStateVector) {
141 m_trackStateVector->cbegin();
143 m_trackStateVector->cend();
144 for (;
it != itEnd; ++
it) {
152 if (tmpPerigeeParameters !=
nullptr) {
158 if (tmpPerigeeParameters) {
159 m_perigeeParameters.set(tmpPerigeeParameters);
164 if (!m_perigeeParameters.isValid()) {
171 if (m_perigeeParameters.isValid()) {
172 return *(m_perigeeParameters.ptr());
180 if (!m_trackStateVector) {
185 if (!m_cachedMeasurementVector.isValid()) {
191 tmpMeasurementVector.
reserve(m_trackStateVector->size());
194 for (
TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
199 if (rot !=
nullptr) {
204 m_cachedMeasurementVector.set(std::move(tmpMeasurementVector));
207 return m_cachedMeasurementVector.ptr();
212 if (!m_trackStateVector) {
216 if (!m_cachedOutlierVector.isValid()) {
220 for (
TSoS_iterator itTSoS = m_trackStateVector->cbegin(); itTSoS != itTSoSEnd;
224 assert(rot !=
nullptr);
228 m_cachedOutlierVector.set(std::move(tmpOutlierVector));
230 return m_cachedOutlierVector.ptr();
236 std::string
name(
"Track ");
238 if (
track.fitQuality() !=
nullptr) {
241 if (
track.trackSummary() !=
nullptr) {
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-------"