From adfa7bae0145bcd26e5245f8fa9ad4843c27174a Mon Sep 17 00:00:00 2001 From: Dmitry Romanov <romanovda@gmail.com> Date: Sun, 20 Feb 2022 22:08:32 -0500 Subject: [PATCH] Works again --- compact/dirc.xml | 27 ++++++++++++++------------- src/DIRC_geo.cpp | 23 +++++++++++++++++------ 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/compact/dirc.xml b/compact/dirc.xml index baa108b1..b7166002 100644 --- a/compact/dirc.xml +++ b/compact/dirc.xml @@ -21,12 +21,13 @@ </comment> <define> - <constant name="DIRCFake_rmin" value="BarrelTracking_rmax-11*cm"/> + <constant name="DIRCFake_rmin" value="DIRC_rmin"/> <constant name="DIRC_rotation" value="pi" comment="Allows DIRC flip"/> <!-- <constant name="cb_DIRC_length" value="DIRCLength"/> --> <!-- CLEANUP THIS if not sure. This is from the initial implementation <constant name="DIRC_length" value="285.500*cm"/> <constant name="DIRCFake_rmin" value="82.00*cm"/>--> + <constant name="DIRC_verbose" value="1" comment="0-no output, 1-some, 2-verbose"/> <!-- Prism --> <constant name="DIRCPrism_width" value="360*mm"/> @@ -37,8 +38,8 @@ <constant name="DIRCPrism_height" value="DIRCPrism_long_edge"/> <!-- DIRC length --> - <constant name="DIRCMain_length" value="DIRC_length"/> - <constant name="DIRCFake_offset" value="DIRC_offset+15*cm"/> + <constant name="DIRCMain_length" value="DIRC_length"/> + <constant name="DIRCFake_offset" value="DIRC_offset+15*cm"/> <!-- Box - main DIRC modules --> <constant name="DIRCBox_count" value="16" comment="Number of DIRC boxes per... DIRC. 16 - default"/> @@ -77,7 +78,7 @@ RMax is calculated according to "rectangle inside ring" problem solution https://math.stackexchange.com/questions/4222684/calculate-rectangle-inside-ring-parameters/4222691#4222691 </comment> - <constant name="DIRCFake_rmax" value="sqrt( (DIRCFake_rmin+DIRCPrism_height)^2 + 0.25*(DIRCPrism_height)^2 )"/> + <constant name="DIRCFake_rmax" value="sqrt( (DIRCFake_rmin+DIRCPrism_height)^2 + 0.25*(DIRCPrism_height)^2 )"/> </define> <materials> @@ -107,16 +108,16 @@ </regions> <display> - <vis name="DIRCTube" ref="AnlTeal" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" /> + <vis name="DIRCTube" ref="AnlGold" alpha="0.3" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" /> <vis name="DIRCBox" ref="AnlLight_Gray" alpha="0.1" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" /> <vis name="DIRCLens1" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> <vis name="DIRCLens2" ref="AnlProcess_Blue" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> <vis name="DIRCLens3" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> - <vis name="DIRCBar" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> - <vis name="DIRCGlue" ref="AnlViolet" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> - <vis name="DIRCMirror" ref="AnlGray" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> - <vis name="DIRCPrism" ref="AnlTeal" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> - <vis name="DIRCFd" ref="AnlRed" visible="true" showDaughters="false" /> + <vis name="DIRCBar" ref="AnlTeal" alpha="0.5" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> + <vis name="DIRCGlue" ref="AnlViolet" alpha="0.5" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> + <vis name="DIRCMirror" ref="AnlGray" alpha="0.5" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> + <vis name="DIRCPrism" ref="AnlTeal" alpha="0.5" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" /> + <vis name="DIRCFd" ref="AnlRed" alpha="0.5" visible="true" showDaughters="false" /> </display> <detectors> @@ -142,11 +143,11 @@ length="DIRCBar_length" repeat="DIRCBar_count" gap="DIRCBar_gap" - material="Quartz" + material="QuartzOptical" vis="DIRCBar" /> - <glue thickness="DIRCGlue_thickness" material="Epotek" vis="DIRCGlue"/> + <glue thickness="DIRCGlue_thickness" material="EpotekOptical" vis="DIRCGlue"/> <!-- lens --> <lens @@ -164,7 +165,7 @@ width="DIRCFd_width" thickness="DIRCFd_thickness" vis="DIRCFd" - material="Quartz" + material="QuartzOptical" /> </module> </detector> diff --git a/src/DIRC_geo.cpp b/src/DIRC_geo.cpp index 1abbd45f..8e3c8f86 100644 --- a/src/DIRC_geo.cpp +++ b/src/DIRC_geo.cpp @@ -3,6 +3,7 @@ #include "DD4hep/Printout.h" #include "DDRec/DetectorData.h" #include "DDRec/Surface.h" +#include "fmt/core.h" #include <XML/Helper.h> ////////////////////////////////// @@ -30,6 +31,14 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens) double det_rin = dirc_dim.rmin(); double det_rout = dirc_dim.rmax(); double SizeZ = dirc_dim.length(); + int verbose = desc.constant<int>("DIRC_verbose"); + + // >oO debug output + if(verbose) { + fmt::print("DIRC: dimensions rin={}[cm] rout={}[cm] len={}[cm]\n", det_rin/cm, det_rout/cm, SizeZ/cm); + } + + // DEBUG // double mirror_r1 = x_det.attr<double>(_Unicode(r1)); @@ -39,15 +48,16 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens) Material Vacuum = desc.material("Vacuum"); Material air = desc.material("AirOptical"); - Material quartz = desc.material("Quartz"); - Material epotek = desc.material("Epotek"); - Material nlak33a = desc.material("Nlak33a"); + Material quartz = desc.material("QuartzOptical"); + Material epotek = desc.material("EpotekOptical"); + Material nlak33a = desc.material("Nlak33aOptical"); auto& bar_material = quartz; + auto mirror_material = desc.material("Aluminum"); // mirror material Tube det_geo(det_rin, det_rout, SizeZ / 2., 0., 360.0 * deg); - //Volume det_volume("DIRC", det_geo, Vacuum); - Assembly det_volume("DIRC"); + Volume det_volume("DIRC", det_geo, air); + //Assembly det_volume("DIRC"); det_volume.setVisAttributes(desc.visAttributes(xml_det.visStr())); DetElement det(det_name, det_id); @@ -284,7 +294,8 @@ static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens) Position fPrismShift(prism_shift_x, 0, prism_shift_z); dirc_module.placeVolume(lPrizm, Transform3D(xRot, fPrismShift)); - dirc_module.placeVolume(lFd, Position(0.5 * fFd[1] - 0.5 * fPrizm[3] - evshiftx, 0, evshiftz)); + + //dirc_module.placeVolume(lFd, Position(0.5 * fFd[1] - 0.5 * fPrizm[3] - evshiftx, 0, evshiftz)); double dphi = 2 * M_PI / (double)fNBoxes; for (int i = 0; i < fNBoxes; i++) { -- GitLab