Bug in geo::OpDetGeo isBar() when using sphere/semi-sphere optical detectors
The isBar() function is geo::OpDetGeo incorrectly returns true when the the optical detector is a TGeoSphere object. I believe this is because the TGeoSphere object inherits from TGeoBBox, and the isBar() function checks whether the object is a box.
It would be useful to also have an "isSphere()" function analogous to isBar() and isTube() for use with spherical optical detectors - e.g. dynamic_cast<TGeoSphere const*>(opDet.Shape()) != nullptr. This is required by the semi-analytic / parameterised light simulation in SBND (and any other detectors using PMTs).