Project

General

Profile

Bug #19190

IterateWireIDs(TPCsetID) broken

Added by Christopher Backhouse over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Category:
Geometry
Target version:
-
Start date:
03/01/2018
Due date:
% Done:

100%

Estimated time:
Spent time:
Occurs In:
Experiment:
Co-Assignees:
Duration:

Description

I don't know at what level this issue might reside. Filing it here for now.

At least with the 10kt DUNE geometry, calling Geometry::IterateWireIDs() with a readout::TPCsetID appears to give all wires in the detector.

First using TPCsetToTPCs() and then iterating those allowed me to work around the problem.

Associated revisions

Revision f7a30c9f (diff)
Added by Gianluca Petrillo over 2 years ago

Disabled ambiguous overloads for IterateXxxx() methods

This addresses (somehow) issue #19190.

History

#1 Updated by Gianluca Petrillo over 2 years ago

  • Status changed from New to Resolved
  • Assignee set to Gianluca Petrillo
  • % Done changed from 0 to 100

The geo::GeometryCore::IterateWireIDs() does not support the readout IDs.
What happens is that the readout::TPCsetID gets implicitly interpreted as a cryostat ID, and all the wires in its cryostat are returned.
I have pushed code in larcorealg develop branch that makes such use trigger a compilation error instead.

In general:
  • the concept of iterating all wires in a TPC set is not supported, since wires are "geo" objects and TPC sets are "readout" ones
  • the concept of iterating all channels in a TPC set is instead supported, but there is no infrastructure in place to do that (because there are no channel iterators)

Channels are older concepts and they don't come with a dedicated class like e.g. wire IDs do.

This ticket is now technically "resolved" as the call you were trying is considered invalid and now it won't be possible any more. But that probably does not help you much.
If iteration over channel IDs in a ROP/TPC set/cryostat is needed, please open a feature request ticket in LArSoft redmine.

If it is really the wires that you are after, then your workaround is in fact the correct solution.

#2 Updated by Gianluca Petrillo over 2 years ago

  • Project changed from dunetpc to LArSoft
  • Category set to Geometry

#3 Updated by Gianluca Petrillo over 2 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF