39void G4DNAUpdateSystemModel::KillMolecule(
const Index& index, MolType type)
43 auto iter = node.find(type);
44 if(iter != node.end())
50 <<
"G4DNAUpdateSystemModel::KillMolecule::molecule : "
51 << type->GetName() <<
" index : " << index
52 <<
" number : " << iter->second <<
G4endl;
53 G4Exception(
"G4DNAEventScheduler::Stepping",
"G4DNAEventScheduler002",
66 if(pScavengerMaterial !=
nullptr)
75 <<
"index : " << index <<
" " << type->GetName()
76 <<
" This molecule is not belong scavengers or particle-base"
78 G4Exception(
"G4DNAEventScheduler::Stepping",
"G4DNAEventScheduler002",
84void G4DNAUpdateSystemModel::JumpTo(
const Index& index, MolType type)
87 auto iter = node.find(type);
88 if(iter != node.end())
93 exceptionDescription <<
"G4DNAUpdateSystemModel::JumpTo::molecule : "
94 << type->GetName() <<
" index : " << index
95 <<
" number : " << iter->second;
96 G4Exception(
"G4DNAUpdateSystemModel::JumpTo",
"G4DNAUpdateSystemModel001",
105 exceptionDescription <<
"index : " << index <<
" " << type->GetName()
106 <<
" There is no this type";
107 G4Exception(
"G4DNAUpdateSystemModel::JumpTo",
"G4DNAUpdateSystemModel002",
112void G4DNAUpdateSystemModel::CreateMolecule(
const Index& index, MolType type)
117 if(pScavengerMaterial !=
nullptr && pScavengerMaterial->find(type))
125 auto iter = node.find(type);
126 if(iter != node.end())
141void G4DNAUpdateSystemModel::JumpIn(
const Index& index, MolType type)
145 auto iter = node.find(type);
146 if(iter != node.end())
165 <<
" Reaction : " << reactant1->GetName() <<
" + "
166 << reactant2->GetName() <<
" -> ";
172 for(
G4int j = 0; j < nbProducts; ++j)
175 if((fVerbose != 0) && j != 0)
202 KillMolecule(index, reactant1);
203 KillMolecule(index, reactant2);
209 auto reactant = std::get<0>(data);
210 auto JunpToIndex = std::get<1>(data);
215 <<
" Jumping : " << reactant->GetName() <<
" from " << index
216 <<
" -> " << JunpToIndex <<
G4endl;
219 JumpTo(index, reactant);
220 JumpIn(JunpToIndex, reactant);
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4GLOB_DLL std::ostream G4cout
void PrintVoxel(const Index &index)
Data & GetVoxelMapList(const Index &index)
Reactant * GetProduct(G4int i) const
Reactant * GetReactant1() const
Reactant * GetReactant2() const
G4int GetNbProducts() const
void ReduceNumberMoleculePerVolumeUnitForMaterialConf(MolType, G4double)
void AddNumberMoleculePerVolumeUnitForMaterialConf(MolType, G4double)
std::pair< MolType, Index > JumpingData
void SetMesh(G4DNAMesh *)
void UpdateSystem(const Index &index, const ReactionData &data)
const G4String & GetName() const
static G4Scheduler * Instance()
G4VScavengerMaterial * GetScavengerMaterial() const
virtual void RemoveAMoleculeAtTime(Reactant *, G4double time, const G4ThreeVector *position=nullptr, int number=1)=0
static G4VMoleculeCounter * Instance()
virtual void AddAMoleculeAtTime(Reactant *, G4double time, const G4ThreeVector *position=nullptr, int number=1)=0