34 : fEquilibriumDuration(time), fRectionType(type)
48 for(
const auto& it : reactionList)
50 if(it->GetReactionType()==fRectionType)
52 if(it->GetReactant1() != H2O
53 && it->GetReactant1() != H3OpB
54 && it->GetReactant1() != OHmB)
56 fReactant1 = it->GetReactant1();
57 fReactantB1 = it->GetReactant2();
60 fReactant1 = it->GetReactant2();
61 fReactantB1 = it->GetReactant1();
63 for(
const auto& itt : *(it->GetProducts()))
75 G4cout <<
"Equilibrium processes(ID) " << fRectionType <<
" : " << fReactant1->GetName()
76 <<
" <=> " << fReactant2->GetName()
77 <<
" Time to Equilibrium : " << fEquilibriumDuration / CLHEP::us
78 <<
" Initial status : " << fAddEquilibrium <<
G4endl;
87 G4cout<<
"Equilibrium reactions : "<<fReactant1->GetName()
88 <<
" + "<<fReactantB1->GetName()
89 <<
" <=> "<<fReactant2->GetName()
90 <<
" + "<<fReactantB2->GetName()
91 <<
" Status : "<<fAddEquilibrium
92 <<
" from "<<
G4BestUnit(fEquilibriumTime,
"Time")<<
" to "
99 if(pReaction ==
nullptr){
104 std::vector<MolType> molVector;
109 for (
G4int j = 0; j < nbProducts; ++j) {
111 molVector.push_back(product);
114 for(
const auto& it : molVector)
116 if(it == fReactant1 || it == fReactant2 )
118 fAddEquilibrium =
true;
119 fEquilibriumTime = fGlobalTime;
125 G4cout <<
"SetEquilibrium : on " << fRectionType <<
" fEquilibriumTime : "
G4GLOB_DLL std::ostream G4cout
const G4DNAMolecularReactionData * Reaction
G4ChemEquilibrium(const G4int &type, const G4double &time)
void SetEquilibrium(Reaction pReaction)
const G4MolecularConfiguration * MolType
Reactant * GetProduct(G4int i) const
G4int GetReactionType() const
Reactant * GetReactant1() const
Reactant * GetReactant2() const
G4int GetNbProducts() const
DataList GetVectorOfReactionData()
static G4DNAMolecularReactionTable * Instance()
const G4String & GetName() const
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
static G4MoleculeTable * Instance()