27#ifndef G4DNASCAVENGERMATERIAL_HH
28#define G4DNASCAVENGERMATERIAL_HH
46 std::map<G4double, int64_t, G4::MoleculeCounter::FixedTimeComparer>;
69 void Reset()
override;
73 MaterialMap::iterator
end() {
return fScavengerTable.end(); }
74 MaterialMap::iterator
begin() {
return fScavengerTable.begin(); }
75 size_t size() {
return fScavengerTable.size(); }
79 auto it = fScavengerTable.find(type);
80 if(it != fScavengerTable.end())
82 return it->second > 0;
93 std::vector<MolType> output;
94 for(
const auto& it : fScavengerTable)
96 output.push_back(it.first);
115 G4bool fCounterAgainstTime;
122 Search() { fLowerBoundSet =
false; }
123 CounterMapType::iterator fLastMoleculeSearched;
124 NbMoleculeInTime::iterator fLowerBoundTime;
128 std::unique_ptr<Search> fpLastSearch;
129 void WaterEquilibrium();
131 std::map<G4int,std::unique_ptr<G4ChemEquilibrium>> fEquilibriumProcesses;
CLHEP::Hep3Vector G4ThreeVector
G4double GetNumberMoleculePerVolumeUnitForMaterialConf(MolType) const
MaterialMap::iterator end()
G4bool IsEquilibrium(const G4int &reactionType) const
int64_t SearchUpperBoundTime(G4double time, G4bool sameTypeOfMolecule)
G4DNAScavengerMaterial & operator=(const G4DNAScavengerMaterial &)=delete
G4bool SetEquilibrium(const G4DNAMolecularReactionData *pReaction, G4double time)
std::vector< MolType > GetScavengerList() const
std::map< G4double, int64_t, G4::MoleculeCounter::FixedTimeComparer > NbMoleculeInTime
std::map< MolType, NbMoleculeInTime > CounterMapType
void ReduceNumberMoleculePerVolumeUnitForMaterialConf(MolType, G4double)
~G4DNAScavengerMaterial() override=default
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()
G4VScavengerMaterial()=default