diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml index 00500afedab3b54f8590a4b8750f33eb962358f6..c5f080cabfaf57df907032b1c04055f84cfef414 100644 --- a/Detector/DetDriftChamber/compact/det.xml +++ b/Detector/DetDriftChamber/compact/det.xml @@ -60,7 +60,7 @@ grid_size_x="1*cm" grid_size_y="1*cm" grid_size_z="1*cm"/> - <id>system:8,x:-16,y:-16,z:-16</id> + <id>system:8,chamber:1,x:-16,y:-16,z:-16</id> </readout> </readouts> diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp index 24aa4900124fa09c0530415d0093c68f3325812b..9df294c519aae1ef28ac002acc678f8fd8331d44 100644 --- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp +++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp @@ -56,12 +56,6 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Tube det_solid(chamber_radius_min, chamber_radius_max, chamber_length*0.5); dd4hep::Volume det_vol(det_name+"_vol", det_solid, det_mat); - if ( x_det.isSensitive() ) { - dd4hep::SensitiveDetector sd = sens; - det_vol.setSensitiveDetector(sens); - sd.setType("tracker"); - } - // - inner dd4hep::Tube det_inner_chamber_solid(inner_chamber_radius_min, inner_chamber_radius_max, inner_chamber_length*0.5); dd4hep::Volume det_inner_chamber_vol(det_name+"_inner_chamber_vol", det_inner_chamber_solid, det_mat); @@ -70,6 +64,14 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Position(0,0,0)); dd4hep::PlacedVolume det_inner_chamber_phy = det_vol.placeVolume(det_inner_chamber_vol, transform_inner_chamber); + det_inner_chamber_phy.addPhysVolID("chamber", 0); + if ( x_det.isSensitive() ) { + dd4hep::SensitiveDetector sd = sens; + det_inner_chamber_vol.setSensitiveDetector(sens); + sd.setType("tracker"); + } + + // - outer dd4hep::Tube det_outer_chamber_solid(outer_chamber_radius_min, outer_chamber_radius_max, outer_chamber_length*0.5); @@ -80,6 +82,12 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::PlacedVolume det_outer_chamber_phy = det_vol.placeVolume(det_outer_chamber_vol, transform_outer_chamber); + det_inner_chamber_phy.addPhysVolID("chamber", 1); + if ( x_det.isSensitive() ) { + dd4hep::SensitiveDetector sd = sens; + det_outer_chamber_vol.setSensitiveDetector(sens); + sd.setType("tracker"); + } // - place in world