Minutes for LArSoft coordination meeting on Jan 29, 2019
Present | Vito Di Benedetto, Lynn Garren, Herb Greenlee, Kyle Knoepfel, Saba Sehrish, Erica Snider|
Remote | Katherine Lato, Paul Russo, Tracy Usher, Anna Mazzacane, Hannah Rogers |
Release and Project status report [Erica Snider]
- An update to nutools, only addresses Physics list, some changes in pandora
- art 3.01.01 will be coming soon, there was a bug
Conclusion:
- Genie v3, no answer yet from experiments
Space Charge Implementation [Hannah Rogers]
- See slides for the details
- these are calibration specific spacecharge changes
- Question by [Lynn] on override Enable and GetCalOffsets on slide 3.
- [Paul]: this is the standard architecture of services and algorithms; provide common interface and experiments to implement specifics
- ICARUS, LArIAT, ArgoNeut, SBND have not been updated
- Mike Mooney has a grad student on SBND
- Hannah will do ICARUS
- Will also write what needs to change for SBND (not sure if sbnd is using spacecharge)
- [Noted that SBND is not part of larsoft-users]
- Is it ready to go: dunetpc is not pushed yet, need all branches before making it to the release
- LArEvt: feature/herogers_voxelizedSCE
- LArReco: feature/herogers_dxSCE_calibrationCorrection
Conclusion:
- Won't be ready this week because still need to validate changes for dunetpc
Avoid discarding createEngine's returned reference, or "Down with art's getEngine". [Kyle Knoepfel]
-
art provides RandomNumberGenerator service
- Proposed changes:
- Make the compiler issue a warning if the return value of NuRandomService::createEngine() is not used.
- Make the compiler issue a warning if RandomNumberGenerator::getEngine() is used in art 3.02.00.
- Remove the function RandomNumberGenerator::getEngine() in art 3.03.00.
-
Explanation of Proposal: RandomNumberGenerator::getEngine() is confusing and hard to use properly because it uses the concept of “current module†which is confusing when it is used in a library function that is not directly part of any art module. The concept of "current module" is more confusing when multi-threading is being used and multiple events are being processed on different schedules, in that case you can only talk about the of a schedule, and the getEngine() function needs to be told which schedule you are referring to.
-
The preferred use pattern is to save the returned value from createEngine() as a data member of your class and replace all uses of getEngine() with references to that new data member.
Conclusion:
- The proposal was accepted. Kyle already has feature branches for LArSoft and nutools, and will begin work on feature branches for the experiment-specific code.
- Feature branches already prepared:
- nutools: feature/knoepfel_nodiscard
- larsim: feature/knoepfel_nodiscard
- larreco: feature/knoepfel_nodiscard
- larana: feature/knoepfel_nodiscard