14#include "ext/functional"
25 return StatusCode::SUCCESS;
29 return std::make_unique<Trk::PRDtoTrackMapTool::PRDtoTrackMap>();
33 return std::move(obj_in);
40 <<
" but got " << virt_prd_to_track_map.
getType().name()
41 <<
" . The tool can only handle a map created by the same tool. ");
42 throw std::logic_error(
"Type mismap between tool and map");
44 assert(
dynamic_cast<PRDtoTrackMap *
>(&virt_prd_to_track_map) !=
nullptr );
53 PRDtoTrackMap::TrackPrepRawDataMap::const_iterator itvec = prd_to_track_map.
m_trackPrepRawDataMap.find(&track);
56 ATH_MSG_ERROR (
"track already found in cache, should not happen");
57 return StatusCode::FAILURE;
60 std::vector< const Trk::PrepRawData* > prds =
getPrdsOnTrack(prd_to_track_map, track );
70 ATH_MSG_DEBUG (
"Added PRDs from Track at ("<<&track<<
") - map now has size: \t"<<
72 return StatusCode::SUCCESS;
76Trk::PRDtoTrackMapTool::TrackSet
82 TrackSet connectedTracks;
84 std::vector< const Trk::PrepRawData* > prds =
getPrdsOnTrack(prd_to_track_map, track);
90 for ( ; range.first!=range.second; ++(range.first) )
92 const Track* conTrack = (range.first)->second;
94 if (conTrack!=&track) {
96 connectedTracks.insert(conTrack);
97 ATH_MSG_VERBOSE (
"Track "<<&track<<
" \tshares PRD "<<a_prd<<
" \twith track:"<<conTrack);
101 "\tsize of list now:"<<connectedTracks.size());
104 return connectedTracks;
108std::vector< const Trk::PrepRawData* >
112 using PRDs_t = std::vector<const Trk::PrepRawData *>;
118 PRDtoTrackMap::TrackPrepRawDataMap::const_iterator itvec = prd_to_track_map.
m_trackPrepRawDataMap.find(&track);
121 ATH_MSG_VERBOSE (
"found track in cache, return cached PRD vector for track");
122 return itvec->second;
125 if (!track.measurementsOnTrack()) {
138 vec.reserve(track.measurementsOnTrack()->size());
163 if (!competingROT) {
continue;}
165 for(
unsigned int i=0;i<numROTs;++i ){
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
std::vector< size_t > vec
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
virtual unsigned int numberOfContainedROTs() const =0
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
This class is the pure abstract base class for all fittable tracking measurements.
PrepRawDataTrackMapRange onTracks(const PrepRawData &prd)
get the Tracks associated with this PrepRawData.
TrackPrepRawDataMap m_trackPrepRawDataMap
holds the PRDs associated with each Track (i.e.
std::pair< PrepRawDataTrackMap::iterator, PrepRawDataTrackMap::iterator > PrepRawDataTrackMapRange
PrepRawDataTrackMap m_prepRawDataTrackMap
holds the tracks associated with each PRD (i.e.
virtual const std::type_info & getType() const
Identifier identify() const
return the identifier
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.