Change default splitlevel of DAODs from 1 to 0
This MR is a manual sweep of !31190 (merged)
Changing the default splitlevel of DAODs from 1 to 0 would reduce the file sizes by a couple % (e.g. 0.5% for TOQ1 and 5% for TRUTH3 testfiles).
But this change also implies that branch access
is not possible anymore!
Class access should be the default in all TEvent based frameworks (EventLoop, AthAnalysis when it uses TEvent).
We are not aware of a recent use case for branch access to DAODs.
We discussed in the previous SPOT and Software Coordination meetings if this change should go into 21.2 as well. There were no objections, but 2 points were raised:
- Does TBrowser work the same with split 0?
- Uproot might depend on branchAccess
Regarding 1:
I had a quick look at a TOPQ1 derivation with split 1 and 0. Both behaved the same way in a TBrowser (e.g. could plot EventInfoAux.runNumber
)
Primary xAODs already have a splitlevel of 0 by default, so derivations should behave in the same.
Regarding 2:
A quick test showed that uproot can read AuxDyn.
branches for both splitlevels.
I couldn't test Aux.
branches (e.g. EventInfoAux.
), but it failed in the same way for both splitlevels.
Additionally, this is more of an issue for Run3 (master), not 21.2.
@elmsheus raised the point that this MR should only go in after it was approved by the derivation production team. I think he mentioned that there should be a new p-tag? I'll ping @egramsta via mail so that he's aware of this MR.
Also pinging @gemmeren & @lheinric
Please let me know if you think that something is still unclear or should be addressed.