// This file is part of the Acts project. // // Copyright (C) 2019 CERN for the benefit of the Acts project // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "ACTFW/Io/Csv/CsvOptionsWriter.hpp" #include <boost/program_options.hpp> #include <dfe/dfe_io_dsv.hpp> #include <limits> void FW::Options::addCsvWriterOptions(FW::Options::Description& desc) { using namespace boost::program_options; desc.add_options()( "csv-output-precision", value<size_t>()->default_value(std::numeric_limits<float>::max_digits10), "Floating number output precision.")( "csv-tg-perevent", bool_switch(), "Write tracking geometry per event."); } FW::CsvParticleWriter::Config FW::Options::readCsvParticleWriterConfig( const FW::Options::Variables& vm) { FW::CsvParticleWriter::Config cfg; if (not vm["output-dir"].empty()) { cfg.outputDir = vm["output-dir"].as<std::string>(); } cfg.outputPrecision = vm["csv-output-precision"].as<size_t>(); return cfg; } FW::CsvPlanarClusterWriter::Config FW::Options::readCsvPlanarClusterWriterConfig( const FW::Options::Variables& vm) { FW::CsvPlanarClusterWriter::Config cfg; if (not vm["output-dir"].empty()) { cfg.outputDir = vm["output-dir"].as<std::string>(); } cfg.outputPrecision = vm["csv-output-precision"].as<size_t>(); return cfg; } FW::CsvTrackingGeometryWriter::Config FW::Options::readCsvTrackingGeometryWriterConfig( const FW::Options::Variables& vm) { FW::CsvTrackingGeometryWriter::Config cfg; if (not vm["output-dir"].empty()) { cfg.outputDir = vm["output-dir"].as<std::string>(); } cfg.outputPrecision = vm["csv-output-precision"].as<size_t>(); cfg.writePerEvent = vm.count("csv-tg-perevent"); return cfg; }