Back to home page

EIC code displayed by LXR

 
 

    


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>