ATLAS Offline Software
ParameterSpace.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 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 
11 #include <iostream>
12 #include <vector>
13 
14 #include "Parameter.h"
15 
16 namespace TCS {
17 
19  public:
20  typedef std::vector<TCS::Parameter> data_t;
22  typedef data_t::const_iterator const_iterator;
23 
24  ParameterSpace(const std::string & algName) :
25  m_index(0),
27  {};
28 
30  m_index(0),
31  m_algName("NONE")
32  {};
33 
34  bool isInitialized() const { return m_algName != "NONE"; }
35 
36  const std::string & algName() const { return m_algName; }
37 
38  // adds a new Parameter, throws TCS::Exception if parameter exists
39  // isDefault flag will be set to true
41  ParameterSpace & addParameter(const std::string & name, TCS::parType_t value);
42  ParameterSpace & addParameter(const std::string & name, TCS::parType_t value, unsigned int selection);
43 
44  // sets a parameter value, throws TCS::Exception if parameter doesn't exist
45  // sets isDefault flag to false
48  ParameterSpace & setParameter(const std::string & name, TCS::parType_t value, unsigned int selection);
49 
50  // access to single parameter
51  const Parameter & parameter(const std::string & parameterName) const;
52 
53  // access to a multi-selection parameter by index
54  const Parameter & parameter(const std::string & parameterName, unsigned int selection) const;
55 
56  // access to all parameters
57  const std::vector<TCS::Parameter> & parameters() const { return m_parameters; }
58 
59  // checks and returns true if a parameter of name parameterName already exists
60  bool contains(const std::string & parameterName, unsigned int selection) const;
61 
62  void clear() { m_parameters.clear(); }
63 
64  iterator begin() { return m_parameters.begin(); }
65  const_iterator begin() const { return m_parameters.begin(); }
66 
67  iterator end() { return m_parameters.end(); }
68  const_iterator end() const { return m_parameters.end(); }
69 
70  data_t & operator()() { return m_parameters; }
71  const data_t & operator()() const { return m_parameters; }
72 
73  unsigned index() const { return m_index; }
74  void setIndex(unsigned int index) { m_index = index; }
75 
76  private:
78  unsigned int m_index;
79 
80  // name of the algorithm that owns these parameters
81  std::string m_algName;
82 
83  };
84 
85 std::ostream & operator<<(std::ostream &, const TCS::ParameterSpace &);
86 
87 }
88 
89 #endif
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TCS::ParameterSpace::end
iterator end()
Definition: ParameterSpace.h:67
TCS::ParameterSpace::operator()
const data_t & operator()() const
Definition: ParameterSpace.h:71
TCS::Parameter
Definition: Parameter.h:24
TCS::ParameterSpace::data_t
std::vector< TCS::Parameter > data_t
Definition: ParameterSpace.h:20
TCS::ParameterSpace::parameter
const Parameter & parameter(const std::string &parameterName) const
Definition: ParameterSpace.cxx:101
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TCS::parType_t
uint32_t parType_t
Definition: Parameter.h:22
TCS::ParameterSpace::begin
iterator begin()
Definition: ParameterSpace.h:64
TCS::ParameterSpace::addParameter
ParameterSpace & addParameter(const Parameter &p)
Definition: ParameterSpace.cxx:29
index
Definition: index.py:1
TCS::ParameterSpace::begin
const_iterator begin() const
Definition: ParameterSpace.h:65
TCS::ParameterSpace::ParameterSpace
ParameterSpace()
Definition: ParameterSpace.h:29
TCS::ParameterSpace::const_iterator
data_t::const_iterator const_iterator
Definition: ParameterSpace.h:22
athena.value
value
Definition: athena.py:122
TCS::ParameterSpace::setIndex
void setIndex(unsigned int index)
Definition: ParameterSpace.h:74
TCS::ParameterSpace::index
unsigned index() const
Definition: ParameterSpace.h:73
TCS::ParameterSpace::end
const_iterator end() const
Definition: ParameterSpace.h:68
TCS::ParameterSpace::m_index
unsigned int m_index
Definition: ParameterSpace.h:78
TCS::ParameterSpace
Definition: ParameterSpace.h:18
TCS::ParameterSpace::clear
void clear()
Definition: ParameterSpace.h:62
TCS::ParameterSpace::parameters
const std::vector< TCS::Parameter > & parameters() const
Definition: ParameterSpace.h:57
TCS::ParameterSpace::setParameter
ParameterSpace & setParameter(const Parameter &p)
Definition: ParameterSpace.cxx:49
selection
std::string selection
Definition: fbtTestBasics.cxx:73
TCS::ParameterSpace::setParameter
ParameterSpace & setParameter(const std::string &name, TCS::parType_t value)
Parameter.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TCS::ParameterSpace::isInitialized
bool isInitialized() const
Definition: ParameterSpace.h:34
TCS::ParameterSpace::contains
bool contains(const std::string &parameterName, unsigned int selection) const
Definition: ParameterSpace.cxx:92
TCS::ParameterSpace::m_algName
std::string m_algName
Definition: ParameterSpace.h:81
TCS::ParameterSpace::operator()
data_t & operator()()
Definition: ParameterSpace.h:70
TCS::ParameterSpace::ParameterSpace
ParameterSpace(const std::string &algName)
Definition: ParameterSpace.h:24
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::ParameterSpace::algName
const std::string & algName() const
Definition: ParameterSpace.h:36
TCS::operator<<
std::ostream & operator<<(std::ostream &, const TCS::CountingConnector &)
Definition: CountingConnector.cxx:93
TCS::ParameterSpace::iterator
data_t::iterator iterator
Definition: ParameterSpace.h:21
TCS::ParameterSpace::m_parameters
data_t m_parameters
Definition: ParameterSpace.h:77