diff --git a/DDRec/include/DDRec/Surface.h b/DDRec/include/DDRec/Surface.h index e29dc49371fa89879b0a89a82b6f493908648e60..2ec9529407474cc630de965e53bb6a17b7cb397a 100644 --- a/DDRec/include/DDRec/Surface.h +++ b/DDRec/include/DDRec/Surface.h @@ -27,18 +27,18 @@ namespace DD4hep { SurfaceMaterial( Geometry::Material m ) : Geometry::Material( m ) {} /// averaged proton number - virtual double Z() const { return Geometry::Material()->GetMaterial()->GetZ() ; } + virtual double Z() const { return m_element->GetMaterial()->GetZ() ; } /// averaged atomic number - virtual double A() const { return Geometry::Material()->GetMaterial()->GetA() ; } + virtual double A() const { return m_element->GetMaterial()->GetA() ; } /// density - units ? - virtual double density() const { return Geometry::Material()->GetMaterial()->GetDensity() ; } + virtual double density() const { return m_element->GetMaterial()->GetDensity() ; } - /// radiation length - units ? + /// radiation length - tgeo units virtual double radiationLength() const { return Geometry::Material::radLength() ; } - /// interaction length - units ? + /// interaction length - tgeo units virtual double interactionLength() const { return Geometry::Material::intLength() ; } }; diff --git a/DDTest/src/test_surface.cc b/DDTest/src/test_surface.cc index 1085991d73520e1c0287dc70304120ca20a6a00a..69e9271c3e18d6433722482e190753ea1ab175ec 100644 --- a/DDTest/src/test_surface.cc +++ b/DDTest/src/test_surface.cc @@ -96,11 +96,12 @@ int main(int argc, char** argv ){ // --- test SurfaceMaterial SurfaceMaterial sm( mat ) ; - // FIXME: these cause a seg fault .... + // material properies of Si : + test( STR( sm.A() ) , STR( 28.0855 ) , " SurfaceMaterial.A() == 28.0855 " ) ; - // test( STR( sm.A() ) , STR( 93.4961 ) , " SurfaceMaterial.A() == 93.4961 " ) ; - - // test( STR( sm.Z() ) , STR( 93.4961 ) , " SurfaceMaterial.Z() == 93.4961 " ) ; + test( STR( sm.Z() ) , STR( 14 ) , " SurfaceMaterial.Z() == 14 " ) ; + + test( STR( sm.density() ) , STR( 2.33 ) , " SurfaceMaterial.density() == 2.33 " ) ; test( STR( sm.radiationLength() / tgeo::mm ) , STR( 93.4961 ) , " SurfaceMaterial.radiationLength() == 93.4961 * mm " ) ;