56 if(!trackCollection.
isValid()) {
63 std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map_cleanup;
66 if (!prd_to_track_map_handle.
isValid()) {
70 prd_to_track_map=prd_to_track_map_handle.
cptr();
73 prd_to_track_map_cleanup =
m_assoTool->createPRDtoTrackMap();
75 for (
const Trk::Track* track : *trackCollection) {
76 StatusCode
sc =
m_assoTool->addPRDs(*prd_to_track_map_cleanup, *track);
82 prd_to_track_map = prd_to_track_map_cleanup.get();
85 std::unique_ptr<MinBiasPRDAssociation> PRDAssociation(std::make_unique<MinBiasPRDAssociation>());
94 InDet::PixelClusterContainer::const_iterator pixCollItr = pixelClusters->begin();
95 InDet::PixelClusterContainer::const_iterator pixCollEnd = pixelClusters->end();
96 for(; pixCollItr!=pixCollEnd; ++pixCollItr){
98 InDet::PixelClusterCollection::const_iterator pixItr = (*pixCollItr)->begin();
99 InDet::PixelClusterCollection::const_iterator pixEnd = (*pixCollItr)->end();
100 for(; pixItr!=pixEnd; ++pixItr){
103 if(prd_to_track_map->
isUsed(*(*pixItr)))
continue;
106 PRDAssociation->nPixelUA++;
112 if(det->isBarrel()) PRDAssociation->nPixelBarrelUA++;
116 if((*pixItr)->globalPosition().z()<0){
117 PRDAssociation->nPixelEndCapCUA++;
119 PRDAssociation->nPixelEndCapAUA++;
124 if(det->isBlayer()) PRDAssociation->nBlayerUA++;
137 InDet::SCT_ClusterContainer::const_iterator sctCollItr = SCTClusters->begin();
138 InDet::SCT_ClusterContainer::const_iterator sctCollEnd = SCTClusters->end();
139 for(; sctCollItr!=sctCollEnd; ++sctCollItr){
141 InDet::SCT_ClusterCollection::const_iterator sctItr = (*sctCollItr)->begin();
142 InDet::SCT_ClusterCollection::const_iterator sctEnd = (*sctCollItr)->end();
143 for(; sctItr!=sctEnd; ++sctItr){
146 if(prd_to_track_map->
isUsed(*(*sctItr)))
continue;
149 PRDAssociation->nSCTUA++;
155 if(det->isBarrel()) PRDAssociation->nSCTBarrelUA++;
159 if((*sctItr)->globalPosition().z()<0){
160 PRDAssociation->nSCTEndCapCUA++;
162 PRDAssociation->nSCTEndCapAUA++;
172 if(!TRTDriftCircles.
isValid()) {
177 InDet::TRT_DriftCircleContainer::const_iterator trtCollItr = TRTDriftCircles->begin();
178 InDet::TRT_DriftCircleContainer::const_iterator trtCollEnd = TRTDriftCircles->end();
179 for(; trtCollItr!=trtCollEnd; ++trtCollItr){
181 InDet::TRT_DriftCircleCollection::const_iterator trtItr = (*trtCollItr)->begin();
182 InDet::TRT_DriftCircleCollection::const_iterator trtEnd = (*trtCollItr)->end();
183 for(; trtItr!=trtEnd; ++trtItr){
186 if(prd_to_track_map->
isUsed(*(*trtItr)))
continue;
189 PRDAssociation->nTRTUA++;
201 if(det->center().z()<0){
202 PRDAssociation->nTRTEndCapCUA++;
204 PRDAssociation->nTRTEndCapAUA++;
211 return PRDAssociation.release();