27#ifndef G4DNASCAVENGERMATERIAL_HH
28#define G4DNASCAVENGERMATERIAL_HH
45 std::map<G4double, int64_t, G4::MoleculeCounter::TimePrecision>;
68 void Reset()
override;
72 MaterialMap::iterator
end() {
return fScavengerTable.end(); }
73 MaterialMap::iterator
begin() {
return fScavengerTable.begin(); }
74 size_t size() {
return fScavengerTable.size(); }
78 auto it = fScavengerTable.find(type);
79 if(it != fScavengerTable.end())
81 return it->second > 0;
94 std::vector<MolType> output;
95 for(
const auto& it : fScavengerTable)
97 output.push_back(it.first);
112 G4bool fCounterAgainstTime;
119 Search() { fLowerBoundSet =
false; }
120 CounterMapType::iterator fLastMoleculeSearched;
121 NbMoleculeInTime::iterator fLowerBoundTime;
125 std::unique_ptr<Search> fpLastSearch;
126 void WaterEquilibrium();
G4double GetNumberMoleculePerVolumeUnitForMaterialConf(MolType) const
MaterialMap::iterator end()
int64_t SearchUpperBoundTime(G4double time, G4bool sameTypeOfMolecule)
G4DNAScavengerMaterial & operator=(const G4DNAScavengerMaterial &)=delete
std::vector< MolType > GetScavengerList() const
std::map< MolType, NbMoleculeInTime > CounterMapType
void ReduceNumberMoleculePerVolumeUnitForMaterialConf(MolType, G4double)
~G4DNAScavengerMaterial() override=default
std::map< G4double, int64_t, G4::MoleculeCounter::TimePrecision > NbMoleculeInTime
void SetpH(const G4int &ph)
void AddAMoleculeAtTime(MolType, G4double time, const G4ThreeVector *position=nullptr, G4int number=1)
MaterialMap::iterator begin()
std::map< MolType, int64_t > MaterialMap
G4bool find(MolType type)
int64_t GetNMoleculesAtTime(MolType molecule, G4double time)
std::vector< MolType > ReactantList
void AddNumberMoleculePerVolumeUnitForMaterialConf(MolType, G4double)
G4DNAScavengerMaterial()=default
G4bool SearchTimeMap(MolType molecule)
void SetCounterAgainstTime()
void RemoveAMoleculeAtTime(MolType, G4double time, const G4ThreeVector *position=nullptr, G4int number=1)
G4DNAScavengerMaterial(const G4DNAScavengerMaterial &right)=delete
const G4MolecularConfiguration * MolType
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
static G4MoleculeTable * Instance()