Task #15688

Milestone #15086: Onboard ICARUS

Extend wire sorting to accommodate wires parallel to z direction

Added by Gianluca Petrillo about 4 years ago. Updated over 3 years ago.

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


Estimated time:
Spent time:


(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.


#1 Updated by Gianluca Petrillo about 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 about 4 years ago

  • Status changed from New to Assigned

#3 Updated by Wesley Ketchum about 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 about 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 about 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 almost 4 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 almost 4 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

Also available in: Atom PDF