SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
MagnetFactory.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;
13
23 public:
24 explicit MagnetFactory(SHiPMaterials& materials);
25 ~MagnetFactory() = default;
26
31 [[nodiscard]] GeoPhysVol* build();
32
33 private:
34 SHiPMaterials& m_materials;
35
36 GeoPhysVol* createYoke();
37 GeoPhysVol* createCoil(const std::string& name);
38 GeoPhysVol* createVerticalConnector(const std::string& name);
39
40 // Yoke dimensions from GDML (half-sizes in mm)
41 // GDML: outer 600×860×280 cm, inner 440×700×282 cm
42 static constexpr double s_yokeOuterHalfX = 3000.0;
43 static constexpr double s_yokeOuterHalfY = 4300.0;
44 static constexpr double s_yokeOuterHalfZ = 1400.0;
45 static constexpr double s_yokeInnerHalfX = 2200.0;
46 static constexpr double s_yokeInnerHalfY = 3500.0;
47 static constexpr double s_yokeInnerHalfZ = 1410.0;
48
49 // Coil dimensions (simplified as boxes)
50 static constexpr double s_coilHalfX = 800.0;
51 static constexpr double s_coilHalfY = 400.0;
52 static constexpr double s_coilHalfZ = 1660.0;
53 static constexpr double s_coilXOffset = 2200.0;
54 static constexpr double s_coilYOffset = 3250.0;
55
56 // Vertical connector dimensions from GDML: 80×650×25 cm
57 static constexpr double s_connectorHalfX = 400.0;
58 static constexpr double s_connectorHalfY = 3250.0;
59 static constexpr double s_connectorHalfZ = 125.0;
60 static constexpr double s_connectorXOffset = 2600.0;
61 static constexpr double s_connectorZOffset = 1525.0; // From GDML positions
62
63 // Container (same as yoke outer for simplicity)
64 static constexpr double s_containerHalfX = 3250.0;
65 static constexpr double s_containerHalfY = 4300.0;
66 static constexpr double s_containerHalfZ = 2500.0;
67};
68
69} // namespace SHiPGeometry
Factory for the Magnet (spectrometer magnet) geometry.
Definition MagnetFactory.h:22
GeoPhysVol * build()
Build the Magnet geometry.
Definition MagnetFactory.cpp:21
Central material manager for the SHiP detector.
Definition SHiPMaterials.h:20
Definition SHiPGeometry.h:8