From 32add61eec12728a4ef92b16bbf8f06e5cfbcd0b Mon Sep 17 00:00:00 2001 From: "jihee.kim" <jihee.kim@anl.gov> Date: Fri, 2 Apr 2021 00:02:06 -0500 Subject: [PATCH] Added Si layers and defined global parameters --- compact/cb_CTD_Si.xml | 4 ++-- compact/definitions.xml | 19 ++++++++++--------- compact/display.xml | 2 +- src/cb_CTD_Si.cpp | 30 ++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/compact/cb_CTD_Si.xml b/compact/cb_CTD_Si.xml index 3505aa3..06b4f82 100644 --- a/compact/cb_CTD_Si.xml +++ b/compact/cb_CTD_Si.xml @@ -15,8 +15,8 @@ </display> <detectors> - <detector id="cb_CTD_Si_ID" name="cb_CTD_Si" type="cb_CTD_Si" readout="cb_CTD_Si_Hits" vis="cb_CTD_SiVis" insideTrackingVloume="true"> - <dimensions rmin="cb_CTD_Si_rmin" rmax="cb_CTD_Si_rmax" length="cb_CTD_Si_length" zmax="cb_CTD_Si_zmax" gap="cb_CTD_Si_gap"/> + <detector id="cb_CTD_Si_ID" name="cb_CTD_Si" type="cb_CTD_Si" readout="cb_CTD_Si_Hits" vis="cb_CTDVis" insideTrackingVloume="true"> + <dimensions rmin="cb_CTD_rmin" rmax="cb_CTD_rmax" length="cb_CTD_length" zmax="cb_CTD_zmax" gap="cb_CTD_Si_gap"/> <layer repeat="cb_CTD_Si_layer" vis="cb_CTD_Si_layerVis"> <slice name="Silicon_slice" material="Si" sensitive="true"/> </layer> diff --git a/compact/definitions.xml b/compact/definitions.xml index df5f811..1f454dc 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -321,22 +321,23 @@ <constant name="SiliconTrackerOuterBarrelLength" value="SolenoidLength/2.0"/> <comment> - ---------------------------- - Central Barrel Tracker - Si - ---------------------------- + ------------------------------- + Central Barrel Tracker - Global + ------------------------------- </comment> - <constant name="cb_CTD_Si_rmin" value="21.0 * cm"/> - <constant name="cb_CTD_Si_rmax" value="80.0 * cm"/> - <constant name="cb_CTD_Si_zmax" value="200.0 * cm"/> + <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_Si_zmax" value="120.0 * cm"/> + <constant name="cb_CTD_zmax" value="120.0 * cm"/> --> - <constant name="cb_CTD_Si_length" value="SolenoidLength - cb_CTD_Si_zmax"/> + <constant name="cb_CTD_length" value="SolenoidLength - cb_CTD_zmax"/> <comment> After fix cb_Solenoid parameters </comment> <!-- - <constant name="cb_CTD_Si_length" value="cb_Solenoid_z - cb_CTD_Si_zmax"/> + <constant name="cb_CTD_length" value="cb_Solenoid_z - cb_CTD_zmax"/> --> + <comment> Si layer opiton </comment> <constant name="cb_CTD_Si_gap" value="5.0 * cm"/> <constant name="cb_CTD_Si_layer" value="15"/> diff --git a/compact/display.xml b/compact/display.xml index 2a7fa01..8113089 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -51,7 +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_CTD_SiVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> + <vis name="cb_CTDVis" alpha="0.1" r= "0.1" g="0.0" b="1.0" showDaughters="true" visible="true"/> <vis name="cb_CTD_Si_layerVis" alpha="1.0" r= "0.9" g="1.0" b="0.1" showDaughters="true" visible="true"/> <comment> diff --git a/src/cb_CTD_Si.cpp b/src/cb_CTD_Si.cpp index d0f7025..4aed32b 100644 --- a/src/cb_CTD_Si.cpp +++ b/src/cb_CTD_Si.cpp @@ -26,11 +26,41 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens) Volume detVol("cb_CTD_GVol_Logic", cb_CTD_GVol_Solid, Vacuum); detVol.setVisAttributes(desc.visAttributes(x_det.visStr())); + // Construct Silicon Layers + xml_comp_t x_layer = x_det.child(_U(layer)); + const int repeat = x_layer.repeat(); + + xml_comp_t x_slice = x_layer.child(_U(slice)); + Material slice_mat = desc.material(x_slice.materialStr()); + + double layerRIn[100]; + double layerROut[100]; + + // Loop over layers + for(int i = 0; i < repeat; i++) { + layerRIn[i] = RIn + (SiLayerGap * i); + layerROut[i] = RIn + (0.01 + SiLayerGap * i); + + if (layerROut[i] > ROut) + continue; + + string logic_layer_name = detName + _toString(i, "_Logic_lay_%d"); + Volume layerVol(logic_layer_name,Tube(layerRIn[i], layerROut[i], SizeZ / 2.0, 0.0, 360.0 * deg), slice_mat); + layerVol.setVisAttributes(desc,x_layer.visStr()); + sens.setType("tracker"); + layerVol.setSensitiveDetector(sens); + + Position layer_pos = Position(0.0, 0.0, 0.0); + PlacedVolume layerPV = detVol.placeVolume(layerVol, layer_pos); + layerPV.addPhysVolID("layer", i+1); + } + 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); + detPV.addPhysVolID("barrel", 1); det.setPlacement(detPV); return det; } -- GitLab