Please read these instructions before posting any event on Fermilab Indico

The FERMI(FNAL) network authorization method will be removed on Tuesday, Feb 4th at 5PM CST. See news for more details.

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