SHiP Geometry
SHiP experiment geometry implementation using GeoModel.
Loading...
Searching...
No Matches
TimingDetectorFactory.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
28 public:
29 explicit TimingDetectorFactory(SHiPMaterials& materials);
31
33 [[nodiscard]] GeoPhysVol* build();
34
36 int barCount() const { return m_barCount; }
37
38 private:
39 SHiPMaterials& m_materials;
40 int m_barCount{0};
41
42 // Container dimensions
43 static constexpr double s_containerHalfX = 2750.0 * GeoModelKernelUnits::mm;
44 static constexpr double s_containerHalfY = 3250.0 * GeoModelKernelUnits::mm;
45 static constexpr double s_containerHalfZ = 250.0 * GeoModelKernelUnits::mm;
46
47 // Bar dimensions
48 static constexpr double s_barHalfX = 700.0 * GeoModelKernelUnits::mm; // 140 cm full length
49 static constexpr double s_barHalfY = 30.0 * GeoModelKernelUnits::mm; // 6 cm full width
50 static constexpr double s_barHalfZ = 5.0 * GeoModelKernelUnits::mm; // 1 cm full thickness
51
52 // Bar grid layout
53 static constexpr int s_nColumns = 3;
54 static constexpr int s_nRows = 110;
55 static constexpr double s_columnPitchX =
56 1300.0 * GeoModelKernelUnits::mm; // column spacing in X
57 static constexpr double s_rowY0 = -3220.0 * GeoModelKernelUnits::mm; // first-row Y
58 static constexpr double s_rowStepY =
59 6440.0 / 109.0 * GeoModelKernelUnits::mm; // row pitch ≈ 59.083 mm
60 static constexpr double s_zStaggerRow = 12.0 * GeoModelKernelUnits::mm; // odd-row Z offset
61 static constexpr double s_zStaggerCol = 90.0 * GeoModelKernelUnits::mm; // odd-column Z offset
62};
63
64} // namespace SHiPGeometry
Central material manager for the SHiP detector.
Definition SHiPMaterials.h:20
Factory for the TimingDetector (TimeDet) geometry.
Definition TimingDetectorFactory.h:27
GeoPhysVol * build()
Build the TimingDetector geometry and return the container volume.
Definition TimingDetectorFactory.cpp:22
int barCount() const
Number of bars placed during the last build() call.
Definition TimingDetectorFactory.h:36
Definition ConfigPath.h:9