diff --git a/examples/SimpleDetector/compact/Simple_CLIC.xml b/examples/SimpleDetector/compact/Simple_CLIC.xml index 8202df80cdbc16c43c0c11a824eabafd898bd0ec..52d19a5e089dbc65039f09ff3b4baa96f53b7abf 100644 --- a/examples/SimpleDetector/compact/Simple_CLIC.xml +++ b/examples/SimpleDetector/compact/Simple_CLIC.xml @@ -64,12 +64,10 @@ <detector name="VXD" type="ZPlanarTracker" vis="VXDVis" id="1" limits="Tracker_limits" readout="VXDCollection" insideTrackingVolume="true"> <layer nLadders="10" phi0="-1.570796327e+00*rad" id="0"> - <!-- <ladder distance="1.600000000e+01*mm" thickness="1.000000000e+00*mm" width="1.050000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="Lead" /> --> <ladder distance="1.600000000e+01*mm" thickness="1.000000000e+00*mm" width="1.050000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="CarbonFiber" /> <sensitive distance="1.595000000e+01*mm" thickness="5.000000000e-02*mm" width="1.100000000e+01*mm" length="6.250000000e+01*mm" offset="-3.156041308e+00*mm" material="G4_Si"/> </layer> <layer nLadders="10" phi0="-1.570796327e+00*rad" id="1"> - <!-- <ladder distance="1.700000000e+01*mm" thickness="1.000000000e+00*mm" width="1.0500000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="Lead" /> --> <ladder distance="1.700000000e+01*mm" thickness="1.000000000e+00*mm" width="1.0500000000e+01*mm" length="6.250000000e+01*mm" offset="-3.406041308e+00*mm" material="CarbonFiber" /> <sensitive distance="1.800000000e+01*mm" thickness="5.000000000e-02*mm" width="1.100000000e+01*mm" length="6.250000000e+01*mm" offset="-3.156041308e+00*mm" material="G4_Si"/> </layer> @@ -91,7 +89,7 @@ </layer> </detector> - <detector name="SIT" type="ZPlanarTracker" vis="SITVis" id="2" limits="Tracker_limits" readout="SITCollection" insideTrackingVolume="true"> + <detector name="SIT" type="ZPlanarTracker" vis="SITVis" id="2" limits="Tracker_limits" readout="SITCollection" insideTrackingVolume="true" isStripDetector="true" > <layer nLadders="14" phi0="0.0" id="0"> <ladder distance="228.975*mm" thickness="1.0*mm" width="104.524099097*mm" length="430.0*mm" offset="0.0*mm" material="CarbonFiber" /> <sensitive distance="229.975*mm" thickness="0.05*mm" width="104.980586046*mm" length="430.0*mm" offset="0.0*mm" material="G4_Si"/> diff --git a/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp b/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp index 84f5e640f4a4e793b0aa575e2b95b34bf7946767..0f790439e3127409922c21a9d547f9330f462018 100644 --- a/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp +++ b/examples/SimpleDetector/src/ZPlanarTracker_geo.cpp @@ -12,7 +12,7 @@ #include "DDRec/Surface.h" #include "DDRec/DetectorData.h" - +#include <exception> using namespace DD4hep; using namespace DD4hep::Geometry; @@ -39,6 +39,13 @@ static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { double minRadius = 1e99 ; double minZhalf = 1e99 ; + + bool isStripDetector = false ; + try { + isStripDetector = x_det.attr<bool>( "isStripDetector" ) ; + + } catch(std::runtime_error ){} + //========= loop over layer elements in xml ====================================== for(xml_coll_t c(e, _U(layer) ); c; ++c) { @@ -146,7 +153,12 @@ static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { double inner_thickness = ( sens_distance > supp_distance ? ( sens_distance - supp_distance ) + sens_thickness/2 : sens_thickness/2 ) ; double outer_thickness = ( sens_distance > supp_distance ? sens_thickness/2 : ( supp_distance - sens_distance ) + supp_thickness - sens_thickness/2 ) ; - VolPlane surf( sens_vol , SurfaceType(SurfaceType::Sensitive) , inner_thickness , outer_thickness , u,v,n ) ; //,o ) ; + SurfaceType type( SurfaceType::Sensitive ) ; + + if( isStripDetector ) + type.setProperty( SurfaceType::Measurement1D , true ) ; + + VolPlane surf( sens_vol , type , inner_thickness , outer_thickness , u,v,n ) ; //,o ) ; //--------------------------------------------