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   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>