77 ATH_CHECK( clusterContainer.
record (std::make_unique<PixelClusterContainer>(clusterContainercache.
ptr() )));
81 ATH_MSG_DEBUG(
"Container '" << clusterContainer->name() <<
"' initialised" );
84 ATH_MSG_DEBUG(
"Pixel clusters '" << clusterContainer.
name() <<
"' symlinked in StoreGate");
88 ambiguitiesMap = std::make_unique<PixelGangedClusterAmbiguities>();
96 std::unique_ptr<DataPool<PixelCluster>> dataItemsPool =
nullptr;
97 const bool hasExternalCache = rdoContainer->hasExternalCache();
98 if (!hasExternalCache) {
99 dataItemsPool = std::make_unique<DataPool<PixelCluster>>(ctx);
100 dataItemsPool->reserve(20000);
102 dataItemsPool = std::make_unique<DataPool<PixelCluster>>(ctx);
111 for(; rdoCollections!=rdoCollectionsEnd; ++rdoCollections){
112 const COLLECTION* RDO_Collection(*rdoCollections);
113 if (!RDO_Collection || RDO_Collection->
empty())
continue;
114 PixelClusterContainer::IDC_WriteHandle lock = clusterContainer->getWriteHandle(rdoCollections.
hashId());
115 if( lock.OnlineAndPresentInAnotherView() )
continue;
118 std::unique_ptr<PixelClusterCollection> clusterCollection(
120 dataItemsPool.get(), ctx));
122 if (clusterCollection && !clusterCollection->empty()){
125 ATH_CHECK(lock.addOrDelete( std::move(clusterCollection) ));
139 std::vector<IdentifierHash> listOfPixIds;
140 for (; roi!=roiE; ++roi) {
142 listOfPixIds.clear();
147 << listOfPixIds.size() <<
" det. Elements" );
148 for (
auto & listOfPixId : listOfPixIds) {
151 if (!RDO_Collection)
continue;
152 PixelClusterContainer::IDC_WriteHandle lock = clusterContainer->getWriteHandle(listOfPixId);
153 if( lock.OnlineAndPresentInAnotherView() )
continue;
156 std::unique_ptr<PixelClusterCollection> clusterCollection(
158 dataItemsPool.get(), ctx));
159 if (clusterCollection && !clusterCollection->empty()) {
161 << clusterCollection->size() <<
" clusters" );
163 ATH_CHECK(lock.addOrDelete( std::move(clusterCollection) ));
172 ATH_MSG_DEBUG(
"clusterContainer->numberOfCollections() " << clusterContainer->numberOfCollections());
174 ATH_MSG_DEBUG(
"PixelClusterAmbiguitiesMap recorded in StoreGate");
176 return StatusCode::SUCCESS;