From 0d32e8e596250d90c7a5f8642e5cb878794cf1a8 Mon Sep 17 00:00:00 2001
From: Fang Wenxing <wxfang@lxslc703.ihep.ac.cn>
Date: Wed, 27 Jan 2021 10:54:02 +0800
Subject: [PATCH] update CEPCv4 ECAL and HCAL xml

---
 .../compact/SEcal05_siw_ECRing_01.xml         |  2 +-
 .../DetCEPCv4/compact/SEcal05_siw_Endcaps.xml |  4 +--
 .../compact/SHcalRpc01_Barrel_01.xml          |  2 +-
 .../src/calorimeter/SHcalRpc01_Endcaps.cpp    | 32 ++++++++++---------
 4 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/Detector/DetCEPCv4/compact/SEcal05_siw_ECRing_01.xml b/Detector/DetCEPCv4/compact/SEcal05_siw_ECRing_01.xml
index 80b21fe4..1672120a 100644
--- a/Detector/DetCEPCv4/compact/SEcal05_siw_ECRing_01.xml
+++ b/Detector/DetCEPCv4/compact/SEcal05_siw_ECRing_01.xml
@@ -51,7 +51,7 @@
 
   <readouts>
     <readout name="EcalEndcapRingCollection">
-      <segmentation type="CartesianGridXY" grid_size_x="Ecal_cells_size" grid_size_y="Ecal_cells_size"/>
+      <segmentation type="CartesianGridXY" grid_size_x="Ecal_cells_size" grid_size_y="Ecal_cells_size" offset_x= "-5.104248046875*mm" offset_y= "5.104248046875*mm"/>
       <id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>
     </readout>
   </readouts>
diff --git a/Detector/DetCEPCv4/compact/SEcal05_siw_Endcaps.xml b/Detector/DetCEPCv4/compact/SEcal05_siw_Endcaps.xml
index 214e9983..07802e88 100644
--- a/Detector/DetCEPCv4/compact/SEcal05_siw_Endcaps.xml
+++ b/Detector/DetCEPCv4/compact/SEcal05_siw_Endcaps.xml
@@ -80,8 +80,8 @@
 
   <readouts>
     <readout name="EcalEndcapsCollection">
-      <segmentation type="MegatileLayerGridXY" grid_size_x="10.1667*mm" grid_size_y="10.1667*mm"/>
-      <id>system:5,module:3,stave:4,tower:5,layer:6,wafer:6,cellX:32:-16,cellY:-16</id>
+      <segmentation type="WaferGridXY" grid_size_x="10.1667*mm" grid_size_y="10.1667*mm" offset_x="2*mm" offset_y="-1.0999755859375*mm"/>
+      <id>system:5,module:3,stave:4,tower:5,layer:6,wafer:6,x:32:-16,y:-16</id>
     </readout>
   </readouts>
 
diff --git a/Detector/DetCEPCv4/compact/SHcalRpc01_Barrel_01.xml b/Detector/DetCEPCv4/compact/SHcalRpc01_Barrel_01.xml
index 427dbc64..7e03e5f8 100644
--- a/Detector/DetCEPCv4/compact/SHcalRpc01_Barrel_01.xml
+++ b/Detector/DetCEPCv4/compact/SHcalRpc01_Barrel_01.xml
@@ -33,7 +33,7 @@
 
   <readouts>
     <readout name="HcalBarrelCollection">
-      <segmentation type="CartesianGridYZ" grid_size_y="Hcal_cells_size" grid_size_z="Hcal_cells_size"/>
+      <segmentation type="CartesianGridYZ" grid_size_y="Hcal_cells_size" grid_size_z="Hcal_cells_size" offset_y="-3.20001220703125*mm"/>
       <id>system:5,module:3,stave:3,tower:5,layer:6,slice:4,y:32:-16,z:-16</id>
     </readout>
   </readouts>
diff --git a/Detector/DetCEPCv4/src/calorimeter/SHcalRpc01_Endcaps.cpp b/Detector/DetCEPCv4/src/calorimeter/SHcalRpc01_Endcaps.cpp
index e55eb472..bde54e0e 100644
--- a/Detector/DetCEPCv4/src/calorimeter/SHcalRpc01_Endcaps.cpp
+++ b/Detector/DetCEPCv4/src/calorimeter/SHcalRpc01_Endcaps.cpp
@@ -226,21 +226,23 @@ static Ref_t create_detector(Detector& theDetector, xml_h element, SensitiveDete
 	cout << "Hcal_Endcap:  inner_thickness= " << inner_thickness << endl;
 	cout << "Hcal_Endcap:  outer_thickness= " << thickness_sum << endl;
       }
-      LayeredCalorimeterData::Layer caloLayer ;
-      caloLayer.cellSize0 = cell_sizeX;
-      caloLayer.cellSize1 = cell_sizeY;
-      caloLayer.inner_nRadiationLengths = nRadiationLengthsInside;
-      caloLayer.inner_nInteractionLengths = nInteractionLengthsInside;
-      caloLayer.inner_thickness = inner_thickness;
-      caloLayer.sensitive_thickness = sensitive_thickness;
-      caloLayer.outer_nRadiationLengths = nRadiationLengths;
-      caloLayer.outer_nInteractionLengths = nInteractionLengths;
-      caloLayer.outer_thickness = thickness_sum;
-      
-      caloLayer.distance = Hcal_start_z + (layer_id-1)*layerThickness;
-      caloLayer.absorberThickness = Hcal_radiator_thickness ;
-      
-      caloData->layers.push_back( caloLayer ) ;
+      if(stave_id==1){// only for one stave is good.
+          LayeredCalorimeterData::Layer caloLayer ;
+          caloLayer.cellSize0 = cell_sizeX;
+          caloLayer.cellSize1 = cell_sizeY;
+          caloLayer.inner_nRadiationLengths = nRadiationLengthsInside;
+          caloLayer.inner_nInteractionLengths = nInteractionLengthsInside;
+          caloLayer.inner_thickness = inner_thickness;
+          caloLayer.sensitive_thickness = sensitive_thickness;
+          caloLayer.outer_nRadiationLengths = nRadiationLengths;
+          caloLayer.outer_nInteractionLengths = nInteractionLengths;
+          caloLayer.outer_thickness = thickness_sum;
+          
+          caloLayer.distance = Hcal_start_z + (layer_id-1)*layerThickness;
+          caloLayer.absorberThickness = Hcal_radiator_thickness ;
+          
+          caloData->layers.push_back( caloLayer ) ;
+      }
     }
   }
   
-- 
GitLab