Skip to content
Snippets Groups Projects
Commit e847e5dd authored by Adam Edward Barton's avatar Adam Edward Barton
Browse files

Merge branch 'fix.xAODperfstats.for.new.ROOT' into 'master'

Implement new pure virtual methods of the base TVirtualPerfStats

See merge request atlas/athena!12488
parents 06102934 2116ea47
No related branches found
No related tags found
No related merge requests found
......@@ -310,6 +310,35 @@ namespace xAOD {
return 0;
}
#if ROOT_VERSION_CODE >= ROOT_VERSION( 6, 14, 0 )
/* Some methods that are pure virtual in the basaclass and need
a definition - forwarding them to the actuall ROOT TPerfStats
new in ROOT 6.14
*/
void PerfStats::PrintBasketInfo( Option_t *option ) const {
if( m_otherPerfStats ) m_otherPerfStats->PrintBasketInfo( option );
}
void PerfStats::UpdateBranchIndices( TObjArray *branches ) {
if( m_otherPerfStats ) m_otherPerfStats->UpdateBranchIndices( branches );
}
#define FWD_CALL(CALL) \
void PerfStats::CALL( TBranch *b, size_t basketNumber ) { \
if( m_otherPerfStats ) m_otherPerfStats->CALL( b, basketNumber ); \
} \
void PerfStats::CALL( size_t bi, size_t basketNumber ) { \
if( m_otherPerfStats ) m_otherPerfStats->CALL( bi, basketNumber ); \
} struct dummyforsemi
FWD_CALL(SetLoaded);
FWD_CALL(SetLoadedMiss);
FWD_CALL(SetMissed);
FWD_CALL(SetUsed);
#undef FWD_CALL
#endif //ROOT_VERSION
/// The constructor needs to do a few things. If there is already
/// another TVirtualPerfStats object defined under gPerfStats, then
/// it stores that pointer in order to be able to forward monitoring
......
......@@ -90,6 +90,33 @@ namespace xAOD {
/// Function used by PROOF to set the number of processed events correctly
virtual ::Long64_t GetNumEvents() const;
#if ROOT_VERSION_CODE >= ROOT_VERSION( 6, 14, 0 )
// new methods (ROOT 6.14) - need forwarding to the original TPerfStats
/// Print the TTree basket read caching statistics
virtual void PrintBasketInfo(Option_t *option = "") const;
/// Increase by 1 the counter of how many times a basket was cached
virtual void SetLoaded(TBranch *b, size_t basketNumber);
virtual void SetLoaded(size_t bi, size_t basketNumber);
/// Increase by 1 the counter of how many times a basket was cached on access
virtual void SetLoadedMiss(TBranch *b, size_t basketNumber);
virtual void SetLoadedMiss(size_t bi, size_t basketNumber);
/// Increase count (by 1) of not cached basket reads
virtual void SetMissed(TBranch *b, size_t basketNumber);
virtual void SetMissed(size_t bi, size_t basketNumber);
/// Mark a basket as accessed
virtual void SetUsed(TBranch *b, size_t basketNumber);
virtual void SetUsed(size_t bi, size_t basketNumber);
/// Update the fBranchIndexCache collection to match the current TTree given
/// the ordered list of branch names.
virtual void UpdateBranchIndices(TObjArray *branches);
#endif
/// @}
protected:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment