Project

General

Profile

Feature #3189

Add support for output filenames that include the run number, etc. in a DAQ environment

Added by Kurt Biery over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
Event Loop
Target version:
Start date:
12/18/2012
Due date:
% Done:

100%

Estimated time:
Scope:
Internal
Experiment:
-
SSI Package:
Duration:

Description

For DS-50 DAQ (and other experiments), it would be nice to have the ROOT output files have filenames that include the run number, subrun number, and possibly other identifiers. In addition, it would be nice to be able to do the following:
  • configure a maximum size for output files
  • configure a maximum wall clock "age" for output files (where "age" is the amount of time that the file has been open)
  • have an index number in the filename to allow for unique filenames when files are closed because of size or age limits
  • have the output module start a new file when when the subrun number changes

Here is a comment from Chris in an email that mentioned these changes: "These features all sound sensible. Unfortunately they would require some revision of the broken abstraction which is the FileBlock, and how it is used in the I/O system. Currently the output file open/close boundaries are tied to the input file open/close boundaries. This has been in need of address for quite some time but has never been sufficiently high in the priority list."

Here is another email excerpt from Chris that is probably relevant: "Per artdaq/ArtModules/detail/RawEventQueueReader.cc, a different run or subrun in the RawEvent (as set by EventStore::insert()) will cause the correct Run / SubRun records to be emitted. All you need to do is add setters (getters optional) for the run and subrun to the EventStore class and you can get the behavior you desire without changes to art. As I said in a previous mail, what will require changes to art is the ability to start a new output file every time a new run or subrun is encountered."


Related issues

Related to art - Milestone #3708: Implement condition-based output file rolloverClosed2015-08-01

History

#1 Updated by Christopher Green over 6 years ago

  • Category set to Event Loop
  • Status changed from New to Resolved
  • Assignee set to Christopher Green
  • Target version set to 1.06.00
  • % Done changed from 0 to 100

I believe we have agreed to leave the renaming to the post-processing step.

The ability for the file to be closed on subrun boundaries has been made possible with the advent of "flush" runs implemented with commit 237ad6d15f44a97d21785a9a5c3cbd9781205a1c and the ability for a generator (See source:art/Framework/IO/Sources/Source.h and source:art/Framework/IO/Sources/Source_traits.h) to continue to send data after returning false from readNext_(), as implemented for 1.04.00 (with bug fix for 1.06.00).

The indexing of multiple files output by ROOTOutput is already implemented and is automatic.

I mark this issue resolved, and open a separate feature issue for the remaining requests:
  • configure a maximum size for output files
  • configure a maximum wall clock "age" for output files (where "age" is the amount of time that the file has been open)

#2 Updated by Christopher Green over 6 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF