18 std::recursive_mutex* iomtx)
28 auto& brInfo =
m_reader.getBranchInfo(auxid, *
this);
29 if( !brInfo.branch )
return false;
32 SG::AuxStoreInternal::getDataInternal(auxid, 1, 1,
true);
33 if( brInfo.isPackedContainer ) {
41 if( standalone() && !brInfo.tclass ) {
48 : std::unique_lock<std::recursive_mutex>();
50 brInfo.setAddress(
data);
51 int nbytes = brInfo.branch->GetEntry(
m_entry);
53 throw std::string(
"Error reading branch ") + brInfo.branch->GetName();
56 TTree::TClusterIterator clusterIterator = brInfo.branch->GetTree()->GetClusterIterator(
m_entry);
57 clusterIterator.Next();
58 if (
m_entry == clusterIterator.GetStartEntry() && brInfo.branch->GetTree()->GetMaxVirtualSize() != 0) {
59 for (
int i = brInfo.branch->GetReadBasket(); i < brInfo.branch->GetMaxBaskets()
60 && brInfo.branch->GetBasketEntry()[i] < clusterIterator.GetNextEntry(); i++) {
61 brInfo.branch->GetBasket(i);
65 catch(
const std::string& e_str) {
Hold information about an option setting request.
Handle mappings between names and auxid_t.
Exceptions that can be thrown from AthContainers.
char data[hepevt_bytes_allocation_ATLAS]
#define ATLAS_THREAD_SAFE
RootAuxDynStore(RootAuxDynReader &reader, long long entry, bool standalone, std::recursive_mutex *iomtx=nullptr)
std::recursive_mutex * m_iomutex
Optional mutex used to serialize I/O with RootStorageSvc (not owned).
Hold information about an option setting request.
Handle mappings between names and auxid_t.
static AuxTypeRegistry & instance()
Return the singleton registry instance.
virtual bool readData(SG::auxid_t auxid) override final
read data from ROOT and store it in m_vecs. Returns False on error
TBranchAuxDynStore(TBranchAuxDynReader &reader, long long entry, bool standalone, std::recursive_mutex *iomtx=nullptr)
TBranchAuxDynReader & m_reader
Helper for emitting error messages.
#define ATHCONTAINERS_ERROR(ctx, msg)
static const auxid_t null_auxid
To signal no aux data item.
size_t auxid_t
Identifier for a particular aux data item.