18 std::recursive_mutex* iomtx)
28 auto& brInfo =
m_reader.getBranchInfo(auxid, *
this);
29 if( !brInfo.branch )
return false;
33 if( brInfo.isPackedContainer ) {
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.
virtual void * getDataInternal(SG::auxid_t auxid, size_t size, size_t capacity, bool no_lock_check)
Return the data vector for one aux data item.
virtual bool setOption(auxid_t id, const AuxDataOption &option) override
Set an option for an auxiliary data variable.
bool standalone() const
Return the standalone flag.
virtual const void * getIOData(SG::auxid_t auxid) const override
Return a pointer to the data to be stored for one aux data item.
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.