Bug #10536

Updated by Kyle Knoepfel over 4 years ago

There are now many tests in @art@ that verify the expected behavior for various input-concatenation scenarios. Consider the following scenario, however.

Suppose input files @a.root@ and @b.root@ were created by the same set of processes and therefore have the same products and event shape. To save disk space, a user decides to drop products in @b.root@ so that the unneeded products are no longer present, and only the desired products are persisted to @b_trimmed.root@. Because @a.root@ and @b_trimmed.root@ still have the same event shape, it is possible for both to serve as inputs:

art -c onlyAnalyze.fcl a.root b_trimmed.root

where no filtering or extra product creation is done. This works fine in current @art@. However, suppose I want to write all the products to an aggregated output (@out.root@). In this case, the nonexistent products in @b_trimmed.root@ should be replaced with dummies in @out.root@. However, the following error is emitted:

---- FatalRootError BEGIN

Fatal Root Error: @SUB=TBranchElement::Fill

attempt to fill branch art::TriggerResults_TriggerResults__p2. while addresss is not set

cet::exception going through module RootOutput/out run: 1 subRun: 0 event: 1
---- FatalRootError END

Interestingly, the error is not triggered if @b_trimmed.root@ precedes @a.root@ in the input-file list. This should be remedied so that the behavior is symmetric wrt. the order of the above-specified inputs.