75 const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
76 const Acts::Vector3& beamSpotPos,
77 const Acts::Vector3& bField,
84 Acts::SpacePointContainer2 coreSpacePoints(
85 Acts::SpacePointColumns::SourceLinks |
86 Acts::SpacePointColumns::X |
87 Acts::SpacePointColumns::Y |
88 Acts::SpacePointColumns::Z |
89 Acts::SpacePointColumns::R |
90 Acts::SpacePointColumns::Phi
94 auto LayerColoumn = coreSpacePoints.createColumn<
int>(
"LayerID");
95 auto ClusterWidthColoumn = coreSpacePoints.createColumn<
float>(
"Cluster_Width");
96 auto LocalPositionColoumn = coreSpacePoints.createColumn<
float>(
"LocalPositionY");
97 coreSpacePoints.reserve(spContainer.size());
100 seedContainer.
spacePoints().reserve(spContainer.size());
101 for(
size_t idx=0; idx<spContainer.size(); idx++){
103 const auto &
sp = spContainer.at(idx);
104 const auto & extSP =
sp.externalSpacePoint();
106 const std::vector<xAOD::DetectorIDHashType>& elementlist = extSP.elementIdList() ;
108 bool isPixel(elementlist.size() == 1);
109 if(isPixel ==
false)
continue;
111 short layer = (isPixel ?
m_pix_h2l :
m_sct_h2l)->at(
static_cast<int>(elementlist[0]));
114 auto newSp = coreSpacePoints.createSpacePoint();
119 float new_x =
static_cast<float>(extSP.x() - beamSpotPos[0]);
120 float new_y =
static_cast<float>(extSP.y() - beamSpotPos[1]);
123 newSp.z() =
static_cast<float>(extSP.z());
124 newSp.r() = std::hypot(new_x, new_y);
125 newSp.phi() = std::atan2(new_y, new_x);
128 float new_x =
static_cast<float>(extSP.x());
129 float new_y =
static_cast<float>(extSP.y());
130 newSp.x() =
static_cast<float>(extSP.x());
131 newSp.y() =
static_cast<float>(extSP.y());
132 newSp.z() =
static_cast<float>(extSP.z());
133 newSp.r() = std::hypot(new_x, new_y);
134 newSp.phi() = std::atan2(extSP.y(), extSP.x());
137 newSp.extra(LayerColoumn) = layer;
141 assert(
dynamic_cast<const xAOD::PixelCluster*
>(extSP.measurements().front())!=
nullptr);
143 newSp.extra(ClusterWidthColoumn) = pCL->
widthInEta();
147 newSp.extra(ClusterWidthColoumn) = 0;
148 newSp.extra(LocalPositionColoumn) = 0;
155 auto SPContainerComponents = std::make_tuple(std::move(coreSpacePoints), LayerColoumn.asConst(), ClusterWidthColoumn.asConst(), LocalPositionColoumn.asConst());
159 Acts::Experimental::RoiDescriptor internalRoi(0, -4.5, 4.5, 0, -std::numbers::pi, std::numbers::pi, 0, -150.0,150.0);
160 Acts::SeedContainer2 seeds =
m_finder->createSeeds(internalRoi, SPContainerComponents, max_layers);
164 seedContainer.reserve(seeds.size(), 7.0f);
165 for (Acts::MutableSeedProxy2 seed : seeds) {
170 return StatusCode::SUCCESS;
223 ATH_MSG_DEBUG(
"BeamSpotCorrection: " << cfg.BeamSpotCorrection <<
" (default: false)");
224 ATH_MSG_DEBUG(
"connectorInputFile: " << cfg.connectorInputFile <<
" (default: empty string)");
225 ATH_MSG_DEBUG(
"lutInputFile: " << cfg.lutInputFile <<
" (default: empty string)");
226 ATH_MSG_DEBUG(
"LRTmode: " << cfg.LRTmode <<
" (default: false)");
227 ATH_MSG_DEBUG(
"useML: " << cfg.useML <<
" (default: false)");
228 ATH_MSG_DEBUG(
"matchBeforeCreate: " << cfg.matchBeforeCreate <<
" (default: false)");
229 ATH_MSG_DEBUG(
"useOldTunings: " << cfg.useOldTunings <<
" (default: false)");
230 ATH_MSG_DEBUG(
"tau_ratio_precut: " << cfg.tau_ratio_precut <<
" (default: 0.009f)");
231 ATH_MSG_DEBUG(
"tau_ratio_cut: " << cfg.tau_ratio_cut <<
" (default: 0.007)");
232 ATH_MSG_DEBUG(
"etaBinOverride: " << cfg.etaBinOverride <<
" (default: 0.0)");
233 ATH_MSG_DEBUG(
"nMaxPhiSlice: " << cfg.nMaxPhiSlice <<
" (default: 53)");
234 ATH_MSG_DEBUG(
"minPt: " << cfg.minPt <<
" (default: 1000. MeV)");
235 ATH_MSG_DEBUG(
"phiSliceWidth: " << cfg.phiSliceWidth <<
" (default: null)");
236 ATH_MSG_DEBUG(
"ptCoeff: " << cfg.ptCoeff <<
" (default: 0.29955)");
237 ATH_MSG_DEBUG(
"useEtaBinning: " << cfg.useEtaBinning <<
" (default: true)");
238 ATH_MSG_DEBUG(
"doubletFilterRZ: " << cfg.doubletFilterRZ <<
" (default: true)");
239 ATH_MSG_DEBUG(
"nMaxEdges: " << cfg.nMaxEdges <<
" (default: 2000000)");
240 ATH_MSG_DEBUG(
"minDeltaRadius: " << cfg.minDeltaRadius <<
" (default: 2.0)");
241 ATH_MSG_DEBUG(
"sigmaMS: " << cfg.sigmaMS <<
" (default: 0.016)");
242 ATH_MSG_DEBUG(
"radLen: " << cfg.radLen <<
" (default: 0.025)");
243 ATH_MSG_DEBUG(
"sigma_x: " << cfg.sigma_x <<
" (default: 0.08)");
244 ATH_MSG_DEBUG(
"sigma_y: " << cfg.sigma_y <<
" (default: 0.25)");
245 ATH_MSG_DEBUG(
"weight_x: " << cfg.weight_x <<
" (default: 0.5)");
246 ATH_MSG_DEBUG(
"weight_y: " << cfg.weight_y <<
" (default: 0.5)");
247 ATH_MSG_DEBUG(
"maxDChi2_x: " << cfg.maxDChi2_x <<
" (default: 5.0)");
248 ATH_MSG_DEBUG(
"maxDChi2_y: " << cfg.maxDChi2_y <<
" (default: 6.0)");
249 ATH_MSG_DEBUG(
"add_hit: " << cfg.add_hit <<
" (default: 14.0)");
250 ATH_MSG_DEBUG(
"max_curvature: " << cfg.max_curvature <<
" (default: 1e-3f)");
251 ATH_MSG_DEBUG(
"max_z0: " << cfg.max_z0 <<
" (default: 170.0)");
252 ATH_MSG_DEBUG(
"edge_mask_min_eta: " << cfg.edge_mask_min_eta <<
" (default: 1.5)");
253 ATH_MSG_DEBUG(
"hit_share_threshold: " << cfg.hit_share_threshold <<
" (default: 0.49)");
254 ATH_MSG_DEBUG(
"max_endcap_clusterwidth: " << cfg.max_endcap_clusterwidth <<
" (default: 0.35)");