Skip to content
Snippets Groups Projects
Commit 8af9d2b6 authored by Christopher Dilks's avatar Christopher Dilks Committed by Whitney Armstrong
Browse files

resolve "Improve dRICh optics"

parent a57b73ce
No related branches found
No related tags found
1 merge request!196resolve "Improve dRICh optics"
......@@ -356,16 +356,16 @@ Examples:
<constant name="TrackerBarrel_zmax" value="TrackerBarrel_length/2.0"/>
<constant name="TrackerBarrelInside_length" value="VertexTrackingRegion_length"/>
<constant name="TrackerBarrelInside_zmax" value="TrackerBarrelInside_length/2.0"/>
<constant name="TrackerEndcapP_length" value="675.0*mm"/>h
<constant name="TrackerEndcapP_length" value="925.0*mm"/>h
<constant name="TrackerEndcapN_length" value="495.0*mm"/>h
<documentation level="0">
### PID Detector Region Parameters
</documentation>
<constant name="ForwardPID_length" value="180.0*cm"/>
<constant name="ForwardPID_rmin1" value="Beampipe_rmax + 80*mm"/>
<constant name="ForwardPID_rmin2" value="19.0*cm"/>
<constant name="ForwardPID_length" value="145.0*cm"/>
<constant name="ForwardPID_rmin1" value="Beampipe_rmax + 90*mm"/>
<constant name="ForwardPID_rmin2" value="18.0*cm"/>
<constant name="BackwardPID_length" value="40.0*cm"/>
<constant name="BackwardPID_rmax" value="TrackerBarrel_rmax"/>
......@@ -424,7 +424,7 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc
<constant name="EcalBarrelEnvelope_thickness" value="40.0*cm"/>
<constant name="EcalBarrel_rmin" value="CentralTracking_rmax + BarrelPIDThickness + BarrelExtraSpaceThickness"/>
<constant name="EcalBarrelForward_length" value="4*cm"/>
<constant name="EcalBarrelForward_length" value="-21*cm"/>
<constant name="EcalBarrelForward_zmax" value="ForwardPID_zmin + EcalBarrelForward_length"/>
<constant name="EcalBarrelBackward_zmax" value="BackwardPID_zmin + BackwardInnerEndcap_length + EcalEndcapN_length"/>
<constant name="EcalBarrel_length" value="EcalBarrelForward_zmax + EcalBarrelBackward_zmax"/>
......
......@@ -94,7 +94,7 @@
<vis name="DRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="DRICH_filter_vis" alpha="1.0" r="1.0" g="1.0" b="0.0" showDaughters="true" visible="true" />
<vis name="DRICH_mirror_vis" ref="AnlGray" showDaughters="true" visible="true" />
<vis name="DRICH_sensor_vis" ref="AnlGreen" showDaughters="true" visible="true" />
<vis name="DRICH_sensor_vis" ref="AnlBlue" showDaughters="true" visible="true" />
<vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
<vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<!-- TODO [low priority]: some of these, viz. radii, could be parameterized
with respect to other variables; for now they are hard coded in case
other detectors' parameters are changing -->
<!-- parameters for re-scaling fun4all design to ATHENA -->
<constant name="DRICH_scale" value="0.963"/> <!-- overall scale factor from fun4all to ATHENA -->
<constant name="DRICH_f4a_length" value="161.0*cm"/> <!-- z-length of fun4all design -->
<!-- vessel (=snout+tank) geometry -->
<constant name="DRICH_zmin" value="ForwardPID_zmin"/> <!-- vessel front -->
<constant name="DRICH_Length" value="ForwardPID_length"/> <!-- overall vessel length (including snout) -->
<constant name="DRICH_rmin0" value="ForwardPID_rmin1"/> <!-- bore radius at dRICh vessel frontplane -->
<constant name="DRICH_rmin1" value="19.0*cm"/> <!-- bore radius at dRICh vessel backplane -->
<constant name="DRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
<constant name="DRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
<!-- tank geometry: cylinder, holding the majority of detector components -->
<constant name="DRICH_rmax2" value="200*cm"/> <!-- cylinder radius; 20 cm gap between dRICh and HCalBarrel -->
<!-- snout geometry: cone with front radius rmax0 and back radius of rmax1 -->
<constant name="DRICH_SnoutLength" value="50.0*cm"/>
<constant name="DRICH_SnoutSlope" value="DRICH_rmax2 / (DRICH_zmin + DRICH_Length)"/>
<constant name="DRICH_rmax0" value="DRICH_SnoutSlope * DRICH_zmin"/>
<constant name="DRICH_rmax1" value="DRICH_SnoutSlope * ( DRICH_zmin + DRICH_SnoutLength)"/>
<!-- additional parameters -->
<constant name="DRICH_aerogel_thickness" value="4.0*cm"/> <!-- aerogel thickness -->
<constant name="DRICH_sensor_size" value="48.0*mm"/> <!-- sensor side length -->
<constant name="DRICH_sensor_thickness" value="35.0*mm"/> <!-- sensor thickness -->
<constant name="DRICH_num_px" value="16"/> <!-- number of pixels along one side of the sensor -->
</define>
<detectors>
<detector
id="ForwardRICH_ID"
name="DRICH"
type="athena_DRICH"
readout="DRICHHits"
gas="C2F6_DRICH"
material="Aluminum"
vis_vessel="DRICH_vessel_vis"
vis_gas="DRICH_gas_vis"
>
<!-- envelope dimensions (see above)
- `wall_thickness`: thickness of radial walls
- `window_thickness`: thickness of entrance and exit disks
-->
<dimensions
z0="DRICH_zmin"
length="DRICH_Length"
snout_length="DRICH_SnoutLength"
rmin0="DRICH_rmin0"
rmin1="DRICH_rmin1"
rmax0="DRICH_rmax0"
rmax1="DRICH_rmax1"
rmax2="DRICH_rmax2"
nsectors="6"
wall_thickness="DRICH_wall_thickness"
window_thickness="DRICH_window_thickness"
/>
<!-- radiator defined in a wedge of azimuthal space
- `phiw` is phi width of wedge
- `thickness` defined separately for aerogel and filter
- `frontplane` is the front of the aerogel, w.r.t. front plane of vessel envelope
- `pitch` controls the angle of the radiator (0=vertical)
- filter is applied to backplane of aerogel
-->
<radiator
rmin="DRICH_rmin0 + DRICH_wall_thickness + 2.0*cm"
rmax="DRICH_rmax0 - DRICH_wall_thickness - 2.0*cm"
phiw="56*degree"
frontplane="DRICH_window_thickness + 0.5*DRICH_aerogel_thickness"
pitch="0*degree"
>
<aerogel
material="Aerogel_DRICH"
vis="DRICH_aerogel_vis"
thickness="DRICH_aerogel_thickness"
/>
<filter
material="Acrylic_DRICH"
vis="DRICH_filter_vis"
thickness="0.3*mm"
/>
</radiator>
<!-- spherical mirror is part of a sphere
- `rmin` and `rmax` provide polar angle boundaries
- `phiw` is the azimuthal width
- `radius` is the radius of the sphere
- `centerx` is the transverse position of the center
of the sphere, for the sector on the +x axis
- the back of the mirror will pass through `backplane`
- set `debug` to 1 so draw reference sphere instead, view with y-clipping
-->
<mirror
material="Acrylic_DRICH"
surface="MirrorSurface_DRICH"
vis="DRICH_mirror_vis"
backplane="DRICH_Length-2.0*cm"
thickness="0.2*cm"
radius="290*DRICH_scale*cm"
centerx="145*DRICH_scale*cm"
rmin="DRICH_rmin1 + DRICH_wall_thickness + 0.0*cm"
rmax="DRICH_rmax2 - DRICH_wall_thickness - 2.0*cm"
phiw="54*degree"
debug="0"
/>
<sensors>
<!-- geometry for a single square sensor
- based on Hamamatsu H13700 MAPMT
(https://www.hamamatsu.com/us/en/product/type/H13700/index.html)
- N.B. not ideal for a magnetic field, SiPM matrix would be better
- effective area: 48.5x48.5mm
- enclosure size: 52x52mm
- 16x16 channel matrix (see readout segmentation below)
- pixel size: 3x3mm
- `side` is the side length of the square
- `thickness` is the depth of the sensor
- `gap` provides room between the squares, to help
prevent them from overlapping
- the value of `side` will determine how many sensors there are,
since the sensor placement algorithm will try to place as many
as it can in the specified patch below
-->
<module
material="Silicon"
surface="SensorSurface_DRICH"
vis="DRICH_sensor_vis"
side="DRICH_sensor_size"
thickness="DRICH_sensor_thickness"
gap="0.5*(52-48)*mm + 2*mm"
/>
<!-- sensors will be tiled on this sphere
- `center{x,y,z} is defined for sector on +x axis, defined w.r.t. snout frontplane,
and `radius` is the sphere radius; the first term of each of these comes from
the fun4all design
- these attributes were determined from a spherical fit to the
sensor placement in the fun4all port
- set `debug` to 1 so draw reference sphere instead, view with y-clipping
-->
<sphere
radius="159.76*DRICH_scale*cm"
centerx="144.91*DRICH_scale*cm"
centery="0*DRICH_scale*cm"
centerz="-197.25*DRICH_scale*cm + DRICH_Length - 0.5*DRICH_scale*DRICH_f4a_length"
debug="0"
/>
<!-- sensors will be limited to a patch of the sphere
- `thetamin` and `thetamax` define pseudorapidity coverage
- `widthfactor` controls the azimuthal coverage, where lower=wider
- `taper` defines half the angle between the azimuthal boundaries
- the size of the sensor controls how many sensors are placed
-->
<sphericalpatch
thetamin="-10*degree"
thetamax="22*degree"
widthfactor="1.8"
taper="56*degree"
/>
</sensors>
</detector>
</detectors>
<readouts>
<readout name="DRICHHits">
<!-- segmentation: square matrix of pixels
- note: for `grid_size`, divide sensor size by 1 less than the
number of pixels, to account for fenceposting
-->
<segmentation
type="CartesianGridXY"
grid_size_x="DRICH_sensor_size/(DRICH_num_px-1)"
grid_size_y="DRICH_sensor_size/(DRICH_num_px-1)"
offset_x="-DRICH_sensor_size/2.0"
offset_y="-DRICH_sensor_size/2.0"
/>
<!-- cellID: 64bits
- offset 0, length 8: dRICh ID
- offset 8, length 3: sector number
- offset 11, length 12: photosensor number
- offset 23, length 16: x pixel
- offset 39, length 16: y pixel
-->
<id>system:8,sector:3,module:12,x:23:16,y:16</id>
</readout>
</readouts>
<define>
<!-- vessel (=snout+tank) geometry -->
<constant name="DRICH_zmin" value="ForwardPID_zmin"/> <!-- vessel front -->
<constant name="DRICH_Length" value="ForwardPID_length"/> <!-- overall vessel length (including snout) -->
<constant name="DRICH_rmin0" value="ForwardPID_rmin1"/> <!-- bore radius at dRICh vessel frontplane -->
<constant name="DRICH_rmin1" value="ForwardPID_rmin2"/> <!-- bore radius at dRICh vessel backplane -->
<constant name="DRICH_wall_thickness" value="0.5*cm"/> <!-- thickness of radial walls -->
<constant name="DRICH_window_thickness" value="0.1*cm"/> <!-- thickness of entrance and exit walls -->
<!-- tank geometry: cylinder, holding the majority of detector components -->
<constant name="DRICH_rmax2" value="200*cm"/> <!-- cylinder radius; 20 cm gap between dRICh and HCalBarrel -->
<!-- snout geometry: cone with front radius rmax0 and back radius of rmax1 -->
<constant name="DRICH_SnoutLength" value="25.0*cm"/>
<constant name="DRICH_SnoutSlope" value="DRICH_rmax2 / (DRICH_zmin + DRICH_Length)"/>
<constant name="DRICH_rmax0" value="DRICH_SnoutSlope * DRICH_zmin"/>
<constant name="DRICH_rmax1" value="DRICH_SnoutSlope * ( DRICH_zmin + DRICH_SnoutLength)"/>
<!-- additional parameters -->
<constant name="DRICH_aerogel_thickness" value="4.0*cm"/> <!-- aerogel thickness -->
<constant name="DRICH_sensor_size" value="48.0*mm"/> <!-- sensor side length -->
<constant name="DRICH_sensor_thickness" value="35.0*mm"/> <!-- sensor thickness -->
<constant name="DRICH_num_px" value="16"/> <!-- number of pixels along one side of the sensor -->
<!-- debugging switches -->
<comment>
- `DRICH_debug_optics`: 1 = all components become vacuum, except for mirrors; test opticalphotons from IP
2 = all components become vacuum, except for mirrors and `gasvol`, test charged particles from IP
0 = off
- `DRICH_debug_mirror`: 1 = draw full mirror shape for single sector; 0 = off
- `DRICH_debug_sensors`: 1 = draw full sensor sphere for a single sector; 0 = off
</comment>
<constant name="DRICH_debug_optics" value="0"/>
<constant name="DRICH_debug_mirror" value="0"/>
<constant name="DRICH_debug_sensors" value="0"/>
</define>
<detectors>
<!-- /detectors/detector -->
<documentation level="10">
### dRICh: ***d***ual ***R***ing ***I***maging ***Ch***erenkov detector
</documentation>
<detector
id="ForwardRICH_ID"
name="DRICH"
type="athena_DRICH"
readout="DRICHHits"
gas="C2F6_DRICH"
material="Aluminum"
vis_vessel="DRICH_vessel_vis"
vis_gas="DRICH_gas_vis"
debug_optics="DRICH_debug_optics"
>
<!-- /detectors/detector/dimensions -->
<documentation level="10">
#### Vessel
- the dRICh vessel is composed of two parts:
- tank: cylindrical region containing most of the detector components
- snout: conical region at the front of the vessel, containing the aerogel
- dimensions:
- `zmin`: z-position of vessel front plane
- `length`: overall z-length of the full vessel
- `snout_length`: length of cone-shaped snout region, housing aerogel
- `rmin0` and `rmin1`: bore radius at front plane and back plane, respectively
- `rmax0` and `rmax1`: outer radius of snout at front plane and snout-back (tank-front) plane, respectively
- `rmax2`: outer radius of tank, the main cylindrical vessel volume
- `nsectors`: number of azimuthal sectors
- `wall_thickness`: thickness of radial walls
- `window_thickness`: thickness of entrance and exit disks
</documentation>
<dimensions
zmin="DRICH_zmin"
length="DRICH_Length"
snout_length="DRICH_SnoutLength"
rmin0="DRICH_rmin0"
rmin1="DRICH_rmin1"
rmax0="DRICH_rmax0"
rmax1="DRICH_rmax1"
rmax2="DRICH_rmax2"
nsectors="6"
wall_thickness="DRICH_wall_thickness"
window_thickness="DRICH_window_thickness"
/>
<!-- /detectors/detector/radiator -->
<documentation level="10">
#### Radiator
- radiator is defined in a wedge of azimuthal space, composed of aerogel and a
filter; the filter is applied to the back of the aerogel, so that it separates
the aerogel and gas radiators
- dimensions:
- `phiw`: azimuthal width of wedge
- `thickness`: radiator thickness, defined separately for aerogel and filter
- `frontplane`: front of the aerogel, w.r.t. front plane of the vessel envelope
- `pitch`: controls the angle of the radiator (0=vertical)
</documentation>
<radiator
rmin="DRICH_rmin0 + DRICH_wall_thickness + 2.0*cm"
rmax="DRICH_rmax0 - DRICH_wall_thickness - 2.0*cm"
phiw="60*degree"
frontplane="DRICH_window_thickness + 0.5*DRICH_aerogel_thickness"
pitch="0*degree"
>
<aerogel
material="Aerogel_DRICH"
vis="DRICH_aerogel_vis"
thickness="DRICH_aerogel_thickness"
/>
<filter
material="Acrylic_DRICH"
vis="DRICH_filter_vis"
thickness="0.3*mm"
/>
</radiator>
<!-- /detectors/detector/mirror -->
<documentation level="10">
#### Spherical mirror
- spherical mirrors are built from spherical patches, and positioned near the
vessel back plane, separately for each sector
- dimensions:
- `backplane`: the position of the maximum z-plane intersected by the sphere,
w.r.t. the back plane of vessel envelope
- `rmin` and `rmax`: polar angle boundaries
- `phiw`: azimuthal width of one sector
- `thickness` is the radial thickness of the mirror; note that `backplane` is given for the
reflective mirror surface, the inner radius of the sphere
- `focus_tune*` are tuning parameters for the focal plane:
- linearly retune focal point, using a real number; reference numbers are:
- 0.0: disabled, ideal focus at sensor sphere center
- 1.0: ideal focus re-tuned to be on sensor sphere
- `focus_tune_long` moves toward centroid sensor, while `focus_tune_perp` moves transverse
to this direction; movements are in the xz-plane only
- due to aberrations, ideal focus may not coincide with apparent focal region
- other settings:
- `debug`: set to 1 so draw reference sphere instead, view with y-clipping
</documentation>
<mirror
material="Acrylic_DRICH"
surface="MirrorSurface_DRICH"
vis="DRICH_mirror_vis"
backplane="DRICH_window_thickness + 5.0*cm"
rmin="DRICH_rmin1 + DRICH_wall_thickness - 1.0*cm"
rmax="DRICH_rmax2 - DRICH_wall_thickness - 5.0*cm"
phiw="59.5*degree"
thickness="0.2*cm"
focus_tune_long="0.5"
focus_tune_perp="0.2"
debug="DRICH_debug_mirror"
/>
<!-- /detectors/detector/sensors -->
<documentation level="10">
#### Sensors
</documentation>
<sensors>
<!-- /detectors/detector/sensors/module -->
<documentation level="10">
##### Sensor module
- based on [Hamamatsu H13700 MAPMT](https://www.hamamatsu.com/us/en/product/type/H13700/index.html):
- not ideal for a magnetic field, SiPM matrix would be better
- effective area: 48.5x48.5 mm
- enclosure size: 52x52 mm
- 16x16 channel matrix (cf. readout segmentation below)
- pixel size: 3x3 mm
- dimensions:
- `side`: side length of the square module
- `thickness`: thickness of the sensor module
- `gap`: provides room between the squares, to help prevent them from overlapping
- note: the value of `side` will determine how many sensors there are, since the
sensor placement algorithm will try to place as many as it can in the specified
spherical patch below
</documentation>
<module
material="Silicon"
surface="SensorSurface_DRICH"
vis="DRICH_sensor_vis"
side="DRICH_sensor_size"
thickness="DRICH_sensor_thickness"
gap="0.5*(52-48)*mm + 2*mm"
/>
<!-- /detectors/detector/sensors/{sphere,sphericalpatch} -->
<documentation level="10">
##### Sensor sphere
- sensors will be placed on a sphere, using a "disco ball" tiling algorithm; each
sector has its own sensor sphere
- sphere dimensions:
- `centerx` and `centerz`: sphere center, defined w.r.t. vessel front plane,
for the sector on +x axis
- `radius`: radius of the sensor sphere
- other settings:
- `debug`: set to 1 so draw reference sphere instead, view with y-clipping
- sensors will be limited to a patch of the sphere
- patch dimensions:
- `phiw`: defines half the angle between the azimuthal boundaries
- `rmin` and `rmax`: radial cut boundaries
- `zmin`: z-plane cut
</documentation>
<sphere
centerz="-112.0 * cm"
centerx="DRICH_rmax2 - 35.0*cm"
radius="160.0 * cm"
debug="DRICH_debug_sensors"
/>
<sphericalpatch
phiw="18*degree"
rmin="DRICH_rmax1 + 10.0*cm"
rmax="DRICH_rmax2 - 5.0*cm"
zmin="DRICH_SnoutLength + 5.0*cm"
/>
</sensors>
</detector>
</detectors>
<documentation level="10">
#### Readout
- segmentation: square matrix of pixels
- `grid_size_x,y`: size of each sensor, but note we must divide sensor size
by 1 less than the number of pixels, to account for fenceposting
- `offset_x,y`: specified such that the `x` and `y` indicators are unsigned
- indicators and `cellID` bits:
| indicator | offset | length |
|-----------|--------|--------|
| dRICh ID | 0 | 8 |
| sector | 8 | 3 |
| sensor | 11 | 12 |
| x pixel | 23 | 16 |
| y pixel | 39 | 16 |
</documentation>
<readouts>
<readout name="DRICHHits">
<segmentation
type="CartesianGridXY"
grid_size_x="DRICH_sensor_size/(DRICH_num_px-1)"
grid_size_y="DRICH_sensor_size/(DRICH_num_px-1)"
offset_x="-DRICH_sensor_size/2.0"
offset_y="-DRICH_sensor_size/2.0"
/>
<id>system:8,sector:3,module:12,x:23:16,y:16</id>
</readout>
</readouts>
</lccdd>
......@@ -675,6 +675,14 @@
<property name="RINDEX" ref="RINDEX__Air"/>
<property name="ABSLENGTH" coldim="2" values="1*eV 200*m 5*eV 200*m"/>
</material>
<material name="VacuumOptical">
<D type="density" unit="g/cm3" value="0.0000000001"/>
<fraction n="0.754" ref="N"/>
<fraction n="0.234" ref="O"/>
<fraction n="0.012" ref="Ar"/>
<property name="RINDEX" ref="RINDEX__Vacuum"/>
<property name="ABSLENGTH" coldim="2" values="1*eV 2000*m 5*eV 2000*m"/>
</material>
<material name="N2cherenkov">
<D type="density" value="0.00125" unit="g/cm3"/>
<composite n="1" ref="N"/>
......
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
<debug>
<type name="surface" value="0"/>
<type name="material" value="0"/>
<type name="readout" value="0"/>
<type name="segmentation" value="0"/>
<type name="limits" value="0"/>
<type name="region" value="0"/>
<type name="includes" value="0"/>
</debug>
<documentation level="-1">
# Athena Detector
- https://eicweb.phy.anl.gov/EIC/detectors/athena.git
- https://eicweb.phy.anl.gov/EIC/detectors/ip6.git
</documentation>
<!-- Some information about detector -->
<info name="Athena Detector" title="Athena Detector"
author="Athena Collaboration"
url="https://eicweb.phy.anl.gov/EIC/detectors/athena.git"
status="development"
version="v1 2021-03-16">
<comment> Athena </comment>
</info>
<define>
<documentation level="2">
## Main Constant Definitions
The ip6 (or other ip) defines should be included first.
These files have only a define tags.
</documentation>
<include ref="ip6/ip6_defs.xml" />
<include ref="compact/definitions.xml" />
</define>
<includes>
<gdmlFile ref="compact/elements.xml"/>
<gdmlFile ref="compact/materials.xml"/>
<file ref="compact/optical_materials.xml"/>
</includes>
<limits>
<limitset name="EICBeamlineLimits">
<limit name="step_length_max" particles="*" value="1.0" unit="mm" />
<limit name="track_length_max" particles="*" value="1.0" unit="mm" />
<limit name="time_max" particles="*" value="0.1" unit="ns" />
<limit name="ekin_min" particles="*" value="0.001" unit="MeV" />
<limit name="range_min" particles="*" value="0.1" unit="mm" />
</limitset>
<limitset name="cal_limits">
<limit name="step_length_max" particles="*" value="5.0" unit="mm"/>
</limitset>
</limits>
<display>
<include ref="compact/colors.xml" />
<!--include ref="compact/colors2.xml"/-->
<include ref="compact/display.xml" />
<!--include ref="compact/display_detailed.xml"/-->
</display>
<documentation level="0">
## Detector Subsystems
### IP Subsystems
The interaction point subsystems are included before the central detector subsystems.
This is becuase the IP subsystems, for exmaple the beampipe, will define paramters
which are subsquently used in the central detector construction -- e.g. the vertex tracker
uses the beampipe OD to help define its placement.
The IP subsystems include the Far forward and backward regions. The list of subsystem includes:
- Interaction region beampipe
- B0 tracker
- Off-momentum tracker
- Far forward roman pots
- Zero Degree Calorimeter
- Beam line magnets.
- and more...
</documentation>
<documentation level="10">
### dRICh only
</documentation>
<include ref="compact/drich.xml" />
<fields>
<field name="B0PF_Magnet" type="MultipoleMagnet">
<position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/>
<rotation x="0" y="B0PF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/>
<coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/>
<!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
</field>
<field name="B0APF_Magnet" type="MultipoleMagnet">
<position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/>
<rotation x="0" y="B0APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/>
<coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/>
<!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> -->
</field>
<field name="Q1APF_Magnet" type="MultipoleMagnet">
<position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/>
<rotation x="0" y="Q1APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/>
<coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="Q1BPF_Magnet" type="MultipoleMagnet">
<position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/>
<rotation x="0" y="Q1BPF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/>
<coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="Q2PF_Magnet" type="MultipoleMagnet">
<position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/>
<rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/>
<shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/>
<coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B1PF_Magnet" type="MultipoleMagnet">
<position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/>
<rotation x="0" y="B1PF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/>
<coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B1APF_Magnet" type="MultipoleMagnet">
<position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/>
<rotation x="0" y="B1APF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/>
<coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/>
</field>
<field name="B2PF_Magnet" type="MultipoleMagnet">
<position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/>
<rotation x="0" y="B2PF_RotationAngle" z="0"/>
<shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/>
<coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/>
<coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/>
</field>
</fields>
<comment>
FB elements
-----------
None (TODO)
What is FB?
</comment>
<readouts>
</readouts>
</lccdd>
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment