338 ReactivesMV::iterator itReactives;
340 map<G4MolecularConfiguration*, map<G4MolecularConfiguration*, G4bool> > alreadyPrint;
342 G4cout <<
"Number of chemical species involved in reactions = "
356 const vector<G4MolecularConfiguration*>* reactivesVector =
CanReactWith(moleculeA);
362 for (
G4int iReact = 0; iReact < nbReactants; iReact++)
372 if (!alreadyPrint[moleculeA][moleculeB])
374 outputReaction[
n] = moleculeA->
GetName() +
" + " + moleculeB->GetName();
382 for (
G4int j = 1; j < nbProducts; j++)
389 outputReaction[
n] +=
" -> No product";
400 if (pReactionModel) interactionRange =
403 if (interactionRange != -1)
413 alreadyPrint[moleculeB][moleculeA] =
TRUE;
425 G4int maxlengthOutputReaction = -1;
426 G4int maxlengthOutputReactionRate = -1;
428 for (
G4int i = 0; i <
n; i++)
430 if (maxlengthOutputReaction < (
G4int) outputReaction[i].length())
432 maxlengthOutputReaction = outputReaction[i].length();
434 if (maxlengthOutputReactionRate < (
G4int) outputReactionRate[i].length())
436 maxlengthOutputReactionRate = outputReactionRate[i].length();
440 maxlengthOutputReaction += 2;
441 maxlengthOutputReactionRate += 2;
443 if (maxlengthOutputReaction < 10) maxlengthOutputReaction = 10;
444 if (maxlengthOutputReactionRate < 30) maxlengthOutputReactionRate = 30;
448 if (pReactionModel) title =
new G4String[3];
451 title[0] =
"Reaction";
452 title[1] =
"Reaction Rate [dm3/(mol*s)]";
454 if (pReactionModel) title[2] =
455 "Interaction Range for chosen reaction model [nm]";
457 G4cout << setfill(
' ') << setw(maxlengthOutputReaction) << left << title[0]
458 << setw(maxlengthOutputReactionRate) << left << title[1];
460 if (pReactionModel)
G4cout << setw(2) << left << title[2];
465 if (pReactionModel)
G4cout.width(
466 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
467 + (
G4int) title[2].length());
468 else G4cout.width(maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
472 for (
G4int i = 0; i <
n; i++)
474 G4cout << setw(maxlengthOutputReaction) << left << outputReaction[i]
475 << setw(maxlengthOutputReactionRate) << left
476 << outputReactionRate[i];
478 if (pReactionModel)
G4cout << setw(2) << left << outputRange[i];
483 if (pReactionModel)
G4cout.width(
484 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
485 + (
G4int) title[2].length());
487 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
493 delete[] outputReaction;
494 delete[] outputReactionRate;
495 delete[] outputRange;
const G4String & GetName() const
static G4String ConvertToString(G4bool boolVal)
static constexpr double nanometer
static constexpr double m3
G4double GetObservedReactionRateConstant() const
G4GLOB_DLL std::ostream G4cout
void SetReactionTable(const G4DNAMolecularReactionTable *)
virtual G4double GetReactionRadius(G4MolecularConfiguration *, G4MolecularConfiguration *)=0
G4int GetNbProducts() const
const G4DNAMolecularReactionTable * GetReactionTable()
ReactionDataMap fReactionData
static constexpr double mole
const std::vector< G4MolecularConfiguration * > * CanReactWith(G4MolecularConfiguration *) const
G4MolecularConfiguration * GetProduct(G4int i) const
virtual void InitialiseToPrint(G4MolecularConfiguration *)=0