Back to home page

EIC code displayed by LXR

 
 

    


Warning, /DD4hep/examples/RICH/compact/pfrich.xml is written in an unsupported language. File is not indexed.

0001 <lccdd 
0002   xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
0003   xmlns:xs="http://www.w3.org/2001/XMLSchema"
0004   xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"
0005   >
0006 
0007 <info
0008   name="PFRICH"
0009   title="Proximity Focusing Ring Imaging Cherenkov Detector"
0010   author="Christopher Dilks"
0011   url="https://github.com/eic/epic"
0012   status="development"
0013   version="1.0"
0014   >
0015   <comment>
0016   Example RICH Detector
0017   </comment>
0018 </info>
0019 
0020 <debug>
0021   <type name="surface"       value="0"/>
0022   <type name="material"      value="0"/>
0023   <type name="readout"       value="0"/>
0024   <type name="segmentation"  value="0"/>
0025   <type name="limits"        value="0"/>
0026   <type name="region"        value="0"/>
0027   <type name="includes"      value="0"/>
0028 </debug>
0029 
0030 <includes>
0031   <gdmlFile ref="${DD4hepINSTALL}/DDDetectors/compact/elements.xml"/>
0032   <file     ref="materials.xml"/>
0033 </includes>
0034 
0035 <display>
0036   <vis name="vessel_vis"  r="102/256" g="102/256" b="102/256" alpha="1.0" showDaughters="true" visible="true" />
0037   <vis name="gas_vis"     r="100/256" g="200/256" b="0/256"   alpha="0.5" showDaughters="true" visible="true" />
0038   <vis name="aerogel_vis" r="0/256"   g="161/256" b="156/256" alpha="1.0" showDaughters="true" visible="true" />
0039   <vis name="filter_vis"  r="248/256" g="188/256" b="0/256"   alpha="1.0" showDaughters="true" visible="true" />
0040   <vis name="sensor_vis"  r="0/256"   g="96/256"  b="156/256" alpha="1.0" showDaughters="true" visible="true" />
0041   <vis name="service_vis" r="102/256" g="102/256" b="102/256" alpha="1.0" showDaughters="true" visible="true" />
0042   <vis name="no_vis" showDaughters="false" visible="false" />
0043 </display>
0044 
0045 <define>
0046   <!-- global constants -->
0047   <constant name="world_side" value="30*m"/>
0048   <constant name="world_x"    value="world_side"/>
0049   <constant name="world_y"    value="world_side"/>
0050   <constant name="world_z"    value="100*m"/>
0051   <constant name="Pi"         value="3.14159265359"/>
0052   <constant name="mil"        value="0.0254*mm"/>
0053   <constant name="inch"       value="2.54*cm"/>
0054   <!-- RICH constants -->
0055   <constant name="PFRICH_ID"                 value="1"/>                           <!-- unique ID for this detector -->
0056   <constant name="PFRICH_Length"             value="58.0*cm"/>                     <!-- vessel z-length -->
0057   <constant name="PFRICH_zmin"               value="-150*cm"/>                     <!-- vessel front -->
0058   <constant name="PFRICH_zmax"               value="PFRICH_zmin - PFRICH_Length"/> <!-- vessel back -->
0059   <constant name="PFRICH_rmin0"              value="5*cm"/>                        <!-- bore radius at vessel frontplane -->
0060   <constant name="PFRICH_rmin1"              value="7*cm"/>                        <!-- bore radius at vessel backplane -->
0061   <constant name="PFRICH_rmax"               value="93*cm"/>                       <!-- vessel backplane radius -->
0062   <constant name="PFRICH_wall_thickness"     value="0.5*cm"/>                      <!-- thickness of radial walls -->
0063   <constant name="PFRICH_window_thickness"   value="0.1*cm"/>                      <!-- thickness of entrance and exit walls -->
0064   <constant name="PFRICH_aerogel_thickness"  value="3.0*cm"/>                      <!-- aerogel thickness -->
0065   <constant name="PFRICH_filter_thickness"   value="0.3*mm"/>                      <!-- filter thickness (between aerogel and gas) -->
0066   <constant name="PFRICH_sensor_active_size" value="24.0*mm"/>                     <!-- sensor side length (effective area) -->
0067   <constant name="PFRICH_sensor_full_size"   value="25.8*mm"/>                     <!-- sensor side length (full size, with enclosure) -->
0068   <constant name="PFRICH_sensor_thickness"   value="0.5*mm"/>                      <!-- sensor thickness -->
0069   <constant name="PFRICH_sensor_dist"        value="40*cm"/>                       <!-- distance between aerogel exit plane and sensor entrance plane -->
0070   <constant name="PFRICH_num_px"             value="8"/>                           <!-- number of pixels along one side of the sensor -->
0071   <constant name="PFRICH_pixel_pitch"        value="PFRICH_sensor_active_size / PFRICH_num_px"/> <!-- center-to-center distance between sensor pixels -->
0072 </define>
0073 
0074 <detectors>
0075 
0076   <!-- /detectors/detector -->
0077   <comment>
0078     ### PFRICH: Proximity Focusing RICH
0079   </comment>
0080   <detector
0081     id="PFRICH_ID"
0082     name="PFRICH"
0083     type="PFRICH"
0084     readout="PFRICHHits"
0085     gas="C4F10_PFRICH"
0086     material="Aluminum"
0087     vis_vessel="vessel_vis"
0088     vis_gas="gas_vis"
0089     >
0090 
0091     <!-- /detectors/detector/dimensions -->
0092     <comment>
0093       #### Vessel
0094       - dimensions:
0095       - `zmin`:              z-position of vessel front plane
0096       - `length`:            overall z-length of the full vessel
0097       - `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
0098       - `rmax0` and `rmax1`: outer radius of vessel, at front plane and back plane, respectively
0099       - `wall_thickness`:    thickness of radial walls
0100       - `window_thickness`:  thickness of entrance and exit disks
0101     </comment>
0102     <dimensions
0103       zmin="PFRICH_zmin"
0104       zmax="PFRICH_zmax"
0105       length="PFRICH_Length"
0106       rmin0="PFRICH_rmin0"
0107       rmin1="PFRICH_rmin1"
0108       rmax0="PFRICH_rmax"
0109       rmax1="PFRICH_rmax"
0110       wall_thickness="PFRICH_wall_thickness"
0111       window_thickness="PFRICH_window_thickness"
0112       />
0113 
0114     <!-- /detectors/detector/radiator -->
0115     <comment>
0116       #### Radiator
0117       - `radiator` includes aerogel and a filter; the filter is applied to the back of the aerogel, so that it
0118         separates the aerogel and gas radiators
0119       - dimensions:
0120         - `frontplane`:      front of the aerogel, w.r.t. front plane of the vessel envelope
0121         - `rmin` and `rmax`: inner and outer radius (at the front plane; radial bounds are conical)
0122         - `thickness`:       radiator thickness, defined separately for aerogel and filter
0123     </comment>
0124     <radiator
0125       frontplane="-PFRICH_window_thickness"
0126       rmin="PFRICH_rmin0 + PFRICH_wall_thickness + 0.2*cm"
0127       rmax="(PFRICH_rmax/PFRICH_zmax)*PFRICH_zmin + 8.0*cm"
0128       >
0129       <aerogel material="Aerogel_PFRICH" vis="aerogel_vis" thickness="PFRICH_aerogel_thickness" />
0130       <filter  material="Acrylic_PFRICH" vis="filter_vis"  thickness="PFRICH_filter_thickness"  />
0131   </radiator>
0132 
0133   <!-- /detectors/detector/sensors -->
0134   <comment>
0135     #### Sensors
0136   </comment>
0137   <sensors>
0138 
0139     <!-- /detectors/detector/sensors/module -->
0140     <comment>
0141       ##### Sensor module
0142       - dimensions:
0143         - `side`:      side length of the square module
0144         - `thickness`: thickness of the sensor module
0145         - `gap`:       provides room between the squares, to help prevent them from overlapping
0146       - notes:
0147         - the values of `side` and `gap` will determine how many sensors there are, since the
0148           sensor placement algorithm will try to place as many as it can in the specified region
0149         - the material is `AirOptical`, to resolve a technical issue with the refractive boundary
0150     </comment>
0151     <module
0152       material="AirOptical"
0153       surface="SensorSurface_PFRICH"
0154       vis="sensor_vis"
0155       side="PFRICH_sensor_active_size"
0156       thickness="PFRICH_sensor_thickness"
0157       gap="0.5*(PFRICH_sensor_full_size-PFRICH_sensor_active_size) + 0.5*mm"
0158       />
0159 
0160     <!-- /detectors/detector/sensors/plane -->
0161     <comment>
0162       ##### Sensor plane
0163       - sensors will be placed on a plane
0164       - plane dimensions:
0165         - `sensordist`: distance between sensor plane active surface (e.g., photocathode) and aerogel backplane
0166         - `rmin`:       minimum radial position of a sensor's centroid
0167         - `rmax`:       maximum radial position of a sensor's centroid
0168     </comment>
0169     <plane
0170       sensordist="PFRICH_sensor_dist"
0171       rmin="PFRICH_rmin1 + 2*cm"
0172       rmax="PFRICH_rmax  - 4*cm"
0173       />
0174 
0175     <services>
0176       <comment>
0177         Material should be equivalent with 3x0.5cm Al, spread over the entire available distance.
0178       </comment>
0179       <component name="aluminum" thickness="5*mm"  vis="service_vis" material="Aluminum"/>
0180       <component name="air"      thickness="40*mm" vis="no_vis"      material="Air"/>
0181       <component name="aluminum" thickness="5*mm"  vis="service_vis" material="Aluminum"/>
0182       <component name="air"      thickness="40*mm" vis="no_vis"      material="Air"/>
0183       <component name="aluminum" thickness="5*mm"  vis="service_vis" material="Aluminum"/>
0184     </services>
0185 
0186   </sensors>
0187   </detector>
0188 </detectors>
0189 
0190 <comment>
0191   #### Readout
0192   - segmentation: square matrix of pixels
0193   - `grid_size_x,y`: size of each sensor pixel
0194   - `offset_x,y`: specified such that the `x` and `y` field values are unsigned
0195 </comment>
0196 <readouts>
0197   <readout name="PFRICHHits">
0198     <segmentation
0199       type="CartesianGridXY"
0200       grid_size_x="PFRICH_pixel_pitch"
0201       grid_size_y="PFRICH_pixel_pitch"
0202       offset_x="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0203       offset_y="-0.5*(PFRICH_num_px-1)*PFRICH_pixel_pitch"
0204       />
0205     <id>system:8,module:12,x:32:-16,y:-16</id>
0206   </readout>
0207 </readouts>
0208 
0209 </lccdd>