Warning, /epic/compact/pid/pfrich.xml is written in an unsupported language. File is not indexed.
0001 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
0002 <!-- Copyright (C) 2023 Wenliang (Bill) Li -->
0003
0004 <lccdd>
0005
0006 <define>
0007
0008
0009 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
0010 <!-- Actual global parameters -->
0011 <constant name="PFRICH_length" value="BackwardRICHRegion_length" /> <!-- vessel z-length -->
0012 <constant name="PFRICH_zmax" value="-BackwardRICHRegion_zmax"/> <!-- vessel front -->
0013 <constant name="PFRICH_zmin" value="PFRICH_zmax + PFRICH_length"/> <!-- vessel back -->
0014 <constant name="PFRICH_rmin0" value="-PFRICH_zmin * Eta3_9_tan * 0.95"/> <!-- bore radius at vessel frontplane -->
0015 <constant name="PFRICH_rmin1" value="-PFRICH_zmax * Eta3_9_tan * 0.85"/> <!-- bore radius at vessel backplane -->
0016 <constant name="PFRICH_rmax" value="BackwardPIDRegion_rmax"/> <!-- vessel radius -->
0017 <constant name="PFRICH_bore_slope" value="(PFRICH_rmin1 - PFRICH_rmin0) / PFRICH_length"/> <!-- slope of bore radius -->
0018
0019 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
0020
0021 <constant name="PFRICH_proximity_gap" value="30*cm"/> <!-- distance between aerogel exit plane and sensor entrance plane -->
0022 <constant name="PFRICH_services_length" value="15*cm"/> <!-- span of service materials behind the sensors -->
0023 <constant name="PFRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
0024 <constant name="PFRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
0025 <constant name="PFRICH_aerogel_thickness" value="3.0*cm"/> <!-- aerogel thickness -->
0026 <constant name="PFRICH_filter_thickness" value="0.3*mm"/> <!-- filter thickness -->
0027 <constant name="PFRICH_aerogel_filter_gap" value="0.01*mm"/> <!-- air gap between aerogel and filter FIXME: currently a gas gap -->
0028
0029 <!-- FIXME: change to LAPPD(?) -->
0030 <constant name="PFRICH_sensor_size_default" value="100*mm"/> <!-- sensor side length (full size, with enclosure) -->
0031 <constant name="PFRICH_sensor_size_lores" value="PFRICH_sensor_size_default * 4"/> <!-- lores sensor size, used for global vizualizations _only_ -->
0032 <constant name="PFRICH_sensor_size" value="PFRICH_sensor_size_default"/>
0033 <constant name="PFRICH_pixel_gap" value="0.2*mm"/> <!-- size of gaps between adjacent pixels AND gaps between edge pixels and sensor side -->
0034 <constant name="PFRICH_sensor_sensitive_size" value="PFRICH_sensor_size - PFRICH_pixel_gap"/> <!-- side length of photosensitive surface (to be segmented) -->
0035 <constant name="PFRICH_sensor_thickness" value="0.5*mm"/>
0036 <constant name="PFRICH_num_px" value="8"/> <!-- number of pixels along one side of the sensor -->
0037 <constant name="PFRICH_pixel_size" value="3.0*mm"/> <!-- a single SiPM pixel size -->
0038 <constant name="PFRICH_pixel_pitch" value="PFRICH_pixel_size + PFRICH_pixel_gap"/> <!-- center-to-center distance between SiPMs in a 8x8 panel -->
0039
0040 <constant name="PFRICH_debug_optics" value="0"/>
0041
0042 <!-- Flange -->
0043 <constant name="FLANGE_EPIPE_DIAMETER" value="10.53*cm"/>
0044 <constant name="FLANGE_HPIPE_DIAMETER" value="4.47*cm"/>
0045 <constant name="FLANGE_HPIPE_OFFSET" value="6.76*cm"/>
0046 <constant name="CLEARANCE" value="0.5*cm"/>
0047
0048 <!-- Mirrors -->
0049
0050 <constant name="CONICAL_MIRROR_INNER_RADIUS" value="12.0*cm"/>
0051 <constant name="CONICAL_MIRROR_OUTER_RADIUS" value="57.0*cm"/>
0052 <constant name="INNER_MIRROR_THICKNESS" value="0.1*cm"/>
0053 <constant name="OUTER_MIRROR_THICKNESS" value="0.2*cm"/>
0054
0055 <constant name="FIDUCIAL_VOLUME_LENGTH" value="49.1*cm"/>
0056 <constant name="SENSOR_AREA_LENGTH" value="5*cm"/>
0057 <constant name="HRPPD_CENTRAL_ROW_OFFSET" value="4.0*cm"/>
0058 <constant name="HRPPD_WINDOW_THICKNESS" value="0.38*cm"/>
0059 <constant name="HRPPD_CONTAINER_VOLUME_HEIGHT" value="3.2*cm"/>
0060 <constant name="HRPPD_INSTALLATION_GAP" value="0.25*cm"/>
0061
0062 <constant name="HRPPD_SUPPORT_GRID_BAR_HEIGHT" value="0.2*cm"/>
0063
0064 <constant name="HRPPD_TILE_SIZE" value="12.0*cm"/>
0065 <constant name="HRPPD_OPEN_AREA_SIZE" value="11.4*cm"/>
0066 <constant name="HRPPD_ACTIVE_AREA_SIZE" value="10.8*cm"/>
0067 <constant name="HRPPD_CERAMIC_BODY_THICKNESS" value="0.9*cm"/>
0068 <constant name="HRPPD_BASEPLATE_THICKNESS" value="0.3*cm"/>
0069 <constant name="HRPPD_PLATING_LAYER_THICKNESS" value="0.006*cm"/>
0070 <constant name="EFFECTIVE_MCP_THICKNESS" value="2 * 0.06 * 0.3*cm"/>
0071
0072 <constant name="READOUT_PCB_THICKNESS" value="0.2*cm"/>
0073 <constant name="READOUT_PCB_SIZE" value="HRPPD_OPEN_AREA_SIZE - 0.2*cm"/>
0074
0075 <constant name="ASIC_SIZE_XY" value="1.6*cm"/>
0076 <constant name="ASIC_THICKNESS" value="0.1*cm"/>
0077
0078 <!-- Aerogel -->
0079
0080 <constant name="AEROGEL_INNER_WALL_THICKNESS" value="0.01"/>
0081 <constant name="VESSEL_INNER_WALL_THICKNESS" value="0.29 * 2.54"/>
0082 <constant name="VESSEL_OUTER_WALL_THICKNESS" value="0.54 * 2.54"/>
0083 <constant name="VESSEL_OUTER_RADIUS" value="63.8"/>
0084 <constant name="VESSEL_FRONT_SIDE_THICKNESS" value="0.29 * 2.54"/>
0085 <constant name="FLANGE_CLEARANCE" value="0.5"/>
0086 <constant name="BUILDING_BLOCK_CLEARANCE" value="0.1"/>
0087 <constant name="AEROGEL_BAND_COUNT" value="3"/>
0088 <constant name="AEROGEL_SEPARATOR_WALL_THICKNESS" value="0.05"/>
0089 <constant name="AEROGEL_OUTER_WALL_THICKNESS" value="0.1"/>
0090
0091 <!-- hardcoded constants -->
0092 </define>
0093
0094 <detectors>
0095
0096 <detector
0097 id="BackwardRICH_ID"
0098 name="RICHEndcapN"
0099 type="epic_PFRICH"
0100 readout="RICHEndcapNHits"
0101 gas="N2cherenkov"
0102 material="CarbonFiber"
0103 vis_vessel="PFRICH_vessel_vis"
0104 vis_gas="DRICH_gas_vis"
0105 >
0106
0107 <parent name="/world_volume"/>
0108
0109 <dimensions
0110 zmin="PFRICH_zmin"
0111 zmax="PFRICH_zmax"
0112 length="PFRICH_length"
0113 rmin0="PFRICH_rmin0"
0114 rmin1="PFRICH_rmin1"
0115 rmax0="PFRICH_rmax"
0116 rmax1="PFRICH_rmax"
0117 proximity_gap="PFRICH_proximity_gap"
0118 wall_thickness="PFRICH_wall_thickness"
0119 window_thickness="PFRICH_window_thickness"
0120 />
0121
0122
0123 <sensors>
0124
0125 <module
0126 material="AirOptical"
0127 surface="SensorSurface_DRICH"
0128 vis="DRICH_sensor_vis"
0129 side="PFRICH_sensor_sensitive_size"
0130 thickness="PFRICH_sensor_thickness"
0131 gap="0.2*mm"
0132 />
0133
0134 <plane
0135 rmin="PFRICH_rmin1 + 2*cm"
0136 rmax="PFRICH_rmax - 4*cm"
0137 />
0138
0139 <dimensions
0140 zmin="PFRICH_zmin"
0141 zmax="PFRICH_zmax"
0142 length="PFRICH_length"
0143 rmin0="PFRICH_rmin0"
0144 rmin1="PFRICH_rmin1"
0145 rmax0="PFRICH_rmax"
0146 rmax1="PFRICH_rmax"
0147 proximity_gap="PFRICH_proximity_gap"
0148 wall_thickness="PFRICH_wall_thickness"
0149 window_thickness="PFRICH_window_thickness"
0150 />
0151
0152 <!-- /detectors/detector/radiator -->
0153 <documentation level="10">
0154 #### Radiator
0155 - radiator is defined in a wedge of azimuthal space, composed of aerogel and a
0156 filter; the filter is applied to the back of the aerogel, so that it separates
0157 the aerogel and gas radiators; an airgap is defined between the aerogel and filter
0158 - dimensions:
0159 - `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
0160 - `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
0161 - `thickness`: radiator thickness, defined separately for aerogel and filter
0162 - `pitch`: controls the angle of the radiator (0=vertical)
0163 </documentation>
0164
0165
0166
0167 <!-- /detectors/detector/sensors/module -->
0168 <documentation level="10">
0169 ##### Sensor module
0170 - dimensions:
0171 - `side`: side length of the square module
0172 - `thickness`: thickness of the sensor module
0173 - `gap`: provides room between the squares, to help prevent them from overlapping
0174 - note: the values of `side` and `gap` will determine how many sensors there are, since the
0175 sensor placement algorithm will try to place as many as it can in the specified region
0176 </documentation>
0177 <module
0178 material="AirOptical"
0179 surface="SensorSurface_DRICH"
0180 vis="DRICH_sensor_vis"
0181 side="PFRICH_sensor_sensitive_size"
0182 thickness="PFRICH_sensor_thickness"
0183 gap="0.2*mm"
0184 />
0185
0186
0187 <!-- /detectors/detector/sensors/plane -->
0188 <documentation level="10">
0189 ##### Sensor plane
0190 - sensors will be placed on a plane
0191 - plane dimensions:
0192 - `rmin`: minimum radial position of a sensor's centroid
0193 - `rmax`: maximum radial position of a sensor's centroid
0194 </documentation>
0195 <plane
0196 rmin="PFRICH_rmin1 + 2*cm"
0197 rmax="PFRICH_rmax - 4*cm"
0198 />
0199
0200 <services>
0201 <comment>
0202 Material should be equivallent with 3x0.5cm Al, spread over the entire available distance (`PFRICH_services_length`).
0203 This was confirmed by Silvia.
0204 </comment>
0205 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0206 <component name="air" thickness="(PFRICH_services_length - 3*0.5*cm) / 2.0" vis="InvisibleNoDaughters" material="Air"/>
0207 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0208 <component name="air" thickness="(PFRICH_services_length - 3*0.5*cm) / 2.0" vis="InvisibleNoDaughters" material="Air"/>
0209 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0210 </services>
0211
0212 </sensors>
0213
0214 <radiator
0215 rmin="PFRICH_rmin0 + PFRICH_wall_thickness + 0.2*cm"
0216 rmax="(PFRICH_rmax/PFRICH_zmax)*PFRICH_zmin + 8.0*cm"
0217 frontplane="-PFRICH_window_thickness"
0218 pitch="0*degree"
0219 >
0220 <aerogel
0221 material="Aerogel_DRICH"
0222 vis="DRICH_aerogel_vis"
0223 thickness="PFRICH_aerogel_thickness"
0224 />
0225 <airgap
0226 material="AirOptical"
0227 vis="DRICH_gas_vis"
0228 thickness="PFRICH_aerogel_filter_gap"
0229 />
0230 <filter
0231 material="Acrylic_DRICH"
0232 vis="DRICH_filter_vis"
0233 thickness="PFRICH_filter_thickness"
0234 />
0235 </radiator>
0236
0237 <mirror
0238 material="CarbonFiber"
0239 surface="MirrorSurface_DRICH"
0240 vis="DRICH_mirror_vis"
0241 backplane="DRICH_window_thickness + 1.0*cm"
0242 rmin="DRICH_rmin1 + DRICH_wall_thickness - 1.0*cm"
0243 rmax="DRICH_rmax2 - DRICH_wall_thickness - 3.0*cm"
0244 phiw="59.5*degree"
0245 thickness="0.2*cm"
0246 focus_tune_x="-7.00*cm"
0247 focus_tune_z="6.15*cm"
0248 />
0249
0250 </detector>
0251 </detectors>
0252
0253 <readouts>
0254 <readout name="RICHEndcapNHits">
0255 <segmentation
0256 type="CartesianGridXY"
0257 grid_size_x="PFRICH_pixel_pitch"
0258 grid_size_y="PFRICH_pixel_pitch"
0259 offset_x="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0260 offset_y="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0261 />
0262 <id>system:8,module:12,x:32:-16,y:-16</id>
0263 </readout>
0264 </readouts>
0265
0266 </lccdd>