File indexing completed on 2025-08-06 08:10:47
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "ActsExamples/Io/Csv/CsvSpacepointWriter.hpp"
0010
0011 #include "Acts/EventData/SourceLink.hpp"
0012 #include "Acts/Geometry/GeometryIdentifier.hpp"
0013 #include "Acts/Utilities/Logger.hpp"
0014 #include "ActsExamples/EventData/IndexSourceLink.hpp"
0015 #include "ActsExamples/EventData/SimSpacePoint.hpp"
0016 #include "ActsExamples/Framework/AlgorithmContext.hpp"
0017 #include "ActsExamples/Framework/ProcessCode.hpp"
0018 #include "ActsExamples/Framework/WriterT.hpp"
0019 #include "ActsExamples/Utilities/Paths.hpp"
0020
0021 #include <string>
0022 #include <vector>
0023
0024 #include <dfe/dfe_io_dsv.hpp>
0025
0026 #include "CsvOutputData.hpp"
0027
0028 ActsExamples::CsvSpacepointWriter::CsvSpacepointWriter(
0029 const ActsExamples::CsvSpacepointWriter::Config& config,
0030 Acts::Logging::Level level)
0031 : WriterT(config.inputSpacepoints, "CsvSpacepointWriter", level),
0032 m_cfg(config) {}
0033
0034 ActsExamples::CsvSpacepointWriter::~CsvSpacepointWriter() = default;
0035
0036 ActsExamples::ProcessCode ActsExamples::CsvSpacepointWriter::finalize() {
0037
0038 return ProcessCode::SUCCESS;
0039 }
0040
0041 ActsExamples::ProcessCode ActsExamples::CsvSpacepointWriter::writeT(
0042 const AlgorithmContext& ctx, const SimSpacePointContainer& spacepoints) {
0043
0044 std::string pathSP =
0045 perEventFilepath(m_cfg.outputDir, "spacepoint.csv", ctx.eventNumber);
0046
0047 dfe::NamedTupleCsvWriter<SpacepointData> writerSP(pathSP,
0048 m_cfg.outputPrecision);
0049
0050 SpacepointData spData{};
0051 for (const auto& sp : spacepoints) {
0052 const auto slink = sp.sourceLinks()[0].get<IndexSourceLink>();
0053
0054 spData.measurement_id = slink.index();
0055 spData.geometry_id = slink.geometryId().value();
0056 spData.x = sp.x();
0057 spData.y = sp.y();
0058 spData.z = sp.z();
0059 spData.var_r = sp.varianceR();
0060 spData.var_z = sp.varianceZ();
0061 writerSP.append(spData);
0062 }
0063 return ActsExamples::ProcessCode::SUCCESS;
0064 }