From 682079b76121c23db3cd50bb40c16b775aa168f4 Mon Sep 17 00:00:00 2001 From: FU Chengdong <fucd@ihep.ac.cn> Date: Thu, 11 Jul 2024 03:23:02 +0000 Subject: [PATCH] Geom: support optional sensitive type --- .../DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp | 8 +++++++- Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp | 8 +++++++- .../DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp | 10 +++++++--- .../DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp | 10 +++++++--- .../DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp | 10 +++++++--- Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp | 8 +++++++- Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp | 8 +++++++- .../DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp | 8 +++++++- .../DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp | 8 +++++++- Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp | 8 +++++++- 10 files changed, 70 insertions(+), 16 deletions(-) diff --git a/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp b/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp index 648cc222..8a7ae183 100644 --- a/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/FTD_Simple_Staggered_geo.cpp @@ -327,7 +327,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se PlacedVolume pv; - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } // --- create assembly and DetElement for support and service volumes diff --git a/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp b/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp index 053371aa..1515fdd0 100644 --- a/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/FTD_cepc_geo.cpp @@ -327,7 +327,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se PlacedVolume pv; - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } // --- create assembly and DetElement for support and service volumes diff --git a/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp b/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp index e311fcc9..39093970 100644 --- a/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/SET_Simple_Planar_geo.cpp @@ -77,9 +77,13 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h //PlacedVolume pv; - - sens.setType("tracker"); - + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } dd4hep::rec::ZPlanarData* zPlanarData = new ZPlanarData ; diff --git a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp index 51aaaabe..25993594 100644 --- a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Pixel_geo.cpp @@ -84,9 +84,13 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h dd4hep::PlacedVolume pv; - - sens.setType("tracker"); - + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } dd4hep::rec::ZPlanarData* zPlanarData = new dd4hep::rec::ZPlanarData ; diff --git a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp index f7679146..a33d71e6 100644 --- a/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/SIT_Simple_Planar_geo.cpp @@ -84,9 +84,13 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h dd4hep::PlacedVolume pv; - - sens.setType("tracker"); - + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } dd4hep::rec::ZPlanarData* zPlanarData = new dd4hep::rec::ZPlanarData ; diff --git a/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp b/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp index 50d28c2e..01d7ab0d 100644 --- a/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/TPC10_geo.cpp @@ -68,7 +68,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se PlacedVolume pv; - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } std::cout << " ** building TPC10_geo in lcgeo " << lcgeo::versionString() << std::endl ; diff --git a/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp b/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp index ae2d4d83..6af6456f 100644 --- a/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp +++ b/Detector/DetCEPCv4/src/tracker/VXD04_geo.cpp @@ -74,7 +74,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se //----------------------------------------------------------------------------------- - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } // --- create assembly and DetElement for support and service volumes diff --git a/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp b/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp index 2b16111e..949ca19b 100644 --- a/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp +++ b/Detector/DetCRD/src/Tracker/SiTrackerSkewRing_v01_geo.cpp @@ -66,7 +66,13 @@ static dd4hep::Ref_t create_detector(Detector& description, xml_h e, SensitiveDe if(description.buildType()==dd4hep::BUILD_ENVELOPE) return tracker; envelope.setVisAttributes(description.visAttributes("SeeThrough")); - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } std::cout << " ** building SiTrackerEndcapRing_v01 ..." << std::endl ; dd4hep::xml::Component recPar = x_det.child(_Unicode(reconstruction)); diff --git a/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp b/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp index 616c7e1a..be43764c 100644 --- a/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp +++ b/Detector/DetCRD/src/Tracker/TPC_ModularEndcap_o1_v01.cpp @@ -72,7 +72,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se PlacedVolume pv; - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } std::cout << " **Lan Lan building TPC_ModularEndcap_TDR_o1_v01 construction" << std::endl ; diff --git a/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp b/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp index 8dd22ac7..ddbcad4b 100644 --- a/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp +++ b/Detector/DetCRD/src/Tracker/TPC_Simple_o1_v01.cpp @@ -71,7 +71,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se PlacedVolume pv; - sens.setType("tracker"); + if (x_det.hasAttr(_U(sensitive))) { + xml_dim_t sd_typ = x_det.child(_U(sensitive)); + sens.setType(sd_typ.typeStr()); + } + else { + sens.setType("tracker"); + } std::cout << " **Lan Lan building TPC_Simple_TDR_o1_v01 construction" << std::endl ; -- GitLab