From 79b7c29fdeef07a703f7555905dcd295ed4f10e2 Mon Sep 17 00:00:00 2001 From: Frank Gaede <frank.gaede@desy.de> Date: Mon, 7 Apr 2014 08:53:31 +0000 Subject: [PATCH] - fixed SurfaceMaterial issue w/ TGeMedium properties --- DDRec/include/DDRec/Surface.h | 10 +++++----- DDTest/src/test_surface.cc | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/DDRec/include/DDRec/Surface.h b/DDRec/include/DDRec/Surface.h index e29dc4937..2ec952940 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 1085991d7..69e9271c3 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 " ) ; -- GitLab