![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
12 #include "Identifier/Identifier.h"
39 return StatusCode::SUCCESS;
44 return StatusCode::SUCCESS;
51 <<
", number of entries for this event:"
53 return std::unique_ptr<Trk::PRDtoTrackMap>(prd_to_track_map.release());
58 return std::move(obj_in);
62 <<
" but got " << obj_in->getType().name()
63 <<
" . The tool can only handle a map created by the same tool. ");
66 return std::make_unique<Trk::PRDtoTrackMap>(std::move(*the_obj));
74 <<
" but got " << virt_prd_to_track_map.
getType().name()
75 <<
" . The tool can only handle a map created by the same tool. ");
76 throw std::logic_error(
"Type mismap between tool and map");
90 ATH_MSG_ERROR(
"track already found in cache, should not happen");
91 return StatusCode::FAILURE;
101 if (
pixel->gangedPixel()) {
103 std::pair<PixelGangedClusterAmbiguities::const_iterator,
104 PixelGangedClusterAmbiguities::const_iterator> ambi = prd_to_track_map.
m_gangedAmbis->equal_range(
pixel);
105 for (; ambi.first != ambi.second ; ++(ambi.first) ) {
107 if (msgLvl(
MSG::DEBUG))
msg() <<
"Found mirror pixel, add mirror to association map" <<
endmsg;
119 return StatusCode::SUCCESS;
132 std::vector< const Trk::PrepRawData* > prds =
getPrdsOnTrack(virt_prd_to_track_map,
track);
137 connectedTracks.insert((
range.first)->second);
143 if (
pixel->gangedPixel()) {
144 std::pair<PixelGangedClusterAmbiguities::const_iterator,
145 PixelGangedClusterAmbiguities::const_iterator> ambi = prd_to_track_map.
m_gangedAmbis->equal_range(
pixel);
146 for (; ambi.first != ambi.second ; ++(ambi.first) ) {
150 connectedTracks.insert((
range.first)->second);
157 connectedTracks.erase(&
track);
160 <<
"\tsize of list is "<<connectedTracks.size());
162 return connectedTracks;
166 std::vector< const Trk::PrepRawData* >
172 using PRDs_t = std::vector<const Trk::PrepRawData *>;
178 ATH_MSG_VERBOSE(
"found track in cache, return cached PRD vector for track");
179 return itvec->second;
182 if (
track.measurementsOnTrack()==
nullptr) {
197 vec.reserve(
track.measurementsOnTrack()->size());
202 for (;
it!=itEnd;++
it)
204 const auto *
const meas{*
it};
233 if (!
key.key().empty()) {
PrepRawDataTrackMapRange onTracks(const PrepRawData &prd)
get the Tracks associated with this PrepRawData.
std::set< TrackPtr > TrackSet
virtual bool rioType(RIO_OnTrackType::Type type) const =0
Method checking the Rio On Track type.
std::vector< size_t > vec
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
TrackPrepRawDataMap m_trackPrepRawDataMap
holds the PRDs associated with each Track (i.e.
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual const std::type_info & getType() const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
PrepRawDataTrackMap m_prepRawDataTrackMap
holds the tracks associated with each PRD (i.e.
#define ATH_MSG_WARNING(x)
std::pair< PrepRawDataTrackMap::const_iterator, PrepRawDataTrackMap::const_iterator > ConstPrepRawDataTrackMapRange