27#ifndef G4DNASCAVENGERMATERIAL_HH
28#define G4DNASCAVENGERMATERIAL_HH
43 std::map<G4double, int64_t, G4::MoleculeCounter::TimePrecision>;
66 void Reset()
override;
70 MaterialMap::iterator
end() {
return fScavengerTable.end(); }
71 MaterialMap::iterator
begin() {
return fScavengerTable.begin(); }
72 size_t size() {
return fScavengerTable.size(); }
76 auto it = fScavengerTable.find(type);
77 if(it != fScavengerTable.end())
79 return it->second > 0;
91 std::vector<MolType> output;
92 for(
const auto& it : fScavengerTable)
94 output.push_back(it.first);
109 G4bool fCounterAgainstTime;
113 Search() { fLowerBoundSet =
false; }
114 CounterMapType::iterator fLastMoleculeSearched;
115 NbMoleculeInTime::iterator fLowerBoundTime;
119 std::unique_ptr<Search> fpLastSearch;
std::map< G4double, int64_t, G4::MoleculeCounter::TimePrecision > NbMoleculeInTime
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
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