181 IChronoStatSvc* theTicker = chronoSvc();
188 if ( !towerContainer.
isValid() ) {
190 return StatusCode::SUCCESS;
197 return StatusCode::SUCCESS;
199 ATH_MSG_DEBUG(
"CaloTopoTowerAlgorithm::execute " << theCells.
name() <<
" size= " << theCells->size() );
204 if ( !clusters.isValid() )
207 << clusters.name() <<
">" );
208 return StatusCode::SUCCESS;
213 if ( !cellToClusterMap.
isValid() ){
215 << cellToClusterMap.
name() <<
">" );
216 return StatusCode::SUCCESS;
219 ATH_MSG_DEBUG(
"Successfully retrieved CaloCell2ClusterMap <"<< cellToClusterMap.
name() <<
">" );
222 ATH_CHECK( theTowers.
record (std::make_unique<CaloTopoTowerContainer>(towerContainer->towerseg())) );
228 theTowers->SetTowers(towerContainer.
cptr());
229 theTowers->SetClusters(clusters.ptr());
230 theTowers->SetCells(theCells.
cptr());
231 theTowers->SetCellToClusterMap(cellToClusterMap.
cptr());
249 ToolHandleArray<ICaloTopoTowerBuilderToolBase>::const_iterator firstITool =
m_ptools.begin();
250 ToolHandleArray<ICaloTopoTowerBuilderToolBase>::const_iterator lastITool =
m_ptools.end();
251 StatusCode processStatus = StatusCode::SUCCESS;
258 while ( ! processStatus.isFailure() && firstITool != lastITool )
267 if ( theTicker !=
nullptr )
270 theTicker->chronoStart((*firstITool)->name());
280 processStatus = (*firstITool)->execute(ctx, theTowers.
ptr());
285 if ( theTicker !=
nullptr )
288 theTicker->chronoStop((*firstITool)->name());
290 if ( ! processStatus.isFailure() )
293 <<
": CaloTopoTowerContainer::size() = "
294 << theTowers->size() );
300 ATH_MSG_ERROR(
"problems while or after processing tool \042"
301 << (*firstITool)->name()
302 <<
"\042 - cross-check CaloTopoTowerContainer::size() = "
303 << theTowers->size() );
308 return StatusCode::SUCCESS;