SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
SBTConfig.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) CERN for the benefit of the SHiP Collaboration
3
4#pragma once
5
6#include <string>
7
8namespace SHiPGeometry {
9
17struct SBTConfig {
18 // ── Frustum envelope ────────────────────────────────────────────────
19 double x_half_entrance_mm = 1000.0;
20 double y_half_entrance_mm = 1500.0;
21 double x_half_exit_mm = 2000.0;
22 double y_half_exit_mm = 3000.0;
23 double total_length_mm = 50000.0;
24 int n_sub_frustum = 10;
25 double y_floor_mm = -3000.0;
26 double z_entrance_mm = -25000.0;
27
28 // ── H-beam cross-section (HEA 260 approximation) ────────────────────
29 double hbeam_height_mm = 250.0;
30 double hbeam_flange_width_mm = 260.0;
33
34 // ── Sensor containers / cells ───────────────────────────────────────
35 double container_thickness_mm = 225.0;
36 double wall_thickness_mm = 5.0;
37 int n_cells = 6;
38 double sensor_clearance_mm = 1.0;
39
40 // ── Helium decay region ─────────────────────────────────────────────
41 double helium_clearance_mm = 10.0;
42
43 // ── Material names (resolved from SHiPMaterials) ────────────────────
44 std::string material_steel = "Iron";
45 std::string material_wall = "Aluminium";
46 std::string material_cell = "LAB";
47 std::string material_helium = "PressurisedHe90";
48 std::string material_air = "Air";
49
50 // ── Derived quantities ──────────────────────────────────────────────
52 double subLength() const { return total_length_mm / n_sub_frustum; }
54 double webHeight() const { return hbeam_height_mm - 2.0 * hbeam_flange_thickness_mm; }
56 int nWalls() const { return n_cells + 1; }
57};
58
67SBTConfig readSBTConfig(const std::string& path);
68
69} // namespace SHiPGeometry
Definition SHiPGeometry.h:8
SBTConfig readSBTConfig(const std::string &path)
Parse an sbt.toml file and return an SBTConfig.
Definition SBTConfig.cpp:115
Configuration for the Surround Background Tagger (SBT) geometry.
Definition SBTConfig.h:17
int n_sub_frustum
Definition SBTConfig.h:24
double z_entrance_mm
Definition SBTConfig.h:26
std::string material_steel
Definition SBTConfig.h:44
int nWalls() const
Number of aluminium walls per container (n_cells + 1).
Definition SBTConfig.h:56
std::string material_wall
Definition SBTConfig.h:45
double sensor_clearance_mm
Definition SBTConfig.h:38
double total_length_mm
Definition SBTConfig.h:23
double hbeam_flange_thickness_mm
Definition SBTConfig.h:31
double subLength() const
Length of one sub-frustum along Z (mm).
Definition SBTConfig.h:52
double y_half_entrance_mm
Definition SBTConfig.h:20
double container_thickness_mm
Definition SBTConfig.h:35
std::string material_helium
Definition SBTConfig.h:47
double y_half_exit_mm
Definition SBTConfig.h:22
std::string material_cell
Definition SBTConfig.h:46
double x_half_entrance_mm
Definition SBTConfig.h:19
double webHeight() const
Clear web height = height - 2*flange thickness (mm).
Definition SBTConfig.h:54
std::string material_air
Definition SBTConfig.h:48
double helium_clearance_mm
Definition SBTConfig.h:41
double y_floor_mm
Definition SBTConfig.h:25
double x_half_exit_mm
Definition SBTConfig.h:21
double hbeam_flange_width_mm
Definition SBTConfig.h:30
double hbeam_height_mm
Definition SBTConfig.h:29
int n_cells
Definition SBTConfig.h:37
double hbeam_web_thickness_mm
Definition SBTConfig.h:32
double wall_thickness_mm
Definition SBTConfig.h:36