ATLAS Offline Software
ConfigurationSettings.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef CONFIGURATIONSETTINGS_H_
6 #define CONFIGURATIONSETTINGS_H_
7 
8 #include <vector>
9 #include <string>
10 #include <map>
11 
13 #include "StringData.h"
14 
15 namespace top {
22  public:
26  static ConfigurationSettings* get(bool reset=false);
27 
35  const std::string& value(const std::string& key) const;
36 
45  void retrieve(std::string const& key, bool& value) const;
46 
50  bool retrieve(std::string const& key) const;
51 
57  bool configured() const;
58 
64  void loadFromFile(const std::string& filename);
65 
69  void checkSettings();
70 
76  const std::map<std::string, StringData>& stringData() const;
77 
83  const std::vector<SelectionConfigurationData> selections() const;
84 
93  void registerParameter(const std::string& name, const std::string& message,
94  const std::string& default_val = "", const std::vector<std::string> allowed_values = {});
95 
101  bool feature(std::string const& name) const;
102  private:
105 
108 
110  std::map<std::string, StringData> strings_;
111 
113  std::vector<SelectionConfigurationData> m_selections;
114 
116  std::vector<std::string> m_killedFeatures;
117 
120 
123 
126  };
127 
128  std::ostream& operator << (std::ostream& os, const ConfigurationSettings& settings);
129  std::ostream& operator << (std::ostream& os, const SelectionConfigurationData& data);
130 
131 }
132 
133 
134 #endif
top::ConfigurationSettings::feature
bool feature(std::string const &name) const
test whether an (experimental) feature should be enabled
Definition: ConfigurationSettings.cxx:1033
top::ConfigurationSettings::m_instance
static ConfigurationSettings * m_instance
Singletons: Good or bad, you decide. // John says they are bad.
Definition: ConfigurationSettings.h:107
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
top::ConfigurationSettings::value
const std::string & value(const std::string &key) const
The user wants to know the value for the specified key.
Definition: ConfigurationSettings.cxx:970
top::ConfigurationSettings::operator=
ConfigurationSettings operator=(const ConfigurationSettings &)
Here but not implemented, resulting in a happy compile error if you try and use them.
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
top::ConfigurationSettings::stringData
const std::map< std::string, StringData > & stringData() const
All the user input that is stored as strings.
Definition: ConfigurationSettings.cxx:997
StringData.h
top::ConfigurationSettings::checkSettings
void checkSettings()
Validate that configured options make sense.
Definition: ConfigurationSettings.cxx:942
top::ConfigurationSettings::loadFromFile
void loadFromFile(const std::string &filename)
Read the settings from a text file given by.
Definition: ConfigurationSettings.cxx:723
SelectionConfigurationData.h
ReweightUtils.message
message
Definition: ReweightUtils.py:15
top::ConfigurationSettings::ConfigurationSettings
ConfigurationSettings()
private constructor
Definition: ConfigurationSettings.cxx:24
top::ConfigurationSettings::ConfigurationSettings
ConfigurationSettings(const ConfigurationSettings &)
Here but not implemented, resulting in a happy compile error if you try and use them.
top::operator<<
std::ostream & operator<<(std::ostream &os, const SelectionConfigurationData &data)
Definition: ConfigurationSettings.cxx:1041
top::SelectionConfigurationData
Some configuration data to setup the selections.
Definition: SelectionConfigurationData.h:18
top::ConfigurationSettings::get
static ConfigurationSettings * get(bool reset=false)
Design patterns 101.
Definition: ConfigurationSettings.cxx:714
top::ConfigurationSettings::strings_
std::map< std::string, StringData > strings_
Hold the configuration data.
Definition: ConfigurationSettings.h:110
top::ConfigurationSettings::m_configured
bool m_configured
True if the class has read the settings from a file or something.
Definition: ConfigurationSettings.h:104
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
top::ConfigurationSettings::registerParameter
void registerParameter(const std::string &name, const std::string &message, const std::string &default_val="", const std::vector< std::string > allowed_values={})
Add a variable to the configuration settings.
Definition: ConfigurationSettings.cxx:957
top::ConfigurationSettings::retrieve
void retrieve(std::string const &key, bool &value) const
The user wants to know the boolean value for the specified key.
Definition: ConfigurationSettings.cxx:1005
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
top::ConfigurationSettings::m_selections
std::vector< SelectionConfigurationData > m_selections
Data used when configuring the selections.
Definition: ConfigurationSettings.h:113
CxxUtils::reset
constexpr std::enable_if_t< is_bitmask_v< E >, E & > reset(E &lhs, E rhs)
Convenience function to clear bits in a class enum bitmask.
Definition: bitmask.h:243
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
top::ConfigurationSettings::configured
bool configured() const
Have the configuration settings been read from a file?
Definition: ConfigurationSettings.cxx:993
top::ConfigurationSettings
Hold the configuration information for the whole run.
Definition: ConfigurationSettings.h:21
top::ConfigurationSettings::selections
const std::vector< SelectionConfigurationData > selections() const
Get all the data needed to configure the selections.
Definition: ConfigurationSettings.cxx:1001
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
top::ConfigurationSettings::m_killedFeatures
std::vector< std::string > m_killedFeatures
Kill-switch for experimental features.
Definition: ConfigurationSettings.h:116