|
SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
|
The innermost free region of the SBT, and the helium that fills it. More...
#include <SBTEnvelope.h>
Public Attributes | |
| double | z_lo_mm = 0.0 |
| double | z_hi_mm = 0.0 |
| double | dx_lo_mm = 0.0 |
| half-width in X at z_lo | |
| double | dx_hi_mm = 0.0 |
| half-width in X at z_hi | |
| double | dy_lo_mm = 0.0 |
| half-height in Y at z_lo | |
| double | dy_hi_mm = 0.0 |
| half-height in Y at z_hi | |
The innermost free region of the SBT, and the helium that fills it.
The helium decay region must fill the space inside the SBT exactly: it may not protrude into any steel or scintillator, and it may not leave an arbitrary safety margin behind either. That makes its size a consequence of where the SBT material is, never an independent parameter.
This header therefore derives the helium purely from the placement primitives in SBTConstants.h — the same ones SBTStructureBuilder and SBTSensorBuilder place their volumes with. Change a placement rule and the helium follows automatically; there is no second copy of the arithmetic to forget to update. The derivation is constexpr, so an SBT that leaves no decay region fails the build rather than the run.
Two properties of the SBT make this non-trivial, and both are handled here:
Consequently the helium is built as a stack of GeoTraps, two per sub-frustum, each exactly filling the envelope over its Z span. One Z slab of the helium: a GeoTrap with rectangular faces at z_lo/z_hi.
| double SHiPGeometry::SBT::HeliumPiece::dx_hi_mm = 0.0 |
half-width in X at z_hi
| double SHiPGeometry::SBT::HeliumPiece::dx_lo_mm = 0.0 |
half-width in X at z_lo
| double SHiPGeometry::SBT::HeliumPiece::dy_hi_mm = 0.0 |
half-height in Y at z_hi
| double SHiPGeometry::SBT::HeliumPiece::dy_lo_mm = 0.0 |
half-height in Y at z_lo
| double SHiPGeometry::SBT::HeliumPiece::z_hi_mm = 0.0 |
| double SHiPGeometry::SBT::HeliumPiece::z_lo_mm = 0.0 |