|
|
|||
File indexing completed on 2026-01-07 10:14:28
0001 //------------------------------- -*- C++ -*- -------------------------------// 0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details 0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT) 0004 //---------------------------------------------------------------------------// 0005 //! \file orange/g4org/Volume.hh 0006 //---------------------------------------------------------------------------// 0007 #pragma once 0008 0009 #include <memory> 0010 #include <vector> 0011 0012 #include "corecel/io/Label.hh" 0013 #include "geocel/GeoParamsInterface.hh" 0014 #include "orange/OrangeTypes.hh" 0015 #include "orange/transform/VariantTransform.hh" 0016 0017 class G4LogicalVolume; 0018 0019 namespace celeritas 0020 { 0021 namespace orangeinp 0022 { 0023 class ObjectInterface; 0024 } 0025 0026 namespace g4org 0027 { 0028 //---------------------------------------------------------------------------// 0029 struct LogicalVolume; 0030 0031 //---------------------------------------------------------------------------// 0032 /*! 0033 * An unconstructed ORANGE CSG Object with a transform. 0034 * 0035 * This holds equivalent information to a Geant4 \c G4VPhysicalVolume, but with 0036 * \em only ORANGE data structures. 0037 */ 0038 struct PhysicalVolume 0039 { 0040 using ReplicaId = GeantPhysicalInstance::ReplicaId; 0041 0042 //! Corresponding Geant4 physical volume 0043 VolumeInstanceId id; 0044 //! Replica/parameterization (see GeantGeoParams::id_to_geant TODO) 0045 ReplicaId replica_id; 0046 0047 VariantTransform transform; 0048 std::shared_ptr<LogicalVolume const> lv; 0049 }; 0050 0051 //---------------------------------------------------------------------------// 0052 /*! 0053 * A reusable object that can be turned into a UnitProto or a Material. 0054 * 0055 * This holds equivalent information to a Geant4 \c G4LogicalVolume, but with 0056 * \em only ORANGE data structures. 0057 */ 0058 struct LogicalVolume 0059 { 0060 using SPConstObject = std::shared_ptr<orangeinp::ObjectInterface const>; 0061 0062 //! Corresponding Geant4 logical volume 0063 VolumeId id; 0064 //! Filled material ID 0065 GeoMatId material_id; 0066 0067 //! "Unplaced" parent shape 0068 SPConstObject solid; 0069 //! Embedded child volumes 0070 std::vector<PhysicalVolume> children; 0071 }; 0072 0073 //---------------------------------------------------------------------------// 0074 } // namespace g4org 0075 } // namespace celeritas
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|