![]() |
ATLAS Offline Software
|
Public Member Functions | |
StatusCode | scanInputTree () |
Scan the input TTree for auxiliary branches. More... | |
const std::type_info * | auxBranchType (::TBranch &br, std::string_view auxName, bool staticBranch, std::string *expectedClassName=nullptr) |
Find the type_info to use as the aux type for a given branch. More... | |
StatusCode | setupAuxBranch (::TBranch &br, std::string_view auxName, bool staticBranch) |
Register one input branch as an available auxiliary variable. More... | |
Public Attributes | |
Members & | m_data |
Variables coming from AuxStoreBase . More... | |
int | m_basketSize = 2048 |
The basket size for the output branches. More... | |
int | m_splitLevel = 0 |
The split level for the output branches. More... | |
::TTree * | m_inTree = nullptr |
The TTree being read from. More... | |
::TTree * | m_outTree = nullptr |
The TTree being written to. More... | |
bool | m_inputScanned = false |
"Scan status" of the input TTree More... | |
std::vector< std::unique_ptr< TBranchHandle > > | m_branches |
Branches reading the various auxiliary variables. More... | |
std::vector< bool > | m_branchesWritten |
"Write status" of the different variables More... | |
std::vector< bool > | m_missingBranches |
Mark branches we've found to be missing. More... | |
mutex_t | m_mutex |
Mutex object used for multithreaded synchronisation. More... | |
Definition at line 423 of file TAuxStore.cxx.
|
inline |
Find the type_info to use as the aux type for a given branch.
Definition at line 545 of file TAuxStore.cxx.
|
inline |
Scan the input TTree for auxiliary branches.
When writing an output tree, while reading information from an input tree, it can often happen that we want to copy the contents of some variables that we don't actually need during the event processing of this particular job. Since the user doesn't ask for all the possible input variables, this function needs to look at the input TTree, and try to figure out which of the branches in the tree belong to this object.
The function creates a "proper" or "virtual" auxiliary ID for each of the branches found, so they can be referenced in the "usual way" in the other parts of the code later on.
StatusCode::SUCCESS
if the function was successful, something else otherwise Definition at line 442 of file TAuxStore.cxx.
|
inline |
Register one input branch as an available auxiliary variable.
This function takes care of assigning an auxiliary ID to a given branch. It tries its best to find an auxiliary vector factory for the branch's type, but if it fails, it still falls back to using SG::AuxTypePlaceholder
as the type. In which case of course only dumb copying will be possible for the given branch. (And no vector operations on the branch's payload until the variable of the branch is accessed explicitly.)
br | Pointer to the branch under investigation |
auxName | The name of the auxiliary property, extracted from the branch's name |
staticBranch | kTRUE if this is a "static branch", and kFALSE if it's a dynamic one |
StatusCode::SUCCESS
if the function was successful, something else otherwise Definition at line 641 of file TAuxStore.cxx.
int xAOD::TAuxStore::impl::m_basketSize = 2048 |
The basket size for the output branches.
Definition at line 794 of file TAuxStore.cxx.
std::vector<std::unique_ptr<TBranchHandle> > xAOD::TAuxStore::impl::m_branches |
Branches reading the various auxiliary variables.
Definition at line 807 of file TAuxStore.cxx.
std::vector<bool> xAOD::TAuxStore::impl::m_branchesWritten |
"Write status" of the different variables
Definition at line 809 of file TAuxStore.cxx.
Members& xAOD::TAuxStore::impl::m_data |
Variables coming from AuxStoreBase
.
Definition at line 791 of file TAuxStore.cxx.
bool xAOD::TAuxStore::impl::m_inputScanned = false |
"Scan status" of the input TTree
Definition at line 804 of file TAuxStore.cxx.
::TTree* xAOD::TAuxStore::impl::m_inTree = nullptr |
The TTree being read from.
Definition at line 799 of file TAuxStore.cxx.
std::vector<bool> xAOD::TAuxStore::impl::m_missingBranches |
Mark branches we've found to be missing.
(Because TTree::GetBranch is very expensive.)
Definition at line 812 of file TAuxStore.cxx.
|
mutable |
Mutex object used for multithreaded synchronisation.
Definition at line 815 of file TAuxStore.cxx.
::TTree* xAOD::TAuxStore::impl::m_outTree = nullptr |
The TTree being written to.
Definition at line 801 of file TAuxStore.cxx.
int xAOD::TAuxStore::impl::m_splitLevel = 0 |
The split level for the output branches.
Definition at line 796 of file TAuxStore.cxx.