From 7e060dadb52451c521767446692fb2040a126aed Mon Sep 17 00:00:00 2001 From: myliu <201916234@mail.sdu.edu.cn> Date: Thu, 25 Feb 2021 15:44:02 +0800 Subject: [PATCH] Solve the overlap problem of Drift Chamber --- .../compact/CRD_common_v01/DC_Simple_v01_01.xml | 2 ++ Detector/DetDriftChamber/compact/det.xml | 2 ++ .../src/driftchamber/DriftChamber.cpp | 17 ++++++++++------- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml index 59898fe5..fef7af29 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml @@ -47,6 +47,8 @@ <constant name="DC_inner_chamber_enabled" value="1"/> <constant name="DC_outer_chamber_enabled" value="1"/> + <constant name="Salf_distance" value="0.02*mm"/> + </define> <detectors> diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml index 3a332246..b13e239e 100644 --- a/Detector/DetDriftChamber/compact/det.xml +++ b/Detector/DetDriftChamber/compact/det.xml @@ -63,6 +63,8 @@ <constant name="DC_inner_chamber_enabled" value="1"/> <constant name="DC_outer_chamber_enabled" value="1"/> + <constant name="Salf_distance" value="0.02*mm"/> + </define> <display> diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp index 6894e6a4..b6227597 100644 --- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp +++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp @@ -41,9 +41,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::SensitiveDetector sd = sens; // - global - double chamber_radius_min = theDetector.constant<double>("SDT_radius_min"); - double chamber_radius_max = theDetector.constant<double>("SDT_radius_max"); - double chamber_length = theDetector.constant<double>("SDT_length"); +// double chamber_radius_min = theDetector.constant<double>("SDT_radius_min"); +// double chamber_radius_max = theDetector.constant<double>("SDT_radius_max"); + double chamber_length = theDetector.constant<double>("DC_length"); // - inner chamber double inner_chamber_radius_min = theDetector.constant<double>("SDT_inner_chamber_radius_min"); @@ -66,6 +66,9 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, int inner_chamber_enabled = theDetector.constant<int>("DC_inner_chamber_enabled"); int outer_chamber_enabled = theDetector.constant<int>("DC_outer_chamber_enabled"); + // - salf distance + double salf_diatance = theDetector.constant<double>("Salf_distance"); + // ======================================================================= // Detector Construction // ======================================================================= @@ -210,7 +213,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::PlacedVolume module_phy = layer_vol.placeVolume(module_vol,transform_module); // - Field wire dd4hep::PlacedVolume Module_phy; - double radius[9] = {rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid-chamber_layer_width*0.5,rmid,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5,rmid+chamber_layer_width*0.5}; + double radius[9] = {rmid-chamber_layer_width*0.5+salf_diatance,rmid-chamber_layer_width*0.5+salf_diatance,rmid-chamber_layer_width*0.5+salf_diatance,rmid-chamber_layer_width*0.5+salf_diatance,rmid,rmid+chamber_layer_width*0.5-salf_diatance,rmid+chamber_layer_width*0.5-salf_diatance,rmid+chamber_layer_width*0.5-salf_diatance,rmid+chamber_layer_width*0.5-salf_diatance}; double phi[9] = {wire_phi+layer_Phi*0.25,wire_phi,wire_phi-layer_Phi*0.25,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.5,wire_phi-layer_Phi*0.25,wire_phi,wire_phi+layer_Phi*0.25}; int num = 5; if(layer_id==(inner_chamber_layer_number-1)||layer_id==(outer_chamber_layer_number-1)) { num = 9; } @@ -255,12 +258,12 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, dd4hep::Position(0,0,0)); dd4hep::PlacedVolume phv = envelope.placeVolume(det_vol,transform); // - place wall -// dd4hep::PlacedVolume wall_phy; + dd4hep::PlacedVolume wall_phy; for(int i=0; i<4; i++) { dd4hep::Tube wall_solid(wall_rmin[i],wall_rmax[i],chamber_length*0.5); dd4hep::Volume wall_vol(det_name+"_wall_vol",wall_solid,wall_mat); wall_vol.setVisAttributes(theDetector,"VisibleGreen"); - dd4hep::PlacedVolume wall_phy = envelope.placeVolume(wall_vol,transform); + wall_phy = envelope.placeVolume(wall_vol,transform); } // - place Endcap @@ -282,4 +285,4 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, } -DECLARE_DETELEMENT(DriftChamber, create_detector); +DECLARE_DETELEMENT(DriftChamber, create_detector) -- GitLab