From 9264c9134f9d0365e5837fa49d3f06204b180c07 Mon Sep 17 00:00:00 2001
From: "jihee.kim" <jihee.kim@anl.gov>
Date: Thu, 1 Apr 2021 23:30:14 -0500
Subject: [PATCH] Added envelop volume

---
 compact/cb_CTD_Straw.xml | 35 +++++++++++++++++++++++++++++++++++
 compact/definitions.xml  |  1 +
 reference_detector.xml   |  4 ++++
 src/cb_CTD_Straw.cpp     | 37 +++++++++++++++++++++++++++++++++++++
 4 files changed, 77 insertions(+)
 create mode 100644 compact/cb_CTD_Straw.xml
 create mode 100644 src/cb_CTD_Straw.cpp

diff --git a/compact/cb_CTD_Straw.xml b/compact/cb_CTD_Straw.xml
new file mode 100644
index 0000000..f77c68a
--- /dev/null
+++ b/compact/cb_CTD_Straw.xml
@@ -0,0 +1,35 @@
+<lccdd>
+
+  <comment> Central Barrel Tracker Straw </comment>        
+
+  <define>
+  </define>
+
+  <limits>
+  </limits>
+
+  <regions>
+  </regions>
+
+  <display>
+  </display>
+
+  <detectors>
+    <detector id="cb_CTD_Straw_ID" name="cb_CTD_Straw" type="cb_CTD_Straw" readout="cb_CTD_Straw_Hits" vis="cb_CTDVis" insideTrackingVloume="true">
+      <dimensions rmin="cb_CTD_rmin" rmax="cb_CTD_rmax" length="cb_CTD_length" zmax="cb_CTD_zmax"/>
+    </detector>
+  </detectors>
+
+  <readouts>
+    <readout name="cb_CTD_Straw_Hits">
+      <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
+      <id>system:8,barrel:3,layer:4,x:32:-16,y:-16</id>  
+    </readout>
+  </readouts>
+
+  <plugins>
+  </plugins>
+
+  <fields>
+  </fields>
+</lccdd>
diff --git a/compact/definitions.xml b/compact/definitions.xml
index 70d2b52..174e0ef 100644
--- a/compact/definitions.xml
+++ b/compact/definitions.xml
@@ -123,6 +123,7 @@
     <constant name="SiTrackerEndcapP_Layer5_ID"     value="69"/>
     <constant name="SiTrackerEndcapN_Layer5_ID"     value="70"/>
 
+    <constant name="cb_CTD_Straw_ID"                value="73"/>
     <constant name="cb_CTD_Si_ID"                   value="74"/>
 
     <comment> 
diff --git a/reference_detector.xml b/reference_detector.xml
index 6d46ffa..f66ffcf 100644
--- a/reference_detector.xml
+++ b/reference_detector.xml
@@ -114,6 +114,10 @@
   <include ref="reference_detector/vertex_tracker.xml"/>
   <include ref="compact/silicon_tracker.xml"/>
   -->
+  <!--
+  <include ref="compact/cb_CTD_Si.xml"/>
+  -->	
+  <include ref="compact/cb_CTD_Straw.xml"/>
   <include ref="ip6/beampipe.xml"/>
   <include ref="compact/solenoid.xml"/>
   <include ref="compact/ecal.xml"/>
diff --git a/src/cb_CTD_Straw.cpp b/src/cb_CTD_Straw.cpp
new file mode 100644
index 0000000..5f2c249
--- /dev/null
+++ b/src/cb_CTD_Straw.cpp
@@ -0,0 +1,37 @@
+#include <XML/Helper.h>
+//////////////////////////////////
+// Central Barrel Tracker Straw
+//////////////////////////////////
+
+using namespace std;
+using namespace dd4hep;
+
+static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
+{
+  xml_det_t  x_det      = e;
+  string     detName    = x_det.nameStr();
+  int        detID      = x_det.id();
+
+  xml_dim_t  dim        = x_det.dimensions();
+  double     RIn        = dim.rmin();
+  double     ROut       = dim.rmax();
+  double     SizeZ      = dim.length();
+  double     SizeZCut   = dim.zmax();
+
+  Material   Vacuum     = desc.material("Vacuum");
+
+  // Create Global Volume 
+  Tube cb_CTD_GVol_Solid(RIn, ROut, SizeZ / 2.0, 0., 360.0 * deg);
+  Volume detVol("cb_CTD_GVol_Logic", cb_CTD_GVol_Solid, Vacuum);
+  detVol.setVisAttributes(desc.visAttributes(x_det.visStr()));
+
+  DetElement   det(detName, detID);
+  Volume       motherVol = desc.pickMotherVolume(det);
+  Transform3D  tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, 0.0));
+  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  detPV.addPhysVolID("system", detID);
+  det.setPlacement(detPV);
+  return det;
+}
+
+DECLARE_DETELEMENT(cb_CTD_Straw, createDetector)
-- 
GitLab