Geant4-11
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
G4DNAMolecularReactionTable Class Reference

#include <G4DNAMolecularReactionTable.hh>

Inheritance diagram for G4DNAMolecularReactionTable:
G4ITReactionTable

Public Types

using Data = const G4DNAMolecularReactionData
 
using DataList = std::vector< Data * >
 
using Reactant = const G4MolecularConfiguration
 
using ReactantList = std::vector< Reactant * >
 
using ReactionDataMap = std::map< Reactant *, SpecificDataList >
 
using ReactionDataMV = std::map< Reactant *, DataList >
 
using ReactivesMV = std::map< Reactant *, ReactantList >
 
using SpecificDataList = std::map< Reactant *, Data * >
 

Public Member Functions

const ReactantListCanReactWith (Reactant *) const
 
const ReactionDataMapGetAllReactionData ()
 
G4VDNAMolecularGeometryGetGeometry () const
 
size_t GetNReactions () const
 
DataGetReaction (int reactionID) const
 
const DataListGetReactionData (const G4MolecularConfiguration *) const
 
DataGetReactionData (const G4String &, const G4String &) const
 
DataGetReactionData (Reactant *, Reactant *) const
 
const SpecificDataListGetReativesNData (const G4MolecularConfiguration *) const
 
DataList GetVectorOfReactionData ()
 
void PrintTable (G4VDNAReactionModel *=0)
 
void ScaleReactionRateForNewTemperature (double temp_K)
 
void SetGeometry (G4VDNAMolecularGeometry *geometry)
 
void SetReaction (G4DNAMolecularReactionData *)
 
void SetReaction (G4double observedReactionRate, Reactant *reactive1, Reactant *reactive2)
 
virtual ~G4DNAMolecularReactionTable ()
 

Static Public Member Functions

static void DeleteInstance ()
 
static G4DNAMolecularReactionTableGetReactionTable ()
 
static G4DNAMolecularReactionTableInstance ()
 

Protected Member Functions

 G4DNAMolecularReactionTable ()
 

Protected Attributes

G4VDNAMolecularGeometryfGeometry
 
std::unique_ptr< G4ReactionTableMessengerfpMessenger
 
ReactivesMV fReactantsMV
 
ReactionDataMap fReactionData
 
ReactionDataMV fReactionDataMV
 
std::vector< std::unique_ptr< Data > > fVectorOfReactionData
 
G4bool fVerbose
 

Static Protected Attributes

static G4DNAMolecularReactionTablefpInstance
 

Detailed Description

G4DNAMolecularReactionTable sorts out the G4DNAMolecularReactionData for bimolecular reaction

Definition at line 175 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

◆ Data

Definition at line 188 of file G4DNAMolecularReactionTable.hh.

◆ DataList

Definition at line 190 of file G4DNAMolecularReactionTable.hh.

◆ Reactant

Definition at line 187 of file G4DNAMolecularReactionTable.hh.

◆ ReactantList

Definition at line 189 of file G4DNAMolecularReactionTable.hh.

◆ ReactionDataMap

Definition at line 193 of file G4DNAMolecularReactionTable.hh.

◆ ReactionDataMV

Definition at line 195 of file G4DNAMolecularReactionTable.hh.

◆ ReactivesMV

Definition at line 194 of file G4DNAMolecularReactionTable.hh.

◆ SpecificDataList

Definition at line 191 of file G4DNAMolecularReactionTable.hh.

Constructor & Destructor Documentation

◆ G4DNAMolecularReactionTable()

G4DNAMolecularReactionTable::G4DNAMolecularReactionTable ( )
protected

Definition at line 382 of file G4DNAMolecularReactionTable.cc.

Referenced by GetReactionTable(), and Instance().

◆ ~G4DNAMolecularReactionTable()

G4DNAMolecularReactionTable::~G4DNAMolecularReactionTable ( )
virtualdefault

Member Function Documentation

◆ CanReactWith()

const G4DNAMolecularReactionTable::ReactantList * G4DNAMolecularReactionTable::CanReactWith ( Reactant pMolecule) const

Given a molecule's type, it returns with which a reaction is allowed

Definition at line 656 of file G4DNAMolecularReactionTable.cc.

657{
658 if (fReactantsMV.empty())
659 {
660 G4String errMsg = "No reaction table was implemented";
661 G4Exception("G4MolecularInteractionTable::CanReactWith", "",
662 FatalErrorInArgument, errMsg);
663 return 0;
664 }
665
666 auto itReactivesMap = fReactantsMV.find(pMolecule);
667
668 if (itReactivesMap == fReactantsMV.end())
669 {
670#ifdef G4VERBOSE
671 if (fVerbose)
672 {
673 G4String errMsg = "No reaction table was implemented for this molecule : "
674 + pMolecule->GetName();
675 // G4Exception("G4MolecularInteractionTable::CanReactWith","",FatalErrorInArgument, errMsg);
676 G4cout << "--- G4MolecularInteractionTable::GetReactionData ---" << G4endl;
677 G4cout << errMsg << G4endl;
678 }
679#endif
680 return nullptr;
681 }
682
683 if (fVerbose)
684 {
685 G4cout << " G4MolecularInteractionTable::CanReactWith :" << G4endl;
686 G4cout << "You are checking reactants for : " << pMolecule->GetName() << G4endl;
687 G4cout << " the number of reactants is : " << itReactivesMap->second.size() << G4endl;
688
689 auto itProductsVector = itReactivesMap->second.cbegin();
690
691 for (; itProductsVector != itReactivesMap->second.end(); itProductsVector++)
692 {
693 G4cout << (*itProductsVector)->GetName() << G4endl;
694 }
695 }
696 return &(itReactivesMap->second);
697}
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

References FatalErrorInArgument, fReactantsMV, fVerbose, G4cout, G4endl, G4Exception(), and G4MolecularConfiguration::GetName().

Referenced by G4DNAIRTMoleculeEncounterStepper::CalculateStep(), G4DNAMoleculeEncounterStepper::CalculateStep(), G4DNAIndependentReactionTimeStepper::CalculateStep(), PrintTable(), G4DNAIRT::Sampling(), and G4DNAIRT_geometries::Sampling().

◆ DeleteInstance()

void G4DNAMolecularReactionTable::DeleteInstance ( )
static

Definition at line 371 of file G4DNAMolecularReactionTable.cc.

372{
373 if (fpInstance)
374 {
375 delete fpInstance;
376 }
377 fpInstance = nullptr;
378}
static G4DNAMolecularReactionTable * fpInstance

References fpInstance.

Referenced by G4DNAChemistryManager::Clear().

◆ GetAllReactionData()

const G4DNAMolecularReactionTable::ReactionDataMap & G4DNAMolecularReactionTable::GetAllReactionData ( )

Definition at line 636 of file G4DNAMolecularReactionTable.cc.

637{
638 return fReactionData;
639}

References fReactionData.

◆ GetGeometry()

G4VDNAMolecularGeometry * G4DNAMolecularReactionTable::GetGeometry ( ) const

Definition at line 596 of file G4DNAMolecularReactionTable.cc.

597{
598 return fGeometry;
599}

References fGeometry.

Referenced by G4DNAIRT_geometries::Initialize().

◆ GetNReactions()

size_t G4DNAMolecularReactionTable::GetNReactions ( ) const

Definition at line 830 of file G4DNAMolecularReactionTable.cc.

831{
832 return fVectorOfReactionData.size();
833}
std::vector< std::unique_ptr< Data > > fVectorOfReactionData

References fVectorOfReactionData.

◆ GetReaction()

G4DNAMolecularReactionTable::Data * G4DNAMolecularReactionTable::GetReaction ( int  reactionID) const

Definition at line 818 of file G4DNAMolecularReactionTable.cc.

819{
820 for (auto& pData : fVectorOfReactionData)
821 {
822 if (pData->GetReactionID() == reactionID)
823 {
824 return pData.get();
825 }
826 }
827 return nullptr;
828}

References fVectorOfReactionData.

◆ GetReactionData() [1/3]

const G4DNAMolecularReactionTable::DataList * G4DNAMolecularReactionTable::GetReactionData ( const G4MolecularConfiguration molecule) const

Definition at line 737 of file G4DNAMolecularReactionTable.cc.

738{
739 if (fReactionDataMV.empty())
740 {
741 G4String errMsg = "No reaction table was implemented";
742 G4Exception("G4MolecularInteractionTable::CanInteractWith", "",
743 FatalErrorInArgument, errMsg);
744 }
745 auto it = fReactionDataMV.find(molecule);
746
747 if (it == fReactionDataMV.end())
748 {
749 G4String errMsg = "No reaction table was implemented for this molecule Definition : "
750 + molecule->GetName();
751 G4Exception("G4MolecularInteractionTable::GetReactionData", "", FatalErrorInArgument, errMsg);
752 }
753
754 return &(it->second);
755}
const G4String & GetName() const

References FatalErrorInArgument, fReactionDataMV, G4Exception(), and G4MolecularConfiguration::GetName().

◆ GetReactionData() [2/3]

G4DNAMolecularReactionTable::Data * G4DNAMolecularReactionTable::GetReactionData ( const G4String mol1,
const G4String mol2 
) const

Definition at line 759 of file G4DNAMolecularReactionTable.cc.

761{
762 const auto pConf1 = G4MoleculeTable::GetMoleculeTable()->GetConfiguration(mol1);
763 const auto pConf2 = G4MoleculeTable::GetMoleculeTable()->GetConfiguration(mol2);
764 return GetReactionData(pConf1, pConf2);
765}
Data * GetReactionData(Reactant *, Reactant *) const
static G4MoleculeTable * GetMoleculeTable()
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

References G4MoleculeTable::GetConfiguration(), G4MoleculeTable::GetMoleculeTable(), and GetReactionData().

◆ GetReactionData() [3/3]

G4DNAMolecularReactionTable::Data * G4DNAMolecularReactionTable::GetReactionData ( Reactant pReactant1,
Reactant pReactant2 
) const

Definition at line 602 of file G4DNAMolecularReactionTable.cc.

604{
605 if (fReactionData.empty())
606 {
607 G4String errMsg = "No reaction table was implemented";
608 G4Exception("G4MolecularInteractionTable::GetReactionData", "",
609 FatalErrorInArgument, errMsg);
610 }
611
612 auto it1 = fReactionData.find(pReactant1);
613
614 if (it1 == fReactionData.end())
615 {
616 G4String errMsg =
617 "No reaction table was implemented for this molecule Definition : " + pReactant1
618 ->GetName();
619 G4Exception("G4MolecularInteractionTable::GetReactionData", "",
620 FatalErrorInArgument, errMsg);
621 }
622
623 ReactionDataMap::mapped_type::const_iterator it2 = it1->second.find(pReactant2);
624
625 if (it2 == it1->second.end())
626 {
627 G4cout << "Name : " << pReactant2->GetName() << G4endl;
628 G4String errMsg = "No reaction table was implemented for this molecule : "
629 + pReactant2->GetName();
630 G4Exception("G4MolecularInteractionTable::GetReactionData", "", FatalErrorInArgument, errMsg);
631 }
632
633 return (it2->second);
634}

References FatalErrorInArgument, fReactionData, G4cout, G4endl, G4Exception(), and G4MolecularConfiguration::GetName().

Referenced by G4DNAPartiallyDiffusionControlled::GeminateRecombinationProbability(), G4DNAIRT::GetIndependentReactionTime(), G4DNAIRT_geometries::GetIndependentReactionTime(), GetReactionData(), G4DNASmoluchowskiReactionModel::GetReactionRadius(), G4DiffusionControlledReactionModel::GetReactionRadius(), G4DNAIndependentReactionTimeStepper::GetReactionType(), G4DNAPartiallyDiffusionControlled::GetTimeToEncounter(), G4DNATotallyDiffusionControlled::GetTimeToEncounter(), G4DNASmoluchowskiReactionModel::Initialise(), G4DiffusionControlledReactionModel::Initialise(), G4DNASmoluchowskiReactionModel::InitialiseToPrint(), G4DiffusionControlledReactionModel::InitialiseToPrint(), G4DNAIRT::MakeReaction(), G4DNAIRT_geometries::MakeReaction(), G4DNAMakeReaction::MakeReaction(), G4DNAMolecularReaction::MakeReaction(), G4DNAIRT::Sampling(), and G4DNAIRT_geometries::Sampling().

◆ GetReactionTable()

G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::GetReactionTable ( )
static

◆ GetReativesNData()

const G4DNAMolecularReactionTable::SpecificDataList * G4DNAMolecularReactionTable::GetReativesNData ( const G4MolecularConfiguration molecule) const

Definition at line 702 of file G4DNAMolecularReactionTable.cc.

703{
704 if (fReactionData.empty())
705 {
706 G4String errMsg = "No reaction table was implemented";
707 G4Exception("G4MolecularInteractionTable::CanInteractWith", "",
708 FatalErrorInArgument, errMsg);
709 }
710
711 ReactionDataMap::const_iterator itReactivesMap = fReactionData.find(molecule);
712
713 if (itReactivesMap == fReactionData.end())
714 {
715 return nullptr;
716 }
717
718 if (fVerbose)
719 {
720 G4cout << " G4MolecularInteractionTable::CanReactWith :" << G4endl;
721 G4cout << "You are checking reactants for : " << molecule->GetName() << G4endl;
722 G4cout << " the number of reactants is : " << itReactivesMap->second.size() << G4endl;
723
724 SpecificDataList::const_iterator itProductsVector = itReactivesMap->second.begin();
725
726 for (; itProductsVector != itReactivesMap->second.end(); itProductsVector++)
727 {
728 G4cout << itProductsVector->first->GetName() << G4endl;
729 }
730 }
731 return &(itReactivesMap->second);
732}

References FatalErrorInArgument, fReactionData, fVerbose, G4cout, G4endl, G4Exception(), and G4MolecularConfiguration::GetName().

◆ GetVectorOfReactionData()

G4DNAMolecularReactionTable::DataList G4DNAMolecularReactionTable::GetVectorOfReactionData ( )

Definition at line 641 of file G4DNAMolecularReactionTable.cc.

642{
643 DataList dataList;
644
645 for (const auto& pData : fVectorOfReactionData)
646 {
647 dataList.emplace_back(pData.get());
648 }
649
650 return dataList;
651}

References fVectorOfReactionData.

Referenced by G4DNAGillespieDirectMethod::Reaction().

◆ Instance()

G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::Instance ( void  )
static

◆ PrintTable()

void G4DNAMolecularReactionTable::PrintTable ( G4VDNAReactionModel pReactionModel = 0)

Definition at line 424 of file G4DNAMolecularReactionTable.cc.

425{
426 // Print Reactions and Interaction radius for jump step = 3ps
427
428 G4IosFlagsSaver iosfs(G4cout);
429
430 if (pReactionModel && !(pReactionModel->GetReactionTable()))
431 {
432 pReactionModel->SetReactionTable(this);
433 }
434
435 ReactivesMV::iterator itReactives;
436
437 std::map<Reactant*, std::map<Reactant*, G4bool>> alreadyPrint;
438
439 G4cout << "Number of chemical species involved in reactions = "
440 << fReactantsMV.size() << G4endl;
441
442 G4int nbPrintable = fReactantsMV.size() * fReactantsMV.size();
443
444 G4String* outputReaction = new G4String[nbPrintable];
445 G4String* outputReactionRate = new G4String[nbPrintable];
446 G4String* outputRange = new G4String[nbPrintable];
447 G4int n = 0;
448
449 for (itReactives = fReactantsMV.begin(); itReactives != fReactantsMV.end();
450 itReactives++)
451 {
452 Reactant* moleculeA = (Reactant*)itReactives->first;
453 const vector<Reactant*>* reactivesVector = CanReactWith(moleculeA);
454
455 if (pReactionModel) pReactionModel->InitialiseToPrint(moleculeA);
456
457 G4int nbReactants = fReactantsMV[itReactives->first].size();
458
459 for (G4int iReact = 0; iReact < nbReactants; iReact++)
460 {
461 auto moleculeB = (Reactant*)(*reactivesVector)[iReact];
462
463 Data* reactionData = fReactionData[moleculeA][moleculeB];
464
465 //-----------------------------------------------------------
466 // Name of the reaction
467 if (!alreadyPrint[moleculeA][moleculeB])
468 {
469 outputReaction[n] = moleculeA->GetName() + " + " + moleculeB->GetName();
470
471 G4int nbProducts = reactionData->GetNbProducts();
472
473 if (nbProducts)
474 {
475 outputReaction[n] += " -> " + reactionData->GetProduct(0)->GetName();
476
477 for (G4int j = 1; j < nbProducts; j++)
478 {
479 outputReaction[n] += " + " + reactionData->GetProduct(j)->GetName();
480 }
481 }
482 else
483 {
484 outputReaction[n] += " -> No product";
485 }
486
487 //-----------------------------------------------------------
488 // Interaction Rate
489 outputReactionRate[n] = G4UIcommand::ConvertToString(
490 reactionData->GetObservedReactionRateConstant() / (1e-3 * m3 / (mole * s)));
491
492 //-----------------------------------------------------------
493 // Calculation of the Interaction Range
494 G4double interactionRange = -1;
495 if (pReactionModel) interactionRange =
496 pReactionModel->GetReactionRadius(iReact);
497
498 if (interactionRange != -1)
499 {
500 outputRange[n] = G4UIcommand::ConvertToString(
501 interactionRange / nanometer);
502 }
503 else
504 {
505 outputRange[n] = "";
506 }
507
508 alreadyPrint[moleculeB][moleculeA] = TRUE;
509 n++;
510 }
511 }
512 }
513 // G4cout<<"Number of possible reactions: "<< n << G4endl;
514
516 // Tableau dynamique en fonction du nombre de caractere maximal dans
517 // chaque colonne
519
520 G4int maxlengthOutputReaction = -1;
521 G4int maxlengthOutputReactionRate = -1;
522
523 for (G4int i = 0; i < n; i++)
524 {
525 if (maxlengthOutputReaction < (G4int)outputReaction[i].length())
526 {
527 maxlengthOutputReaction = outputReaction[i].length();
528 }
529 if (maxlengthOutputReactionRate < (G4int)outputReactionRate[i].length())
530 {
531 maxlengthOutputReactionRate = outputReactionRate[i].length();
532 }
533 }
534
535 maxlengthOutputReaction += 2;
536 maxlengthOutputReactionRate += 2;
537
538 if (maxlengthOutputReaction < 10) maxlengthOutputReaction = 10;
539 if (maxlengthOutputReactionRate < 30) maxlengthOutputReactionRate = 30;
540
541 G4String* title;
542
543 if (pReactionModel) title = new G4String[3];
544 else title = new G4String[2];
545
546 title[0] = "Reaction";
547 title[1] = "Reaction Rate [dm3/(mol*s)]";
548
549 if (pReactionModel) title[2] =
550 "Interaction Range for chosen reaction model [nm]";
551
552 G4cout << setfill(' ') << setw(maxlengthOutputReaction) << left << title[0]
553 << setw(maxlengthOutputReactionRate) << left << title[1];
554
555 if (pReactionModel) G4cout << setw(2) << left << title[2];
556
557 G4cout << G4endl;
558
559 G4cout.fill('-');
560 if (pReactionModel) G4cout.width(
561 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
562 + (G4int)title[2].length());
563 else G4cout.width(maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
564 G4cout << "-" << G4endl;
565 G4cout.fill(' ');
566
567 for (G4int i = 0; i < n; i++)
568 {
569 G4cout << setw(maxlengthOutputReaction) << left << outputReaction[i]
570 << setw(maxlengthOutputReactionRate) << left
571 << outputReactionRate[i];
572
573 if (pReactionModel) G4cout << setw(2) << left << outputRange[i];
574
575 G4cout << G4endl;
576
577 G4cout.fill('-');
578 if (pReactionModel) G4cout.width(
579 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
580 + (G4int)title[2].length());
581 else G4cout.width(
582 maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
583 G4cout << "-" << G4endl;
584 G4cout.fill(' ');
585 }
586
587 delete[] title;
588 delete[] outputReaction;
589 delete[] outputReactionRate;
590 delete[] outputRange;
591}
static constexpr double mole
Definition: G4SIunits.hh:279
static constexpr double s
Definition: G4SIunits.hh:154
static constexpr double m3
Definition: G4SIunits.hh:111
static constexpr double nanometer
Definition: G4SIunits.hh:81
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define TRUE
Definition: Globals.hh:27
const G4MolecularConfiguration Reactant
const ReactantList * CanReactWith(Reactant *) const
const G4DNAMolecularReactionData Data
static G4String ConvertToString(G4bool boolVal)
Definition: G4UIcommand.cc:445
virtual void InitialiseToPrint(const G4MolecularConfiguration *)=0
const G4DNAMolecularReactionTable * GetReactionTable()
void SetReactionTable(const G4DNAMolecularReactionTable *)
virtual G4double GetReactionRadius(const G4MolecularConfiguration *, const G4MolecularConfiguration *)=0

References CanReactWith(), G4UIcommand::ConvertToString(), fReactantsMV, fReactionData, G4cout, G4endl, G4MolecularConfiguration::GetName(), G4DNAMolecularReactionData::GetNbProducts(), G4DNAMolecularReactionData::GetObservedReactionRateConstant(), G4DNAMolecularReactionData::GetProduct(), G4VDNAReactionModel::GetReactionRadius(), G4VDNAReactionModel::GetReactionTable(), G4VDNAReactionModel::InitialiseToPrint(), m3, mole, CLHEP::detail::n, nanometer, s, G4VDNAReactionModel::SetReactionTable(), and TRUE.

Referenced by G4EmDNAChemistry_option2::ConstructTimeStepModel(), G4EmDNAChemistry::ConstructTimeStepModel(), G4EmDNAChemistry_option1::ConstructTimeStepModel(), and G4ReactionTableMessenger::SetNewValue().

◆ ScaleReactionRateForNewTemperature()

void G4DNAMolecularReactionTable::ScaleReactionRateForNewTemperature ( double  temp_K)

Definition at line 797 of file G4DNAMolecularReactionTable.cc.

798{
799 for (const auto& pData : fVectorOfReactionData)
800 {
801 const_cast<G4DNAMolecularReactionData*>(pData.get())->ScaleForNewTemperature(temp_K);
802 }
803}

References fVectorOfReactionData.

Referenced by G4DNAChemistryManager::SetGlobalTemperature().

◆ SetGeometry()

void G4DNAMolecularReactionTable::SetGeometry ( G4VDNAMolecularGeometry geometry)
inline

Definition at line 212 of file G4DNAMolecularReactionTable.hh.

212{fGeometry = geometry;};

References fGeometry.

◆ SetReaction() [1/2]

void G4DNAMolecularReactionTable::SetReaction ( G4DNAMolecularReactionData pReactionData)

Definition at line 392 of file G4DNAMolecularReactionTable.cc.

393{
394 const auto pReactant1 = pReactionData->GetReactant1();
395 const auto pReactant2 = pReactionData->GetReactant2();
396
397 fReactionData[pReactant1][pReactant2] = pReactionData;
398 fReactantsMV[pReactant1].push_back(pReactant2);
399 fReactionDataMV[pReactant1].push_back(pReactionData);
400
401 if (pReactant1 != pReactant2)
402 {
403 fReactionData[pReactant2][pReactant1] = pReactionData;
404 fReactantsMV[pReactant2].push_back(pReactant1);
405 fReactionDataMV[pReactant2].push_back(pReactionData);
406 }
407
408 fVectorOfReactionData.emplace_back(pReactionData);
409 pReactionData->SetReactionID(fVectorOfReactionData.size());
410}

References fReactantsMV, fReactionData, fReactionDataMV, fVectorOfReactionData, G4DNAMolecularReactionData::GetReactant1(), G4DNAMolecularReactionData::GetReactant2(), and G4DNAMolecularReactionData::SetReactionID().

◆ SetReaction() [2/2]

void G4DNAMolecularReactionTable::SetReaction ( G4double  observedReactionRate,
Reactant reactive1,
Reactant reactive2 
)

Define a reaction : First argument : reaction rate Second argument : reactant 1 Third argument : reactant 2 Fourth argument : a std::vector holding the molecular products if this last argument is NULL then it will be interpreted as a reaction giving no products

Definition at line 414 of file G4DNAMolecularReactionTable.cc.

417{
418 auto reactionData = new G4DNAMolecularReactionData(reactionRate, pReactant1, pReactant2);
419 SetReaction(reactionData);
420}
void SetReaction(G4double observedReactionRate, Reactant *reactive1, Reactant *reactive2)

References SetReaction().

Referenced by G4EmDNAChemistry_option2::ConstructReactionTable(), G4EmDNAChemistry::ConstructReactionTable(), G4EmDNAChemistry_option1::ConstructReactionTable(), G4EmDNAChemistry_option3::ConstructReactionTable(), G4ReactionTableMessenger::SetNewValue(), and SetReaction().

Field Documentation

◆ fGeometry

G4VDNAMolecularGeometry* G4DNAMolecularReactionTable::fGeometry
protected

Definition at line 245 of file G4DNAMolecularReactionTable.hh.

Referenced by GetGeometry(), and SetGeometry().

◆ fpInstance

G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::fpInstance
staticprotected

Definition at line 179 of file G4DNAMolecularReactionTable.hh.

Referenced by DeleteInstance(), GetReactionTable(), and Instance().

◆ fpMessenger

std::unique_ptr<G4ReactionTableMessenger> G4DNAMolecularReactionTable::fpMessenger
protected

Definition at line 250 of file G4DNAMolecularReactionTable.hh.

◆ fReactantsMV

ReactivesMV G4DNAMolecularReactionTable::fReactantsMV
protected

Definition at line 247 of file G4DNAMolecularReactionTable.hh.

Referenced by CanReactWith(), PrintTable(), and SetReaction().

◆ fReactionData

ReactionDataMap G4DNAMolecularReactionTable::fReactionData
protected

◆ fReactionDataMV

ReactionDataMV G4DNAMolecularReactionTable::fReactionDataMV
protected

Definition at line 248 of file G4DNAMolecularReactionTable.hh.

Referenced by GetReactionData(), and SetReaction().

◆ fVectorOfReactionData

std::vector<std::unique_ptr<Data> > G4DNAMolecularReactionTable::fVectorOfReactionData
protected

◆ fVerbose

G4bool G4DNAMolecularReactionTable::fVerbose
protected

Definition at line 243 of file G4DNAMolecularReactionTable.hh.

Referenced by CanReactWith(), and GetReativesNData().


The documentation for this class was generated from the following files: