AthenaServices: Update the AuxSelection/Veto logic in AthenaOutputStream
@goetz reported that when producing multiple streams in standard reconstruction, e.g. AOD
and DAOD_IDTIDE
, those dynamic variables that should only appear in one (DAOD_IDTIDE
), such as IDTIDE1_biased_PVd0Sigma
, appeared in the other stream as well (AOD
).
While investigating, I noticed that when the user provides an exclusion list for a given stream via the syntax Container.-A.-B
all works fine but when we have an inclusion list via the syntax Container.A.B
we were ending up w/ unselected dynamic variables. As far as I can see, the veto list that we obtain by flip
ping the selection list doesn't contain items that should be excluded. In order to work around this, we now build the veto list explicitly by looping over all dynamic variables and inserting those that are not selected into it.
Let me tag @ssnyder, @mnowak, and @gemmeren so that they can comment. The changes here should be safe but I'm not 100% why the previous approach was not quite working.