A rewritten version of
ShowerReco3D code is being actively developed and used in LArLite.
ShowerReco3D version present in LArSoft is outdated beyond recovery.
The new version should be ported again to LArSoft.
#1 Updated by Gianluca Petrillo about 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:
cluster::cluster_paramsdata structure and
cluster::ClusterParamsAlgalgorithm 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
ShowerReco3Dalgorithms have been rewritten; this is the core of the translation
ShowerReco3Dframework has been tweaked too
CMTooltools have been updated too; they are used by
ShowerReco3D, but also by a couple of cluster merging modules
The plan of action is:
cluster::cluster_paramsso that the resulting structure is a superset of LArLite and LArSoft
- move the current LArLite's
cluster::ClusterParamsAlginto a different namespace
- extend LArLite's
cluster::ClusterParamsAlgto 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
ShowerReco3Dframework in LArSoft will be tweaked to work with the new algorithms, but LArLite's won't be directly ported
CMToolwill also be ported
ShowerReco3Dalgorithms 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 about 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.