Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4DNAMolecularReactionTable Class Reference

#include <G4DNAMolecularReactionTable.hh>

Inheritance diagram for G4DNAMolecularReactionTable:
Collaboration diagram for G4DNAMolecularReactionTable:

Public Member Functions

virtual ~G4DNAMolecularReactionTable ()
 
void SetReaction (G4double observedReactionRate, G4MolecularConfiguration *reactive1, G4MolecularConfiguration *reactive2)
 
void SetReaction (G4DNAMolecularReactionData *)
 
const G4DNAMolecularReactionData * GetReactionData (G4MolecularConfiguration *, G4MolecularConfiguration *) const
 
const G4DNAMolecularReactionData * GetReactionData (const G4String &, const G4String &) const
 
const G4DNAMolecularReactionData * GetReaction (int reactionID) const
 
size_t GetNReactions () const
 
const std::vector
< G4MolecularConfiguration * > * 
CanReactWith (G4MolecularConfiguration *) const
 
const std::map
< G4MolecularConfiguration
*, const
G4DNAMolecularReactionData * > * 
GetReativesNData (G4MolecularConfiguration *) const
 
const std::vector< const
G4DNAMolecularReactionData * > * 
GetReactionData (G4MolecularConfiguration *) const
 
const std::map
< G4MolecularConfiguration
*, std::map
< G4MolecularConfiguration
*, const
G4DNAMolecularReactionData * > > & 
GetAllReactionData ()
 
const std::vector< const
G4DNAMolecularReactionData * > & 
GetVectorOfReactionData ()
 
void ScaleReactionRateForNewTemperature (double temp_K)
 
void PrintTable (G4VDNAReactionModel *=0)
 
- Public Member Functions inherited from G4ITReactionTable
 G4ITReactionTable ()
 
virtual ~G4ITReactionTable ()
 
 G4ITReactionTable (const G4ITReactionTable &)
 
G4ITReactionTable & operator= (const G4ITReactionTable &)
 

Static Public Member Functions

static
G4DNAMolecularReactionTable * 
GetReactionTable ()
 
static
G4DNAMolecularReactionTable * 
Instance ()
 
static void DeleteInstance ()
 

Protected Types

typedef std::map
< G4MolecularConfiguration
*, std::map
< G4MolecularConfiguration
*, const
G4DNAMolecularReactionData * > > 
ReactionDataMap
 
typedef std::map
< G4MolecularConfiguration
*, std::vector
< G4MolecularConfiguration * > > 
ReactivesMV
 
typedef std::map
< G4MolecularConfiguration
*, std::vector< const
G4DNAMolecularReactionData * > > 
ReactionDataMV
 

Protected Member Functions

 G4DNAMolecularReactionTable ()
 

Protected Attributes

G4bool fVerbose
 
ReactionDataMap fReactionData
 
ReactivesMV fReactantsMV
 
ReactionDataMV fReactionDataMV
 
std::vector< const
G4DNAMolecularReactionData * > 
fVectorOfReactionData
 
G4ReactionTableMessenger * fpMessenger
 

Static Protected Attributes

static
G4DNAMolecularReactionTable * 
fInstance
 

Detailed Description

G4DNAMolecularReactionTable sorts out the G4DNAMolecularReactionData for bimolecular reaction

Definition at line 199 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

Definition at line 279 of file G4DNAMolecularReactionTable.hh.

Constructor & Destructor Documentation

G4DNAMolecularReactionTable::G4DNAMolecularReactionTable ( )
protected

Definition at line 244 of file G4DNAMolecularReactionTable.cc.

244  :
246 // , fMoleculeHandleManager(G4MoleculeHandleManager::Instance())
247 {
248 // G4cout << "G4DNAMolecularReactionTable::G4DNAMolecularReactionTable()" << G4endl;
249  fVerbose = false;
251  return;
252 }
G4ReactionTableMessenger * fpMessenger

Here is the caller graph for this function:

G4DNAMolecularReactionTable::~G4DNAMolecularReactionTable ( )
virtual

Definition at line 256 of file G4DNAMolecularReactionTable.cc.

257 {
258  // DEBUG
259 // G4cout << "G4MolecularReactionTable::~G4MolecularReactionTable" << G4endl;
260 
261  if(fpMessenger) delete fpMessenger;
262 
263  ReactionDataMap::iterator it1 = fReactionData.begin();
264  std::map<G4MolecularConfiguration*,
265  const G4DNAMolecularReactionData*>::iterator it2;
266 
267  for(; it1 != fReactionData.end(); it1++)
268  {
269  for(it2 = it1->second.begin(); it2 != it1->second.end(); it2++)
270  {
271  const G4DNAMolecularReactionData* reactionData = it2->second;
272  if(reactionData)
273  {
274  G4MolecularConfiguration* reactant1 =
275  reactionData->GetReactant1();
276  G4MolecularConfiguration* reactant2 =
277  reactionData->GetReactant2();
278 
279  fReactionData[reactant1][reactant2] = 0;
280  fReactionData[reactant2][reactant1] = 0;
281 
282  delete reactionData;
283  }
284  }
285  }
286 
287  fReactionDataMV.clear();
288  fReactionData.clear();
289  fReactantsMV.clear();
290 }
G4ReactionTableMessenger * fpMessenger
G4MolecularConfiguration * GetReactant1() const
G4MolecularConfiguration * GetReactant2() const

Here is the call graph for this function:

Member Function Documentation

const std::vector< G4MolecularConfiguration * > * G4DNAMolecularReactionTable::CanReactWith ( G4MolecularConfiguration *  aMolecule) const

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

Definition at line 545 of file G4DNAMolecularReactionTable.cc.

546 {
547  if (fReactantsMV.empty())
548  {
549  G4String errMsg = "No reaction table was implemented";
550  G4Exception("G4MolecularInteractionTable::CanReactWith", "",
551  FatalErrorInArgument, errMsg);
552  return 0;
553  }
554 
555  ReactivesMV::const_iterator itReactivesMap = fReactantsMV.find(aMolecule);
556 
557  if (itReactivesMap == fReactantsMV.end())
558  {
559 #ifdef G4VERBOSE
560  if (fVerbose)
561  {
562  G4String errMsg = "No reaction table was implemented for this molecule : "
563  + aMolecule->GetName();
564 // G4Exception("G4MolecularInteractionTable::CanReactWith","",FatalErrorInArgument, errMsg);
565  G4cout << "--- G4MolecularInteractionTable::GetReactionData ---" << G4endl;
566  G4cout << errMsg << G4endl;
567  }
568 #endif
569  return 0;
570  }
571  else
572  {
573  if(fVerbose)
574  {
575  G4cout<< " G4MolecularInteractionTable::CanReactWith :"<<G4endl;
576  G4cout<<"You are checking reactants for : " << aMolecule->GetName()<<G4endl;
577  G4cout<<" the number of reactants is : " << itReactivesMap->second.size()<<G4endl;
578 
579  std::vector<G4MolecularConfiguration*>::const_iterator itProductsVector =
580  itReactivesMap->second.begin();
581 
582  for(; itProductsVector != itReactivesMap->second.end(); itProductsVector++)
583  {
584  G4cout<<(*itProductsVector)->GetName()<<G4endl;
585  }
586  }
587  return &(itReactivesMap->second);
588  }
589  return 0;
590 }
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void G4DNAMolecularReactionTable::DeleteInstance ( )
static

Definition at line 234 of file G4DNAMolecularReactionTable.cc.

235 {
236  // DEBUG
237 // G4cout << "G4MolecularReactionTable::DeleteInstance" << G4endl;
238  if (fInstance) delete fInstance;
239  fInstance = 0;
240 }
static G4DNAMolecularReactionTable * fInstance

Here is the caller graph for this function:

const std::map<G4MolecularConfiguration*, std::map<G4MolecularConfiguration*, const G4DNAMolecularReactionData*> >& G4DNAMolecularReactionTable::GetAllReactionData ( )
inline

Definition at line 253 of file G4DNAMolecularReactionTable.hh.

254  {
255  return fReactionData;
256  }
size_t G4DNAMolecularReactionTable::GetNReactions ( ) const
inline

Definition at line 234 of file G4DNAMolecularReactionTable.hh.

235  { return fVectorOfReactionData.size(); }
std::vector< const G4DNAMolecularReactionData * > fVectorOfReactionData
const G4DNAMolecularReactionData * G4DNAMolecularReactionTable::GetReaction ( int  reactionID) const

Definition at line 745 of file G4DNAMolecularReactionTable.cc.

746 {
747  for(size_t i = 0 ; i < fVectorOfReactionData.size() ; ++i)
748  {
749  if(fVectorOfReactionData[i]->GetReactionID() == reactionID)
750  return fVectorOfReactionData[i];
751  }
752  return nullptr;
753 }
std::vector< const G4DNAMolecularReactionData * > fVectorOfReactionData
const G4DNAMolecularReactionData * G4DNAMolecularReactionTable::GetReactionData ( G4MolecularConfiguration *  reactant1,
G4MolecularConfiguration *  reactant2 
) const

Definition at line 502 of file G4DNAMolecularReactionTable.cc.

504 {
505  if (fReactionData.empty())
506  {
507  G4String errMsg = "No reaction table was implemented";
508  G4Exception("G4MolecularInteractionTable::GetReactionData", "",
509  FatalErrorInArgument, errMsg);
510  return 0;
511  }
512 
513  ReactionDataMap::const_iterator it1 = fReactionData.find(reactant1);
514 
515  if (it1 == fReactionData.end())
516  {
517  G4String errMsg =
518  "No reaction table was implemented for this molecule Definition : " + reactant1
519  ->GetName();
520 // G4cout << "--- G4MolecularInteractionTable::GetReactionData ---" << G4endl;
521 // G4cout << errMsg << G4endl;
522  G4Exception("G4MolecularInteractionTable::GetReactionData", "",
523  FatalErrorInArgument, errMsg);
524 // return 0;
525  }
526 
527  std::map<G4MolecularConfiguration*,
528  const G4DNAMolecularReactionData*>::const_iterator it2 =
529  it1->second.find(reactant2);
530 
531  if (it2 == it1->second.end())
532  {
533  G4cout << "Name : " << reactant2->GetName() << G4endl;
534  G4String errMsg = "No reaction table was implemented for this molecule : "
535  + reactant2 -> GetName();
536  G4Exception("G4MolecularInteractionTable::GetReactionData","",FatalErrorInArgument, errMsg);
537  }
538 
539  return (it2->second);
540 }
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

const G4DNAMolecularReactionData * G4DNAMolecularReactionTable::GetReactionData ( const G4String &  mol1,
const G4String &  mol2 
) const

Definition at line 667 of file G4DNAMolecularReactionTable.cc.

669 {
671  ->GetConfiguration(mol1);
673  ->GetConfiguration(mol2);
674 
675  return GetReactionData(conf1, conf2);
676 }
const G4DNAMolecularReactionData * GetReactionData(G4MolecularConfiguration *, G4MolecularConfiguration *) const
static G4MoleculeTable * GetMoleculeTable()
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

Here is the call graph for this function:

const std::vector< const G4DNAMolecularReactionData * > * G4DNAMolecularReactionTable::GetReactionData ( G4MolecularConfiguration *  molecule) const

Definition at line 641 of file G4DNAMolecularReactionTable.cc.

642 {
643  if (fReactionDataMV.empty())
644  {
645  G4String errMsg = "No reaction table was implemented";
646  G4Exception("G4MolecularInteractionTable::CanInteractWith", "",
647  FatalErrorInArgument, errMsg);
648  return 0;
649  }
650  ReactionDataMV::const_iterator it = fReactionDataMV.find(molecule);
651 
652  if (it == fReactionDataMV.end())
653  {
654  G4cout << "Nom : " << molecule->GetName() << G4endl;
655  G4String errMsg = "No reaction table was implemented for this molecule Definition : "
656  + molecule -> GetName();
657  G4Exception("G4MolecularInteractionTable::GetReactionData","",FatalErrorInArgument, errMsg);
658  return 0; // coverity
659  }
660 
661  return &(it->second);
662 }
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::GetReactionTable ( )
static

Definition at line 212 of file G4DNAMolecularReactionTable.cc.

213 {
214  if (!fInstance)
215  {
217  }
218  return fInstance;
219 }
static G4DNAMolecularReactionTable * fInstance

Here is the call graph for this function:

Here is the caller graph for this function:

const std::map< G4MolecularConfiguration *, const G4DNAMolecularReactionData * > * G4DNAMolecularReactionTable::GetReativesNData ( G4MolecularConfiguration *  molecule) const

Definition at line 595 of file G4DNAMolecularReactionTable.cc.

596 {
597  if (fReactionData.empty())
598  {
599  G4String errMsg = "No reaction table was implemented";
600  G4Exception("G4MolecularInteractionTable::CanInteractWith", "",
601  FatalErrorInArgument, errMsg);
602  return 0;
603  }
604 
605  ReactionDataMap::const_iterator itReactivesMap = fReactionData.find(molecule);
606 
607  if (itReactivesMap == fReactionData.end())
608  {
609  return 0;
610 // G4cout << "Nom : " << molecule->GetName() << G4endl;
611 // G4String errMsg = "No reaction table was implemented for this molecule Definition : "
612 // + molecule -> GetName();
613 // G4Exception("G4MolecularInteractionTable::CanReactWith","",FatalErrorInArgument, errMsg);
614  }
615  else
616  {
617  if(fVerbose)
618  {
619  G4cout<< " G4MolecularInteractionTable::CanReactWith :"<<G4endl;
620  G4cout<<"You are checking reactants for : " << molecule->GetName()<<G4endl;
621  G4cout<<" the number of reactants is : " << itReactivesMap->second.size()<<G4endl;
622 
623  std::map<G4MolecularConfiguration*,
624  const G4DNAMolecularReactionData*>::const_iterator itProductsVector =
625  itReactivesMap->second.begin();
626 
627  for(; itProductsVector != itReactivesMap->second.end(); itProductsVector++)
628  {
629  G4cout<<itProductsVector->first->GetName()<<G4endl;
630  }
631  }
632  return &(itReactivesMap->second);
633  }
634 
635  return 0;
636 }
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

const std::vector<const G4DNAMolecularReactionData*>& G4DNAMolecularReactionTable::GetVectorOfReactionData ( )
inline

Definition at line 259 of file G4DNAMolecularReactionTable.hh.

260  {
261  return fVectorOfReactionData;
262  }
std::vector< const G4DNAMolecularReactionData * > fVectorOfReactionData
G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::Instance ( void  )
static

Definition at line 223 of file G4DNAMolecularReactionTable.cc.

224 {
225  if (!fInstance)
226  {
228  }
229  return fInstance;
230 }
static G4DNAMolecularReactionTable * fInstance

Here is the call graph for this function:

Here is the caller graph for this function:

void G4DNAMolecularReactionTable::PrintTable ( G4VDNAReactionModel *  pReactionModel = 0)

Definition at line 326 of file G4DNAMolecularReactionTable.cc.

327 {
328  // Print Reactions and Interaction radius for jump step = 3ps
329 
330  G4IosFlagsSaver iosfs(G4cout);
331 
332  if (pReactionModel)
333  {
334  if (!(pReactionModel->GetReactionTable())) pReactionModel->SetReactionTable(
335  this);
336  }
337 
338  ReactivesMV::iterator itReactives;
339 
340  map<G4MolecularConfiguration*, map<G4MolecularConfiguration*, G4bool> > alreadyPrint;
341 
342  G4cout << "Number of chemical species involved in reactions = "
343  << fReactantsMV.size() << G4endl;
344 
345  G4int nbPrintable = fReactantsMV.size() * fReactantsMV.size();
346 
347  G4String *outputReaction = new G4String[nbPrintable];
348  G4String *outputReactionRate = new G4String[nbPrintable];
349  G4String *outputRange = new G4String[nbPrintable];
350  G4int n = 0;
351 
352  for (itReactives = fReactantsMV.begin(); itReactives != fReactantsMV.end();
353  itReactives++)
354  {
355  G4MolecularConfiguration* moleculeA = (G4MolecularConfiguration*) itReactives->first;
356  const vector<G4MolecularConfiguration*>* reactivesVector = CanReactWith(moleculeA);
357 
358  if (pReactionModel) pReactionModel->InitialiseToPrint(moleculeA);
359 
360  G4int nbReactants = fReactantsMV[itReactives->first].size();
361 
362  for (G4int iReact = 0; iReact < nbReactants; iReact++)
363  {
364 
365  G4MolecularConfiguration* moleculeB = (G4MolecularConfiguration*) (*reactivesVector)[iReact];
366 
367  const G4DNAMolecularReactionData* reactionData =
368  fReactionData[moleculeA][moleculeB];
369 
370  //-----------------------------------------------------------
371  // Name of the reaction
372  if (!alreadyPrint[moleculeA][moleculeB])
373  {
374  outputReaction[n] = moleculeA->GetName() + " + " + moleculeB->GetName();
375 
376  G4int nbProducts = reactionData->GetNbProducts();
377 
378  if (nbProducts)
379  {
380  outputReaction[n] += " -> " + reactionData->GetProduct(0)->GetName();
381 
382  for (G4int j = 1; j < nbProducts; j++)
383  {
384  outputReaction[n] += " + " + reactionData->GetProduct(j)->GetName();
385  }
386  }
387  else
388  {
389  outputReaction[n] += " -> No product";
390  }
391 
392  //-----------------------------------------------------------
393  // Interaction Rate
394  outputReactionRate[n] = G4UIcommand::ConvertToString(
395  reactionData->GetObservedReactionRateConstant() / (1e-3 * m3 / (mole * s)));
396 
397  //-----------------------------------------------------------
398  // Calculation of the Interaction Range
399  G4double interactionRange = -1;
400  if (pReactionModel) interactionRange =
401  pReactionModel->GetReactionRadius(iReact);
402 
403  if (interactionRange != -1)
404  {
405  outputRange[n] = G4UIcommand::ConvertToString(
406  interactionRange / nanometer);
407  }
408  else
409  {
410  outputRange[n] = "";
411  }
412 
413  alreadyPrint[moleculeB][moleculeA] = TRUE;
414  n++;
415  }
416  }
417  }
418  // G4cout<<"Number of possible reactions: "<< n << G4endl;
419 
421  // Tableau dynamique en fonction du nombre de caractere maximal dans
422  // chaque colonne
424 
425  G4int maxlengthOutputReaction = -1;
426  G4int maxlengthOutputReactionRate = -1;
427 
428  for (G4int i = 0; i < n; i++)
429  {
430  if (maxlengthOutputReaction < (G4int) outputReaction[i].length())
431  {
432  maxlengthOutputReaction = outputReaction[i].length();
433  }
434  if (maxlengthOutputReactionRate < (G4int) outputReactionRate[i].length())
435  {
436  maxlengthOutputReactionRate = outputReactionRate[i].length();
437  }
438  }
439 
440  maxlengthOutputReaction += 2;
441  maxlengthOutputReactionRate += 2;
442 
443  if (maxlengthOutputReaction < 10) maxlengthOutputReaction = 10;
444  if (maxlengthOutputReactionRate < 30) maxlengthOutputReactionRate = 30;
445 
446  G4String* title;
447 
448  if (pReactionModel) title = new G4String[3];
449  else title = new G4String[2];
450 
451  title[0] = "Reaction";
452  title[1] = "Reaction Rate [dm3/(mol*s)]";
453 
454  if (pReactionModel) title[2] =
455  "Interaction Range for chosen reaction model [nm]";
456 
457  G4cout << setfill(' ') << setw(maxlengthOutputReaction) << left << title[0]
458  << setw(maxlengthOutputReactionRate) << left << title[1];
459 
460  if (pReactionModel) G4cout << setw(2) << left << title[2];
461 
462  G4cout << G4endl;
463 
464  G4cout.fill('-');
465  if (pReactionModel) G4cout.width(
466  maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
467  + (G4int) title[2].length());
468  else G4cout.width(maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
469  G4cout << "-" << G4endl;
470  G4cout.fill(' ');
471 
472  for (G4int i = 0; i < n; i++)
473  {
474  G4cout << setw(maxlengthOutputReaction) << left << outputReaction[i]
475  << setw(maxlengthOutputReactionRate) << left
476  << outputReactionRate[i];
477 
478  if (pReactionModel) G4cout << setw(2) << left << outputRange[i];
479 
480  G4cout << G4endl;
481 
482  G4cout.fill('-');
483  if (pReactionModel) G4cout.width(
484  maxlengthOutputReaction + 2 + maxlengthOutputReactionRate + 2
485  + (G4int) title[2].length());
486  else G4cout.width(
487  maxlengthOutputReaction + 2 + maxlengthOutputReactionRate);
488  G4cout << "-" << G4endl;
489  G4cout.fill(' ');
490  }
491 
492  delete[] title;
493  delete[] outputReaction;
494  delete[] outputReactionRate;
495  delete[] outputRange;
496 }
const G4String & GetName() const
static G4String ConvertToString(G4bool boolVal)
Definition: G4UIcommand.cc:372
static constexpr double nanometer
Definition: G4SIunits.hh:101
static constexpr double m3
Definition: G4SIunits.hh:131
int G4int
Definition: G4Types.hh:78
const XML_Char * s
Definition: expat.h:262
G4GLOB_DLL std::ostream G4cout
void SetReactionTable(const G4DNAMolecularReactionTable *)
virtual G4double GetReactionRadius(G4MolecularConfiguration *, G4MolecularConfiguration *)=0
#define TRUE
Definition: globals.hh:55
#define G4endl
Definition: G4ios.hh:61
const G4DNAMolecularReactionTable * GetReactionTable()
double G4double
Definition: G4Types.hh:76
static constexpr double mole
Definition: G4SIunits.hh:286
const std::vector< G4MolecularConfiguration * > * CanReactWith(G4MolecularConfiguration *) const
G4MolecularConfiguration * GetProduct(G4int i) const
virtual void InitialiseToPrint(G4MolecularConfiguration *)=0

Here is the call graph for this function:

Here is the caller graph for this function:

void G4DNAMolecularReactionTable::ScaleReactionRateForNewTemperature ( double  temp_K)

Definition at line 713 of file G4DNAMolecularReactionTable.cc.

714 {
715  size_t end = fVectorOfReactionData.size();
716 
717  for(size_t i = 0 ; i < end ; ++i)
718  {
720  ScaleForNewTemperature(temp_K);
721  }
722 }
std::vector< const G4DNAMolecularReactionData * > fVectorOfReactionData

Here is the caller graph for this function:

void G4DNAMolecularReactionTable::SetReaction ( G4double  observedReactionRate,
G4MolecularConfiguration *  reactive1,
G4MolecularConfiguration *  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 315 of file G4DNAMolecularReactionTable.cc.

318 {
320  reactionRate, reactant1, reactant2);
321  SetReaction(reactionData);
322 }
void SetReaction(G4double observedReactionRate, G4MolecularConfiguration *reactive1, G4MolecularConfiguration *reactive2)

Here is the caller graph for this function:

void G4DNAMolecularReactionTable::SetReaction ( G4DNAMolecularReactionData *  reactionData)

Definition at line 294 of file G4DNAMolecularReactionTable.cc.

295 {
296  G4MolecularConfiguration* reactant1 = reactionData->GetReactant1();
297  G4MolecularConfiguration* reactant2 = reactionData->GetReactant2();
298 
299  fReactionData[reactant1][reactant2] = reactionData;
300  fReactantsMV[reactant1].push_back(reactant2);
301  fReactionDataMV[reactant1].push_back(reactionData);
302 
303  if (reactant1 != reactant2)
304  {
305  fReactionData[reactant2][reactant1] = reactionData;
306  fReactantsMV[reactant2].push_back(reactant1);
307  fReactionDataMV[reactant2].push_back(reactionData);
308  }
309 
310  fVectorOfReactionData.push_back(reactionData);
311 }
G4MolecularConfiguration * GetReactant1() const
G4MolecularConfiguration * GetReactant2() const
std::vector< const G4DNAMolecularReactionData * > fVectorOfReactionData

Here is the call graph for this function:

Member Data Documentation

G4DNAMolecularReactionTable * G4DNAMolecularReactionTable::fInstance
staticprotected

Definition at line 203 of file G4DNAMolecularReactionTable.hh.

G4ReactionTableMessenger* G4DNAMolecularReactionTable::fpMessenger
protected

Definition at line 285 of file G4DNAMolecularReactionTable.hh.

ReactivesMV G4DNAMolecularReactionTable::fReactantsMV
protected

Definition at line 282 of file G4DNAMolecularReactionTable.hh.

ReactionDataMap G4DNAMolecularReactionTable::fReactionData
protected

Definition at line 281 of file G4DNAMolecularReactionTable.hh.

ReactionDataMV G4DNAMolecularReactionTable::fReactionDataMV
protected

Definition at line 283 of file G4DNAMolecularReactionTable.hh.

std::vector<const G4DNAMolecularReactionData*> G4DNAMolecularReactionTable::fVectorOfReactionData
protected

Definition at line 284 of file G4DNAMolecularReactionTable.hh.

G4bool G4DNAMolecularReactionTable::fVerbose
protected

Definition at line 270 of file G4DNAMolecularReactionTable.hh.


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