You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mu2e uses "resampling" techniques in physics studies to increase the
effective statistics of simulated samples. For example, one
simulation job can produce a muon stopping in the Mu2e target. The
next job will "resample" that muon stop event by decaying the muon and
simulating the electron track many times, with different random seeds.
In general, we want the ability to take an existing art event and put
all of its content into an empty event with a new event id. This is
similar to the "event mixing" situation, and Mu2e currently uses a
ResamplingMixer module to support this use case
However the "resampling" use case is simpler than mixing: there is no
need to aggregate data products. It is sufficient to support the
nSecondaries==1 case, in the mixing terms. The limitation of the
ResamplingMixer implementation is that one has to implement mixing of
all possible user data types (which may be a meaningless concept for
some types), and then provide run time configuration that lists all
products in the event. This is burdensome.
Art can already provide all data products to a module via the
RootInput source, without listing each one explicitly. It would be
useful to add either a new "resampling source" or "resampling module"
to the framework to support the resampling functionality. The new
code should have the same resampling related settings like readMode,
coverageFraction, etc., as the existing mixing code.
It is probably OK to lose provenance of resampled data products; this
is what happens in the current Mu2e ResamplingMixer implementation.
We need a way to preserve original event IDs, even after multiple
stages of resampling. In the ResamplingMixer case this is achieved
by writing out event ID from the current mixing stage in the
finalizeEvent() mixer detail call, and transmitting IDs from earlier
stages via MixOps.
Please consider adding event resampling functionality to the framework.
Andrei
The text was updated successfully, but these errors were encountered:
This issue has been migrated from https://cdcvs.fnal.gov/redmine/issues/23925 (FNAL account required)
Originally created by @gaponenko on 2020-01-18 05:39:42
Hello,
Mu2e uses "resampling" techniques in physics studies to increase the
effective statistics of simulated samples. For example, one
simulation job can produce a muon stopping in the Mu2e target. The
next job will "resample" that muon stop event by decaying the muon and
simulating the electron track many times, with different random seeds.
In general, we want the ability to take an existing art event and put
all of its content into an empty event with a new event id. This is
similar to the "event mixing" situation, and Mu2e currently uses a
ResamplingMixer module to support this use case
https://github.com/Mu2e/Offline/blob/master/EventMixing/src/ResamplingMixer_module.cc
However the "resampling" use case is simpler than mixing: there is no
need to aggregate data products. It is sufficient to support the
nSecondaries==1 case, in the mixing terms. The limitation of the
ResamplingMixer implementation is that one has to implement mixing of
all possible user data types (which may be a meaningless concept for
some types), and then provide run time configuration that lists all
products in the event. This is burdensome.
Art can already provide all data products to a module via the
RootInput source, without listing each one explicitly. It would be
useful to add either a new "resampling source" or "resampling module"
to the framework to support the resampling functionality. The new
code should have the same resampling related settings like readMode,
coverageFraction, etc., as the existing mixing code.
It is probably OK to lose provenance of resampled data products; this
is what happens in the current Mu2e ResamplingMixer implementation.
We need a way to preserve original event IDs, even after multiple
stages of resampling. In the ResamplingMixer case this is achieved
by writing out event ID from the current mixing stage in the
finalizeEvent() mixer detail call, and transmitting IDs from earlier
stages via MixOps.
Please consider adding event resampling functionality to the framework.
Andrei
The text was updated successfully, but these errors were encountered: