24 std::vector< std::pair< std::string, std::string > >
29 ::Error(
"xAOD::RDataSourceEvent::columnAndTypeNames",
31 throw std::runtime_error(
"No input file opened yet" );
36 ::Error(
"xAOD::RDataSourceEvent::columnAndTypeNames",
37 XAOD_MESSAGE(
"No xAOD::EventFormat object available" ) );
38 throw std::runtime_error(
"No xAOD::EventFormat object available" );
42 std::vector< std::pair< std::string, std::string > >
result;
47 for( ; ef_itr != ef_end; ++ef_itr ) {
66 ::TClass* cl = ::TClass::GetClass( efe.
className().c_str() );
71 if( cl->InheritsFrom(
"SG::IConstAuxStore" ) ) {
76 const std::type_info* ti = cl->GetTypeInfo();
78 ::Warning(
"xAOD::RDataSourceEvent::columnAndTypeNames",
79 "No std::type_info available for type %s (key=%s)",
85 static constexpr bool METADATA =
false;
99 const std::type_info& typeInfo ) {
105 return &(
m_objects[ std::make_pair( std::string( columnName ),
116 ::Error(
"xAOD::RDataSourceEvent::updateObjectsForEntry",
118 throw std::runtime_error(
"Failed to get entry" );
124 static constexpr bool SILENT =
false;
125 static constexpr bool METADATA =
false;
126 obj.second =
getInputObject( obj.first.first, *( obj.first.second ),
137 return std::hash< std::string >()( key.first + key.second->name() );
const EventFormat * inputEventFormat() const
Get information about the input objects.
bool contains(const std::string &key)
Function checking if an object is available from the store.
const void * getInputObject(SG::sgkey_t key, const std::type_info &ti, bool silent) override
Function for retrieving an input object in a non-template way.
void setActive() const
Set this event object as the currently active one.
std::size_t operator()(const Key_t &key) const
Function calculating the hash for this type.
void updateObjectsForEntry(Long64_t entry)
Update all objects in memory for a new event.
std::pair< std::string, const std::type_info * > Key_t
Type of the key used in the internal map of object pointers.
void * columnReader(std::string_view columnName, const std::type_info &typeInfo)
Get a "column reader", a pointer to a pointer to the object.
std::vector< std::pair< std::string, std::string > > columnAndTypeNames()
Get the available columm and type names from the input.
std::unordered_map< Key_t, const void *, key_hash > m_objects
Objects served to RDataFrame.
::Int_t getEntry(::Long64_t entry, ::Int_t getall=0)
Function loading a given entry of the input TTree.
::TTree * m_inTree
The main tree that we are reading from.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.