Minutes for LArSoft coordination meeting on Mar 26, 2019
Present | Vito di Benedetto, Giuseppe Cerati, Lynn Garren, Krzysztof Genser, Herb Greenlee, Robert Hatcher, Kyle Knoepfel, Marc Paterno, Saba Sehrish, Erica Snider, Tingjun Yang |
Remote | Tracy Usher |
Release and Project status report [Erica Snider]
- Last week v08_13_01 and v08_13_02
- Expect to complete art v3.02 + root 6.16 migration this week
- There may a tag for Genie v3 this week.
- caffe support: LArSoft team's proposal is to drop the support, any objections?
- We will continue to support ubuntu. Releases are available upon request.
Conclusion:
Setting Trajectory Point Index in Calorimetry module [Tingjun Yang]
- calo::Calorimetry takes hit charge in ADC, converts to dQ/dx and dE/dx
- Discards some hits for various reasons
- Then saves values for each hit into vectors in anab::Calorimetry
- Can't match back to hits because don't know which hits have been removed
- Can save the hit index, a vector of tpIndex
- cal::Calorimetry just needs to bee modified to store the tpIndeex
- The index
- hit to trajectory point mapping is trivial (one-to-one)
- When TrackHitMeta is absent
- use the index of the hit in the art::FindManyP entry
- So indexing is simple
- When TrackHitMeta is present
- tpIndex is the index returned from a track hits
- recob::TrackHitMeta::Index()
- Discussion of whether the handling of the case w/o TrackHitMeta via FindManyP is reasonable, or if something more simple can be done.
- Needs to be in place by next ProtoDUNE production campaign, which is one to three weeks
Conclusion
- Approve this as it as, and then revisit the first case when there is no TrackHitMeta
- Will discuss this after the meeting
- Feature branch in larerco: feature/jhugon_caloTPIndex
Simple cleanups to LArSoft [Kyle Knoepfel]
- Motivation: Always see commits to add more code and rarely to remove any
- This talk is about changes that donot relate to the software design
- Ran cloc on develop branch except larbatch - 300-500K lines of code
- Comments in LArSoft: mostly is commented out code, talk about this later
- Guidence: Remove more code than you add, the less code you have its easier to maintain
- Step 1: get rid of the files you dont need
- art modules shouldn’t have header files - it is unneceessary
- Step 2: Remove unnessary header dependeencies
- larevt: SimWire_module.cc - showed the effect of headers
- Proposal: LArSoft should adopt a policy where header files include the minimum number of header dependencies
- Remove unnessarry link-time dependencies - results in minor savings in build time
- Remove unnecessary functions
- If no work is done by beginJob etc, donot prrrovide override
- Remove inappropriate preprocessor use
- Root no longer suppoerts GCCXML
- Do not put header guards in implementation files
- Simplify code
- Next steps
- LArSoft should benefit from adopting several policies
- When should header dependencies be introduced
- When should link-time dependencies be introduced
- What shoudl the header-guard convention be?
- What about error handling?
- Seeing cet_enable_asserts() in CMakeLists.txt
- Lynn: should not be happening
- clang-format can help w whitespace
- clang-tidy might be able to help w some of the code convention things. Have not looked in into this.
- [Krzysztof Genser]: Here is the link to Chris Jones talk on static code analysis.
Conclustion:
- Feature branches
- feature/knoepfel_cleanups branches in LArSoft in all repositories
- Will provide concrete brnahces to Lynn in a week or 2.
Small updates to the LArSoft Event Display [Tracy Usher]
- Waveform and space point displays
- Proposed changes
- Waveform drawing part of the 2D event display is mmodified to use art tools, it allows interchangability between Gaussian and Gaussian Skew hits
- Allows multipel types of same waveform to be overlaid
- Configurable via FHICL
- 3D display of SpacePoints
- Use art tools
- Allows variations of the params to draw the points
- In each case, have preserved ability to modify input parames from teh viewer
- Available for trial on the LArEventDisplay branch feature/user_wiredatadrawer
- Module TQPad is responsible for drawing waveforms
- re-architected to use the above tools
- Noted case of DP which has skew gaussian hits. ICARUS too
- Move all the actual display code out of TQPad
- ownership of histograms in the tools
- Remove the if-else block to differentiate DP and SP
- Drawing toos in subfolder wfHitDrawers
- 3D SpacePoint drawing - provide flexibility how spacepoints are drawn
- Color coding options
- Plain white,
- heat-map coloring by chisq
- heat-map by charge
- Configurable
- All implemented in art tools
- Status
- all in feature/usher+wiredatadraweer
- Current w LArSoft v08_13_02
- Tested for SP detectors
- Have not had a chance to test DP display
- Should be non-breaking, unless they have private ED fhicl files
Conclusion
- Test with DP and get it done by tomorrow to be included in this week's release.
- ArgoNeuT needs to test. Tingjun can do this before tomorrow.