diff --git a/compact/cb_CTD_Straw.xml b/compact/cb_CTD_Straw.xml new file mode 100644 index 0000000000000000000000000000000000000000..f77c68a48910e2ccf2fdd3a12f55871489b5c13e --- /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 7f74152af6f01554247c30385d286c661b8c9bd8..4e18421cba2da14e70985b1e8104a483642798d2 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -122,6 +122,9 @@ <constant name="SiTrackerEndcapP_Layer5_ID" value="69"/> <constant name="SiTrackerEndcapN_Layer5_ID" value="70"/> + + <constant name="cb_CTD_Straw_ID" value="73"/> + <comment> =================== (75-99 Reserved IDs @@ -318,6 +321,24 @@ <constant name="SiliconTrackerOuterRadius" value="Solenoid_rmax/2.0"/> <constant name="SiliconTrackerOuterBarrelLength" value="SolenoidLength/2.0"/> + <comment> + ------------------------------- + Central Barrel Tracker - Global + ------------------------------- + </comment> + <constant name="cb_CTD_rmin" value="21.0 * cm"/> + <constant name="cb_CTD_rmax" value="80.0 * cm"/> + <constant name="cb_CTD_zmax" value="200.0 * cm"/> + <comment> Original Global parameter </comment> + <!-- + <constant name="cb_CTD_zmax" value="120.0 * cm"/> + --> + <constant name="cb_CTD_length" value="SolenoidLength - cb_CTD_zmax"/> + <comment> After fix cb_Solenoid parameters </comment> + <!-- + <constant name="cb_CTD_length" value="cb_Solenoid_z - cb_CTD_zmax"/> + --> + <comment> ------------ Calorimeters diff --git a/compact/display.xml b/compact/display.xml index 7e5846d7c116a9978967203c3a11e04ea57205ac..29f966c8f302d4ca1c1361b44c2281e17e0d0716 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -51,6 +51,7 @@ <vis name="cb_SolenoidVis" alpha="0.4" r= "0.1" g="0.0" b="0.1" showDaughters="true" visible="true"/> <vis name="ffi_ZDCVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> <vis name="ffi_ZDCmoduleVis" alpha="1.0" r= "0.1" g="1.0" b="0.9" showDaughters="true" visible="true"/> + <vis name="cb_CTDVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> <comment> Deprecated colors. diff --git a/reference_detector.xml b/reference_detector.xml index db0a52b76c7796d6581f981be0b256404480359f..0e131a64e3da81a73f059a304668d3af508f22b6 100644 --- a/reference_detector.xml +++ b/reference_detector.xml @@ -114,6 +114,7 @@ <include ref="reference_detector/vertex_tracker.xml"/> <include ref="compact/silicon_tracker.xml"/> --> + <include ref="compact/cb_CTD_Straw.xml"/> <include ref="ip6/beampipe.xml"/> <include ref="compact/ffi_ZDC.xml"/> <include ref="compact/solenoid.xml"/> diff --git a/src/cb_CTD_Straw.cpp b/src/cb_CTD_Straw.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5f2c249a525026128129e36f18748c92ec6af426 --- /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)