Minutes for LArSoft coordination meeting on Nov 20, 2018

Present | Vito Di Benedetto, Giuseppe Cerati, Lynn Garren, Herb Greenlee, Alex Himmel, Tom Junk, Kyle Knoepfel, Saba Sehrish, A Smith, Erica Snider, Hans Wenzel

Remote | Lorena Escudero, Paul Russo, Tracy Usher, William Seiglmann|

Project status report [Erica Snider]

  • v07_11_00 fixes the backward compatibility issue with PFParticleMetadata class
    • We do not want to release anything that is not backward compatible; we need to fix our procedure to ensure this doeesn't happen
  • ifdhc v2_3_8 has a bug in checksum calculation, and we do not want to cut a release this week (short week) just with new ifdhc v2_3_9
    • how to correctly use ifdhc: setup larsoft ; unsetup ifdhc ; setup ifdhc v2_3_9
  • Conclusion: No release this week due to Thanksgiving Holiday

Removing deprecated stuff from recob::Track [Giuseppe Cerati]

  • purpose is to cleanup the recob::Track code and remove the deprecated functionality
  • code duplication: recob::Track::Length implemented locally is now replaced by the central implementation
  • change TVector3 to auto or Point_t or Vector_t
  • sorted out the inconsistent use of Extent and Direction
  • There are some non-trivial changes, listed in the talk
  • Agree on deprecation strategy
  • Still unresolved between fitted and unfitted tracks, this change is not imminent, so we still have time to discuss
    • Original plan is to use recob::TrackTrajectory for unfitted and recob::Track for fitted (may not be acceptable by the experiments)
    • easier to impelement and use is to rename recob::TrackTrajeectory as recob::track and recob::Track as recob::Fittedtrack
    • Or use bool to distinguish
      • [Tom Junk]: vote against to use a bool to distinguish between the two
  • Q: Any idea on out of the 142 files that were touched to update the recob::Track code, what % is the active code?
    • A: No
  • We will document all different cases and suggestions on breaking change page.

  • Q: Are some of these scriptable?
    • No
  • Will target next week release to get this done. so experiements can let us know

Cleanup of OpFastScintillation  [Alex Himmel]

  • Fixed the problem of SimPhoton vs SimPhotonLite for the use of DUNE
    • DUNE uses SimPhotonLite to avoid memory problems and want to use photon libraries which contain reflected lights.
  • Changes were implemented in the old LArG4
    • Needs to be ported to the new framework but will be done after TDR, so March or April of 2019
  • New structure of the for loop is:
    • loop over (not reflected, reflected) then for (each channel) and then for (each photon)
  • Previously, reflected light and direct light stored together.
    • Fast scent now has 2 labels ("", reflected)
      • Needed because SimPhotonsLite does not store wavelength or other properties which vary photon to photon
      • Note that reflected implies wavelength shifted. Things that are not (eg, just reflected
    • Noted that the full simulation does not store separate direct/indirect collections
  • No comments or objections to this work.

Lazy database services [Herb Greenlee]

  • Proposed changes to IOV database services
  • Provider updates
    • New data members and methods
      • Time stamp of cached data: fCurrentTimeStamp
      • Time stamp of most recent event: fEventTimeSTamp
      • Methods to update the above: public method to update the first one and private const for the second one
    • Existing functions
      • Update(), calls DBUpdate
      • Make all data members modified by DBUpdate mutable
      • Call DBUpdate
    • Modify PreProcessEvent callback to call UpdateTimeStamp(timestamp) instead of Update(timestamp).
      • The call to DBUpdate is called only when accessed, hence the need for mutable data members
  • Nonbreaking interface change.
    • Only visible change is addition of new provider function UpdateTimeStamp.
  • Updates to DB services and providers already discussed two weeks ago (at the LCM)
  • List of branches
    • LArSoft:
      • Develop: Larevt: feature/greenlee_lazy_db_develop
      • MCC8 branch: Larevt: feature/greenlee_lazy_db (already merged)
    • Uboone suite
      • Ubevt: feature/greenlee_lazy_db
      • Ubevt: feature/greenlee_lazy_db_no_larsoft (if no larevt merge).
      • MCC8: Uboonecode: feature/greenlee_lazy_db
  • Merge request for next integration release: No objection

Persisting slices in Pandora's output [A Smith]

  • Pandora uses Slice concept to
    • Represent topologically distinct collection of hits
    • Were candidates for neutrino or beam-particle interactions
    • Now these objects exist in LArSoft, can be persisted and used downstream (recob::Slices, available in lardataobj/RecoBase)
  • How filled
    • All unambiguous cosmic hierarchies = one recob::Silce per hierarchy
    • All pandora internal slices
  • Feature branch: larpandora - feature/asmith_persistRecobSlicev07_11_00
  • New products:
    • std::vector
    • art::Assns<recob::Slice,recob::Hit,void>
    • art::Assns<recob::PFParticle,recob::Slice,void>
  • Validated hit-by-hit that slices match what was expected in pandora
  • Increase output data size by < 1%. No effect on cpu or memory
  • All unit tests work
  • Request changes for next week release, no objection