Completed first version of all the tasks needed by NOvA and larsoft.
We could not have done this without the session.


Build system (Lynn)

cmake build working for the old version of the framework. Out of source build, of course.
"make install" works. Macro for plugins take an optional argument for dependent libraries.
reflex XML files work with cmake dependencies.
cmake plugin rules work better.

Build can drive the framework tests.
Activated a lot of plugins (stubs and integration) for the purpose of testing.
Ran the View tests (complex features).

More fixes of the of reflex build rules to clean up when there is a failure.

Views or stand-in for "the slicer"

Show that the View machinery will work for NOvA. Provided a test with their class examples.
Provide example of how to use this feature.

Raw source (larsoft)

New product - LarRawProduct (the header and vector of digis)
New input source plugin - LarRawInputSource (produce events from collection of files that contain one event).
Test that exercise this facility, reading several files from run 850 and writing a root file with the processed data.
Does one run per run of the program. Detects events (files) that are not consistent with the current run number.

No longer need to grant friendship of a derived source in the source base class. There is now a facility to
do the "commit" of the event products.

User interactions (NOvA)

Added new framework signal/callback to the system that gives out the list of active workers, also the input source.
Added a reconfigure member that takes a parameter.
Added a UserInteraction base class that uses the new signal and defines a simple protocol for an experiment-specific derived service class to use to get user input.
Supplied a sample SimpleInteraction service that derives from UserInteraction. It gets user input from the terminal.
Implemented ability to change a module configuration at the front of the event loop and also to go to the next event, reprocess current event, or rewind to the start of the current file.

Automatic test that exercises this SimpleInteraction service and the UserInteraction class.

MF / fhicl (art - new system)

Parser updates complete and SHA-1 algorithm updated.
Restructured the building of the parameter set using the pset registry. Now uses an simple data structure during parsing.
Heterogeneous sequences are internally represented, but not accessible now.

Tasks left

Need approval of the changes.
Need a build / install / release in their environment.

Write-up of the raw input source - configuration, behavior, product description, etc. (on wiki).
Inform larsoft of action required to move and use the raw input source code.
Help with migration of the raw input source code to the larsoft (product and input source).

Write-up of the UserInteraction / SimpleInteraction service.

Desire to also run a second job that reads the data in and checks
the data stored in the ROOT file for consistency. It is acceptable to ask Brian Rebel for help with the integrity check.

Art needs a wrapper around genreflex (in cet-build-tools) which cleans up when there is a failure (removed the partly-generated files)

Need a plan for how to deal with validation data files. The raw input source for larsoft has this requirement. Where do these data files get stored? How are they accessed?

Suggestions for Improvement

Reminded that planning before the meeting is essential to know the goal - what we want to accomplish.
Four is too small. Six is just right. Five is adequate.
Strength is getting immediate feedback in the group environment.

Might be getting easier to interrupt us.

Group successfully and effectively switched to doing this old framework task.

Greater number of build machines is necessary to be efficient in this mode. We actually collided with each other
and with other users on our build machine (ilcsim2). This is the first time we've run up against this problem.


The efficiency is high in this setting. We got done with tasks that would have taken > 3 months in 3 days (~15 man-days of effort).
Having questions answered quickly is part of having that efficiency go up.
Know that only a part of the development group has seen this code in the past.