45 auto itr = m_varnameToProxyLoader.find(varname);
46 if (itr != m_varnameToProxyLoader.end()) {
47 return itr->second->variableTypeFromString(varname);
53 result = proxyLoader->variableTypeFromString(varname);
55 }
catch (
const std::runtime_error &) {
58 m_varnameToProxyLoader.emplace(varname, proxyLoader.get());
61 std::stringstream
msg;
62 msg <<
"MultipleProxyLoader: unable to find valid proxy loader for " << varname <<
"."
63 <<
" If it is an xAOD element or container which is read from the input file"
64 <<
" this problem may occur if it is not accessed anywhere in the job via read handles."
65 <<
" The problem can be mitigated by providing the missing information in the property "
66 <<
" ExtraDataForDynamicConsumers of the sequence which has the property "
67 <<
" ProcessDynamicDataDependencies set to True."
68 <<
" The property takes a list of strings of the form \'type/container-name\' e.g."
69 <<
" \'xAOD::TrackParticleContainer/InDetTrackParticles\'.";
70 throw std::runtime_error(
msg.str());
75 return m_varnameToProxyLoader.at(varname)->loadIntVariableFromString(varname);
80 return m_varnameToProxyLoader.at(varname)->loadDoubleVariableFromString(varname);
85 return m_varnameToProxyLoader.at(varname)->loadVecIntVariableFromString(varname);
90 return m_varnameToProxyLoader.at(varname)->loadVecDoubleVariableFromString(varname);
virtual int loadIntVariableFromString(const std::string &varname) const
IProxyLoader * push_back(std::unique_ptr< IProxyLoader > proxyLoader)
virtual ~MultipleProxyLoader()
virtual IProxyLoader::VariableType variableTypeFromString(const std::string &varname) const
std::vector< std::unique_ptr< IProxyLoader > > m_proxyLoaders
virtual std::vector< int > loadVecIntVariableFromString(const std::string &varname) const
virtual double loadDoubleVariableFromString(const std::string &varname) const
virtual std::vector< double > loadVecDoubleVariableFromString(const std::string &varname) const
CxxUtils::ConcurrentStrMap< IProxyLoader *, CxxUtils::SimpleUpdater > proxyCache_t
Namespace holding all the expression evaluation code.