File indexing completed on 2025-10-22 07:52:27
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "TruthVertexSeeder.hpp"
0010
0011 namespace ActsExamples {
0012
0013 TruthVertexSeeder::TruthVertexSeeder(const Config &cfg) : m_cfg(cfg) {}
0014
0015 Acts::Result<std::vector<Acts::Vertex>> TruthVertexSeeder::find(
0016 const std::vector<Acts::InputTrack> & ,
0017 const Acts::VertexingOptions &vertexingOptions,
0018 Acts::IVertexFinder::State &anyState) const {
0019 auto &state = anyState.template as<State>();
0020
0021 if (state.nextVertexIndex >= state.truthVertices.size()) {
0022 return std::vector<Acts::Vertex>();
0023 }
0024
0025 std::vector<Acts::Vertex> seeds;
0026 for (std::size_t i = 0; i < m_cfg.simultaneousSeeds; ++i) {
0027 if (state.nextVertexIndex >= state.truthVertices.size()) {
0028 break;
0029 }
0030
0031 const auto &truthVertex = state.truthVertices[state.nextVertexIndex];
0032 ++state.nextVertexIndex;
0033
0034 Acts::Vertex converted;
0035 converted.fullPosition().z() = truthVertex.position().z();
0036 if (m_cfg.useXY) {
0037 converted.fullPosition().x() = truthVertex.position().x();
0038 converted.fullPosition().y() = truthVertex.position().y();
0039 }
0040 if (m_cfg.useTime) {
0041 converted.setTime(truthVertex.time());
0042 }
0043
0044 Acts::SquareMatrix4 seedCov = vertexingOptions.constraint.fullCovariance();
0045 converted.setFullCovariance(seedCov);
0046
0047 seeds.push_back(converted);
0048 }
0049
0050 return seeds;
0051 }
0052
0053 Acts::IVertexFinder::State TruthVertexSeeder::makeState(
0054 const Acts::MagneticFieldContext & ) const {
0055 return Acts::IVertexFinder::State{State{}};
0056 }
0057
0058 void TruthVertexSeeder::setTracksToRemove(
0059 Acts::IVertexFinder::State & ,
0060 const std::vector<Acts::InputTrack> & ) const {
0061
0062 }
0063
0064 }