Most probably not-safe in some future version of gcc....
can be fixed making m_det "mutable"  
I am thinking to change the cloning machinery using the helper class more.
This requires cloneSH to return a ```using  RecHitPointer = std::shared_ptr<TrackingRecHit>;```
next round will see what I can do.