337 ReactivesMV::iterator itReactives;
339 map<G4MolecularConfiguration*, map<G4MolecularConfiguration*, G4bool> > alreadyPrint;
341 G4cout <<
"Number of chemical species involved in reactions = " 355 const vector<G4MolecularConfiguration*>* reactivesVector =
CanReactWith(moleculeA);
361 for (
G4int iReact = 0; iReact < nbReactants; iReact++)
371 if (!alreadyPrint[moleculeA][moleculeB])
373 outputReaction[
n] = moleculeA->
GetName() +
" + " + moleculeB->GetName();
381 for (
G4int j = 1; j < nbProducts; j++)
388 outputReaction[
n] +=
" -> No product";
399 if (pReactionModel) interactionRange =
402 if (interactionRange != -1)
412 alreadyPrint[moleculeB][moleculeA] =
TRUE;
424 G4int maxlengthOutputReaction = -1;
425 G4int maxlengthOutputReactionRate = -1;
427 for (
G4int i = 0; i <
n; i++)
429 if (maxlengthOutputReaction < (
G4int) outputReaction[i].length())
431 maxlengthOutputReaction = outputReaction[i].length();
433 if (maxlengthOutputReactionRate < (
G4int) outputReactionRate[i].length())
435 maxlengthOutputReactionRate = outputReactionRate[i].length();
439 maxlengthOutputReaction += 2;
440 maxlengthOutputReactionRate += 2;
442 if (maxlengthOutputReaction < 10) maxlengthOutputReaction = 10;
443 if (maxlengthOutputReactionRate < 30) maxlengthOutputReactionRate = 30;
447 if (pReactionModel) title =
new G4String[3];
450 title[0] =
"Reaction";
451 title[1] =
"Reaction Rate [dm3/(mol*s)]";
453 if (pReactionModel) title[2] =
454 "Interaction Range for chosen reaction model [nm]";
456 G4cout << setfill(
' ') << setw(maxlengthOutputReaction) <<
left << title[0]
457 << setw(maxlengthOutputReactionRate) <<
left << title[1];
459 if (pReactionModel)
G4cout << setw(2) <<
left << title[2];
464 if (pReactionModel)
G4cout.width(
465 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
466 + (
G4int) title[2].length());
467 else G4cout.width(maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
471 for (
G4int i = 0; i <
n; i++)
473 G4cout << setw(maxlengthOutputReaction) <<
left << outputReaction[i]
474 << setw(maxlengthOutputReactionRate) <<
left 475 << outputReactionRate[i];
477 if (pReactionModel)
G4cout << setw(2) <<
left << outputRange[i];
482 if (pReactionModel)
G4cout.width(
483 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
484 + (
G4int) title[2].length());
486 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
492 delete[] outputReaction;
493 delete[] outputReactionRate;
494 delete[] outputRange;
const G4String & GetName() const
static const double nanometer
G4MolecularConfiguration * GetProduct(G4int i) const
static G4String ConvertToString(G4bool boolVal)
G4GLOB_DLL std::ostream G4cout
void SetReactionTable(const G4DNAMolecularReactionTable *)
virtual G4double GetReactionRadius(G4MolecularConfiguration *, G4MolecularConfiguration *)=0
G4double GetObservedReactionRateConstant() const
G4int GetNbProducts() const
const G4DNAMolecularReactionTable * GetReactionTable()
ReactionDataMap fReactionData
virtual void InitialiseToPrint(G4MolecularConfiguration *)=0
const std::vector< G4MolecularConfiguration * > * CanReactWith(G4MolecularConfiguration *) const