SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
CalorimeterFactory.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
8class GeoPhysVol;
9
10namespace SHiPGeometry {
11
12class SHiPMaterials;
13struct CalorimeterConfig;
14
29 public:
30 explicit CalorimeterFactory(SHiPMaterials& materials, std::string configPath = "calo.toml");
32
34 [[nodiscard]] GeoPhysVol* build();
35
42 static double totalStackZ(const CalorimeterConfig& cfg);
43
44 private:
45 SHiPMaterials& m_materials;
46 std::string m_configPath;
47
49 void buildStack(GeoPhysVol* container, const CalorimeterConfig& cfg, int moduleX, int moduleY,
50 double offsetX, double offsetY) const;
51
52 // ── Fixed container dimensions (mm) ─────────────────────────────────
53 // These match the SHiP subsystem envelope from subsystem_envelopes.csv
54 // and must not change — tests and the consistency check depend on them.
55 static constexpr double s_containerHalfX = 3000.0; // 3.00 m
56 static constexpr double s_containerHalfY = 3500.0; // 3.50 m
57 static constexpr double s_containerHalfZ = 1450.0; // 1.45 m
58};
59
60} // namespace SHiPGeometry
Factory for the Calorimeter (ECAL + HCAL) geometry.
Definition CalorimeterFactory.h:28
static double totalStackZ(const CalorimeterConfig &cfg)
Compute the total Z extent of one ECAL+gap+HCAL stack (mm).
Definition CalorimeterFactory.cpp:67
GeoPhysVol * build()
Build and return the calorimeter container volume.
Definition CalorimeterFactory.cpp:101
Central material manager for the SHiP detector.
Definition SHiPMaterials.h:20
Definition SHiPGeometry.h:8
Configuration for the SHiP calorimeter geometry.
Definition CalorimeterConfig.h:41