From 29342e1ecd200118bdff38bdb037474ba8a20bd4 Mon Sep 17 00:00:00 2001 From: myliu <201916234@mail.sdu.edu.cn> Date: Mon, 17 May 2021 22:47:53 +0800 Subject: [PATCH] Modify the position of the layer number --- .../DetCRD/compact/CRD_common_v01/DC_Simple_v01_01.xml | 3 +-- Detector/DetDriftChamber/compact/det.xml | 4 ++-- .../DetDriftChamber/src/driftchamber/DriftChamber.cpp | 10 +++++----- .../include/DetSegmentation/GridDriftChamber.h | 2 -- Detector/DetSegmentation/src/GridDriftChamber.cpp | 4 +--- Service/GearSvc/src/GearSvc.cpp | 3 +-- 6 files changed, 10 insertions(+), 16 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 ca4d0d06..83186f62 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 @@ -35,7 +35,6 @@ <constant name="SDT_chamber_layer_width" value="10*mm"/> <constant name="SDT_chamber_cell_width" value="10*mm"/> - <constant name="SDT_chamber_layer_number" value="(DC_chamber_layer_rend-DC_chamber_layer_rbegin)/SDT_chamber_layer_width"/> <constant name="Epsilon" value="0*deg"/> <constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/> @@ -85,7 +84,7 @@ <readouts> <readout name="DriftChamberHitsCollection"> - <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" DC_layer_number="SDT_chamber_layer_number" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/> + <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/> <!-- <id>system:8,chamber:1,layer:8,cellID:16</id> --> <id>system:5,layer:7:9,chamber:8,cellID:32:16</id> diff --git a/Detector/DetDriftChamber/compact/det.xml b/Detector/DetDriftChamber/compact/det.xml index 58bd2dd9..3ca47adb 100644 --- a/Detector/DetDriftChamber/compact/det.xml +++ b/Detector/DetDriftChamber/compact/det.xml @@ -53,7 +53,6 @@ <constant name="SDT_chamber_layer_width" value="10*mm"/> <constant name="SDT_chamber_cell_width" value="10*mm"/> - <constant name="SDT_chamber_layer_number" value="(DC_chamber_layer_rend-DC_chamber_layer_rbegin)/SDT_chamber_layer_width"/> <constant name="Epsilon" value="0*deg"/> <constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/> @@ -112,7 +111,8 @@ <readouts> <readout name="DriftChamberHitsCollection"> - <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" DC_layer_number="SDT_chamber_layer_number" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/> + <segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/> + <!-- <id>system:8,chamber:1,layer:8,cellID:16</id> --> <id>system:5,layer:7:9,chamber:8,cellID:32:16</id> diff --git a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp index 4f10fc98..d62cced2 100644 --- a/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp +++ b/Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp @@ -49,11 +49,11 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, double SDT_half_length = theDetector.constant<double>("SDT_chamber_half_length"); // - layer - int chamber_layer_number = theDetector.constant<int>("SDT_chamber_layer_number"); double chamber_layer_width = theDetector.constant<double>("SDT_chamber_layer_width"); double chamber_cell_width = theDetector.constant<double>("SDT_chamber_cell_width"); double chamber_layer_rbegin = theDetector.constant<double>("DC_chamber_layer_rbegin"); double chamber_layer_rend = theDetector.constant<double>("DC_chamber_layer_rend"); + int chamber_layer_number = floor((chamber_layer_rend-chamber_layer_rbegin)/chamber_layer_width); double epsilon = theDetector.constant<double>("Epsilon"); @@ -181,20 +181,20 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, // | | // | F0 F1 F2 F3| // ----------------------- -// if(layer_id == 0 || layer_id ==66 || layer_id ==67 || layer_id ==91) { +// if(layer_id == 0 || layer_id == 1 || layer_id == 2 || layer_id == 3) { for(int icell=0; icell< numWire; icell++) { double wire_phi = (icell+0.5)*layer_Phi + offset; // - signal wire dd4hep::Transform3D transform_module(dd4hep::Rotation3D(),dd4hep::Position(rmid*std::cos(wire_phi),rmid*std::sin(wire_phi),0.)); dd4hep::PlacedVolume module_phy = (*current_vol_ptr).placeVolume(module_vol,transform_module); - double wx = rmid*std::cos(wire_phi); - double wy = rmid*std::sin(wire_phi); // - 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 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==(chamber_layer_number-1)) { num = 9; } + if(layer_id==(chamber_layer_number-1)) { + num = 9; + } for(int i=0; i<num ; i++) { dd4hep::Position tr3D = Position(radius[i]*std::cos(phi[i]),radius[i]*std::sin(phi[i]),0.); diff --git a/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h b/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h index a88ae553..7c1a0864 100644 --- a/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h +++ b/Detector/DetSegmentation/include/DetSegmentation/GridDriftChamber.h @@ -72,7 +72,6 @@ public: inline double DC_rend() const { return m_DC_rend; } inline double DC_rmax() const { return m_DC_rmax; } inline double DC_rmin() const { return m_DC_rmin; } - inline int DC_layer_number() const { return m_DC_layer_number; } inline const std::string& fieldNamePhi() const { return m_phiID; } inline const std::string& Layerid() const { return layer_id; } @@ -169,7 +168,6 @@ protected: double m_DC_rend; double m_DC_rmax; double m_DC_rmin; - int m_DC_layer_number; std::string m_phiID; std::string layer_id; diff --git a/Detector/DetSegmentation/src/GridDriftChamber.cpp b/Detector/DetSegmentation/src/GridDriftChamber.cpp index 30d5dccf..ec2e0707 100644 --- a/Detector/DetSegmentation/src/GridDriftChamber.cpp +++ b/Detector/DetSegmentation/src/GridDriftChamber.cpp @@ -32,7 +32,6 @@ GridDriftChamber::GridDriftChamber(const BitFieldCoder* decoder) : Segmentation( registerParameter("DC_rend", "DC_rend", m_DC_rend, 0., SegmentationParameter::LengthUnit); registerParameter("DC_rmin", "DC_rmin", m_DC_rmin, 0., SegmentationParameter::LengthUnit); registerParameter("DC_rmax", "DC_rmax", m_DC_rmax, 0., SegmentationParameter::LengthUnit); - registerParameter("DC_layer_number", "DC_layer_number", m_DC_layer_number, 0,SegmentationParameter::LengthUnit); } Vector3D GridDriftChamber::position(const CellID& /*cID*/) const { @@ -51,6 +50,7 @@ CellID GridDriftChamber::cellID(const Vector3D& /*localPosition*/, const Vector3 double posy = globalPosition.Y; double radius = sqrt(posx*posx+posy*posy); + int m_DC_layer_number = floor((m_DC_rend-m_DC_rbegin)/m_layer_width); double DC_layerdelta = m_layer_width; int layerid; @@ -102,8 +102,6 @@ void GridDriftChamber::cellposition(const CellID& cID, TVector3& Wstart, Wend = returnWirePosition(phi_end, 1); } - - double GridDriftChamber::distanceTrackWire(const CellID& cID, const TVector3& hit_start, const TVector3& hit_end) const { diff --git a/Service/GearSvc/src/GearSvc.cpp b/Service/GearSvc/src/GearSvc.cpp index b0fd8549..e793bdbe 100644 --- a/Service/GearSvc/src/GearSvc.cpp +++ b/Service/GearSvc/src/GearSvc.cpp @@ -759,9 +759,8 @@ StatusCode GearSvc::convertDC(dd4hep::DetElement& dc){ dcData->rMinReadout = grid->DC_rbegin(); dcData->rMaxReadout = grid->DC_rend(); dcData->driftLength = grid->detectorLength(); - dcData->maxRow = grid->DC_layer_number(); dcData->padHeight = grid->layer_width(); - dcData->padWidth = dcData->padHeight; + dcData->padWidth = dcData->padHeight; } else{ TGeoNode* next = daughter; -- GitLab