G4OCCT 0.1.0
Geant4 interface to Open CASCADE Technology (OCCT) geometry definitions
Loading...
Searching...
No Matches
G4OCCTAssemblyVolume.hh
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later
2// Copyright (C) 2026 G4OCCT Contributors
3
6
7#ifndef G4OCCT_G4OCCTAssemblyVolume_hh
8#define G4OCCT_G4OCCTAssemblyVolume_hh
9
13
14#include <G4AssemblyVolume.hh>
15#include <G4String.hh>
16
17// OCCT (forward-declared where possible; full includes in .cc)
18#include <TDF_Label.hxx>
19#include <gp_Trsf.hxx>
20
21#include <map>
22#include <string>
23
75class G4OCCTAssemblyVolume : public G4AssemblyVolume {
76public:
79
107 static G4OCCTAssemblyVolume* FromSTEP(const std::string& path,
108 const G4OCCTMaterialMap& materialMap);
109
117 const std::map<G4String, G4OCCTLogicalVolume*>& GetLogicalVolumes() const {
118 return fLogicalVolumes;
119 }
120
137 std::size_t ApplySDMap(const G4OCCTSensitiveDetectorMap& sdMap);
138
139private:
141 std::map<G4String, G4OCCTLogicalVolume*> fLogicalVolumes;
142
144 struct BuildContext;
145
157 static void ImportLabel(const TDF_Label& label, G4AssemblyVolume* parentAssembly,
158 const gp_Trsf& composedTrsf, BuildContext& ctx);
159};
160
161#endif // G4OCCT_G4OCCTAssemblyVolume_hh
Declaration of G4OCCTLogicalVolume.
Declaration of G4OCCTMaterialMap.
Declaration of G4OCCTSensitiveDetectorMap.
Extends Geant4's G4AssemblyVolume with an OCCT XDE label reference.
G4OCCTAssemblyVolume()=default
~G4OCCTAssemblyVolume()=default
const std::map< G4String, G4OCCTLogicalVolume * > & GetLogicalVolumes() const
std::size_t ApplySDMap(const G4OCCTSensitiveDetectorMap &sdMap)
static G4OCCTAssemblyVolume * FromSTEP(const std::string &path, const G4OCCTMaterialMap &materialMap)
Maps STEP material names to Geant4 G4Material objects.
Maps volume name patterns to Geant4 G4VSensitiveDetector objects.