SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
MuonShieldFactory.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 <GeoModelKernel/Units.h>
7
8class GeoPhysVol;
9
10namespace SHiPGeometry {
11
12class SHiPMaterials;
13
24 public:
25 explicit MuonShieldFactory(SHiPMaterials& materials);
26 ~MuonShieldFactory() = default;
27
28 [[nodiscard]] GeoPhysVol* build();
29
30 private:
31 SHiPMaterials& m_materials;
32
33 // Unit shorthand (GeoModel's native length unit is mm)
34 static constexpr double mm = GeoModelKernelUnits::mm;
35
36 struct PieceData {
37 double halfX, halfY, halfZ; // bounding-box half-sizes
38 double centX, centY; // centre offset in station XY frame
39 const char* name; // piece name suffix
40 };
41
42 struct StationData {
43 const char* name; // station name
44 double stationZ; // z in MuonShieldArea frame
45 double containerHalfX;
46 double containerHalfY;
47 double containerHalfZ;
48 PieceData pieces[8];
49 };
50
51 // GDML-derived station data for all 6 stations × 8 pieces
52 static const StationData k_stations[6];
53
54 GeoPhysVol* buildStation(const StationData& station);
55
56 // MuonShieldArea container dimensions
57 static constexpr double s_areaHalfX = 1810.0 * mm;
58 static constexpr double s_areaHalfY = 1700.0 * mm;
59 static constexpr double s_areaHalfZ = 14724.0 * mm;
60};
61
62} // namespace SHiPGeometry
Factory for the MuonShield (muon shield magnets) geometry.
Definition MuonShieldFactory.h:23
GeoPhysVol * build()
Definition MuonShieldFactory.cpp:162
Central material manager for the SHiP detector.
Definition SHiPMaterials.h:20
Definition ConfigPath.h:9