21 const std::string&
name,
22 const IInterface*
parent) :
44 return StatusCode::SUCCESS;
48 const EventContext& ctx = Gaudi::Hive::currentContext();
57 if(!trackCollection.
isValid()) {
64 std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map_cleanup;
67 if (!prd_to_track_map_handle.
isValid()) {
71 prd_to_track_map=prd_to_track_map_handle.
cptr();
74 prd_to_track_map_cleanup =
m_assoTool->createPRDtoTrackMap();
76 for (
const Trk::Track* track : *trackCollection) {
83 prd_to_track_map = prd_to_track_map_cleanup.get();
86 std::unique_ptr<MinBiasPRDAssociation> PRDAssociation(std::make_unique<MinBiasPRDAssociation>());
95 InDet::PixelClusterContainer::const_iterator pixCollItr = pixelClusters->begin();
96 InDet::PixelClusterContainer::const_iterator pixCollEnd = pixelClusters->end();
97 for(; pixCollItr!=pixCollEnd; ++pixCollItr){
99 InDet::PixelClusterCollection::const_iterator pixItr = (*pixCollItr)->begin();
100 InDet::PixelClusterCollection::const_iterator pixEnd = (*pixCollItr)->end();
101 for(; pixItr!=pixEnd; ++pixItr){
104 if(prd_to_track_map->
isUsed(*(*pixItr)))
continue;
117 if((*pixItr)->globalPosition().z()<0){
138 InDet::SCT_ClusterContainer::const_iterator sctCollItr = SCTClusters->begin();
139 InDet::SCT_ClusterContainer::const_iterator sctCollEnd = SCTClusters->end();
140 for(; sctCollItr!=sctCollEnd; ++sctCollItr){
142 InDet::SCT_ClusterCollection::const_iterator sctItr = (*sctCollItr)->begin();
143 InDet::SCT_ClusterCollection::const_iterator sctEnd = (*sctCollItr)->end();
144 for(; sctItr!=sctEnd; ++sctItr){
147 if(prd_to_track_map->
isUsed(*(*sctItr)))
continue;
160 if((*sctItr)->globalPosition().z()<0){
173 if(!TRTDriftCircles.
isValid()) {
178 InDet::TRT_DriftCircleContainer::const_iterator trtCollItr = TRTDriftCircles->begin();
179 InDet::TRT_DriftCircleContainer::const_iterator trtCollEnd = TRTDriftCircles->end();
180 for(; trtCollItr!=trtCollEnd; ++trtCollItr){
182 InDet::TRT_DriftCircleCollection::const_iterator trtItr = (*trtCollItr)->begin();
183 InDet::TRT_DriftCircleCollection::const_iterator trtEnd = (*trtCollItr)->end();
184 for(; trtItr!=trtEnd; ++trtItr){
187 if(prd_to_track_map->
isUsed(*(*trtItr)))
continue;
202 if(
det->center().z()<0){
212 return PRDAssociation.release();