4#ifndef ExpressionParsing_BaseAccessor_h_
5#define ExpressionParsing_BaseAccessor_h_
21 std::stringstream
msg;
22 msg <<
"Failed to create read handle for " << key;
23 throw std::runtime_error(key);
26 std::stringstream
msg;
27 msg <<
"Cannot convert to scalar since the aux vector data container " << key <<
" does not contain exactly one element but " << n_elements;
28 throw std::runtime_error(key);
45 virtual std::vector<int>
loadVecInt(
const EventContext& ctx)
const override { (void) ctx;
return std::vector<int>(); }
46 virtual std::vector<double>
loadVec(
const EventContext& ctx)
const override { (void) ctx;
return std::vector<double>(); }
49 throw std::runtime_error(
"Attempt to convert empty vector into scalar.");
virtual IProxyLoader::VariableType variableType() const override
BaseAccessor(IProxyLoader::VariableType variable_type)
IProxyLoader::VariableType m_variableType
static void throwVectorContainsNotOneElement(const std::string &key, std::size_t n_elements)
static void throwInvalidHandle(const std::string &key)
Special accessor to handle empty containers until the correct accessor can be created.
virtual IProxyLoader::VariableType variableType() const override
virtual std::vector< int > loadVecInt(const EventContext &ctx) const override
virtual double loadDouble(const EventContext &ctx) const override
void throwEmptyVector() const
virtual std::vector< double > loadVec(const EventContext &ctx) const override
virtual int loadInt(const EventContext &ctx) const override
Interface of auxiliary classes to access xAOD object content.
Namespace holding all the expression evaluation code.