ATLAS Offline Software
TrigConfJobOptionsSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TrigConfigSvc_JobOptionsSvc
6 #define TrigConfigSvc_JobOptionsSvc
7 
8 #include <string>
9 #include <vector>
10 
11 #include "Gaudi/Interfaces/IOptionsSvc.h"
12 #include "GaudiKernel/ServiceHandle.h"
13 
16 
17 namespace TrigConf {
18 
33  class JobOptionsSvc : public extends<AthService, TrigConf::IJobOptionsSvc, Gaudi::Interfaces::IOptionsSvc> {
34  using AthService::getProperties;
35 
36  public:
37  JobOptionsSvc(const std::string& name, ISvcLocator* pSvcLocator);
38 
39  virtual StatusCode initialize() override;
40  virtual StatusCode start() override;
41 
44  virtual void set( const std::string& key, const std::string& value ) override
45  {
46  return m_optsvc->set(key,value);
47  }
48 
49  virtual std::string get( const std::string& key, const std::string& default_ = {} ) const override
50  {
51  return m_optsvc->get(key,default_);
52  }
53 
54  virtual std::string pop( const std::string& key, const std::string& default_ = {} ) override
55  {
56  return m_optsvc->pop(key,default_);
57  }
58 
59  virtual bool has( const std::string& key ) const override
60  {
61  return m_optsvc->has(key);
62  }
63 
64  virtual bool isSet( const std::string& key ) const override
65  {
66  return m_optsvc->isSet(key);
67  }
68 
69  virtual std::vector<std::tuple<std::string, std::string>> items() const override
70  {
71  return m_optsvc->items();
72  }
73 
74  virtual void bind( const std::string& prefix, Gaudi::Details::PropertyBase* property ) override
75  {
76  return m_optsvc->bind(prefix,property);
77  }
78 
79  using OnlyDefaults = Gaudi::Interfaces::IOptionsSvc::OnlyDefaults;
80  virtual void broadcast( const std::regex& filter, const std::string& value,
81  OnlyDefaults defaults = OnlyDefaults{true} ) override
82  {
83  return m_optsvc->broadcast(filter, value, defaults);
84  }
85 
86  virtual StatusCode readOptions(std::string_view, std::string_view) override
87  {
88  throw std::runtime_error("TrigConf::JobOptionsSvc::readOptions() is not supported");
89  }
91 
94  virtual const std::string& server() const override { return m_server; }
95  virtual int superMasterKey() const override { return m_smk; }
96  virtual int l1PrescaleKey() const override { return m_l1psk; }
97  virtual int hltPrescaleKey() const override { return m_hltpsk; }
98 
100  private:
101  StatusCode dumpOptions(const std::string& file);
102  StatusCode readOptionsJson(const std::string& file);
103  StatusCode readOptionsDB(const std::string& db_server, int smk);
104  void parseDBString(const std::string& s);
105 
106  int m_smk{-1};
107  int m_l1psk{-1};
108  int m_hltpsk{-1};
109  std::string m_server;
110 
111  // Same properties as in Gaudi's JobOptionsSvc
112  Gaudi::Property<std::string> m_sourceType{this, "TYPE", "NONE", "Configuration type (NONE, FILE, DB)"};
113  Gaudi::Property<std::string> m_sourcePath{this, "PATH", {}, "Path for NONE/FILE, connection string for DB"};
114  Gaudi::Property<std::string> m_searchPath{this, "SEARCHPATH", {}, "NOT SUPPORTED"};
115  Gaudi::Property<std::string> m_dump{this, "DUMPFILE", {}, "Dump job properties into JSON file"};
116 
119  };
120 
121 } // namespace TrigConf
122 
123 #endif
TrigConf::JobOptionsSvc::hltPrescaleKey
virtual int hltPrescaleKey() const override
Return HLTPSK (-1 if not set)
Definition: TrigConfJobOptionsSvc.h:97
TrigConf::JobOptionsSvc::items
virtual std::vector< std::tuple< std::string, std::string > > items() const override
Definition: TrigConfJobOptionsSvc.h:69
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
TrigConf::JobOptionsSvc::m_searchPath
Gaudi::Property< std::string > m_searchPath
Definition: TrigConfJobOptionsSvc.h:114
RunEBWeightsComputation.smk
smk
Definition: RunEBWeightsComputation.py:87
TrigConf::JobOptionsSvc::readOptionsJson
StatusCode readOptionsJson(const std::string &file)
Definition: TrigConfJobOptionsSvc.cxx:82
TrigConf::JobOptionsSvc::initialize
virtual StatusCode initialize() override
Definition: TrigConfJobOptionsSvc.cxx:22
TrigConf::JobOptionsSvc::readOptionsDB
StatusCode readOptionsDB(const std::string &db_server, int smk)
Definition: TrigConfJobOptionsSvc.cxx:102
TrigConf::JobOptionsSvc::m_dump
Gaudi::Property< std::string > m_dump
Definition: TrigConfJobOptionsSvc.h:115
TrigConf::JobOptionsSvc::m_smk
int m_smk
SuperMasterKey.
Definition: TrigConfJobOptionsSvc.h:106
TrigConf::JobOptionsSvc::has
virtual bool has(const std::string &key) const override
Definition: TrigConfJobOptionsSvc.h:59
TrigConf::JobOptionsSvc::readOptions
virtual StatusCode readOptions(std::string_view, std::string_view) override
Definition: TrigConfJobOptionsSvc.h:86
TrigConf::JobOptionsSvc::m_sourcePath
Gaudi::Property< std::string > m_sourcePath
Definition: TrigConfJobOptionsSvc.h:113
athena.value
value
Definition: athena.py:122
TrigConf::JobOptionsSvc::m_sourceType
Gaudi::Property< std::string > m_sourceType
Definition: TrigConfJobOptionsSvc.h:112
TrigConf::JobOptionsSvc::m_l1psk
int m_l1psk
L1 prescale key.
Definition: TrigConfJobOptionsSvc.h:107
IJobOptionsSvc.h
covarianceTool.filter
filter
Definition: covarianceTool.py:514
PrepareReferenceFile.regex
regex
Definition: PrepareReferenceFile.py:43
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TrigConf::JobOptionsSvc::JobOptionsSvc
JobOptionsSvc(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigConfJobOptionsSvc.cxx:17
TrigConf::JobOptionsSvc::set
virtual void set(const std::string &key, const std::string &value) override
Definition: TrigConfJobOptionsSvc.h:44
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigConf::JobOptionsSvc::broadcast
virtual void broadcast(const std::regex &filter, const std::string &value, OnlyDefaults defaults=OnlyDefaults{true}) override
Definition: TrigConfJobOptionsSvc.h:80
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
file
TFile * file
Definition: tile_monitor.h:29
TrigConf::JobOptionsSvc::pop
virtual std::string pop(const std::string &key, const std::string &default_={}) override
Definition: TrigConfJobOptionsSvc.h:54
TrigConf::JobOptionsSvc::m_server
std::string m_server
DB connection alias.
Definition: TrigConfJobOptionsSvc.h:109
TrigConf::JobOptionsSvc::superMasterKey
virtual int superMasterKey() const override
Return SMK (-1 if not set)
Definition: TrigConfJobOptionsSvc.h:95
TrigConf::name
Definition: HLTChainList.h:35
TrigConf::JobOptionsSvc::get
virtual std::string get(const std::string &key, const std::string &default_={}) const override
Definition: TrigConfJobOptionsSvc.h:49
TrigConf::JobOptionsSvc::OnlyDefaults
Gaudi::Interfaces::IOptionsSvc::OnlyDefaults OnlyDefaults
Definition: TrigConfJobOptionsSvc.h:79
TrigConf::JobOptionsSvc::start
virtual StatusCode start() override
Definition: TrigConfJobOptionsSvc.cxx:72
TrigConf::JobOptionsSvc::bind
virtual void bind(const std::string &prefix, Gaudi::Details::PropertyBase *property) override
Definition: TrigConfJobOptionsSvc.h:74
TrigConf::JobOptionsSvc::dumpOptions
StatusCode dumpOptions(const std::string &file)
This is mainly for debugging purposes and to compare the JobOptions as seen by the JobOptionSvc to th...
Definition: TrigConfJobOptionsSvc.cxx:132
Base_Fragment.defaults
dictionary defaults
This includes now the top quark, the leptons and the bosons.
Definition: GeneratorFilters/share/common/Base_Fragment.py:79
TrigConf::JobOptionsSvc::server
virtual const std::string & server() const override
DB connection alias.
Definition: TrigConfJobOptionsSvc.h:94
TrigConf::JobOptionsSvc::isSet
virtual bool isSet(const std::string &key) const override
Definition: TrigConfJobOptionsSvc.h:64
TrigConf::JobOptionsSvc::m_hltpsk
int m_hltpsk
HLT prescale key.
Definition: TrigConfJobOptionsSvc.h:108
AthService.h
TrigConf::JobOptionsSvc::l1PrescaleKey
virtual int l1PrescaleKey() const override
Return L1PSK (-1 if not set)
Definition: TrigConfJobOptionsSvc.h:96
TrigConf::JobOptionsSvc
JobOptionsSvc for the HLT.
Definition: TrigConfJobOptionsSvc.h:33
TrigConf::JobOptionsSvc::m_optsvc
ServiceHandle< Gaudi::Interfaces::IOptionsSvc > m_optsvc
handle to the "real" IOptionsSvc
Definition: TrigConfJobOptionsSvc.h:118
TrigConf::JobOptionsSvc::parseDBString
void parseDBString(const std::string &s)
Parse DB connection string and fill private members.
Definition: TrigConfJobOptionsSvc.cxx:54
ServiceHandle< Gaudi::Interfaces::IOptionsSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37