-
Sylvester Joosten authoredSylvester Joosten authored
dirc.xml 7.94 KiB
<lccdd>
<comment>
DIRC consists of 16 (default) identical modules making a barrel.
Each DIRC module consists of:
_______
[ | \
[ | \
[FD|Prizm|Lens|--------bars+glue-----|mirror]
Main constants to control DIRC global geometry:
- DIRC_length
- DIRC_offset
- DIRC_rmin
- DIRCBox_count (16 full dirc, 1 - a single module)
- DIRC_rotation (allows to flip the DIRC)
When DIRC_length is set, it affects bars length (all other lengths are fixed)
The width of each DIRC module is derived from DIRCPrism_width
</comment>
<define>
<constant name="DIRC_rmin" value="BarrelTracking_rmax-11*cm"/>
<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="DIRC_rmin" value="82.00*cm"/>-->
<!-- Prism -->
<constant name="DIRCPrism_width" value="360*mm"/>
<constant name="DIRCPrism_length" value="300*mm"/>
<constant name="DIRCPrism_short_edge" value="50*mm"/>
<constant name="DIRCPrism_angle" value="32*deg"/>
<constant name="DIRCPrism_long_edge" value="DIRCPrism_short_edge + DIRCPrism_length * tan(DIRCPrism_angle)"/>
<constant name="DIRCPrism_height" value="DIRCPrism_long_edge"/>
<!-- DIRC length -->
<constant name="DIRC_length" value="DIRCFull_length - DIRCPrism_length"/>
<constant name="DIRC_offset" value="(CentralTracking_length - DIRC_length)/2.0 - DIRCExtra_offset"/>
<!-- Box - main DIRC modules -->
<constant name="DIRCBox_count" value="16" comment="Number of DIRC boxes per... DIRC. 16 - default"/>
<constant name="DIRCBox_width" value="DIRCPrism_width"/>
<!-- Mirror -->
<constant name="DIRCMirror_height" value="20 * mm"/>
<constant name="DIRCMirror_width" value="DIRCPrism_width"/>
<constant name="DIRCMirror_thickness" value="1 * mm"/>
<!-- Lens -->
<constant name="DIRCLens_height" value="DIRCPrism_long_edge"/>
<constant name="DIRCLens_width" value="DIRCPrism_width"/>
<constant name="DIRCLens_thickness" value="12 * mm"/>
<constant name="DIRCLens_r1" value="33 * mm"/>
<constant name="DIRCLens_r2" value="24 * mm"/>
<constant name="DIRCLens_shight" value="25 * mm" comment="Is 'shight' from UK urban dictionary???"/>
<!-- FD (Foto detectors?) -->
<constant name="DIRCFd_height" value="DIRCPrism_height"/>
<constant name="DIRCFd_width" value="DIRCPrism_width"/>
<constant name="DIRCFd_thickness" value="1*mm"/>
<!-- Bar - Each DIRC box consists of N "bars" -->
<!-- BarAssembly - Bars + Glue -->
<constant name="DIRCBarAssm_length" value="DIRC_length - DIRCPrism_length - DIRCMirror_thickness - DIRCLens_thickness - DIRCFd_thickness" comment="Length of bars+glue assembly"/>
<constant name="DIRCBar_count" value="11" comment="Number of bars per box"/>
<constant name="DIRCBar_gap" value="0.15 * mm"/>
<constant name="DIRCBar_height" value="17 * mm"/>
<constant name="DIRCBar_width" value="(DIRCPrism_width - (DIRCBar_count - 1) * DIRCBar_gap) / DIRCBar_count"/>
<constant name="DIRCGlue_thickness" value="0.05 * mm"/>
<constant name="DIRCBar_length" value="(DIRCBarAssm_length-4*DIRCGlue_thickness)/4"/>
<!-- dirc outer volume -->
<comment>
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="DIRC_rmax" value="sqrt( (DIRC_rmin+DIRCPrism_height)^2 + 0.25*(DIRCPrism_height)^2 )"/>
</define>
<materials>
<comment>
Only non optical material variants are here.
See optical_materials.xml for optical ones
-
</comment>
<material name="Epotek">
<D type="density" value="1.2" unit="g/cm3"/>
<composite n="5" ref="H"/>
<composite n="3" ref="C"/>
<composite n="2" ref="O"/>
</material>
<material name="Nlak33a">
<D type="density" value="4.220" unit="g/cm3"/>
<composite n="1" ref="Si"/>
<composite n="2" ref="O"/>
</material>
</materials>
<limits>
</limits>
<regions>
</regions>
<display>
<vis name="DIRCTube" alpha="0.1" r="0" g="0.6" b="0.6" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBox" alpha="0.1" r="256/256" g="256/256" b="256/256" visible="true" showDaughters="true" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens1" alpha="1" r="3/256" g="37/256" b="76/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens2" alpha="1" r="17/256" g="103/256" b="177/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCLens3" alpha="1" r="0/256" g="128/256" b="128/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCBar" alpha="1" r="0/256" g="128/256" b="128/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCGlue" alpha="1" r="125/256" g="0/256" b="128/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCMirror" alpha="1" r="0" g="0" b="1" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCPrism" alpha="1" r="212/256" g="175/256" b="55/256" visible="true" showDaughters="false" lineStyle="solid" drawingStyle="solid" />
<vis name="DIRCFd" alpha="1" r="0.7" g="0" b="0" visible="true" showDaughters="false" />
</display>
<detectors>
<detector id="BarrelDIRC_ID" name="cb_DIRC" type="cb_DIRC" readout="DIRCBarHits" vis="DIRCTube">
<dimensions rmin="DIRC_rmin" rmax="DIRC_rmax" length="DIRC_length" radius="DIRCRadius" dx="DIRCBars_DX" dy="DIRCBars_DY" number="DIRCNum" deltaphi="DIRCDPhi"/>
<position x="0" y="0" z="DIRC_offset"/>
<rotation theta="DIRC_rotation"/>
<module name="DircBox" R="DIRCRadius" repeat="DIRCBox_count" width="DIRCPrism_width + 1*mm" height="DIRCPrism_height*2" length="DIRCBarAssm_length + 550*mm" vis="DIRCBox">
<!-- Mirror (at the end of the module) -->
<mirror
height="DIRCMirror_height"
width="DIRCMirror_width"
thickness="DIRCMirror_thickness"
material="Aluminum"
vis="DIRCMirror"
/>
<!-- DIRC Bar -->
<!-- TODO parametrize as bar+glue assembly with layers -->
<bar
height="DIRCBar_height"
width="DIRCBar_width"
length="DIRCBar_length"
repeat="DIRCBar_count"
gap="DIRCBar_gap"
material="Quartz"
vis="DIRCBar"
/>
<glue thickness="DIRCGlue_thickness" material="Epotek" vis="DIRCGlue"/>
<!-- lens -->
<lens
height="DIRCLens_height"
width="DIRCLens_width"
thickness="DIRCLens_thickness"
r1="DIRCLens_r1"
r2="DIRCLens_r2"
/>
<prism/> <!-- TODO parametrize here -->
<fd
height="DIRCFd_height"
width="DIRCFd_width"
thickness="DIRCFd_thickness"
vis="DIRCFd"
material="Quartz"
/>
</module>
</detector>
</detectors>
<readouts>
<readout name="DIRCBarHits">
<segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
<id>system:8,module:8,section:8,bar:8,x:32:-16,y:-16</id>
</readout>
</readouts>
<plugins>
</plugins>
<fields>
</fields>
</lccdd>