Geant4  10.02.p03
G4MoleculeTable Class Reference

#include <G4MoleculeTable.hh>

Collaboration diagram for G4MoleculeTable:

Public Member Functions

virtual ~G4MoleculeTable ()
 
G4MoleculeDefinitionCreateMoleculeDefinition (const G4String &userIdentifier, double diffusion_coefficient)
 
G4MolecularConfigurationCreateConfiguration (const G4String &userIdentifier, const G4MoleculeDefinition *molDef, const G4String &configurationLabel, const G4ElectronOccupancy &eOcc)
 
G4MolecularConfigurationCreateConfiguration (const G4String &userIdentifier, G4MoleculeDefinition *, int charge, double diffusion_coefficient=-1)
 
G4MolecularConfigurationCreateConfiguration (const G4String &userIdentifier, G4MoleculeDefinition *)
 
G4MolecularConfigurationCreateConfiguration (const G4String &userIdentifier, G4MoleculeDefinition *, const G4String &configurationLabel, int charge=0)
 
G4MoleculeDefinitionGetMoleculeDefinition (const G4String &, bool mustExist=true)
 
G4MolecularConfigurationGetConfiguration (const G4String &, bool mustExist=true)
 
G4MolecularConfigurationGetConfiguration (G4int id)
 
void Insert (G4MoleculeDefinition *)
 
void Finalize (G4MoleculeDefinition *)
 
void Finalize ()
 
G4MoleculeDefinitionIterator GetDefintionIterator ()
 
G4ConfigurationIterator GetConfigurationIterator ()
 
void PrepareMolecularConfiguration ()
 
int GetNumberOfDefinedSpecies ()
 

Static Public Member Functions

static G4MoleculeTableInstance ()
 
static G4MoleculeTableGetMoleculeTable ()
 

Protected Types

typedef std::map< G4String, G4MoleculeDefinition * > MoleculeDefTable
 

Protected Member Functions

 G4MoleculeTable ()
 

Protected Attributes

MoleculeDefTable fMoleculeDefTable
 

Static Protected Attributes

static G4MoleculeTablefpgMoleculeTable
 

Detailed Description

Definition at line 58 of file G4MoleculeTable.hh.

Member Typedef Documentation

◆ MoleculeDefTable

Definition at line 131 of file G4MoleculeTable.hh.

Constructor & Destructor Documentation

◆ ~G4MoleculeTable()

G4MoleculeTable::~G4MoleculeTable ( )
virtual

Definition at line 47 of file G4MoleculeTable.cc.

48 {
49 }

◆ G4MoleculeTable()

G4MoleculeTable::G4MoleculeTable ( )
protected

Definition at line 41 of file G4MoleculeTable.cc.

42 {
43 }
Here is the caller graph for this function:

Member Function Documentation

◆ CreateConfiguration() [1/4]

G4MolecularConfiguration * G4MoleculeTable::CreateConfiguration ( const G4String userIdentifier,
const G4MoleculeDefinition molDef,
const G4String configurationLabel,
const G4ElectronOccupancy eOcc 
)

Definition at line 251 of file G4MoleculeTable.cc.

255 {
256  bool alreadyCreated(false);
257 
258  G4MolecularConfiguration* molConf =
260  molDef,
261  configurationLabel,
262  eOcc,
263  alreadyCreated);
264 
265  return molConf;
266 }
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateConfiguration() [2/4]

G4MolecularConfiguration * G4MoleculeTable::CreateConfiguration ( const G4String userIdentifier,
G4MoleculeDefinition molDef,
int  charge,
double  diffusion_coefficient = -1 
)

Definition at line 227 of file G4MoleculeTable.cc.

231 {
232  bool alreadyCreated(false);
233 
234  G4MolecularConfiguration* molConf =
236  molDef,
237  charge,
238  userIdentifier,
239  alreadyCreated);
240 
241  if(diffusion_coefficient!=-1) // TODO
242  {
243  molConf->SetDiffusionCoefficient(diffusion_coefficient);
244  }
245  return molConf;
246 }
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
Here is the call graph for this function:

◆ CreateConfiguration() [3/4]

G4MolecularConfiguration * G4MoleculeTable::CreateConfiguration ( const G4String userIdentifier,
G4MoleculeDefinition molDef 
)

Definition at line 191 of file G4MoleculeTable.cc.

193 {
194  bool alreadyCreated(false);
195 
196  G4MolecularConfiguration* molConf =
198  molDef,
199  alreadyCreated);
200 
201  return molConf;
202 }
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
Here is the call graph for this function:

◆ CreateConfiguration() [4/4]

G4MolecularConfiguration * G4MoleculeTable::CreateConfiguration ( const G4String userIdentifier,
G4MoleculeDefinition molDef,
const G4String configurationLabel,
int  charge = 0 
)

Definition at line 207 of file G4MoleculeTable.cc.

211 {
212  bool alreadyCreated(false);
213 
214  G4MolecularConfiguration* molConf =
216  molDef,
217  charge,
218  configurationLabel,
219  alreadyCreated);
220 
221  return molConf;
222 }
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
Here is the call graph for this function:

◆ CreateMoleculeDefinition()

G4MoleculeDefinition * G4MoleculeTable::CreateMoleculeDefinition ( const G4String userIdentifier,
double  diffusion_coefficient 
)

Definition at line 69 of file G4MoleculeTable.cc.

71 {
72  // TODO
73 
74  MoleculeDefTable::iterator it = fMoleculeDefTable.find(name);
75  G4MoleculeDefinition* definition(0);
76  if (it == fMoleculeDefTable.end())
77  {
78  definition = new G4MoleculeDefinition(name, -1 /* mass*/,
79  diffusion_coefficient);
80  fMoleculeDefTable[name] = definition;
81  }
82  else
83  {
84  // exception
85  G4ExceptionDescription description;
86  description << "The molecule definition " << name
87  << " was already recorded in the table" << G4endl;
88  G4Exception("G4MoleculeTable::CreateMoleculeDefinition",
89  "DEFINITION_ALREADY_CREATED", FatalException, description);
90  }
91  return definition;
92 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4String name
Definition: TRTMaterials.hh:40
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
MoleculeDefTable fMoleculeDefTable
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:

◆ Finalize() [1/2]

void G4MoleculeTable::Finalize ( G4MoleculeDefinition )
inline

Definition at line 112 of file G4MoleculeTable.hh.

112 {}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Finalize() [2/2]

void G4MoleculeTable::Finalize ( )

Definition at line 270 of file G4MoleculeTable.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetConfiguration() [1/2]

G4MolecularConfiguration * G4MoleculeTable::GetConfiguration ( const G4String name,
bool  mustExist = true 
)

Definition at line 123 of file G4MoleculeTable.cc.

124 {
125  G4MolecularConfiguration* species =
127 
128  if(species == 0 && mustExist)
129  {
130  // exception
131  G4ExceptionDescription description;
132  description << "The configuration " << name
133  << " was not recorded in the table" << G4endl;
134  G4Exception("G4MoleculeTable::GetConfiguration",
135  "CONF_NOT_CREATED",
137  description);
138  }
139 
140  return species;
141 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
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:

◆ GetConfiguration() [2/2]

G4MolecularConfiguration * G4MoleculeTable::GetConfiguration ( G4int  id)

Definition at line 146 of file G4MoleculeTable.cc.

147 {
148  G4MolecularConfiguration* species =
150 
151  return species;
152 }
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
Here is the call graph for this function:

◆ GetConfigurationIterator()

G4ConfigurationIterator G4MoleculeTable::GetConfigurationIterator ( )

Definition at line 275 of file G4MoleculeTable.cc.

276 {
278 }
static std::map< G4String, G4MolecularConfiguration * > & GetUserIDTable()
G4MoleculeIterator< G4MolecularConfiguration > G4ConfigurationIterator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetDefintionIterator()

G4MoleculeDefinitionIterator G4MoleculeTable::GetDefintionIterator ( )
inline

Definition at line 116 of file G4MoleculeTable.hh.

117  {
119  }
G4MoleculeIterator< G4MoleculeDefinition > G4MoleculeDefinitionIterator
MoleculeDefTable fMoleculeDefTable
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMoleculeDefinition()

G4MoleculeDefinition * G4MoleculeTable::GetMoleculeDefinition ( const G4String name,
bool  mustExist = true 
)

Definition at line 97 of file G4MoleculeTable.cc.

99 {
100  MoleculeDefTable::iterator it = fMoleculeDefTable.find(name);
101  G4MoleculeDefinition* definition(0);
102  if (it != fMoleculeDefTable.end())
103  {
104  definition = it->second;
105  }
106  else if(mustExist)
107  {
108  // exception
109  G4ExceptionDescription description;
110  description << "The molecule definition " << name
111  << " was NOT recorded in the table" << G4endl;
112  G4Exception("G4MoleculeTable::CreateMoleculeModel",
113  "MOLECULE_DEFINITION_NOT_CREATED",
115  description);
116  }
117  return definition;
118 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
MoleculeDefTable fMoleculeDefTable
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMoleculeTable()

G4MoleculeTable * G4MoleculeTable::GetMoleculeTable ( )
static

Definition at line 61 of file G4MoleculeTable.cc.

62 {
63  return Instance();
64 }
static G4MoleculeTable * Instance()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNumberOfDefinedSpecies()

int G4MoleculeTable::GetNumberOfDefinedSpecies ( )

Definition at line 280 of file G4MoleculeTable.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Insert()

void G4MoleculeTable::Insert ( G4MoleculeDefinition moleculeDefinition)

Definition at line 156 of file G4MoleculeTable.cc.

157 {
158 
159  const G4String& name = moleculeDefinition->GetName();
160  MoleculeDefTable::iterator it = fMoleculeDefTable.find(name);
161  if (it == fMoleculeDefTable.end())
162  {
163  fMoleculeDefTable[name] = moleculeDefinition;
164  }
165  else
166  {
167  // exception
168  G4ExceptionDescription description;
169  description << "The molecule definition " << name
170  << " was already recorded in the table" << G4endl;
171  G4Exception("G4MoleculeTable::CreateMoleculeDefinition",
172  "DEFINITION_ALREADY_CREATED", FatalException, description);
173  }
174 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4String name
Definition: TRTMaterials.hh:40
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4String & GetName() const
MoleculeDefTable fMoleculeDefTable
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Instance()

G4MoleculeTable * G4MoleculeTable::Instance ( void  )
static

Definition at line 53 of file G4MoleculeTable.cc.

54 {
56  return fpgMoleculeTable;
57 }
static G4MoleculeTable * fpgMoleculeTable
Here is the call graph for this function:
Here is the caller graph for this function:

◆ PrepareMolecularConfiguration()

void G4MoleculeTable::PrepareMolecularConfiguration ( )

Definition at line 178 of file G4MoleculeTable.cc.

179 {
180  MoleculeDefTable::iterator it = fMoleculeDefTable.begin();
181 
182  for(; it != fMoleculeDefTable.end() ; ++it)
183  {
185  }
186 }
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
MoleculeDefTable fMoleculeDefTable
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fMoleculeDefTable

MoleculeDefTable G4MoleculeTable::fMoleculeDefTable
protected

Definition at line 133 of file G4MoleculeTable.hh.

◆ fpgMoleculeTable

G4MoleculeTable * G4MoleculeTable::fpgMoleculeTable
staticprotected

Definition at line 130 of file G4MoleculeTable.hh.


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