TrackingVolumeManipulator,TrackingVolumeHelper, TrackingVolumeCreator make safe. start on Geometry builders
TrackingVolumeManipulator,TrackingVolumeHelper, TrackingVolumeCreator make safe. start on Geometry builders
This is the followup of !56242 (merged)
Since in that one we finally avoid creating everything const
. Now we are able to actually "manipulate" things without const_cast
for a change ...
Main changes :
- TrackingVolumeManipulator -->
THREAD_SAFE
- TrackingVolumeHelper -->
THREAD_SAFE
- TrackingVolumeCreator -->
THREAD_SAFE
- Start on trying to clean up the thread safety for Tracking Geometry Builders , by passing not const volumes to them . I left the marking as
NOT_THREAD_SAFE
as some need a bit extra work to pass.
Notes :
There was one "syntactical" question I had on combining span
and shared_ptr
etc ...
ping @ssnyder with whom I discussed them.
A mock perhaps easier to parse if you wonder on that bit of the code: https://godbolt.org/z/MdzEjaYMG (scroll around line 500)
There are a couple of const_cast that were not removed but moved around (most const_cast got removed). To rm them
will need to do same ctor when we pass confinedDense
as when we pass Detached
in the TrackingVolume.