Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
IContourExtractor.h
Go to the documentation of this file.
1#ifndef ICONTOUREXTRACTOR_H
2#define ICONTOUREXTRACTOR_H
3
4#include <vector>
5#include <set>
6#include <memory>
7#include <functional>
8
9#include "Math.h"
10
25 double level;
26
30 std::array<double, 4> bounds;
31
38 std::array<fit_app::ParameterDefinition, 2> p_defs;
39
40 std::size_t resolution = 40;
41};
42
47struct Contour {
48 std::set<Path> paths;
49 double level;
50 bool success = false;
51};
52
62public:
63 virtual ~IContourExtractor() = default;
64
75 virtual Contour extract(const ScalarField2D& field, const ContourRequest& cr) = 0;
76};
77
78
79#endif // ICONTOUREXTRACTOR_H
Abstract interface for algorithms extracting 2D contour paths.
virtual ~IContourExtractor()=default
virtual Contour extract(const ScalarField2D &field, const ContourRequest &cr)=0
Extracts contour paths from a scalar field.
std::function< double(double, double)> ScalarField2D
Definition contour.h:17
Input configuration for a two-dimensional contour extraction.
std::size_t resolution
Requested grid or sampling resolution.
std::array< fit_app::ParameterDefinition, 2 > p_defs
Parameter definitions for the two scanned axes.
std::array< double, 4 > bounds
Extraction domain as {xmin, xmax, ymin, ymax}.
double level
Target scalar-field level to extract.
Output of a contour extraction algorithm.
bool success
Whether extraction produced a valid contour.
std::set< Path > paths
Extracted contour paths.
double level
Level actually targeted by the extraction.