Input files with no events
When running on a series of art files, if one containing no events is found, an error is thrown that there are different structures in the root files. I've then had to remove this run from the run list by hand.
I've been running on a set of test beam data where different hardware configurations are used for small runs containing ~15 events. Namely, a discriminator threhold is changed for each run.
The data is passed through a cleaning module which can remove events if there is a problem - e.g. if the beam went down or the triggers went out of sync. For a small fraction of runs, all data is bad and we end up with a run with no Art events. In this scenario, the structures from the previous modules in the chain aren't passed down - only the new Art records are added.
If this run happens to fall at the start of my list of files, then I get an error on encountering the first non-empty file of the form:
%MSG-s ArtException: PostCloseFile 10-Aug-2015 14:43:33 CDT PostEndRun
cet::exception caught in art
---- MismatchedInputFiles BEGIN
RootInputFileSequence::mergeMPR() Branch 'gm2strawtracker::GLIBTriggerArtRecords_getGLIBTriggers_straws_SyncTimings.' is in file 'mtestRawtoDigits_00358.root'
but not in previous files.
If the empty file is not in the first file, then the files are all processed.
Obviously, I'm not going to do too much with an empty file, but it would be nice if I didn't have to go and remove these from my list of runs by hand based on this error. Is it possible to add a feature so that an empty file is not taken into account when searching for this type of error?