Back to home page

EIC code displayed by LXR

 
 

    


Warning, /epic/compact/pid/dirc.xml is written in an unsupported language. File is not indexed.

0001 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
0002 <!-- Copyright (C) 2022,2023 Dmitry Romanov, Whitney Armstrong, Sylvester Joosten, Wouter Deconinck, Nilanga Wickramaarachchi -->
0003 
0004 <lccdd>
0005 
0006   <comment>
0007     DIRC consists of 12 (default) identical modules making a barrel.
0008     Each DIRC module consists of:
0009     ________
0010     [   |   \
0011     [   |    \
0012     [MCP|Prism|Lens|--------bars+glue-----|mirror]
0013 
0014     Main constants to control DIRC global geometry:
0015       - DIRC_length
0016       - DIRC_offset
0017       - DIRC_rmin
0018       - DIRC_rmax
0019       - DIRCBox_count  (12 full dirc, 1 - a single module)
0020 
0021     When DIRC_length is set, it affects bars length (all other lengths are fixed)
0022     The width of each DIRC module is derived from DIRCPrism_width
0023 
0024   </comment>
0025 
0026   <define>
0027     <!-- Prism -->
0028     <constant name="DIRCPrism_width"        value="350*mm"/>
0029     <constant name="DIRCPrism_length"       value="300*mm"/>
0030     <constant name="DIRCPrism_short_edge"   value="50*mm"/>
0031     <constant name="DIRCPrism_angle"        value="32*deg"/>
0032     <constant name="DIRCPrism_long_edge"    value="DIRCPrism_short_edge + DIRCPrism_length * tan(DIRCPrism_angle)"/>
0033     <constant name="DIRCPrism_height"       value="DIRCPrism_long_edge"/>
0034 
0035     <!-- Box - main DIRC modules -->
0036     <constant name="DIRCBox_count"          value="12" comment="Number of DIRC boxes. 12 - default"/>
0037     <constant name="DIRCBox_width"          value="DIRCPrism_width"/>
0038 
0039     <!-- Bar - number in each direction -->
0040     <constant name="DIRCBar_count_y"        value="10" comment="Number of bars per box in y direction"/>
0041     <constant name="DIRCBar_count_z"        value="4" comment="Number of bars per box in z direction"/>
0042 
0043     <!-- Mirror -->
0044     <constant name="DIRCMirror_height"      value="20 * mm"/>
0045     <constant name="DIRCMirror_width"       value="DIRCPrism_width"/>
0046 
0047     <!-- Lens -->
0048     <constant name="DIRCLens_r1"            value="62 * mm"/>
0049     <constant name="DIRCLens_r2"            value="36 * mm"/>
0050     <constant name="DIRCLens_height"        value="50 * mm"/>
0051     <constant name="DIRCLens_shift"         value="0 * mm" comment="Shift of optical axis compared to bar center"/>
0052     <constant name="DIRCLens_width"         value="DIRCPrism_width / DIRCBar_count_y"/>
0053 
0054     <!-- MCP -->
0055     <constant name="DIRCMCP_height"          value="DIRCPrism_height"/>
0056     <constant name="DIRCMCP_width"           value="DIRCPrism_width"/>
0057     <constant name="DIRCMCP_thickness"       value="1*mm"/>
0058 
0059     <!-- Bar - Each DIRC box consists of N "bars" -->
0060     <!-- BarAssembly - Bars + Glue -->
0061     <constant name="DIRCBarAssm_length"     value="DIRC_length - DIRCPrism_length - DIRCBarbox_space_z - DIRCMirror_thickness - DIRCLens_thickness - DIRCMCP_thickness" comment="Length of bars+glue assembly"/>
0062     <constant name="DIRCBar_gap"            value="0.15 * mm"/>
0063     <constant name="DIRCBar_height"         value="17 * mm"/>
0064     <constant name="DIRCBar_width"          value="(DIRCPrism_width - (DIRCBar_count_y - 1) * DIRCBar_gap) / DIRCBar_count_y"/>
0065     <constant name="DIRCGlue_thickness"     value="0.05 * mm"/>
0066     <constant name="DIRCBar_length"         value="(DIRCBarAssm_length - DIRCBar_count_z * DIRCGlue_thickness)/DIRCBar_count_z"/>
0067     <constant name="DIRCBar_center"         value="(DIRC_rmin + DIRC_rmax)/2" comment="Radial position of center of bar"/>
0068 
0069     <!-- Rail -->
0070     <constant name="DIRCRail_rmin"          value="InnerDetectorBarrelSupportCylinder_rmax"/>
0071     <constant name="DIRCRail_rmax"          value="EcalBarrel_rmin"/>
0072     <constant name="DIRCRail_width"         value="2 * (DIRCRail_rmax - DIRCRail_rmin) * sin(360*degree / DIRCBox_count / 2)"/>
0073   </define>
0074 
0075   <materials>
0076   </materials>
0077 
0078   <limits>
0079   </limits>
0080 
0081   <regions>
0082   </regions>
0083 
0084   <display>
0085     <vis name="DIRCTube"   ref="AnlTeal" alpha="0.1" visible="true"  showDaughters="true"   lineStyle="solid" drawingStyle="solid" />
0086     <vis name="DIRCBox"    ref="AnlLight_Gray" alpha="0.1" visible="true"  showDaughters="true"   lineStyle="solid" drawingStyle="solid" />
0087     <vis name="DIRCLens1"  ref="AnlTeal" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0088     <vis name="DIRCLens2"  ref="AnlProcess_Blue" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0089     <vis name="DIRCLens3"  ref="AnlTeal" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0090     <vis name="DIRCBar"    ref="AnlTeal" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0091     <vis name="DIRCGlue"   ref="AnlViolet" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0092     <vis name="DIRCMirror" ref="AnlGray" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0093     <vis name="DIRCPrism"  ref="AnlTeal" visible="true"  showDaughters="false"  lineStyle="solid" drawingStyle="solid" />
0094     <vis name="DIRCMCP"    ref="AnlRed" visible="true"  showDaughters="false" />
0095   </display>
0096 
0097   <detectors>
0098     <detector id="BarrelDIRC_ID" name="cb_DIRC" type="epic_DIRC" readout="DIRCBarHits" vis="DIRCTube">
0099       <dimensions rmin="DIRCBar_center - DIRCBar_height/2" rmax="DIRCBar_center + DIRCBar_height/2" length="DIRC_length"/>
0100       <position x="0" y="0" z="DIRC_offset"/>
0101       <module name="DIRCBox" repeat="DIRCBox_count" width="DIRCPrism_width + 1*mm" height="DIRCPrism_height*2" length="DIRCBarAssm_length + 550*mm" vis="DIRCBox">
0102         <!-- Mirror (at the end of the module) -->
0103         <mirror
0104           height="DIRCMirror_height"
0105           width="DIRCMirror_width"
0106           thickness="DIRCMirror_thickness"
0107           material="Aluminum"
0108           vis="DIRCMirror"
0109         />
0110 
0111         <!-- DIRC Bar -->
0112         <!-- TODO parametrize as bar+glue assembly with layers -->
0113         <bar
0114           height="DIRCBar_height"
0115           width="DIRCBar_width"
0116           length="DIRCBar_length"
0117           repeat_y="DIRCBar_count_y"
0118           repeat_z="DIRCBar_count_z"
0119           gap="DIRCBar_gap"
0120           material="QuartzOptical"
0121           vis="DIRCBar"
0122         />
0123 
0124         <glue
0125           thickness="DIRCGlue_thickness"
0126           material="EpotekOptical"
0127           vis="DIRCGlue"
0128         />
0129 
0130         <!-- lens -->
0131         <lens
0132           height="DIRCLens_height"
0133           width="DIRCLens_width"
0134           shift="DIRCLens_shift"
0135           thickness="DIRCLens_thickness"
0136           r1="DIRCLens_r1"
0137           r2="DIRCLens_r2"
0138           material1="QuartzOptical"
0139           material2="SapphireOptical"
0140           material3="QuartzOptical"
0141           vis1="DIRCLens1"
0142           vis2="DIRCLens2"
0143           vis3="DIRCLens3"
0144         />
0145 
0146         <prism
0147           width="DIRCPrism_width"
0148           length="DIRCPrism_length"
0149           angle="DIRCPrism_angle"
0150           long_edge="DIRCPrism_long_edge"
0151           short_edge="DIRCPrism_short_edge"
0152           material="QuartzOptical"
0153           vis="DIRCPrism"
0154         />
0155 
0156         <mcp
0157           height="DIRCMCP_height"
0158           width="DIRCMCP_width"
0159           thickness="DIRCMCP_thickness"
0160           material="QuartzOptical"
0161           vis="DIRCMCP"
0162         />
0163       </module>
0164       <support>
0165         <comment>
0166           Rail is a triangle with its point on the carbon fiber support cylinder,
0167           and its edges perpendicular to the DIRC planes (30 degree opening angle).
0168           The width is the length of the outer chord, with addition of the width
0169           specified below to avoid singular points of contact with the cylinder.
0170         </comment>
0171         <rail rmin="DIRCRail_rmin" rmax="DIRCRail_rmax" width="2*mm"
0172               length="DIRCBar_count_z * DIRCBar_length"
0173               material="Aluminum">
0174           <position x="(DIRCRail_rmax + DIRCRail_rmin) / 2.0 - DIRCBar_center" y="0" z="0"/>
0175         </rail>
0176       </support>
0177     </detector>
0178   </detectors>
0179 
0180   <readouts>
0181     <readout name="DIRCBarHits">
0182       <segmentation type="CartesianGridXY" grid_size_x="3.0*mm" grid_size_y="3.0*mm" />
0183       <id>system:8,module:8,section:8,bar:8,x:32:-16,y:-16</id>
0184     </readout>
0185   </readouts>
0186 
0187   <plugins>
0188   </plugins>
0189 
0190   <fields>
0191   </fields>
0192 </lccdd>