Warning, /DD4hep/examples/RICH/compact/pfrich.xml is written in an unsupported language. File is not indexed.
0001 <lccdd
0002 xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
0003 xmlns:xs="http://www.w3.org/2001/XMLSchema"
0004 xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"
0005 >
0006
0007 <info
0008 name="PFRICH"
0009 title="Proximity Focusing Ring Imaging Cherenkov Detector"
0010 author="Christopher Dilks"
0011 url="https://github.com/eic/epic"
0012 status="development"
0013 version="1.0"
0014 >
0015 <comment>
0016 Example RICH Detector
0017 </comment>
0018 </info>
0019
0020 <debug>
0021 <type name="surface" value="0"/>
0022 <type name="material" value="0"/>
0023 <type name="readout" value="0"/>
0024 <type name="segmentation" value="0"/>
0025 <type name="limits" value="0"/>
0026 <type name="region" value="0"/>
0027 <type name="includes" value="0"/>
0028 </debug>
0029
0030 <includes>
0031 <gdmlFile ref="${DD4hepINSTALL}/DDDetectors/compact/elements.xml"/>
0032 <file ref="materials.xml"/>
0033 </includes>
0034
0035 <display>
0036 <vis name="vessel_vis" r="102/256" g="102/256" b="102/256" alpha="1.0" showDaughters="true" visible="true" />
0037 <vis name="gas_vis" r="100/256" g="200/256" b="0/256" alpha="0.5" showDaughters="true" visible="true" />
0038 <vis name="aerogel_vis" r="0/256" g="161/256" b="156/256" alpha="1.0" showDaughters="true" visible="true" />
0039 <vis name="filter_vis" r="248/256" g="188/256" b="0/256" alpha="1.0" showDaughters="true" visible="true" />
0040 <vis name="sensor_vis" r="0/256" g="96/256" b="156/256" alpha="1.0" showDaughters="true" visible="true" />
0041 <vis name="service_vis" r="102/256" g="102/256" b="102/256" alpha="1.0" showDaughters="true" visible="true" />
0042 <vis name="no_vis" showDaughters="false" visible="false" />
0043 </display>
0044
0045 <define>
0046 <!-- global constants -->
0047 <constant name="world_side" value="30*m"/>
0048 <constant name="world_x" value="world_side"/>
0049 <constant name="world_y" value="world_side"/>
0050 <constant name="world_z" value="100*m"/>
0051 <constant name="Pi" value="3.14159265359"/>
0052 <constant name="mil" value="0.0254*mm"/>
0053 <constant name="inch" value="2.54*cm"/>
0054 <!-- RICH constants -->
0055 <constant name="PFRICH_ID" value="1"/> <!-- unique ID for this detector -->
0056 <constant name="PFRICH_Length" value="58.0*cm"/> <!-- vessel z-length -->
0057 <constant name="PFRICH_zmin" value="-150*cm"/> <!-- vessel front -->
0058 <constant name="PFRICH_zmax" value="PFRICH_zmin - PFRICH_Length"/> <!-- vessel back -->
0059 <constant name="PFRICH_rmin0" value="5*cm"/> <!-- bore radius at vessel frontplane -->
0060 <constant name="PFRICH_rmin1" value="7*cm"/> <!-- bore radius at vessel backplane -->
0061 <constant name="PFRICH_rmax" value="93*cm"/> <!-- vessel backplane radius -->
0062 <constant name="PFRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
0063 <constant name="PFRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
0064 <constant name="PFRICH_aerogel_thickness" value="3.0*cm"/> <!-- aerogel thickness -->
0065 <constant name="PFRICH_filter_thickness" value="0.3*mm"/> <!-- filter thickness (between aerogel and gas) -->
0066 <constant name="PFRICH_sensor_active_size" value="24.0*mm"/> <!-- sensor side length (effective area) -->
0067 <constant name="PFRICH_sensor_full_size" value="25.8*mm"/> <!-- sensor side length (full size, with enclosure) -->
0068 <constant name="PFRICH_sensor_thickness" value="0.5*mm"/> <!-- sensor thickness -->
0069 <constant name="PFRICH_sensor_dist" value="40*cm"/> <!-- distance between aerogel exit plane and sensor entrance plane -->
0070 <constant name="PFRICH_num_px" value="8"/> <!-- number of pixels along one side of the sensor -->
0071 <constant name="PFRICH_pixel_pitch" value="PFRICH_sensor_active_size / PFRICH_num_px"/> <!-- center-to-center distance between sensor pixels -->
0072 </define>
0073
0074 <detectors>
0075
0076 <!-- /detectors/detector -->
0077 <comment>
0078 ### PFRICH: Proximity Focusing RICH
0079 </comment>
0080 <detector
0081 id="PFRICH_ID"
0082 name="PFRICH"
0083 type="PFRICH"
0084 readout="PFRICHHits"
0085 gas="C4F10_PFRICH"
0086 material="Aluminum"
0087 vis_vessel="vessel_vis"
0088 vis_gas="gas_vis"
0089 >
0090
0091 <!-- /detectors/detector/dimensions -->
0092 <comment>
0093 #### Vessel
0094 - dimensions:
0095 - `zmin`: z-position of vessel front plane
0096 - `length`: overall z-length of the full vessel
0097 - `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
0098 - `rmax0` and `rmax1`: outer radius of vessel, at front plane and back plane, respectively
0099 - `wall_thickness`: thickness of radial walls
0100 - `window_thickness`: thickness of entrance and exit disks
0101 </comment>
0102 <dimensions
0103 zmin="PFRICH_zmin"
0104 zmax="PFRICH_zmax"
0105 length="PFRICH_Length"
0106 rmin0="PFRICH_rmin0"
0107 rmin1="PFRICH_rmin1"
0108 rmax0="PFRICH_rmax"
0109 rmax1="PFRICH_rmax"
0110 wall_thickness="PFRICH_wall_thickness"
0111 window_thickness="PFRICH_window_thickness"
0112 />
0113
0114 <!-- /detectors/detector/radiator -->
0115 <comment>
0116 #### Radiator
0117 - `radiator` includes aerogel and a filter; the filter is applied to the back of the aerogel, so that it
0118 separates the aerogel and gas radiators
0119 - dimensions:
0120 - `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
0121 - `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
0122 - `thickness`: radiator thickness, defined separately for aerogel and filter
0123 </comment>
0124 <radiator
0125 frontplane="-PFRICH_window_thickness"
0126 rmin="PFRICH_rmin0 + PFRICH_wall_thickness + 0.2*cm"
0127 rmax="(PFRICH_rmax/PFRICH_zmax)*PFRICH_zmin + 8.0*cm"
0128 >
0129 <aerogel material="Aerogel_PFRICH" vis="aerogel_vis" thickness="PFRICH_aerogel_thickness" />
0130 <filter material="Acrylic_PFRICH" vis="filter_vis" thickness="PFRICH_filter_thickness" />
0131 </radiator>
0132
0133 <!-- /detectors/detector/sensors -->
0134 <comment>
0135 #### Sensors
0136 </comment>
0137 <sensors>
0138
0139 <!-- /detectors/detector/sensors/module -->
0140 <comment>
0141 ##### Sensor module
0142 - dimensions:
0143 - `side`: side length of the square module
0144 - `thickness`: thickness of the sensor module
0145 - `gap`: provides room between the squares, to help prevent them from overlapping
0146 - notes:
0147 - the values of `side` and `gap` will determine how many sensors there are, since the
0148 sensor placement algorithm will try to place as many as it can in the specified region
0149 - the material is `AirOptical`, to resolve a technical issue with the refractive boundary
0150 </comment>
0151 <module
0152 material="AirOptical"
0153 surface="SensorSurface_PFRICH"
0154 vis="sensor_vis"
0155 side="PFRICH_sensor_active_size"
0156 thickness="PFRICH_sensor_thickness"
0157 gap="0.5*(PFRICH_sensor_full_size-PFRICH_sensor_active_size) + 0.5*mm"
0158 />
0159
0160 <!-- /detectors/detector/sensors/plane -->
0161 <comment>
0162 ##### Sensor plane
0163 - sensors will be placed on a plane
0164 - plane dimensions:
0165 - `sensordist`: distance between sensor plane active surface (e.g., photocathode) and aerogel backplane
0166 - `rmin`: minimum radial position of a sensor's centroid
0167 - `rmax`: maximum radial position of a sensor's centroid
0168 </comment>
0169 <plane
0170 sensordist="PFRICH_sensor_dist"
0171 rmin="PFRICH_rmin1 + 2*cm"
0172 rmax="PFRICH_rmax - 4*cm"
0173 />
0174
0175 <services>
0176 <comment>
0177 Material should be equivalent with 3x0.5cm Al, spread over the entire available distance.
0178 </comment>
0179 <component name="aluminum" thickness="5*mm" vis="service_vis" material="Aluminum"/>
0180 <component name="air" thickness="40*mm" vis="no_vis" material="Air"/>
0181 <component name="aluminum" thickness="5*mm" vis="service_vis" material="Aluminum"/>
0182 <component name="air" thickness="40*mm" vis="no_vis" material="Air"/>
0183 <component name="aluminum" thickness="5*mm" vis="service_vis" material="Aluminum"/>
0184 </services>
0185
0186 </sensors>
0187 </detector>
0188 </detectors>
0189
0190 <comment>
0191 #### Readout
0192 - segmentation: square matrix of pixels
0193 - `grid_size_x,y`: size of each sensor pixel
0194 - `offset_x,y`: specified such that the `x` and `y` field values are unsigned
0195 </comment>
0196 <readouts>
0197 <readout name="PFRICHHits">
0198 <segmentation
0199 type="CartesianGridXY"
0200 grid_size_x="PFRICH_pixel_pitch"
0201 grid_size_y="PFRICH_pixel_pitch"
0202 offset_x="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0203 offset_y="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0204 />
0205 <id>system:8,module:12,x:32:-16,y:-16</id>
0206 </readout>
0207 </readouts>
0208
0209 </lccdd>