LArSoft Coordination Meeting

US/Central
FNAL

FNAL

Erica Snider (Fermilab)
Description

To connect via Zoom:  Meeting ID 831-443-820

(See instructions for setting Zoom default to join a meeting with audio and video off: https://larsoft.org/zoom-info)

PC, Mac, Linux, iOS, Android:  https://fnal.zoom.us/j/831443820

Phone:

H.323:

162.255.37.11 (US West)
162.255.36.11 (US East)
213.19.144.110 (EMEA)
See https://fnal.zoom.us/ for more information
 

At Fermilab:  WH7X (Race track)

Support

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
    • It is a maintance issue
  • 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
      • replaced by ROOTCLING
    • Do not put header guards in implementation files
  • Simplify code
    • Iterating over std::map
  • 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
      • ICARUS, ProtoDUNE
    • 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.
There are minutes attached to this event. Show them.
    • 09:00 09:15
      Release and project report 15m
      Speaker: Dr Erica Snider (Fermilab)
      Slides
    • 09:15 09:30
      Setting trajectory point index in Calorimetry module 15m
      Speakers: Justin Hugon (Louisiana State University), Tingjun Yang (Fermilab)
      Slides
    • 09:30 10:10
      Simple code cleanups in LArSoft 40m
      Speaker: Dr Kyle Knoepfel (Fermilab)
      Slides
    • 10:10 10:30
      Event display updates 20m
      Speaker: Tracy Usher (SLAC)
      Slides