|
SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
|
Compile-time parameters of the SHiP calorimeter geometry. More...
Enumerations | |
| enum class | LayerCode { WidePVT_H , WidePVT_V , ThinPS_H , ThinPS_V , FibreHPL_Y , FibreHPL_X , Absorber , AirGap } |
| Layer types used in the ECAL/HCAL layer sequences. More... | |
Functions | |
| constexpr double | layerThickness (LayerCode code, double absorberThickness) |
| Z advance of one layer of the given type (mm). | |
| constexpr double | sectionZ (std::span< const LayerCode > codes, double absorberThickness) |
| Z extent of one calorimeter section (mm). | |
| constexpr int | sectionVolumeCount (std::span< const LayerCode > codes) |
| Child volumes one section contributes to the container, per module. | |
Variables | |
| constexpr double | kPlateXY = 2160.0 |
| constexpr double | kLeadThickness = 3.0 |
| constexpr double | kScintThickness = 10.0 |
| constexpr double | kHplThickness = 10.0 |
| constexpr double | kFiberDiameter = 1.2 |
| constexpr double | kFiberCoreDiameter = 1.0 |
| constexpr double | kIronThickness = 170.0 |
| constexpr double | kAirGap = 1000.0 |
| Air gap within the ECAL layer sequence (mm). | |
| constexpr double | kGapEcalHcal = 100.0 |
| Gap between the ECAL and HCAL stacks (mm). | |
| constexpr double | kWidePVTBarPitch = 60.0 |
| constexpr double | kThinPSBarPitch = 10.0 |
| constexpr int | kModuleNX = 2 |
| constexpr int | kModuleNY = 3 |
| constexpr double | kModulePitchX = kPlateXY |
| constexpr double | kModulePitchY = kPlateXY |
| constexpr auto | kEcalLayers |
| ECAL layer sequence. | |
| constexpr auto | kHcalLayers |
| HCAL layer sequence (Absorber means iron here rather than lead). | |
| constexpr double | kContainerHalfX = 3000.0 |
| constexpr double | kContainerHalfY = 3500.0 |
| constexpr double | kContainerHalfZ = 1450.0 |
| constexpr double | kTotalStackZ |
| Total Z extent of one ECAL+gap+HCAL stack (mm). | |
| constexpr int | kVolsPerModule |
| Child volumes one module contributes to the container. | |
| constexpr int | kWidePVTBarCount = static_cast<int>(kPlateXY / kWidePVTBarPitch) |
| Bars per layer, from the plate size and the bar pitch. | |
| constexpr int | kThinPSBarCount = static_cast<int>(kPlateXY / kThinPSBarPitch) |
Compile-time parameters of the SHiP calorimeter geometry.
All lengths are raw doubles in mm (GeoModel's native unit). The invariants of these constants are static_asserts at the bottom of this header.
|
strong |
Layer types used in the ECAL/HCAL layer sequences.
|
constexpr |
Z advance of one layer of the given type (mm).
The absorber thickness differs between the ECAL (lead) and HCAL (iron) sections.
|
constexpr |
Child volumes one section contributes to the container, per module.
Every layer places exactly one volume directly under the container (a layer envelope, or the bare iron plate in the HCAL); AirGap places none and only advances the z cursor.
|
constexpr |
Z extent of one calorimeter section (mm).
|
inlineconstexpr |
Air gap within the ECAL layer sequence (mm).
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
ECAL layer sequence.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Gap between the ECAL and HCAL stacks (mm).
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Total Z extent of one ECAL+gap+HCAL stack (mm).
|
inlineconstexpr |
Child volumes one module contributes to the container.
|
inlineconstexpr |
Bars per layer, from the plate size and the bar pitch.
|
inlineconstexpr |