aegir
Phlex-based simulation framework for the SHiP experiment.
Loading...
Searching...
No Matches
geometry_source.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 CERN for the benefit of the SHiP Collaboration
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5// geometry_source.hpp — Interface for pluggable geometry sources
6//
7// Implementations provide the G4 world volume and declare which logical
8// volumes should be instrumented with sensitive detectors.
9//
10// This type is used as a phlex data product (Job-layer Provider).
11
12#pragma once
13
14#include <G4VPhysicalVolume.hh>
15#include <string>
16#include <vector>
17
18namespace SHiP {
19
21 public:
22 virtual ~IGeometrySource() = default;
23
28 [[nodiscard]] virtual G4VPhysicalVolume* construct() const = 0;
29
32 [[nodiscard]] virtual std::vector<std::string> const& sensitiveVolumes()
33 const = 0;
34};
35
36} // namespace SHiP
Definition geometry_source.hpp:20
virtual ~IGeometrySource()=default
virtual G4VPhysicalVolume * construct() const =0
Build or return the cached G4 world volume.
virtual std::vector< std::string > const & sensitiveVolumes() const =0
Volume names to assign sensitive detectors to.
Definition detector_construction.hpp:31