SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
CalorimeterConfig.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#include <vector>
8
9namespace SHiPGeometry {
10
12enum class LayerCode : int {
13 WidePVT_H = 1,
14 WidePVT_V = 2,
15 ThinPS_H = 3,
16 ThinPS_V = 4,
17 FibreHPL_Y = 5,
18 FibreHPL_X = 6,
19 Absorber = 7,
20 AirGap = 8,
21};
22
42 // ECAL layer sequence
43 std::vector<int> layers;
44
45 // Individual layer thicknesses (mm)
46 double plate_xy_mm = 2160.0;
47 double lead_thickness_mm = 3.0;
48 double scint_thickness_mm = 10.0;
49 double hpl_thickness_mm = 10.0;
50 double fiber_diameter_mm = 1.2;
51 double fiber_core_diameter_mm = -1.0; // <0 → use fiber_diameter_mm
52 double airgap_mm = 1000.0;
53
54 // HCAL layer sequence and absorber thickness
55 std::vector<int> layers2;
56 double iron_thickness_mm = 170.0;
57
58 // Gap between ECAL and HCAL stacks (mm)
59 double gap_ecal_hcal_mm = 0.0;
60
61 // Module tiling
62 int module_nx = 1;
63 int module_ny = 1;
64 double module_pitch_x_mm = 0.0; // 0 → use plate_xy_mm
65 double module_pitch_y_mm = 0.0; // 0 → use plate_xy_mm
66
67 // If true, the layer stack is centred at z=0 in the container volume.
68 bool center_stack = true;
69};
70
81CalorimeterConfig readCaloConfig(const std::string& path);
82
83} // namespace SHiPGeometry
Definition SHiPGeometry.h:8
CalorimeterConfig readCaloConfig(const std::string &path)
Parse a calo.toml file and return a CalorimeterConfig.
Definition CalorimeterConfig.cpp:135
LayerCode
Layer type codes used in the ECAL/HCAL layer sequences.
Definition CalorimeterConfig.h:12
@ FibreHPL_X
HPL fibre layer, fibres along X.
@ ThinPS_H
Thin PS bar layer, bars along X (H orientation)
@ WidePVT_V
Wide PVT bar layer, bars along Y (V orientation)
@ WidePVT_H
Wide PVT bar layer, bars along X (H orientation)
@ Absorber
Absorber plate (Lead in ECAL, Iron in HCAL)
@ FibreHPL_Y
HPL fibre layer, fibres along Y.
@ ThinPS_V
Thin PS bar layer, bars along Y (V orientation)
@ AirGap
Air gap (no volume, just advances z cursor)
Configuration for the SHiP calorimeter geometry.
Definition CalorimeterConfig.h:41
std::vector< int > layers
Definition CalorimeterConfig.h:43
double lead_thickness_mm
Definition CalorimeterConfig.h:47
double airgap_mm
Definition CalorimeterConfig.h:52
int module_ny
Definition CalorimeterConfig.h:63
std::vector< int > layers2
Definition CalorimeterConfig.h:55
double module_pitch_x_mm
Definition CalorimeterConfig.h:64
double scint_thickness_mm
Definition CalorimeterConfig.h:48
double iron_thickness_mm
Definition CalorimeterConfig.h:56
double hpl_thickness_mm
Definition CalorimeterConfig.h:49
double module_pitch_y_mm
Definition CalorimeterConfig.h:65
double fiber_core_diameter_mm
Definition CalorimeterConfig.h:51
int module_nx
Definition CalorimeterConfig.h:62
double fiber_diameter_mm
Definition CalorimeterConfig.h:50
double plate_xy_mm
Definition CalorimeterConfig.h:46
double gap_ecal_hcal_mm
Definition CalorimeterConfig.h:59
bool center_stack
Definition CalorimeterConfig.h:68