|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ROOTAUXDYN_IO_H
6 #define ROOTAUXDYN_IO_H
26 namespace SG {
class IAuxStoreIO;
class auxid_set_t; }
33 class IRootAuxDynReader;
34 class IRootAuxDynWriter;
35 class IRNTupleAuxDynWriter;
39 bool hasAuxStore(std::string_view fieldname, TClass *tc);
55 int offsettab_len,
bool do_branch_fill);
59 std::unique_ptr<IRNTupleWriter>
getNTupleWriter(TFile*,
const std::string& ntupleName,
bool enableBufferedWrite,
bool enableMetrics);
std::unique_ptr< IRNTupleAuxDynWriter > getNTupleAuxDynWriter()
virtual int writeAuxAttributes(const std::string &base_branch, SG::IAuxStoreIO *store, size_t rows_written)=0
handle writing of dynamic xAOD attributes of an AuxContainer - called from RootTreeContainer::writeOb...
Interface for an AuxDyn Writer - TTree based.
std::tuple< std::string, std::string, void * > attrDataTuple
std::unique_ptr< IRNTupleWriter > getNTupleWriter(TFile *, const std::string &ntupleName, bool enableBufferedWrite, bool enableMetrics)
ROOT::Experimental::RNTupleReader RNTupleReader
virtual const SG::auxid_set_t & auxIDs() const =0
virtual void resetBytesRead()=0
virtual ~IRootAuxDynWriter()
virtual int commit()=0
Call Fill() on the ROOT object used by this writer.
Interface providing I/O for a generic auxiliary store.
virtual ~IRNTupleAuxDynWriter()=default
Default Destructor.
virtual std::vector< attrDataTuple > collectAuxAttributes(const std::string &base_branch, SG::IAuxStoreIO *store)=0
Collect Aux data information to be writting out.
virtual void setBranchFillMode(bool)=0
set per-branch independent commit/fill mode
ROOT::Experimental::RFieldBase RFieldBase
Interface for a RNTuple-based Writer that handles AuxDyn attributes Works in conjuction with the gene...
std::unique_ptr< IRootAuxDynReader > getNTupleAuxDynReader(const std::string &field_name, const std::string &field_type, RNTupleReader *reader)
ROOT::Experimental::RNTupleReader RNTupleReader
std::string getKeyFromBranch(TBranch *branch)
Exctract the Aux object SG Key from the branch name.
std::unique_ptr< IRootAuxDynReader > getBranchAuxDynReader(TTree *, TBranch *)
virtual void addReaderToObject(void *object, size_t row, std::recursive_mutex *iomtx=nullptr)=0
Attach specialized AuxStore for reading dynamic attributes.
virtual ~IRootAuxDynReader()
bool hasAuxStore(std::string_view fieldname, TClass *tc)
check if a field/branch with fieldname and type tc has IAuxStore interface
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
bool isAuxDynBranch(TBranch *branch)
Check is a branch holds AuxStore objects.
std::unique_ptr< IRootAuxDynWriter > getBranchAuxDynWriter(TTree *, int bufferSize, int splitLevel, int offsettab_len, bool do_branch_fill)
generate TBranchAuxDynWriter tree -> destination tree do_branch_fill -> flag telling to Fill each TBr...
virtual bool needsCommit()=0
is there a need to call commit()?
A set of aux data identifiers.
reader
read the goodrunslist xml file(s)
virtual size_t getBytesRead() const =0