diff --git a/cb_Solenoid.xml b/cb_Solenoid.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fe51f90cc952e76b805c30a5c7bdcffdfc591c95
--- /dev/null
+++ b/cb_Solenoid.xml
@@ -0,0 +1,69 @@
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" 
+       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
+
+  <!-- Some information about detector  -->
+  <info name="Central Barrel Solenoid" title="Central Barrel Solenoid"
+        author="Jihee Kim"
+        url="https://eicweb.phy.anl.gov/EIC/detectors/reference_detector.git"
+        status="development"
+        version="v1 2021-03-15">
+    <comment>Central Barrel Solenoid</comment>        
+  </info>
+
+  <!-- Use DD4hep elements and materials definitions -->
+  <includes>
+    <gdmlFile ref="elements.xml"/>
+    <gdmlFile ref="materials.xml"/>
+  </includes>
+  
+  <!-- Define the dimensions of the world volume -->
+  <define>
+    <constant name="world_side" value="50*m"/>
+    <constant name="world_x"    value="world_side"/>
+    <constant name="world_y"    value="world_side"/>
+    <constant name="world_z"    value="world_side"/>
+
+    <constant name="tracker_region_zmax" value="6 * m"/>
+    <constant name="tracker_region_rmax" value="6 * m"/>
+
+    <constant name="cb_Solenoid_ID"    value="1"/>
+    <constant name="cb_Solenoid_rmin"  value="0.0 * cm"/>
+    <constant name="cb_Solenoid_rmax"  value="137.0 * cm"/>
+    <constant name="cb_Solenoid_z"     value="400.0 * cm"/>
+    <constant name="cb_Solenoid_shift" value="0.0 * cm"/>
+  </define>
+
+  <limits>
+  </limits>
+
+  <regions>
+  </regions>
+
+  <!-- Common Generic visualization attributes -->
+  <comment>Common Generic visualization attributes</comment>
+  <display>
+    <vis name="cb_SolenoidVis" alpha="0.4"  r= "0.1"  g="0.0"  b="0.1"  showDaughters="true" visible="true"/>
+  </display>
+
+  <!-- Define detector -->
+  <detectors>
+    <comment>
+      Central Barrel Solenoid Magnet
+    </comment>
+    <!-- TODO: Add material -->
+    <detector id="cb_Solenoid_ID" name="cb_Solenoid" type="cb_Solenoid" insideTrackingVolume="false" vis="cb_SolenoidVis">
+      <material name="Steel235"/>	    
+      <dimensions rmin="cb_Solenoid_rmin" rmax="cb_Solenoid_rmax" z="cb_Solenoid_z" delta="cb_Solenoid_shift"/>
+    </detector>
+  </detectors>
+
+  <plugins>
+  </plugins>
+
+  <!-- TODO: Define field -->
+  <fields>
+    <field type="solenoid" name="GlobalSolenoid" inner_field="1.5 * tesla" outer_field="0.5*tesla" 
+           zmin="100.0 * cm" zmax="100.0 * cm" inner_radius="100.0 * cm" outer_radius="100.0 * cm"/>
+  </fields>
+</lccdd>
diff --git a/materials.xml b/materials.xml
index f6f705f68423d130c840cd19e0d4eeb10f9bbe9d..a0212f8c3d15e0f056c98ba944115111f13dbffb 100644
--- a/materials.xml
+++ b/materials.xml
@@ -2,7 +2,6 @@
 <materials>
   <!--
        Air by weight from
-
        http://www.engineeringtoolbox.com/air-composition-24_212.html
   -->
   <material name="Air">
diff --git a/src/cb_Solenoid.cpp b/src/cb_Solenoid.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..aa4de773cc2c0069f7baf0ee1364cea34c510a09
--- /dev/null
+++ b/src/cb_Solenoid.cpp
@@ -0,0 +1,37 @@
+#include <XML/Helper.h>
+///////////////////////////
+// Central Barrel Solenoid
+///////////////////////////
+
+using namespace dd4hep;
+
+static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens)
+{
+  xml::DetElement detElem = handle;
+  std::string     detName = detElem.nameStr();
+  int             detID   = detElem.id();
+
+  xml::Component dims = detElem.dimensions();
+  double SizeZ  = dims.z();    // Size in Z direction
+  double ROut   = dims.rmax(); // Outer diameter
+  double RIn    = dims.rmin(); // Inner diameter
+  double ShiftZ = dims.delta();
+  // TODO: Material
+  //Material mat  = desc.material("Steel235");
+  Material mat = desc.material(detElem.materialStr());
+
+  Tube   cb_Solenoid_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
+  Volume detVol("cb_Solenoid_GVol_Logic", cb_Solenoid_GVol_Solid, mat);
+
+  detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
+
+  DetElement   det(detName, detID);
+  Volume       motherVol = desc.pickMotherVolume(det);
+  Transform3D  tr(RotationZYX(0., 0., 0.), Position(0., 0., ShiftZ));
+  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  det.setPlacement(detPV);
+  return det;
+}
+
+// clang-format off
+DECLARE_DETELEMENT(cb_Solenoid, createDetector)