Program Listing for File TrackUtils.hpp

↰ Return to documentation for file (src/tracks/TrackUtils.hpp)

#ifndef TRACKUTILS_HPP
#define TRACKUTILS_HPP

#include "TrackCommons.hpp"
#include <cstddef>
#include <filesystem>
#include <string>
#include <toml.hpp>
#include <utility>
#include <vector>

namespace tracks
{
    auto parseRegistry(const std::string& registryName = defaultRegistry)
    -> std::pair<toml::table, std::filesystem::path>;

    auto findMatchingTracks(
        const std::string& trackName,
        double fehMin,
        double fehMax,
        double vvcrit = 0.0,
        double afe = 0.0,
        unsigned int nExpand = 0,
        const std::string& registryName = defaultRegistry)
    -> std::pair<std::vector<double>, std::vector<std::string>>;

    auto findTrack(
        const std::string& trackName,
        double feh = 0.0,
        double vvcrit = 0.0,
        double afe = 0.0,
        const std::string& registryName = defaultRegistry)
    -> std::string;

    auto getTrackSize(
        const std::filesystem::path& h5Name,
        const std::string& groupName)
    -> std::pair<size_t, size_t>;

    inline constexpr double surfaceAbundanceTol = 1e-3;

    void checkSurfaceAbundances(const std::vector<double>& data, std::size_t nrow,
        std::size_t ncol, const std::vector<std::size_t>& qtyIdx, const std::string& context);


} // namespace tracks

#endif // TRACKUTILS_HPP