diff --git a/include/DDKalTest/DDConeMeasLayer.h b/include/DDKalTest/DDConeMeasLayer.h index e3d454d..1a04a9c 100644 --- a/include/DDKalTest/DDConeMeasLayer.h +++ b/include/DDKalTest/DDConeMeasLayer.h @@ -98,6 +98,10 @@ class DDConeMeasLayer : public DDVMeasLayer, private DDConeMeasLayer_Base::Data, private: + DDConeMeasLayer(dd4hep::rec::ISurface* surf, + dd4hep::rec::ICone& icone, + Double_t Bz, + const Char_t *name = "DDConeMeasL") ; Double_t fsortingPolicy; // used for sorting the layers in to out }; diff --git a/include/DDKalTest/DDCylinderMeasLayer.h b/include/DDKalTest/DDCylinderMeasLayer.h index 445449a..a2fb7c2 100644 --- a/include/DDKalTest/DDCylinderMeasLayer.h +++ b/include/DDKalTest/DDCylinderMeasLayer.h @@ -100,6 +100,9 @@ class DDCylinderMeasLayer : public DDVMeasLayer, public TCylinder { unsigned fMDim ; private: - + DDCylinderMeasLayer(dd4hep::rec::ISurface* surf, + dd4hep::rec::ICylinder& icyl, + Double_t Bz, + const Char_t *name = "DDCylinderMeasL") ; }; #endif diff --git a/src/DDConeMeasLayer.cc b/src/DDConeMeasLayer.cc index b0065d2..98131c4 100644 --- a/src/DDConeMeasLayer.cc +++ b/src/DDConeMeasLayer.cc @@ -21,11 +21,22 @@ DDConeMeasLayer::DDConeMeasLayer(dd4hep::rec::ISurface* surf, Double_t Bz, const Char_t *name ) : + DDConeMeasLayer (surf, + dynamic_cast(*surf), + Bz, + name) +{ +} + +DDConeMeasLayer::DDConeMeasLayer(dd4hep::rec::ISurface* surf, + dd4hep::rec::ICone& icone, + Double_t Bz, + const Char_t *name ) : DDVMeasLayer( surf, Bz, name ) , - Data(dynamic_cast(surf)->z0()/dd4hep::mm , - dynamic_cast(surf)->radius0()/dd4hep::mm, - dynamic_cast(surf)->z1()/dd4hep::mm, - dynamic_cast(surf)->radius1()/dd4hep::mm ), + Data(icone.z0()/dd4hep::mm , + icone.radius0()/dd4hep::mm, + icone.z1()/dd4hep::mm, + icone.radius1()/dd4hep::mm ), TCutCone(_R1*(_Z2-_Z1)/(_R2-_R1), _R2*(_Z2-_Z1)/(_R2-_R1), (_R2-_R1)/(_Z2-_Z1), diff --git a/src/DDCylinderMeasLayer.cc b/src/DDCylinderMeasLayer.cc index 991df32..a8202c8 100644 --- a/src/DDCylinderMeasLayer.cc +++ b/src/DDCylinderMeasLayer.cc @@ -33,13 +33,25 @@ using namespace UTIL ; DDCylinderMeasLayer::DDCylinderMeasLayer(dd4hep::rec::ISurface* surf, Double_t Bz, const Char_t *name ) : + DDCylinderMeasLayer (surf, + dynamic_cast(*surf), + Bz, + name) +{ +} + + +DDCylinderMeasLayer::DDCylinderMeasLayer(dd4hep::rec::ISurface* surf, + dd4hep::rec::ICylinder& icyl, + Double_t Bz, + const Char_t *name ) : DDVMeasLayer( surf, Bz, name ) , - TCylinder( dynamic_cast(surf)->radius()/dd4hep::mm , + TCylinder( icyl.radius()/dd4hep::mm , surf->length_along_v()/dd4hep::mm / 2. , - dynamic_cast(surf)->center().x()/dd4hep::mm, - dynamic_cast(surf)->center().y()/dd4hep::mm , - dynamic_cast(surf)->center().z()/dd4hep::mm ), + icyl.center().x()/dd4hep::mm, + icyl.center().y()/dd4hep::mm , + icyl.center().z()/dd4hep::mm ), fSortingPolicy(0.),