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 G4DNAMolecularReactionDataGetReactionData (G4MolecularConfiguration *, G4MolecularConfiguration *) const
 
const G4DNAMolecularReactionDataGetReactionData (const G4String &, const G4String &) const
 
const G4DNAMolecularReactionDataGetReaction (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 &)
 
G4ITReactionTableoperator= (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
 
G4ReactionTableMessengerfpMessenger
 

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: