Skip to content

GeoModelUtilities: Add GeoGetIds and GeoVolumes.

Muon code in a couple places was using getChildVol(), etc., to iterate over volumes in a graph. This is terribly inefficient though, as getChildVol() and friends are O(N). This was exacerabated in the debug build because these methods end up using Eigen to maintain a transformation matrix (even if it isn't actually used), and Eigen is terribly slow when compiled without optimization.

Add a couple visitors to allow implementing these operations efficiently. geoGetIds collects all the volume Ids in a graph, and geoGetVolumes returns a list of volumes,transformation pairs for a graph.

Merge request reports