32 string ref_nam = x_det.attr<
string>(
_U(sdref));
34 auto refl = ref_det.
reflect(x_det.nameStr(), x_det.id(), sd);
38 if ( !x_det.visStr().empty() )
40 if ( !x_det.limitsStr().empty() )
42 if ( !x_det.regionStr().empty() )
43 vol.
setRegion(description, x_det.regionStr());
44 if ( x_det.isSensitive() ) {
54 tr3D =
Position(x_pos.x(0),x_pos.y(0),x_pos.z(0));
57 rot3D =
RotationZYX(x_rot.z(0),x_rot.y(0),x_rot.x(0));
59 if ( !x_pos && !x_rot ) {
60 auto ref_pv = ref_det.placement();
62 tr3D = tr3D * (-1.0 / dd4hep::mm);
65 if ( x_refl.hasAttr(
_U(type)) ) refl_type = ::toupper(x_refl.attr<
string>(
_U(type))[0]);
66 if ( x_refl && refl_type ==
'X' )
68 else if ( x_refl && refl_type ==
'Y' )
70 else if ( x_refl && refl_type ==
'Z' )
75 printout(INFO,
"ReflectedDet",
"Transform3D placement at pos: %f %f %f rot: %f %f %f",
76 tr3D.X(),tr3D.Y(),tr3D.Z(), rot3D.Phi(),rot3D.Theta(),rot3D.Psi());
78 if ( x_det.hasAttr(
_U(
id)) ) {