Back to home page

EIC code displayed by LXR

 
 

    


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>