Feature #4916

Implement SelectRuns and SelectSubRuns

Added by Christopher Backhouse almost 7 years ago. Updated almost 3 years ago.

Event Loop
Target version:
Start date:
Due date:
% Done:


Estimated time:
SSI Package:


As options on RootOutput, with behaviour analogous to SelectEvents.

Spun off from Issue 4895

Related issues

Related to art - Support #4895: No way to filter runs/subruns out of output fileClosed11/01/2013

Related to art - Support #10545: Returning false from EDFilter::beginSubRun() does not skip the eventsClosed10/15/2015


#1 Updated by Christopher Green over 6 years ago

  • Category set to Event Loop
  • Status changed from New to Feedback
  • Experiment NOvA added
  • Experiment deleted (-)
  • SSI Package art added
  • SSI Package deleted ()
Would it be acceptable to offer explicit options to the RootOutput module to:
  • Omit subrun records for which no events have been written; and
  • Omit run records for which no subrun records have been written?

The more selectSubRuns and selectRuns options you suggest would be harder to implement, and open the possibility of a mis-configured job being able to write events with no run or subrun records into a file, which we believe would qualify currently as a corrupted (and therefore unreadable) file.

#2 Updated by Christopher Backhouse over 6 years ago

I'm not quite sure this works. I want to be able to have eg retain a subrun with products in it, but all of the constituent events filtered out (which is currently possible). And likewise with a run, which isn't currently possible.

A worse failure case I guess is that with my scheme one could try and cut out a subrun that had events still remaining in it. But presumably it should be possible to flag these as errors as soon as the module makes such an inconsistent determination.

You could make the action of Select[Sub]Runs dependent on this criterion that nothing from the lower level has been written. That seems like a good way to retain safety.

#3 Updated by Kyle Knoepfel over 5 years ago

  • Target version set to 521

#4 Updated by Christopher Backhouse almost 5 years ago

I had a feeling this feature, or one similar to it, had been implemented, but I can't find any evidence in redmine.

I've run into the need for this again. I'm making skim files of a few events out of many hundreds of runs. I'd prefer my output file to be as minimal as possible, only consisting the runs that are actually needed to contain the events I select.

#5 Updated by Kyle Knoepfel almost 5 years ago

Issue #4998 was implemented as a mitigation to the problem you have discussed. However, as you can tell from the status of this particular feature, it has not been implemented.

#6 Updated by Christopher Backhouse almost 5 years ago

I'm not sure #4998 covers this case. That's for unconditional dropping of all events in a subrun or all subruns in a run. Here I want to be able to make the decision on a case-by-case basis at runtime.

#7 Updated by Christopher Green almost 5 years ago

  • Related to Support #10545: Returning false from EDFilter::beginSubRun() does not skip the events added

#8 Updated by Kyle Knoepfel almost 3 years ago

  • Target version deleted (521)

Also available in: Atom PDF