42 m_layerGeometry.emplace_back(s.m_subdet, s.m_type, s.m_refCoord, s.m_minBound, s.m_maxBound);
52 std::ifstream input_ifstream(
m_finderCfg.ConnectorInputFile.c_str(), std::ifstream::in);
56 if (input_ifstream.peek() == std::ifstream::traits_type::eof()) {
59 throw std::runtime_error(
"connection file not found");
78 return StatusCode::SUCCESS;
85 const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
86 const Acts::Vector3& beamSpotPos,
87 const Acts::Vector3& bField,
94 Acts::SpacePointContainer2 coreSpacePoints(
95 Acts::SpacePointColumns::SourceLinks |
96 Acts::SpacePointColumns::X |
97 Acts::SpacePointColumns::Y |
98 Acts::SpacePointColumns::Z |
99 Acts::SpacePointColumns::R |
100 Acts::SpacePointColumns::Phi
104 auto LayerColoumn = coreSpacePoints.createColumn<
int>(
"LayerID");
105 auto ClusterWidthColoumn = coreSpacePoints.createColumn<
float>(
"Cluster_Width");
106 coreSpacePoints.reserve(spContainer.size());
109 seedContainer.
spacePoints().reserve(spContainer.size());
110 for(
size_t idx=0; idx<spContainer.size(); idx++){
112 const auto &
sp = spContainer.at(idx);
113 const auto & extSP =
sp.externalSpacePoint();
115 const std::vector<xAOD::DetectorIDHashType>& elementlist = extSP.elementIdList() ;
117 bool isPixel(elementlist.size() == 1);
118 if(isPixel ==
false)
continue;
120 short layer = (isPixel ?
m_pix_h2l :
m_sct_h2l)->at(
static_cast<int>(elementlist[0]));
122 const auto& pos = extSP.globalPosition();
124 auto newSp = coreSpacePoints.createSpacePoint();
127 newSp.assignSourceLinks(
128 std::array<Acts::SourceLink, 1>{Acts::SourceLink(&extSP)});
133 newSp.x() = pos.x() - beamSpotPos[0];
134 newSp.y() = pos.y() - beamSpotPos[1];
145 newSp.r() = std::sqrt(std::pow(pos.x(), 2) + std::pow(pos.y(), 2));
146 newSp.phi() = std::atan2(pos.y(), pos.x());
147 newSp.extra(LayerColoumn) = layer;
151 assert(
dynamic_cast<const xAOD::PixelCluster*
>(extSP.measurements().front())!=
nullptr);
153 newSp.extra(ClusterWidthColoumn) = pCL->
widthInEta();
156 newSp.extra(ClusterWidthColoumn) = 0 ;
163 auto SPContainerComponents = std::make_tuple(std::move(coreSpacePoints), LayerColoumn.asConst(), ClusterWidthColoumn.asConst());
170 Acts::Experimental::RoiDescriptor internalRoi(0, -4.5, 4.5, 0, -std::numbers::pi, std::numbers::pi, 0, -150.0,150.0);
171 Acts::SeedContainer2 seeds = finder.CreateSeeds(internalRoi, SPContainerComponents, max_layers);
175 seedContainer.reserve(seeds.size(), 7.0f);
176 for (Acts::MutableSeedProxy2 seed : seeds) {
181 return StatusCode::SUCCESS;