SHiP Field Service
Framework-agnostic C++20 library exposing SHiP magnetic field maps.
Loading...
Searching...
No Matches
CovfieFieldSource.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 CERN for the benefit of the SHiP Collaboration
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4#pragma once
5
7
8#include <memory>
9#include <string>
10#include <vector>
11
12namespace SHiP {
13
22[[deprecated("use loadFieldMap and the SHiP field-map format"),
23 nodiscard]] std::shared_ptr<IFieldEvaluator>
24loadCovfieField(std::string const& cvf_path);
25
29class [[deprecated("use FieldMapSource and the SHiP field-map format")]] CovfieFieldSource final
30 : public IFieldSource {
31 public:
32 struct MagnetConfig {
33 std::string name;
34 std::string volume_pattern;
35 std::string cvf_file;
36 };
37
38 explicit CovfieFieldSource(std::vector<MagnetConfig> magnets);
39 ~CovfieFieldSource() override = default;
40
45
46 [[nodiscard]] std::vector<FieldRegion> const& regions() const override { return regions_; }
47
48 private:
49 std::vector<FieldRegion> regions_;
50};
51
52} // namespace SHiP
Concrete IFieldSource aggregating one covfie-backed evaluator per magnet.
Definition CovfieFieldSource.h:30
~CovfieFieldSource() override=default
CovfieFieldSource(CovfieFieldSource &&)=default
std::vector< FieldRegion > const & regions() const override
Idempotent. Ownership of the evaluators stays with the source.
Definition CovfieFieldSource.h:46
CovfieFieldSource & operator=(CovfieFieldSource const &)=delete
CovfieFieldSource(CovfieFieldSource const &)=delete
CovfieFieldSource & operator=(CovfieFieldSource &&)=default
Source of one or more named field regions.
Definition IFieldSource.h:51
Definition ActsFieldAdapter.h:25
std::shared_ptr< IFieldEvaluator > loadCovfieField(std::string const &cvf_path)
Build an IFieldEvaluator backed by a covfie .cvf file (CPU backend, trilinear interpolation,...
Definition CovfieFieldSource.cpp:98
Definition CovfieFieldSource.h:32
std::string name
Definition CovfieFieldSource.h:33
std::string volume_pattern
Definition CovfieFieldSource.h:34
std::string cvf_file
Definition CovfieFieldSource.h:35