diff --git a/DDRec/src/Surface.cpp b/DDRec/src/Surface.cpp index a11ddc34408abbf604a3a655a933cb564a15fc22..2c72979f2316a82a97af89228b740bbd97d4846d 100644 --- a/DDRec/src/Surface.cpp +++ b/DDRec/src/Surface.cpp @@ -88,7 +88,8 @@ namespace DD4hep { return dist < epsilon && inShape ; #else - return ( std::abs ( distance( point ) ) < epsilon ) && volume()->GetShape()->Contains( point.const_array() ) ; + //fixme: older versions of ROOT (~<5.34.10 ) take a non const pointer as argument - therefore use a const cast here for the time being ... + return ( std::abs ( distance( point ) ) < epsilon ) && volume()->GetShape()->Contains( const_cast<double*> (point.const_array() ) ) ; #endif } @@ -105,7 +106,7 @@ namespace DD4hep { #if 0 double distR = std::abs( distance( point ) ) ; - bool inShapeT = volume()->GetShape()->Contains( point.const_array() ) ; + bool inShapeT = volume()->GetShape()->Contains( const_cast<double*> ( point.const_array() ) ) ; std::cout << " ** Surface::insideBound( " << point << " ) - distance = " << distR << " origin = " << origin() @@ -114,7 +115,7 @@ namespace DD4hep { return distR < epsilon && inShapeT ; #else - return ( std::abs ( distance( point ) ) < epsilon ) && volume()->GetShape()->Contains( point.const_array() ) ; + return ( std::abs ( distance( point ) ) < epsilon ) && volume()->GetShape()->Contains( const_cast<double*> (point.const_array()) ) ; #endif } @@ -568,7 +569,7 @@ namespace DD4hep { DDSurfaces::Vector3D luRot ; luRot.fill( vecR ) ; - double dist = shape->DistFromInside( lo.const_array() , luRot.const_array() , 3, 0.1 ) ; + double dist = shape->DistFromInside( const_cast<double*> (lo.const_array()) , const_cast<double*> (luRot.const_array()) , 3, 0.1 ) ; // local point at volume boundary DDSurfaces::Vector3D lp = lo + dist * luRot ;