11#include "Identifier/Identifier.h"
26 return StatusCode::SUCCESS;
31 return StatusCode::SUCCESS;
46 ATH_MSG_ERROR(
"track already found in cache, should not happen");
47 return StatusCode::FAILURE;
50 std::vector< const Trk::PrepRawData* > prds =
getPrdsOnTrack( maps, track );
60 if (
pixel->gangedPixel()) {
62 std::pair<PixelGangedClusterAmbiguities::const_iterator,
63 PixelGangedClusterAmbiguities::const_iterator> ambi = gangedAmbis->equal_range(
pixel);
64 for (; ambi.first != ambi.second ; ++(ambi.first) ) {
66 ATH_MSG_DEBUG(
"Found mirror pixel, add mirror to association map" );
76 ATH_MSG_DEBUG(
"Added PRDs from Track at ("<<&track<<
") - map now has size: \t"
78 return StatusCode::SUCCESS;
102 ATH_MSG_ERROR(
"Track not found in cache, this should not happen");
103 return StatusCode::FAILURE;
109 std::vector< const Trk::PrepRawData* > prds = itvec->second;
116 ConstPRD_MapIt mapIt = range.first;
117 ConstPRD_MapIt mapItEnd = range.second;
119 for ( ;mapIt!=mapItEnd; ++mapIt) {
120 if ( mapIt->second==&track ) {
130 if (
pixel->gangedPixel()) {
131 std::pair<PixelGangedClusterAmbiguities::const_iterator,
132 PixelGangedClusterAmbiguities::const_iterator> ambi = gangedAmbis->equal_range(
pixel);
133 for (; ambi.first != ambi.second ; ++(ambi.first) ) {
135 ATH_MSG_DEBUG(
"Found ganged pixel, remove also mirror from association map");
140 mapItEnd = range.second;
142 for ( ;mapIt!=mapItEnd; ++mapIt) {
143 if ( mapIt->second==&track ) {
158 <<&track<<
") \t- map has changed size from \t"
160 return StatusCode::SUCCESS;
173 TrackSet connectedTracks;
177 std::vector< const Trk::PrepRawData* > prds =
getPrdsOnTrack(maps, track);
181 for ( ; range.first!=range.second; ++(range.first) )
182 connectedTracks.insert((range.first)->second);
188 if (
pixel->gangedPixel()) {
189 std::pair<PixelGangedClusterAmbiguities::const_iterator,
190 PixelGangedClusterAmbiguities::const_iterator> ambi = gangedAmbis->equal_range(
pixel);
191 for (; ambi.first != ambi.second ; ++(ambi.first) ) {
192 range =
onTracks( maps, *(ambi.first->second) );
194 for ( ; range.first!=range.second; ++(range.first) )
195 connectedTracks.insert((range.first)->second);
202 connectedTracks.erase(&track);
205 <<
"\tsize of list is "<<connectedTracks.size());
207 return connectedTracks;
211std::vector< const Trk::PrepRawData* >
218std::vector< const Trk::PrepRawData* >
222 using PRDs_t = std::vector<const Trk::PrepRawData *>;
228 ATH_MSG_VERBOSE(
"found track in cache, return cached PRD vector for track");
229 return itvec->second;
232 if (track.measurementsOnTrack()==
nullptr) {
241 vec.reserve(track.measurementsOnTrack()->size());
246 for (;it!=itEnd;++it){
247 const auto *
const pThisMeasurement(*it);
268 ATH_MSG_DEBUG(
" Getting "<<
vec.size()<<
" PRDs including TRT outlier from track at:"<<&track);
289 m_maps.m_prepRawDataTrackMap.clear();
290 m_maps.m_trackPrepRawDataMap.clear();
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
std::vector< size_t > vec
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
This class is the pure abstract base class for all fittable tracking measurements.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
virtual bool rioType(RIO_OnTrackType::Type type) const =0
Method checking the Rio On Track type.