ATLAS Offline Software
Loading...
Searching...
No Matches
ParameterSpace.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4// ParameterSpace.h
5// TopoCore
6// Created by Joerg Stelzer on 11/18/12.
7
8#ifndef TopoCore__ParameterSpace
9#define TopoCore__ParameterSpace
10#include "Parameter.h"
11
12#include <iosfwd>
13#include <vector>
14#include <string>
15#include <string_view>
16
17
18
19
20namespace TCS {
21
23 public:
24 typedef std::vector<TCS::Parameter> data_t;
25 typedef data_t::iterator iterator;
26 typedef data_t::const_iterator const_iterator;
27
28 ParameterSpace(const std::string & algName) :
29 m_index(0),
31 {};
32
34 m_index(0),
35 m_algName("NONE")
36 {};
37
38 bool isInitialized() const { return m_algName != "NONE"; }
39
40 const std::string & algName() const { return m_algName; }
41
42 // adds a new Parameter, throws TCS::Exception if parameter exists
43 // isDefault flag will be set to true
45 ParameterSpace & addParameter(std::string_view name, TCS::parType_t value);
46 ParameterSpace & addParameter(std::string_view name, TCS::parType_t value, unsigned int selection);
47
48 // sets a parameter value, throws TCS::Exception if parameter doesn't exist
49 // sets isDefault flag to false
51 ParameterSpace & setParameter(std::string_view name, TCS::parType_t value);
52 ParameterSpace & setParameter(std::string_view name, TCS::parType_t value, unsigned int selection);
53
54 // access to single parameter
55 const Parameter & parameter(std::string_view parameterName) const;
56
57 // access to a multi-selection parameter by index
58 const Parameter & parameter(std::string_view parameterName, unsigned int selection) const;
59
60 // access to all parameters
61 const std::vector<TCS::Parameter> & parameters() const { return m_parameters; }
62
63 // checks and returns true if a parameter of name parameterName already exists
64 bool contains(std::string_view parameterName, unsigned int selection) const;
65
66 void clear() { m_parameters.clear(); }
67
68 iterator begin() { return m_parameters.begin(); }
69 const_iterator begin() const { return m_parameters.begin(); }
70
71 iterator end() { return m_parameters.end(); }
72 const_iterator end() const { return m_parameters.end(); }
73
75 const data_t & operator()() const { return m_parameters; }
76
77 unsigned index() const { return m_index; }
78 void setIndex(unsigned int index) { m_index = index; }
79
80 private:
82 unsigned int m_index{};
83
84 // name of the algorithm that owns these parameters
85 std::string m_algName;
86
87 };
88
89std::ostream & operator<<(std::ostream &, const TCS::ParameterSpace &);
90
91}
92
93#endif
const_iterator begin() const
const Parameter & parameter(std::string_view parameterName) const
const std::vector< TCS::Parameter > & parameters() const
bool isInitialized() const
data_t::iterator iterator
const data_t & operator()() const
const_iterator end() const
unsigned index() const
data_t::const_iterator const_iterator
bool contains(std::string_view parameterName, unsigned int selection) const
ParameterSpace & setParameter(std::string_view name, TCS::parType_t value)
void setIndex(unsigned int index)
std::vector< TCS::Parameter > data_t
ParameterSpace & setParameter(const Parameter &p)
const std::string & algName() const
ParameterSpace & addParameter(const Parameter &p)
ParameterSpace(const std::string &algName)
const std::string selection
std::ostream & operator<<(std::ostream &os, const TCS::Bin &bin)
uint32_t parType_t
Definition Parameter.h:23
Definition index.py:1