File indexing completed on 2025-12-16 10:19:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef FWCORE_METADATAUTILS_H
0020 #define FWCORE_METADATAUTILS_H
0021
0022 #include "Gaudi/Algorithm.h"
0023 #include <GaudiKernel/Service.h>
0024
0025 #include "k4FWCore/IMetadataSvc.h"
0026
0027 namespace k4FWCore {
0028
0029
0030
0031
0032
0033 template <typename T>
0034 void putParameter(const std::string& name, const T& value, const Gaudi::Algorithm* alg) {
0035 auto metadataSvc = alg->service<IMetadataSvc>("MetadataSvc", false);
0036 if (!metadataSvc) {
0037 alg->error() << "MetadataSvc not found" << endmsg;
0038 return;
0039 }
0040 metadataSvc->put<T>(name, value);
0041 }
0042
0043
0044 template <typename T>
0045 void putParameter(const std::string& name, const T& value) {
0046 auto metadataSvc = Gaudi::svcLocator()->service<IMetadataSvc>("MetadataSvc", false);
0047 if (!metadataSvc) {
0048 std::cout << "MetadataSvc not found" << std::endl;
0049 return;
0050 }
0051 return metadataSvc->put<T>(name, value);
0052 }
0053
0054
0055
0056
0057 template <typename T>
0058 std::optional<T> getParameter(const std::string& name, const Gaudi::Algorithm* alg) {
0059 auto metadataSvc = alg->service<IMetadataSvc>("MetadataSvc", false);
0060 if (!metadataSvc) {
0061 alg->error() << "MetadataSvc not found" << endmsg;
0062 return std::nullopt;
0063 }
0064 return metadataSvc->get<T>(name);
0065 }
0066
0067
0068 template <typename T>
0069 std::optional<T> getParameter(const std::string& name) {
0070 auto metadataSvc = Gaudi::svcLocator()->service<IMetadataSvc>("MetadataSvc", false);
0071 if (!metadataSvc) {
0072 return std::nullopt;
0073 }
0074 return metadataSvc->get<T>(name);
0075 }
0076 }
0077
0078 #endif