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 windowmat="Quartz"
0133 pcbmat="G10"
0134 mpdmat="SiliconDioxide"
0135 asicmat="SiliconCarbide"
0136 />
0137
0138 <plane
0139 rmin="PFRICH_rmin1 + 2*cm"
0140 rmax="PFRICH_rmax - 4*cm"
0141 />
0142
0143 <dimensions
0144 zmin="PFRICH_zmin"
0145 zmax="PFRICH_zmax"
0146 length="PFRICH_length"
0147 rmin0="PFRICH_rmin0"
0148 rmin1="PFRICH_rmin1"
0149 rmax0="PFRICH_rmax"
0150 rmax1="PFRICH_rmax"
0151 proximity_gap="PFRICH_proximity_gap"
0152 wall_thickness="PFRICH_wall_thickness"
0153 window_thickness="PFRICH_window_thickness"
0154 />
0155
0156 <!-- /detectors/detector/radiator -->
0157 <documentation level="10">
0158 #### Radiator
0159 - radiator is defined in a wedge of azimuthal space, composed of aerogel and a
0160 filter; the filter is applied to the back of the aerogel, so that it separates
0161 the aerogel and gas radiators; an airgap is defined between the aerogel and filter
0162 - dimensions:
0163 - `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
0164 - `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
0165 - `thickness`: radiator thickness, defined separately for aerogel and filter
0166 - `pitch`: controls the angle of the radiator (0=vertical)
0167 </documentation>
0168
0169
0170
0171 <!-- /detectors/detector/sensors/module -->
0172 <documentation level="10">
0173 ##### Sensor module
0174 - dimensions:
0175 - `side`: side length of the square module
0176 - `thickness`: thickness of the sensor module
0177 - `gap`: provides room between the squares, to help prevent them from overlapping
0178 - note: the values of `side` and `gap` will determine how many sensors there are, since the
0179 sensor placement algorithm will try to place as many as it can in the specified region
0180 </documentation>
0181 <module
0182 material="AirOptical"
0183 surface="SensorSurface_DRICH"
0184 vis="DRICH_sensor_vis"
0185 side="PFRICH_sensor_sensitive_size"
0186 thickness="PFRICH_sensor_thickness"
0187 gap="0.2*mm"
0188 />
0189
0190
0191 <!-- /detectors/detector/sensors/plane -->
0192 <documentation level="10">
0193 ##### Sensor plane
0194 - sensors will be placed on a plane
0195 - plane dimensions:
0196 - `rmin`: minimum radial position of a sensor's centroid
0197 - `rmax`: maximum radial position of a sensor's centroid
0198 </documentation>
0199 <plane
0200 rmin="PFRICH_rmin1 + 2*cm"
0201 rmax="PFRICH_rmax - 4*cm"
0202 />
0203
0204 <services>
0205 <comment>
0206 Material should be equivallent with 3x0.5cm Al, spread over the entire available distance (`PFRICH_services_length`).
0207 This was confirmed by Silvia.
0208 </comment>
0209 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0210 <component name="air" thickness="(PFRICH_services_length - 3*0.5*cm) / 2.0" vis="InvisibleNoDaughters" material="Air"/>
0211 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0212 <component name="air" thickness="(PFRICH_services_length - 3*0.5*cm) / 2.0" vis="InvisibleNoDaughters" material="Air"/>
0213 <component name="aluminum" thickness="0.5*cm" vis="RICHServiceVis" material="Aluminum"/>
0214 </services>
0215
0216 </sensors>
0217
0218 <radiator
0219 rmin="PFRICH_rmin0 + PFRICH_wall_thickness + 0.2*cm"
0220 rmax="(PFRICH_rmax/PFRICH_zmax)*PFRICH_zmin + 8.0*cm"
0221 frontplane="-PFRICH_window_thickness"
0222 pitch="0*degree"
0223 >
0224 <aerogel
0225 material="Aerogel_DRICH"
0226 vis="DRICH_aerogel_vis"
0227 thickness="PFRICH_aerogel_thickness"
0228 />
0229 <airgap
0230 material="AirOptical"
0231 vis="DRICH_gas_vis"
0232 thickness="PFRICH_aerogel_filter_gap"
0233 />
0234 <filter
0235 material="Acrylic_DRICH"
0236 vis="DRICH_filter_vis"
0237 thickness="PFRICH_filter_thickness"
0238 />
0239 </radiator>
0240
0241 <mirror
0242 material="CarbonFiber"
0243 surface="MirrorSurface_DRICH"
0244 vis="DRICH_mirror_vis"
0245 backplane="DRICH_window_thickness + 1.0*cm"
0246 rmin="DRICH_rmin1 + DRICH_wall_thickness - 1.0*cm"
0247 rmax="DRICH_rmax2 - DRICH_wall_thickness - 3.0*cm"
0248 phiw="59.5*degree"
0249 thickness="0.2*cm"
0250 focus_tune_x="-7.00*cm"
0251 focus_tune_z="6.15*cm"
0252 />
0253
0254 </detector>
0255 </detectors>
0256
0257 <readouts>
0258 <readout name="RICHEndcapNHits">
0259 <segmentation
0260 type="CartesianGridXY"
0261 grid_size_x="PFRICH_pixel_pitch"
0262 grid_size_y="PFRICH_pixel_pitch"
0263 offset_x="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0264 offset_y="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0265 />
0266 <id>system:8,module:12,x:32:-16,y:-16</id>
0267 </readout>
0268 </readouts>
0269
0270 </lccdd>