20 return StatusCode::SUCCESS;
26 ATH_MSG_ERROR(
"No input xAOD Pixel Cluster container key provided");
27 return StatusCode::FAILURE;
30 ATH_MSG_ERROR(
"No input xAOD Strip Cluster container key provided");
31 return StatusCode::FAILURE;
35 if (!xAODPixelClusters.
isValid()) {
37 return StatusCode::FAILURE;
40 if (!xAODStripClusters.
isValid()) {
42 return StatusCode::FAILURE;
46 std::unique_ptr<xAOD::PixelClusterContainer> sortedxAODPixelClusters = std::make_unique<xAOD::PixelClusterContainer>();
47 std::unique_ptr<xAOD::PixelClusterAuxContainer> sortedxAODPixelClustersAux = std::make_unique<xAOD::PixelClusterAuxContainer>();
48 sortedxAODPixelClusters->setStore (sortedxAODPixelClustersAux.get());
53 std::unique_ptr<xAOD::StripClusterContainer> sortedxAODStripClusters = std::make_unique<xAOD::StripClusterContainer>();
54 std::unique_ptr<xAOD::StripClusterAuxContainer> sortedxAODStripClustersAux = std::make_unique<xAOD::StripClusterAuxContainer>();
55 sortedxAODStripClusters->setStore (sortedxAODStripClustersAux.get());
60 std::vector<const xAOD::PixelCluster*> pixelClustersVec;
61 pixelClustersVec.reserve(xAODPixelClusters->
size());
63 pixelClustersVec.push_back(
cl);
67 std::sort(pixelClustersVec.begin(), pixelClustersVec.end(),
69 return a->identifierHash() < b->identifierHash();
75 sortedxAODPixelClusters->
push_back(newCl);
80 std::vector<const xAOD::StripCluster*> stripClustersVec;
81 stripClustersVec.reserve(xAODStripClusters->
size());
83 stripClustersVec.push_back(
cl);
87 std::sort(stripClustersVec.begin(), stripClustersVec.end(),
89 return a->identifierHash() < b->identifierHash();
95 sortedxAODStripClusters->
push_back(newCl);
100 ATH_CHECK(sortedxAODPixelClustersHandle.
record(std::move(sortedxAODPixelClusters), std::move(sortedxAODPixelClustersAux)).isSuccess());
101 ATH_CHECK(sortedxAODStripClustersHandle.
record(std::move(sortedxAODStripClusters), std::move(sortedxAODStripClustersAux)).isSuccess());
106 return StatusCode::SUCCESS;