Project

General

Profile

Feature #24721

Event Mixing and Run-level Data Products

Added by Andrew Edmonds about 2 months ago. Updated about 1 month ago.

Status:
Assigned
Priority:
Normal
Assignee:
Category:
Infrastructure
Target version:
-
Start date:
08/05/2020
Due date:
% Done:

0%

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

Description

I'm trying to mix in a Run-level data product into an art::Event. The Run-level data product is stored in a single art file but is distributed over a number of Run fragments. The Run-level data product contains an aggregate() function so that when I read the file into art as the primary event, it gives me the correct aggregated value of the Run-level data product at the first beginRun.

However, when I try to read the Run-level data product in as a secondary file during mixing, it always gives me the value from the first Run fragment.

I can workaround this by reading the art file with the fragmented Run product and writing the aggregated product to a new file. This then gives me the correct value during mixing but adds an extra stage to the workflow.

I'm not sure whether I should be able to mix in the single file with the fragmented Run product and this is a bug, or this is a feature request for art to have additional functionality.

eff_mix_sr01.fcl (1.62 KB) eff_mix_sr01.fcl Andrew Edmonds, 08/12/2020 03:33 PM
eff_mix_cat_sr01.fcl (1.62 KB) eff_mix_cat_sr01.fcl Andrew Edmonds, 08/12/2020 03:33 PM
eff_cat_sr01.fcl (786 Bytes) eff_cat_sr01.fcl Andrew Edmonds, 08/12/2020 03:33 PM
eff_calc_sr01.fcl (955 Bytes) eff_calc_sr01.fcl Andrew Edmonds, 08/12/2020 03:33 PM
beam_g4s1_sr1.fcl (976 Bytes) beam_g4s1_sr1.fcl Andrew Edmonds, 08/12/2020 03:33 PM
beam_g4s1_sr0.fcl (977 Bytes) beam_g4s1_sr0.fcl Andrew Edmonds, 08/12/2020 03:33 PM

History

#1 Updated by Kyle Knoepfel about 1 month ago

  • Status changed from New to Feedback

Can you give us a FHiCL file that we can run to reproduce this behavior? Please let us know which version of art_root_io you are using.

#2 Updated by Andrew Edmonds about 1 month ago

Running on the code on my branch here: https://github.com/AndrewEdmonds11/Offline/tree/mdc2020-internal-bookkeeping2

The attached fcl files reproduce the behaviour with the following workflow:

1) Produce two subruns, each of 100 events:

  • mu2e -c beam_g4s1_sr0.fcl
  • mu2e -c beam_g4s1_sr1.fcl

2) Read output files from both subruns and create Run-level data product:

  • mu2e -c eff_calc_sr01.fcl

3) Read Run-level data product in mixing job with diagnostic output:

  • mu2e -c eff_mix_sr01.fcl

which shows the numerator and denominator of the first subrun only.

What does work is the following:

1) Same as (1) above

2) Same as (2) above

3) Read run-level data product from previous output file and write it out again

  • mu2e -c eff_cat_sr01.fcl

4) Read the new file in a mixing job with diagnostic output:

  • mu2e -c eff_mix_cat_sr01.fcl

which shows the total numerator and denominator for both subruns.

Let me know if there's any more information you want and/or need :)

#3 Updated by Andrew Edmonds about 1 month ago

Sorry, I forgot to mention that I am using art_root_io v1_03_01

#4 Updated by Kyle Knoepfel about 1 month ago

  • Estimated time set to 16.00 h
  • Assignee set to Kyle Knoepfel
  • Status changed from Feedback to Assigned
  • Category set to Infrastructure

Thanks, Andy. Time estimate reflects analysis only.



Also available in: Atom PDF