Warning, /athena/compact/drich.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <lccdd>
0003
0004 <define>
0005 <!-- vessel (=snout+tank) geometry -->
0006 <constant name="DRICH_zmin" value="ForwardRICHRegion_zmin"/> <!-- vessel front -->
0007 <constant name="DRICH_Length" value="ForwardRICHRegion_length"/> <!-- overall vessel length (including snout) -->
0008 <constant name="DRICH_rmin0" value="ForwardRICHRegion_zmin * ForwardRICHRegion_tan1"/> <!-- bore radius at dRICh vessel frontplane -->
0009 <constant name="DRICH_rmin1" value="(ForwardRICHRegion_zmin + ForwardRICHRegion_length) * ForwardRICHRegion_tan2"/> <!-- bore radius at dRICh vessel backplane -->
0010 <constant name="DRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
0011 <constant name="DRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
0012 <!-- tank geometry: cylinder, holding the majority of detector components -->
0013 <constant name="DRICH_rmax2" value="HcalBarrel_rmin-10*cm"/> <!-- cylinder radius, near maximal to fit HCal barrel inner polygon -->
0014 <!-- snout geometry: cone with front radius rmax0 and back radius of rmax1 -->
0015 <constant name="DRICH_SnoutLength" value="4.0*cm"/>
0016 <constant name="DRICH_SnoutSlope" value="DRICH_rmax2 / (DRICH_zmin + DRICH_Length)"/>
0017 <constant name="DRICH_rmax0" value="DRICH_SnoutSlope * DRICH_zmin"/>
0018 <constant name="DRICH_rmax1" value="DRICH_SnoutSlope * ( DRICH_zmin + DRICH_SnoutLength)"/>
0019 <!-- additional parameters -->
0020 <constant name="DRICH_aerogel_thickness" value="4.0*cm"/> <!-- aerogel thickness -->
0021 <constant name="DRICH_sensor_size" value="48.0*mm"/> <!-- sensor side length -->
0022 <constant name="DRICH_sensor_thickness" value="35.0*mm"/> <!-- sensor thickness -->
0023 <constant name="DRICH_num_px" value="16"/> <!-- number of pixels along one side of the sensor -->
0024 <!-- debugging switches -->
0025 <comment>
0026 - `DRICH_debug_optics`: 1 = all components become vacuum, except for mirrors; test opticalphotons from IP
0027 2 = all components become vacuum, except for mirrors and `gasvol`, test charged particles from IP
0028 0 = off
0029 - `DRICH_debug_mirror`: 1 = draw full mirror shape for single sector; 0 = off
0030 - `DRICH_debug_sensors`: 1 = draw full sensor sphere for a single sector; 0 = off
0031 </comment>
0032 <constant name="DRICH_debug_optics" value="0"/>
0033 <constant name="DRICH_debug_mirror" value="0"/>
0034 <constant name="DRICH_debug_sensors" value="0"/>
0035 </define>
0036
0037
0038 <detectors>
0039
0040
0041 <!-- /detectors/detector -->
0042 <documentation level="10">
0043 ### dRICh: ***d***ual ***R***ing ***I***maging ***Ch***erenkov detector
0044 </documentation>
0045 <detector
0046 id="ForwardRICH_ID"
0047 name="DRICH"
0048 type="athena_DRICH"
0049 readout="DRICHHits"
0050 gas="C2F6_DRICH"
0051 material="Aluminum"
0052 vis_vessel="DRICH_vessel_vis"
0053 vis_gas="DRICH_gas_vis"
0054 debug_optics="DRICH_debug_optics"
0055 >
0056
0057
0058 <!-- /detectors/detector/dimensions -->
0059 <documentation level="10">
0060 #### Vessel
0061 - the dRICh vessel is composed of two parts:
0062 - tank: cylindrical region containing most of the detector components
0063 - snout: conical region at the front of the vessel, containing the aerogel
0064 - dimensions:
0065 - `zmin`: z-position of vessel front plane
0066 - `length`: overall z-length of the full vessel
0067 - `snout_length`: length of cone-shaped snout region, housing aerogel
0068 - `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
0069 - `rmax0` and `rmax1`: outer radius of snout at front plane and snout-back (tank-front) plane, respectively
0070 - `rmax2`: outer radius of tank, the main cylindrical vessel volume
0071 - `nsectors`: number of azimuthal sectors
0072 - `wall_thickness`: thickness of radial walls
0073 - `window_thickness`: thickness of entrance and exit disks
0074 </documentation>
0075 <dimensions
0076 zmin="DRICH_zmin"
0077 length="DRICH_Length"
0078 snout_length="DRICH_SnoutLength"
0079 rmin0="DRICH_rmin0"
0080 rmin1="DRICH_rmin1"
0081 rmax0="DRICH_rmax0"
0082 rmax1="DRICH_rmax1"
0083 rmax2="DRICH_rmax2"
0084 nsectors="6"
0085 wall_thickness="DRICH_wall_thickness"
0086 window_thickness="DRICH_window_thickness"
0087 />
0088
0089
0090 <!-- /detectors/detector/radiator -->
0091 <documentation level="10">
0092 #### Radiator
0093 - radiator is defined in a wedge of azimuthal space, composed of aerogel and a
0094 filter; the filter is applied to the back of the aerogel, so that it separates
0095 the aerogel and gas radiators
0096 - dimensions:
0097 - `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
0098 - `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
0099 - `phiw`: azimuthal width of wedge
0100 - `thickness`: radiator thickness, defined separately for aerogel and filter
0101 - `pitch`: controls the angle of the radiator (0=vertical)
0102 </documentation>
0103 <radiator
0104 rmin="DRICH_rmin0 + DRICH_wall_thickness + 0.2*cm"
0105 rmax="DRICH_rmax0 - DRICH_wall_thickness - 0.2*cm"
0106 phiw="60*degree"
0107 frontplane="DRICH_window_thickness + 0.5*DRICH_aerogel_thickness"
0108 pitch="0*degree"
0109 >
0110 <aerogel
0111 material="Aerogel_DRICH"
0112 vis="DRICH_aerogel_vis"
0113 thickness="DRICH_aerogel_thickness"
0114 />
0115 <filter
0116 material="Acrylic_DRICH"
0117 vis="DRICH_filter_vis"
0118 thickness="0.3*mm"
0119 />
0120 </radiator>
0121
0122
0123 <!-- /detectors/detector/mirror -->
0124 <documentation level="10">
0125 #### Spherical mirror
0126 - spherical mirrors are built from spherical patches, and positioned near the
0127 vessel back plane, separately for each sector
0128 - dimensions:
0129 - `backplane`: the position of the maximum z-plane intersected by the sphere,
0130 w.r.t. the back plane of vessel envelope
0131 - `rmin` and `rmax`: polar angle boundaries
0132 - `phiw`: azimuthal width of one sector
0133 - `thickness` is the radial thickness of the mirror; note that `backplane` is given for the
0134 reflective mirror surface, the inner radius of the sphere
0135 - `focus_tune*` are tuning parameters for the focal region:
0136 - `focus_tune_z` and `focus_tune_x` will move the focal region, with respect
0137 to the sensor sphere center (i.e., set both to zero for focus at the sensor sphere center
0138 (ignoring spherical aberrations effects))
0139 - other settings:
0140 - `debug`: set to 1 so draw reference sphere instead, view with y-clipping
0141 </documentation>
0142 <mirror
0143 material="Acrylic_DRICH"
0144 surface="MirrorSurface_DRICH"
0145 vis="DRICH_mirror_vis"
0146 backplane="DRICH_window_thickness + 1.0*cm"
0147 rmin="DRICH_rmin1 + DRICH_wall_thickness - 1.0*cm"
0148 rmax="DRICH_rmax2 - DRICH_wall_thickness - 1.0*cm"
0149 phiw="59.5*degree"
0150 thickness="0.2*cm"
0151 focus_tune_x="30.0*cm"
0152 focus_tune_z="-40.0*cm"
0153 debug="DRICH_debug_mirror"
0154 />
0155
0156 <!-- /detectors/detector/sensors -->
0157 <documentation level="10">
0158 #### Sensors
0159 </documentation>
0160 <sensors>
0161
0162
0163 <!-- /detectors/detector/sensors/module -->
0164 <documentation level="10">
0165 ##### Sensor module
0166 - based on [Hamamatsu H13700 MAPMT](https://www.hamamatsu.com/us/en/product/type/H13700/index.html):
0167 - not ideal for a magnetic field, SiPM matrix would be better
0168 - effective area: 48.5x48.5 mm
0169 - enclosure size: 52x52 mm
0170 - 16x16 channel matrix (cf. readout segmentation below)
0171 - pixel size: 3x3 mm
0172 - dimensions:
0173 - `side`: side length of the square module
0174 - `thickness`: thickness of the sensor module
0175 - `gap`: provides room between the squares, to help prevent them from overlapping
0176 - note: the value of `side` will determine how many sensors there are, since the
0177 sensor placement algorithm will try to place as many as it can in the specified
0178 spherical patch below
0179 </documentation>
0180 <module
0181 material="Silicon"
0182 surface="SensorSurface_DRICH"
0183 vis="DRICH_sensor_vis"
0184 side="DRICH_sensor_size"
0185 thickness="DRICH_sensor_thickness"
0186 gap="0.5*(52-48)*mm + 2*mm"
0187 />
0188
0189
0190 <!-- /detectors/detector/sensors/{sphere,sphericalpatch} -->
0191 <documentation level="10">
0192 ##### Sensor sphere
0193 - sensors will be placed on a sphere, using a "disco ball" tiling algorithm; each
0194 sector has its own sensor sphere
0195 - sphere dimensions:
0196 - `centerx` and `centerz`: sphere center, defined w.r.t. vessel front plane,
0197 for the sector on +x axis
0198 - `radius`: radius of the sensor sphere
0199 - other settings:
0200 - `debug`: set to 1 so draw reference sphere instead, view with y-clipping
0201 - sensors will be limited to a patch of the sphere
0202 - patch dimensions:
0203 - `phiw`: defines half the angle between the azimuthal boundaries
0204 - `rmin` and `rmax`: radial cut boundaries
0205 - `zmin`: z-plane cut
0206 </documentation>
0207 <sphere
0208 centerz="-55.0 * cm"
0209 centerx="DRICH_rmax2 - 35.0*cm"
0210 radius="85.0 * cm"
0211 debug="DRICH_debug_sensors"
0212 />
0213 <sphericalpatch
0214 phiw="18*degree"
0215 rmin="DRICH_rmax1 + 5.0*cm"
0216 rmax="DRICH_rmax2 - 5.0*cm"
0217 zmin="DRICH_SnoutLength + 5.0*cm"
0218 />
0219
0220
0221 </sensors>
0222 </detector>
0223 </detectors>
0224
0225
0226 <documentation level="10">
0227 #### Readout
0228 - segmentation: square matrix of pixels
0229 - `grid_size_x,y`: size of each sensor, but note we must divide sensor size
0230 by 1 less than the number of pixels, to account for fenceposting
0231 - `offset_x,y`: specified such that the `x` and `y` indicators are unsigned
0232 - indicators and `cellID` bits:
0233
0234 | indicator | offset | length |
0235 |-----------|--------|--------|
0236 | dRICh ID | 0 | 8 |
0237 | sector | 8 | 3 |
0238 | sensor | 11 | 12 |
0239 | x pixel | 23 | 16 |
0240 | y pixel | 39 | 16 |
0241
0242 </documentation>
0243 <readouts>
0244 <readout name="DRICHHits">
0245 <segmentation
0246 type="CartesianGridXY"
0247 grid_size_x="DRICH_sensor_size/(DRICH_num_px-1)"
0248 grid_size_y="DRICH_sensor_size/(DRICH_num_px-1)"
0249 offset_x="-DRICH_sensor_size/2.0"
0250 offset_y="-DRICH_sensor_size/2.0"
0251 />
0252 <id>system:8,sector:3,module:12,x:23:16,y:16</id>
0253 </readout>
0254 </readouts>
0255
0256
0257 </lccdd>