59 ATH_CHECK(inputTracccPixelSpacepoints.isValid());
61 << inputTracccPixelSpacepoints.key() <<
"'");
64 ATH_CHECK(inputTracccMeasurements.isValid());
66 << inputTracccMeasurements.key() <<
"'");
72 traccc::edm::seed_collection::buffer pixel_seeds_gpu_buffer = (*seeding_alg)(*inputTracccPixelSpacepoints, *inputTracccMeasurements);
74 ATH_MSG_DEBUG(
"Reconstructed " << seeding_alg.copy().get_size(pixel_seeds_gpu_buffer) <<
" pixel seeds.");
79 std::make_unique<traccc::edm::seed_collection::buffer>(
80 std::move(pixel_seeds_gpu_buffer))));
83 return StatusCode::SUCCESS;
91 std::string conn_fileName =
93 if (conn_fileName.empty()) {
96 return StatusCode::FAILURE;
98 std::ifstream ifs(conn_fileName.c_str());
99 std::unique_ptr<GNN_FASTRACK_CONNECTOR> gbts_connector =
100 std::make_unique<GNN_FASTRACK_CONNECTOR>(ifs,
false);
101 ATH_MSG_INFO(
"Layer connections are initialized from file for GBTS "
104 const std::vector<Acts::Experimental::GbtsLayerDescription>& layerDescs =
107 std::vector<TrigInDetSiLayer> layerGeometry;
108 layerGeometry.reserve(layerDescs.size());
109 for (
const auto& layer : layerDescs) {
111 converted.m_subdet = layer.id;
113 (layer.type == Acts::Experimental::GbtsLayerType::Endcap) ? 1 : 0;
114 converted.m_refCoord = layer.refCoord;
115 converted.m_minBound = layer.minBound;
116 converted.m_maxBound = layer.maxBound;
117 layerGeometry.push_back(converted);
120 std::unique_ptr<TrigFTF_GNN_Geometry> GBTS_geo =
121 std::make_unique<TrigFTF_GNN_Geometry>(layerGeometry, gbts_connector);
123 traccc::device::gbts_layerInfo layerInfo;
125 layerInfo.reserve(GBTS_geo->num_layers());
127 for (
unsigned int index = 0;
index < GBTS_geo->num_layers(); ++
index) {
129 GBTS_geo->getTrigFTF_GNN_LayerByIndex(
index);
132 (layer->m_layer.m_subdet - (layer->m_layer.m_subdet % 1000)) / 1000;
133 int is_inc_barrel = (vol_id == 97) | (vol_id == 95) | (vol_id == 93) |
134 (vol_id == 77) | (vol_id == 75) | (vol_id == 73);
135 char type = (layer->m_layer.m_type != 0) + is_inc_barrel;
136 if (layer->m_layer.m_subdet <= 20000) {
140 layerInfo.addLayer(
type, layer->m_bins[0], layer->num_bins(),
141 layer->m_minEta, layer->m_etaBin);
146 std::vector<std::pair<std::uint64_t, short>> identifierBinning;
151 for (
const auto& [detrayId, compactId] :
m_idMapping->detrayToAthenaMap()) {
155 int rc =
m_pixelID->get_hash(athenaId, idHash, &pixel_context);
157 const short layer = pixel_h2l.at(
static_cast<int>(idHash));
159 identifierBinning.push_back(std::make_pair(
160 detrayId, pixel_h2l.at(
static_cast<int>(idHash))));
163 ATH_MSG_INFO(identifierBinning.size() <<
" identifiers with a layer");
165 std::vector<std::pair<unsigned int, std::vector<unsigned int>>> binGroups;
167 const auto & rawBinGroups = GBTS_geo->bin_groups();
168 binGroups.reserve(rawBinGroups.size());
169 for (
const auto& p : rawBinGroups) {
170 binGroups.emplace_back(
static_cast<unsigned int>(p.first),
171 std::vector<unsigned int>(p.second.begin(), p.second.end()));
175 for (
auto&
pair : binGroups) {
183 if (!
m_gbts_config.setLinkingScheme(binGroups, std::move(layerInfo), identifierBinning,
185 return StatusCode::FAILURE;
187 return StatusCode::SUCCESS;
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...