21 const std::string&
name,
22 const IInterface*
parent) :
25 declareInterface<IUnassociatedHitsGetterTool>(
this);
45 return StatusCode::SUCCESS;
49 const EventContext& ctx = Gaudi::Hive::currentContext();
58 if(!trackCollection.
isValid()) {
65 std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map_cleanup;
68 if (!prd_to_track_map_handle.
isValid()) {
72 prd_to_track_map=prd_to_track_map_handle.
cptr();
75 prd_to_track_map_cleanup =
m_assoTool->createPRDtoTrackMap();
84 prd_to_track_map = prd_to_track_map_cleanup.get();
87 std::unique_ptr<MinBiasPRDAssociation> PRDAssociation(std::make_unique<MinBiasPRDAssociation>());
96 InDet::PixelClusterContainer::const_iterator pixCollItr = pixelClusters->begin();
97 InDet::PixelClusterContainer::const_iterator pixCollEnd = pixelClusters->end();
98 for(; pixCollItr!=pixCollEnd; ++pixCollItr){
100 InDet::PixelClusterCollection::const_iterator pixItr = (*pixCollItr)->begin();
101 InDet::PixelClusterCollection::const_iterator pixEnd = (*pixCollItr)->end();
102 for(; pixItr!=pixEnd; ++pixItr){
105 if(prd_to_track_map->
isUsed(*(*pixItr)))
continue;
118 if((*pixItr)->globalPosition().z()<0){
139 InDet::SCT_ClusterContainer::const_iterator sctCollItr = SCTClusters->begin();
140 InDet::SCT_ClusterContainer::const_iterator sctCollEnd = SCTClusters->end();
141 for(; sctCollItr!=sctCollEnd; ++sctCollItr){
143 InDet::SCT_ClusterCollection::const_iterator sctItr = (*sctCollItr)->begin();
144 InDet::SCT_ClusterCollection::const_iterator sctEnd = (*sctCollItr)->end();
145 for(; sctItr!=sctEnd; ++sctItr){
148 if(prd_to_track_map->
isUsed(*(*sctItr)))
continue;
161 if((*sctItr)->globalPosition().z()<0){
174 if(!TRTDriftCircles.
isValid()) {
179 InDet::TRT_DriftCircleContainer::const_iterator trtCollItr = TRTDriftCircles->begin();
180 InDet::TRT_DriftCircleContainer::const_iterator trtCollEnd = TRTDriftCircles->end();
181 for(; trtCollItr!=trtCollEnd; ++trtCollItr){
183 InDet::TRT_DriftCircleCollection::const_iterator trtItr = (*trtCollItr)->begin();
184 InDet::TRT_DriftCircleCollection::const_iterator trtEnd = (*trtCollItr)->end();
185 for(; trtItr!=trtEnd; ++trtItr){
188 if(prd_to_track_map->
isUsed(*(*trtItr)))
continue;
203 if(
det->center().z()<0){
213 return PRDAssociation.release();