8#include <unordered_set>
9#include <initializer_list>
22namespace fs = std::filesystem;
65 std::optional<ParameterType>
type;
187 std::size_t
h1 = std::hash<BlockName>{}(p.block);
188 std::size_t h2 = std::hash<LhaID>{}(p.code);
189 std::size_t
h3 = p.type ? std::hash<int>{}(
static_cast<int>(*p.type)) : 0;
190 return h1 ^ (h2 << 1) ^ (
h3 << 2);
Representation of SLHA / LHA block names with support for aliases.
Lightweight representation of LHAPDF / SLHA-style identifiers.
std::ostream & operator<<(std::ostream &os, const ParamId &pid)
Stream output operator for ParamId.
Block identifier with alias support.
Hash specialization for SymbolId<Tag>.
double h1(double x)
Wilson special function h1 depending on x.
double h3(double x)
Wilson special function h3 depending on x.
Represents an identifier of a LHA element, possibly containing several sub-ids.
Composite identifier for a single parameter.
bool friend operator==(const ParamId &lhs, const ParamId &rhs)
Equality comparison between two ParamId objects.
std::optional< ParameterType > type
Optional high-level parameter category.
void set_parameter_type(ParameterType type)
Sets or overwrites the parameter type.
BlockName block
Name of the block where the parameter is stored.
ParamId()
Default constructor.
bool operator<(const ParamId &other) const
Strict ordering operator for ParamId.
LhaID code
Index or multi-index of the parameter inside the block.
std::size_t operator()(const ParamId &p) const noexcept
Computes a hash value for a ParamId.