67 ATH_CHECK( rioContainer.
record (std::make_unique<TRT_DriftCircleContainer>(clusterContainercache.
ptr()) ));
75 const bool hasExternalCache = rdoContainer->hasExternalCache();
76 std::unique_ptr<DataPool<TRT_DriftCircle>> dataItemsPool =
nullptr;
77 if (!hasExternalCache) {
78 dataItemsPool = std::make_unique<DataPool<TRT_DriftCircle>>(ctx);
79 dataItemsPool->reserve(100000);
81 dataItemsPool = std::make_unique<DataPool<TRT_DriftCircle>>(ctx);
88 for(
const auto *
const rdoCollections : *rdoContainer) {
90 InDet::TRT_DriftCircleContainer::IDC_WriteHandle lock = rioContainer->getWriteHandle(currentCollection->
identifyHash());
91 if (lock.OnlineAndPresentInAnotherView()) {
94 std::unique_ptr<TRT_DriftCircleCollection> p_rio(
96 currentCollection, ctx, dataItemsPool.get(),
98 if (p_rio && !p_rio->empty()) {
99 ATH_CHECK(lock.addOrDelete(std::move(p_rio)));
105 std::vector<IdentifierHash> listOfTRTIds;
108 listOfTRTIds.clear();
110 for(
auto &
id : listOfTRTIds){
112 if (!RDO_Collection)
continue;
113 InDet::TRT_DriftCircleContainer::IDC_WriteHandle lock = rioContainer->getWriteHandle(
id);
114 if( lock.OnlineAndPresentInAnotherView() ) {
119 std::unique_ptr<TRT_DriftCircleCollection> p_rio(
121 RDO_Collection, ctx, dataItemsPool.get(),
123 if (p_rio && !p_rio->empty()) {
124 ATH_CHECK(lock.addOrDelete(std::move(p_rio)));
129 ATH_MSG_DEBUG(
"rioContainer->numberOfCollections() " << rioContainer->numberOfCollections());
131 return StatusCode::SUCCESS;