File indexing completed on 2026-09-13 09:10:58
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #ifndef G4VCHEMISTRYWORLD_HH
0029 #define G4VCHEMISTRYWORLD_HH
0030
0031 #include <memory>
0032 #include <map>
0033 #include "globals.hh"
0034 class G4DNABoundingBox;
0035 class G4Material;
0036 class G4MolecularConfiguration;
0037 class G4VChemistryWorld
0038 {
0039 public:
0040 using MolType = const G4MolecularConfiguration*;
0041 G4VChemistryWorld() = default;
0042 virtual ~G4VChemistryWorld() = default;
0043
0044 virtual void ConstructChemistryBoundary() = 0;
0045 virtual void ConstructChemistryComponents() = 0;
0046
0047 std::map<MolType,double>::iterator begin()
0048 {
0049 return fpChemicalComponent.begin();
0050 }
0051
0052 std::map<MolType,double>::iterator end()
0053 {
0054 return fpChemicalComponent.end();
0055 }
0056
0057 size_t size()
0058 {
0059 return fpChemicalComponent.size();
0060 }
0061
0062 std::map<MolType,double>::const_iterator begin_const()
0063 {
0064 return fpChemicalComponent.begin();
0065 }
0066
0067 std::map<MolType,double>::const_iterator end_const()
0068 {
0069 return fpChemicalComponent.end();
0070 }
0071
0072 G4DNABoundingBox* GetChemistryBoundary() const
0073 {
0074 return fpChemistryBoundary.get();
0075 }
0076
0077 std::map<MolType,G4double> GetChemicalComponent() const
0078 {
0079 return fpChemicalComponent;
0080 }
0081 protected:
0082 std::unique_ptr<G4DNABoundingBox> fpChemistryBoundary;
0083 std::map<MolType,G4double> fpChemicalComponent;
0084 };
0085
0086 #endif