Feature #11323

Milestone #10328: Complete Phase II of Architecture Revision

Feature #10327: ShowerReco3D

Port ShowerReco3D code from LArLite into LArSoft

Added by Gianluca Petrillo over 5 years ago. Updated over 4 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Spent time:


A rewritten version of ShowerReco3D code is being actively developed and used in LArLite.

The ShowerReco3D version present in LArSoft is outdated beyond recovery.
The new version should be ported again to LArSoft.


#1 Updated by Gianluca Petrillo over 5 years ago

  • Category set to Reconstruction
  • Status changed from New to Assigned
  • Assignee set to Corey Adams
  • Target version set to architecture_phase1

Corey Adams has kindly offered to lead the port of LArLite's ShowerReco3D into LArSoft.

A general guideline is to try to minimize and track the changes in the code during translation.
Therefore permanent changes to both LArLite and LArSoft are expected to bring the two sides closer.

Corey has identified some conflicts:

  • ClusterRecoUtil contains cluster::cluster_params data structure and cluster::ClusterParamsAlg algorithm class that are used within LArSoft for clustering; LArLite has deeply changed them, but LArSoft needs at least temporary a legacy support for the old algorithms
  • ShowerReco3D algorithms have been rewritten; this is the core of the translation
  • ShowerReco3D framework has been tweaked too
  • CMTool tools have been updated too; they are used by ShowerReco3D, but also by a couple of cluster merging modules

The plan of action is:

  • merge cluster::cluster_params so that the resulting structure is a superset of LArLite and LArSoft
  • move the current LArLite's cluster::ClusterParamsAlg into a different namespace
  • extend LArLite's cluster::ClusterParamsAlg to fill the few members that have been added in LArSoft:
    • charge RMS
    • charge statistics based on hit ADC sum (waveform) instead of charge (fit)
    • charge at the initial and final point
  • ShowerReco3D framework in LArSoft will be tweaked to work with the new algorithms, but LArLite's won't be directly ported
  • CMTool will also be ported
  • ShowerReco3D algorithms will be ported
  • a plan for the solution of conflicts in cluster merging algorithms is deferred until its extents are clear

At a later point, LArSoft may wrap the new cluster-related algorithms from ClusterParamsAlg into the interface used by clustering, making them interchangeable with the "standard" clustering algorithms that derive from the old LArLite shower code ported in January 2015. At that point we may propose an update of the standard algorithms.

#2 Updated by Corey Adams over 5 years ago

Here are some updates.

First, I had to add a service module in lardata/Utilities/GeometryHelper.h/cxx, which is a module that is very similar to Geometry Utilities. GeometryUtilities was used in the old shower reconstruction and we found some bugs. We rewrote the code in a way that should be much more maintainable, and didn't remove GeometryUtilties but instead made a new module. The code I ported into Utilities is not a service module from the larsoft sense, but it could be. I am not an expert on making those so I didn't include all the proper art connections.

I have made feature branches in cadams_showerRecoMerge for both lardata and larreco, based off of larsoft v04_32_01. In larreco, I have merged ClusterParams.h to include the new members from larlite and also the new members from larsoft. It compiles but I haven't run yet.

At the moment, all of CMTool and ClusterRecoUtil has had the major framework changes applied, and I'm chasing down the 100 little bugs that showed up and broke the build.

#3 Updated by Katherine Lato over 4 years ago

  • Target version deleted (architecture_phase1)

This is not associated with the architecture phase 1 work, so we changed that field.

#4 Updated by Katherine Lato over 4 years ago

  • Status changed from Assigned to Rejected

This fell out of scope for Phase II of the architecture work. It became the responsibility of the experiment.

#5 Updated by Katherine Lato over 4 years ago

  • Status changed from Rejected to Closed

Also available in: Atom PDF