Task #15688
Milestone #15086: Onboard ICARUS
Extend wire sorting to accommodate wires parallel to z direction
Description
(submitted on behalf of Wesley Ketchum)
As in ICARUS use case, the standard wire sorter in larcore:source:larcore/Geometry/GeoObjectSorterStandard.cxx fails to sort wires that have centres with the same z.
A backward compatible solution can be added to support ICARUS case, where wires are aligned with z and lie on a vertical plane.
History
#1 Updated by Gianluca Petrillo almost 4 years ago
- Assignee set to Wesley Ketchum
The extension should also include the use case of ProtoDUNE, where wires have all the same y coordinate (lie on a horizontal plane) and some can be aligned to z axis as well.
#2 Updated by Gianluca Petrillo almost 4 years ago
- Status changed from New to Assigned
#3 Updated by Wesley Ketchum almost 4 years ago
- Status changed from Assigned to Work in progress
- Assignee changed from Wesley Ketchum to Gianluca Petrillo
- % Done changed from 0 to 40
OK, sorting code on feature/wketchum_SortingUpdate. I haven't tried to build or test lest I interrupt my environment: gonna kick back to Gianluca for that.
#4 Updated by Gianluca Petrillo almost 4 years ago
I have run a wire dump1 of the "reference" geometry in larcore
, on MicroBooNE's, DUNE 35t, DUNE Far Detector, ArgoNeuT and LArIAT geometries, before and after the patch.
The test has succeeded, as no difference has been observed.
A minor concern is that the test for equality vs. std::numeric_limits<double>::epsilon()
might miss rounding errors. We could consider using physically meaningful thresholds instead (like 0.0001 centimetres, i.e. 1 micron).
1 That is one of the "tests" of the standard geometry test suite. The configuration I used is along the lines of
#include "test_geometry.fcl" physics.analyzers.geotest.RunTests: [ "-*", "+PrintWires" ]
#5 Updated by Katherine Lato almost 4 years ago
- Tracker changed from Feature to Task
- Parent task set to #15086
Making this a task under 'Onboarding ICARUS' milestone.
#6 Updated by Gianluca Petrillo over 3 years ago
- % Done changed from 40 to 100
Respect to the original code, I have changed the check for "equality" of coordinates to use a physical tolerance (currently 10 um, which I am not sure it makes real sense but at least it works pretty well).
The change has been tested on all geometries except LArIAT/ArgoNeuT and Icarus, verifying that wire order has not changed.
Therefore, the change is not breaking.
The code is in feature/wketchum_SortingUpdate
of larcore
, updated to LArSoft v06_41_00
and ready for merge.
#7 Updated by Gianluca Petrillo over 3 years ago
- Status changed from Work in progress to Resolved
#8 Updated by Gianluca Petrillo over 3 years ago
- Status changed from Resolved to Closed