-
Sylvester Joosten authoredSylvester Joosten authored
erich.xml 6.70 KiB
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<!-- vessel geometry -->
<constant name="ERICH_Length" value="BackwardPIDRegion_length"/> <!-- vessel z-length -->
<constant name="ERICH_zmin" value="-BackwardPIDRegion_zmin"/> <!-- vessel front -->
<constant name="ERICH_zmax" value="ERICH_zmin - ERICH_Length"/> <!-- vessel back -->
<constant name="ERICH_rmin0" value="BackwardPIDRegion_tan * BackwardPIDRegion_zmin"/> <!-- bore radius at vessel frontplane -->
<constant name="ERICH_rmin1" value="BackwardPIDRegion_tan * (BackwardPIDRegion_zmin + BackwardPIDRegion_length)"/> <!-- bore radius at vessel backplane -->
<constant name="ERICH_rmax" value="BackwardPIDRegion_rmax - 2*cm"/> <!-- vessel backplane radius -->
<constant name="ERICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
<constant name="ERICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
<!-- additional parameters -->
<constant name="ERICH_aerogel_thickness" value="3.0*cm"/> <!-- aerogel thickness -->
<constant name="ERICH_sensor_active_size" value="2*24.0*mm"/> <!-- sensor side length (effective area) -->
<constant name="ERICH_sensor_full_size" value="2*25.8*mm"/> <!-- sensor side length (full size, with enclosure) -->
<constant name="ERICH_sensor_thickness" value="1.5*mm"/> <!-- sensor thickness -->
<constant name="ERICH_num_px" value="2*8"/> <!-- number of pixels along one side of the sensor -->
<!-- debugging switches -->
<comment>
- `ERICH_debug_optics`: 1 = all components become vacuum; test opticalphotons from IP
2 = all components become vacuum, except for `gasvol`, test charged particles from IP
0 = off
</comment>
<constant name="ERICH_debug_optics" value="0"/>
</define>
<detectors>
<!-- /detectors/detector -->
<documentation level="10">
### eRICH: Electron Endcap RICH (name TBD)
</documentation>
<detector
id="BackwardRICH_ID"
name="ERICH"
type="athena_ERICH"
readout="ERICHHits"
gas="C4F10_ERICH"
material="Aluminum"
vis_vessel="DRICH_vessel_vis"
vis_gas="DRICH_gas_vis"
debug_optics="ERICH_debug_optics"
>
<!-- /detectors/detector/dimensions -->
<documentation level="10">
#### Vessel
- dimensions:
- `zmin`: z-position of vessel front plane
- `length`: overall z-length of the full vessel
- `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
- `rmax0` and `rmax1`: outer radius of vessel, at front plane and back plane, respectively
- `nsectors`: number of azimuthal sectors
- `wall_thickness`: thickness of radial walls
- `window_thickness`: thickness of entrance and exit disks
</documentation>
<dimensions
zmin="ERICH_zmin"
zmax="ERICH_zmax"
length="ERICH_Length"
rmin0="ERICH_rmin0"
rmin1="ERICH_rmin1"
rmax0="ERICH_rmax"
rmax1="ERICH_rmax"
nsectors="6"
wall_thickness="ERICH_wall_thickness"
window_thickness="ERICH_window_thickness"
/>
<!-- /detectors/detector/radiator -->
<documentation level="10">
#### Radiator
- radiator is defined in a wedge of azimuthal space, composed of aerogel and a
filter; the filter is applied to the back of the aerogel, so that it separates
the aerogel and gas radiators
- dimensions:
- `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
- `rmin` and `rmax`: inner and outer radius
- `phiw`: azimuthal width of wedge
- `thickness`: radiator thickness, defined separately for aerogel and filter
- `pitch`: controls the angle of the radiator (0=vertical)
</documentation>
<radiator
frontplane="-ERICH_window_thickness"
rmin="ERICH_rmin0 + ERICH_wall_thickness + 0.5*cm"
rmax="(ERICH_rmax/ERICH_zmax)*ERICH_zmin + 8.0*cm"
phiw="60*degree"
pitch="0*degree"
>
<aerogel
material="Aerogel_DRICH"
vis="DRICH_aerogel_vis"
thickness="ERICH_aerogel_thickness"
/>
<filter
material="Acrylic_DRICH"
vis="DRICH_filter_vis"
thickness="0.3*mm"
/>
</radiator>
<!-- /detectors/detector/sensors -->
<documentation level="10">
#### Sensors
</documentation>
<sensors>
<!-- /detectors/detector/sensors/module -->
<documentation level="10">
##### Sensor module
- based on Hamamatsu S13361-3050AE-08
- effective area: 24.0 x 24.0 mm
- enclosure size: 25.8 x 25.8 mm
- pixel size: 3x3 mm (8x8 matrix)
- thickness: 1.5 mm
- dimensions:
- `side`: side length of the square module
- `thickness`: thickness of the sensor module
- `gap`: provides room between the squares, to help prevent them from overlapping
- note: the values of `side` and `gap` will determine how many sensors there are, since the
sensor placement algorithm will try to place as many as it can in the specified region
</documentation>
<module
material="Silicon"
surface="SensorSurface_DRICH"
vis="DRICH_sensor_vis"
side="ERICH_sensor_active_size"
thickness="ERICH_sensor_thickness"
gap="0.5*(ERICH_sensor_full_size-ERICH_sensor_active_size) + 0.5*mm"
/>
<!-- /detectors/detector/sensors/plane -->
<documentation level="10">
##### Sensor plane
- sensors will be placed on a plane
- plane dimensions:
- `frontplane`: z-position of the sensor plane active surface (e.g., photocathode), w.r.t aerogel backplane;
absolute value of this number is the distance between aerogel/filter boundary and sensor surface
- `rmin`: minimum radial position of a sensor's centroid
- `rmax`: maximum radial position of a sensor's centroid
</documentation>
<plane
frontplane="-40*cm"
rmin="ERICH_rmin1 + 2*cm"
rmax="ERICH_rmax - 4*cm"
/>
<services>
<comment> SJJ: random standin for readout + electronics + cooling @FIXME </comment>
<component name="aluminum" thickness="10*mm" vis="RICHServiceVis" material="Aluminum"/>
</services>
</sensors>
</detector>
</detectors>
<documentation level="10">
#### Readout
- segmentation: square matrix of pixels
- `grid_size_x,y`: size of each sensor, but note we must divide sensor size
by 1 less than the number of pixels, to account for fenceposting
- `offset_x,y`: specified such that the `x` and `y` indicators are unsigned
- indicators and `cellID` bits:
| indicator | offset | length |
|-----------|--------|--------|
| eRICH ID | 0 | 8 |
| sensor | 8 | 12 |
| x pixel | 20 | 16 |
| y pixel | 36 | 16 |
</documentation>
<readouts>
<readout name="ERICHHits">
<segmentation
type="CartesianGridXY"
grid_size_x="ERICH_sensor_active_size/(ERICH_num_px-1)"
grid_size_y="ERICH_sensor_active_size/(ERICH_num_px-1)"
offset_x="-ERICH_sensor_active_size/2.0"
offset_y="-ERICH_sensor_active_size/2.0"
/>
<id>system:8,module:12,x:20:16,y:16</id>
</readout>
</readouts>
</lccdd>