ATLAS Offline Software
Loading...
Searching...
No Matches
SingleConditionsDatum.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
11
12#ifndef SingleConditionsDatum_h
13#define SingleConditionsDatum_h
14
15#include <unordered_map>
16
17
18template<typename T, T LoLimit, T HiLimit, T Default, T NonsenseValue>
20 public:
23 void setChanToDefault(int chanNum){m_valueMap[chanNum] = m_defaultValue;}
24 void setValue(int chanNum, T value) {
25 auto beyondLimits = [=](auto v) {return v<LoLimit or v>HiLimit;};
26 m_valueMap[chanNum] = beyondLimits(value) ? m_defaultValue : value;
27 }
28 //
29 T getValue(const int chanNum) const {
31 auto itr = m_valueMap.find(chanNum);
32 if (itr!=m_valueMap.end()) { return itr->second; }
33 return NonsenseValue;
34 }
35 bool useDefaultValue() const {return m_alwaysUseDefault;}
36 float defaultValue() const {return m_defaultValue;}
37
38 private:
41 std::unordered_map<int, T> m_valueMap;
42};
43
44
45#endif
46
T getValue(const int chanNum) const
void setValue(int chanNum, T value)
void setChanToDefault(int chanNum)
std::unordered_map< int, T > m_valueMap