geo::PlaneID, that also includes information about the cryostat and TPC the plane belongs to, rather than the simple plane index in the TPC; complete ID types are defined in
geo::GeometryCore::Nplanes(), as the latter will use a very specific TPC, and the choice of which one is beyond your control
geo::GeometryCore; some more advanced iterations haven’t been implemented yet simply for lack of request, but they can be implemented on demand (e.g. iterate on all the wires in a given TPC)
std::vector<DataClass>, may be replaced by a
geo::TPCIDtogether with the vector, so that reconstituting the original ID is easy
geo::GeometryCorefor geometry information; e.g.,
geo::GeometryCore::Nplanes(tpcid)to find how many
geo::TPCGeo::MaxX(), etc.) rather than compute it yourself
GeometryCorecan be extended to do them for you)
Some of the steps you should consider to review your (or others’) code:
geo::Geometryservice; among other things, look for:
Geometrywhen you expect it would: it might have geometry information cached, and in that case one should verify that they are cached correctly, or there might be assumptions
geo::GeometryCore::NearestWireID()without checking if the returned ID
try/@catch@ blocks to make sure errors are correctly dealt with as well; if some code ignores an exception, it must explain why!
geo::GeometryCore::DetectorName()automatically triggers a red alert, as it implies detector dependency
Every time you find you need to check, consider also adding a comment that explains why the core is correct as is.