Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MolecularConfiguration Class Reference

#include <G4MolecularConfiguration.hh>

Classes

class  G4MolecularConfigurationManager

Public Types

using G4DiffCoeffParam = std::function<double (const G4Material *, double, const G4MolecularConfiguration *)>

Public Member Functions

void AddDiffCoeffParameterization (const G4DiffCoeffParam &)
const G4MoleculeDefinitionGetDefinition () const
const G4StringGetName () const
const G4StringGetFormatedName () const
G4int GetAtomsNumber () const
G4MolecularConfigurationExciteMolecule (G4int) const
G4MolecularConfigurationIonizeMolecule (G4int) const
G4MolecularConfigurationAddElectron (G4int orbit, G4int n=1) const
G4MolecularConfigurationRemoveElectron (G4int, G4int number=1) const
G4MolecularConfigurationMoveOneElectron (G4int, G4int) const
G4double GetNbElectrons () const
void PrintState () const
const std::vector< const G4MolecularDissociationChannel * > * GetDissociationChannels () const
G4int GetFakeParticleID () const
G4int GetMoleculeID () const
void SetDiffusionCoefficient (G4double)
G4double GetDiffusionCoefficient () const
G4double GetDiffusionCoefficient (const G4Material *, double temperature) const
void SetDecayTime (G4double)
G4double GetDecayTime () const
void SetVanDerVaalsRadius (G4double)
G4double GetVanDerVaalsRadius () const
const G4ElectronOccupancyGetElectronOccupancy () const
G4int GetCharge () const
void SetMass (G4double)
G4double GetMass () const
void SetLabel (const G4String &)
const G4StringGetLabel () const
void Finalize ()
void UnFinalize ()
void SetUserID (const G4String &userID)
const G4StringGetUserID () const
void Serialize (std::ostream &)
void Unserialize (std::istream &)

Static Public Member Functions

static G4MolecularConfigurationGetOrCreateMolecularConfiguration (const G4MoleculeDefinition *)
static G4MolecularConfigurationGetOrCreateMolecularConfiguration (const G4MoleculeDefinition *, const G4ElectronOccupancy &eOcc)
static G4MolecularConfigurationGetOrCreateMolecularConfiguration (const G4MoleculeDefinition *, int charge)
static G4MolecularConfigurationCreateMolecularConfiguration (const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
static G4MolecularConfigurationCreateMolecularConfiguration (const G4String &userIdentifier, const G4MoleculeDefinition *, const G4String &label, const G4ElectronOccupancy &eOcc, bool &wasAlreadyCreated)
static G4MolecularConfigurationCreateMolecularConfiguration (const G4String &userIdentifier, const G4MoleculeDefinition *, int charge, const G4String &label, bool &wasAlreadyCreated)
static G4MolecularConfigurationCreateMolecularConfiguration (const G4String &userIdentifier, const G4MoleculeDefinition *, const G4String &label, bool &wasAlreadyCreated)
static G4MolecularConfigurationGetMolecularConfiguration (const G4MoleculeDefinition *, const G4String &label)
static G4MolecularConfigurationGetMolecularConfiguration (int moleculeID)
static G4MolecularConfigurationGetMolecularConfiguration (const G4String &userID)
static int GetNumberOfSpecies ()
static std::map< G4String, G4MolecularConfiguration * > & GetUserIDTable ()
static void DeleteManager ()
static double DiffCoeffWater (double temperature_K)
static void FinalizeAll ()
static void PrintAll ()
static void SetGlobalTemperature (G4double)
static G4double GetGlobalTemperature ()
static G4MolecularConfigurationLoad (std::istream &)

Protected Member Functions

 G4MolecularConfiguration (const G4MoleculeDefinition *, const G4ElectronOccupancy &, const G4String &label="")
 G4MolecularConfiguration (const G4MoleculeDefinition *, int charge)
 G4MolecularConfiguration (const G4MoleculeDefinition *, const G4String &label, int charge)
 G4MolecularConfiguration (std::istream &)
 G4MolecularConfiguration (const G4MolecularConfiguration &)
G4MolecularConfigurationoperator= (G4MolecularConfiguration &right)
 ~G4MolecularConfiguration ()
G4MolecularConfigurationChangeConfiguration (const G4ElectronOccupancy &newElectronOccupancy) const
G4MolecularConfigurationChangeConfiguration (int charge) const
void CheckElectronOccupancy (const char *line) const
void MakeExceptionIfFinalized ()
void CreateDefaultDiffCoeffParam ()

Static Protected Member Functions

static void ScaleAllDiffusionCoefficientsOnWater (double temperature_K)
static G4MolecularConfigurationManagerGetManager ()
static double ReturnDefaultDiffCoeff (const G4Material *, double, const G4MolecularConfiguration *molConf)

Protected Attributes

const G4MoleculeDefinitionfMoleculeDefinition
const G4ElectronOccupancyfElectronOccupancy
G4StringfLabel
G4double fDynDiffusionCoefficient
G4double fDynVanDerVaalsRadius
G4double fDynDecayTime
G4double fDynMass
G4int fDynCharge
G4int fMoleculeID
G4String fFormatedName
G4String fName
G4String fUserIdentifier
G4bool fIsFinalized
G4DiffCoeffParam fDiffParam

Static Protected Attributes

static G4MolecularConfigurationManagerfgManager = nullptr
static double fgTemperature = 298

Detailed Description

The pointer G4MolecularConfiguration will be shared by all the molecules having the same molecule definition and the same electron occupancy BE CAREFUlL !!! : If you change the mass for instance of a OH^-, this will affect all the OH^- molecule diffusing around

Definition at line 97 of file G4MolecularConfiguration.hh.

Member Typedef Documentation

◆ G4DiffCoeffParam

using G4MolecularConfiguration::G4DiffCoeffParam = std::function<double (const G4Material *, double, const G4MolecularConfiguration *)>

Definition at line 101 of file G4MolecularConfiguration.hh.

Constructor & Destructor Documentation

◆ G4MolecularConfiguration() [1/5]

G4MolecularConfiguration::G4MolecularConfiguration ( const G4MoleculeDefinition * moleculeDef,
const G4ElectronOccupancy & elecOcc,
const G4String & label = "" )
protected

Definition at line 412 of file G4MolecularConfiguration.cc.

416{
417 fMoleculeDefinition = moleculeDef;
418
419 fMoleculeID = GetManager()->Insert(moleculeDef,
420 elecOcc,
421 this);
423 elecOcc);
424
425 /*
426 fgManager->fTable[fMoleculeDefinition][elecOcc] = this;
427 std::map<G4ElectronOccupancy, G4MolecularConfiguration*, comparator>::iterator it ;
428 it = fgManager->fTable[moleculeDef].find(elecOcc);
429 fElectronOccupancy = &(it->first);
430 */
431
432 fDynCharge = fMoleculeDefinition->GetNbElectrons()
433 - fElectronOccupancy->GetTotalOccupancy()
434 + moleculeDef->GetCharge();
435 fDynMass = fMoleculeDefinition->GetMass();
436
437 fDynDiffusionCoefficient = fMoleculeDefinition->GetDiffusionCoefficient();
438 fDynVanDerVaalsRadius = fMoleculeDefinition->GetVanDerVaalsRadius();
439 fDynDecayTime = fMoleculeDefinition->GetDecayTime();
440
441 fName = fMoleculeDefinition->GetName();
442 fName += "^";
444
445 fFormatedName = fMoleculeDefinition->GetFormatedName();
446 fFormatedName += "^";
447 fFormatedName += "{";
449 fFormatedName += "}";
450
451 fLabel = nullptr; // let it here
452
453 if(!label.empty())
454 {
455 SetLabel(label);
456 }
457
459
460 fIsFinalized = false;
461}
const G4ElectronOccupancy * FindCommonElectronOccupancy(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)
G4int Insert(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc, G4MolecularConfiguration *molConf)
static G4MolecularConfigurationManager * GetManager()
const G4ElectronOccupancy * fElectronOccupancy
static double ReturnDefaultDiffCoeff(const G4Material *, double, const G4MolecularConfiguration *molConf)
const G4MoleculeDefinition * fMoleculeDefinition
static G4String ConvertToString(G4bool boolVal)

Referenced by AddElectron(), G4MolecularConfiguration::G4MolecularConfigurationManager::AddUserID(), ChangeConfiguration(), ChangeConfiguration(), CreateMolecularConfiguration(), CreateMolecularConfiguration(), CreateMolecularConfiguration(), CreateMolecularConfiguration(), G4MolecularConfiguration(), G4MolecularConfiguration::G4MolecularConfigurationManager::GetOrCreateMolecularConfiguration(), G4MolecularConfiguration::G4MolecularConfigurationManager::GetOrCreateMolecularConfiguration(), GetOrCreateMolecularConfiguration(), GetOrCreateMolecularConfiguration(), G4MolecularConfiguration::G4MolecularConfigurationManager::Insert(), G4MolecularConfiguration::G4MolecularConfigurationManager::Insert(), G4MolecularConfiguration::G4MolecularConfigurationManager::Insert(), Load(), operator=(), G4MolecularConfiguration::G4MolecularConfigurationManager::RecordNewlyLabeledConfiguration(), G4MolecularConfiguration::G4MolecularConfigurationManager::RemoveMolecularConfigurationFromTable(), ReturnDefaultDiffCoeff(), and ScaleAllDiffusionCoefficientsOnWater().

◆ G4MolecularConfiguration() [2/5]

G4MolecularConfiguration::G4MolecularConfiguration ( const G4MoleculeDefinition * moleculeDef,
int charge )
protected

Definition at line 465 of file G4MolecularConfiguration.cc.

468{
469 fMoleculeDefinition = moleculeDef;
470
471 fMoleculeID = GetManager()->Insert(moleculeDef,
472 charge,
473 this);
474 fElectronOccupancy = nullptr;
475
476 fDynCharge = charge;
477 fDynMass = fMoleculeDefinition->GetMass();
478
479 fDynDiffusionCoefficient = fMoleculeDefinition->GetDiffusionCoefficient();
480 fDynVanDerVaalsRadius = fMoleculeDefinition->GetVanDerVaalsRadius();
481 fDynDecayTime = fMoleculeDefinition->GetDecayTime();
482
483 fName = fMoleculeDefinition->GetName();
484 fName += "^";
486
487 fFormatedName = fMoleculeDefinition->GetFormatedName();
488 fFormatedName += "^";
489 fFormatedName += "{";
491 fFormatedName += "}";
492
493 fLabel = nullptr;
494
496
497 fIsFinalized = false;
498}

◆ G4MolecularConfiguration() [3/5]

G4MolecularConfiguration::G4MolecularConfiguration ( const G4MoleculeDefinition * moleculeDef,
const G4String & label,
int charge )
protected

Definition at line 77 of file G4MolecularConfiguration.cc.

80{
81 fMoleculeDefinition = moleculeDef;
82
83 fLabel = new G4String(label);
84
85 fMoleculeID = GetManager()->Insert(moleculeDef,
86 label,
87 this);
88 fElectronOccupancy = nullptr;
89
90 fDynCharge = charge;
91
92 fDynMass = fMoleculeDefinition->GetMass();
93
94 fDynDiffusionCoefficient = fMoleculeDefinition->GetDiffusionCoefficient();
95 fDynVanDerVaalsRadius = fMoleculeDefinition->GetVanDerVaalsRadius();
96 fDynDecayTime = fMoleculeDefinition->GetDecayTime();
97
98 fName = fMoleculeDefinition->GetName();
99 fName += "^";
101
102 fFormatedName = fMoleculeDefinition->GetFormatedName();
103 fFormatedName += "^";
104 fFormatedName += "{";
106 fFormatedName += "}";
107
109 fIsFinalized = false;
110}

◆ G4MolecularConfiguration() [4/5]

G4MolecularConfiguration::G4MolecularConfiguration ( std::istream & in)
protected

Definition at line 1379 of file G4MolecularConfiguration.cc.

1380{
1381 fLabel = nullptr; // TODO: for now not serialized
1382 Unserialize(in);
1383 fMoleculeDefinition = nullptr;
1384 fElectronOccupancy = nullptr;
1385 if(fElectronOccupancy != nullptr)
1386 {
1391
1392 if(fLabel != nullptr)
1393 {
1395 }
1396 }
1397 else if(fLabel != nullptr)
1398 {
1400 }
1401 else if(fDynCharge != 0)
1402 {
1404 }
1405}
void RecordNewlyLabeledConfiguration(G4MolecularConfiguration *molConf)

◆ G4MolecularConfiguration() [5/5]

G4MolecularConfiguration::G4MolecularConfiguration ( const G4MolecularConfiguration & )
protected

◆ ~G4MolecularConfiguration()

G4MolecularConfiguration::~G4MolecularConfiguration ( )
protected

Definition at line 502 of file G4MolecularConfiguration.cc.

503{
504 if (fgManager != nullptr) fgManager->RemoveMolecularConfigurationFromTable(this);
505}
static G4MolecularConfigurationManager * fgManager

Member Function Documentation

◆ AddDiffCoeffParameterization()

void G4MolecularConfiguration::AddDiffCoeffParameterization ( const G4DiffCoeffParam & para)
inline

Definition at line 572 of file G4MolecularConfiguration.hh.

574{
575 fDiffParam = para;
576}

◆ AddElectron()

G4MolecularConfiguration * G4MolecularConfiguration::AddElectron ( G4int orbit,
G4int n = 1 ) const

Add n electrons to a given orbit. Note : You can add as many electrons to a given orbit, the result may be unrealist.

Definition at line 602 of file G4MolecularConfiguration.cc.

604{
605// MakeExceptionIfFinalized();
606 CheckElectronOccupancy(__func__);
607 G4ElectronOccupancy newElectronOccupancy(*fElectronOccupancy);
608 newElectronOccupancy.AddElectron(orbit, number);
609 return ChangeConfiguration(newElectronOccupancy);
610}
G4MolecularConfiguration * ChangeConfiguration(const G4ElectronOccupancy &newElectronOccupancy) const
void CheckElectronOccupancy(const char *line) const

◆ ChangeConfiguration() [1/2]

G4MolecularConfiguration * G4MolecularConfiguration::ChangeConfiguration ( const G4ElectronOccupancy & newElectronOccupancy) const
protected

Definition at line 510 of file G4MolecularConfiguration.cc.

512{
515 newElectronOccupancy);
516
517 if (output == nullptr)
518 {
520 newElectronOccupancy);
521 }
522 return output;
523}
G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)
G4MolecularConfiguration(const G4MoleculeDefinition *, const G4ElectronOccupancy &, const G4String &label="")

Referenced by AddElectron(), ExciteMolecule(), IonizeMolecule(), MoveOneElectron(), and RemoveElectron().

◆ ChangeConfiguration() [2/2]

G4MolecularConfiguration * G4MolecularConfiguration::ChangeConfiguration ( int charge) const
protected

Definition at line 528 of file G4MolecularConfiguration.cc.

529{
532
533 if (output == nullptr)
534 {
535 output = new G4MolecularConfiguration(fMoleculeDefinition, charge);
536 }
537 return output;
538}

◆ CheckElectronOccupancy()

void G4MolecularConfiguration::CheckElectronOccupancy ( const char * line) const
protected

Definition at line 774 of file G4MolecularConfiguration.cc.

775{
776 if (fElectronOccupancy == nullptr)
777 {
778 G4String functionName(function);
779 G4ExceptionDescription description;
780 description
781 << "No G4ElectronOccupancy was defined for molecule definition : "
782 << fMoleculeDefinition->GetName()
783 << ". The definition was probably defined using the charge state, "
784 "rather than electron state.";
785
786 G4Exception(functionName, "", FatalErrorInArgument, description);
787 }
788}
G4double(*)(G4double) function
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription

Referenced by AddElectron(), ExciteMolecule(), GetNbElectrons(), IonizeMolecule(), MoveOneElectron(), and RemoveElectron().

◆ CreateDefaultDiffCoeffParam()

void G4MolecularConfiguration::CreateDefaultDiffCoeffParam ( )
protected

Definition at line 1451 of file G4MolecularConfiguration.cc.

1452{
1453 if(!static_cast<bool>(fDiffParam))
1454 {
1456 }
1457}

Referenced by Finalize().

◆ CreateMolecularConfiguration() [1/4]

G4MolecularConfiguration * G4MolecularConfiguration::CreateMolecularConfiguration ( const G4String & userIdentifier,
const G4MoleculeDefinition * molDef,
bool & wasAlreadyCreated )
static

Definition at line 1045 of file G4MolecularConfiguration.cc.

1049{
1050 wasAlreadyCreated = false;
1051 G4MolecularConfiguration* preRegisteredMolConf =
1052 GetManager()->GetMolecularConfiguration(userIdentifier);
1053
1054 if(preRegisteredMolConf != nullptr)
1055 {
1056 if(preRegisteredMolConf->GetDefinition() == molDef)
1057 {
1058 wasAlreadyCreated = true;
1059 return preRegisteredMolConf;
1060 }
1061 }
1062
1063 if(molDef->GetGroundStateElectronOccupancy() != nullptr)
1064 {
1065 const G4ElectronOccupancy& elecOcc = *molDef
1067 G4MolecularConfiguration* molConf =
1068 GetManager()->GetMolecularConfiguration(molDef, elecOcc);
1069
1070 if(molConf != nullptr)
1071 {
1072 if(molConf->fUserIdentifier.empty())
1073 {
1074 molConf->fUserIdentifier = userIdentifier;
1075 }
1076 else if(molConf->fUserIdentifier != userIdentifier)
1077 {
1079 errMsg << "A molecular configuration for the definition named "
1080 << molDef->GetName() << " has already been created "
1081 "and recorded with a different user ID "
1082 << molConf->fUserIdentifier;
1083 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1084 "DOUBLE_CREATION",
1086 errMsg);
1087 }
1088// TODO exception
1090 errMsg << "A molecular configuration for the definition named "
1091 << molDef->GetName() << " has already been created.";
1092 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1093 "DOUBLE_CREATION",
1095 errMsg);
1096 wasAlreadyCreated = true;
1097 return molConf;
1098 }
1099
1100 // G4cout << "Create molConf for " << molDef->GetName() << G4endl;
1101 auto newConf = new G4MolecularConfiguration(molDef,
1102 elecOcc);
1103 newConf->fUserIdentifier = userIdentifier;
1104
1105 GetManager()->AddUserID(userIdentifier, newConf);
1106
1107// G4MoleculeTable::Instance()->RecordMolecularConfiguration(userIdentifier,
1108// newConf);
1109 return newConf;
1110 }
1111
1112 return CreateMolecularConfiguration(userIdentifier,
1113 molDef,
1114 molDef->GetName(),
1115 molDef->GetCharge(),
1116 wasAlreadyCreated);
1117}
@ JustWarning
void AddUserID(const G4String &name, G4MolecularConfiguration *molecule)
const G4MoleculeDefinition * GetDefinition() const
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
const G4String & GetName() const

Referenced by G4MoleculeTable::CreateConfiguration(), G4MoleculeTable::CreateConfiguration(), G4MoleculeTable::CreateConfiguration(), G4MoleculeTable::CreateConfiguration(), CreateMolecularConfiguration(), G4MoleculeDefinition::NewConfiguration(), G4MoleculeDefinition::NewConfigurationWithElectronOccupancy(), and G4MoleculeTableMessenger::SetNewValue().

◆ CreateMolecularConfiguration() [2/4]

G4MolecularConfiguration * G4MolecularConfiguration::CreateMolecularConfiguration ( const G4String & userIdentifier,
const G4MoleculeDefinition * molDef,
const G4String & label,
bool & wasAlreadyCreated )
static

Definition at line 1122 of file G4MolecularConfiguration.cc.

1127{
1128 assert(label != "");
1129 wasAlreadyCreated = false;
1130
1131 G4MolecularConfiguration* molConf =
1132 GetManager()->GetMolecularConfiguration(molDef, label);
1133 if(molConf != nullptr)
1134 {
1135 if((molConf->fLabel != nullptr)
1136 && *molConf->fLabel == label)
1137 {
1138 wasAlreadyCreated = true;
1139 return molConf;
1140 }
1141 if(molConf->fLabel == nullptr)
1142 {
1143 wasAlreadyCreated = true;
1144 molConf->SetLabel(label);
1145 return molConf;
1146 }
1147 if(molConf->fLabel->empty())
1148 {
1149 wasAlreadyCreated = true;
1150 molConf->SetLabel(label);
1151 return molConf;
1152 }
1153
1154 molConf->PrintState();
1155 G4ExceptionDescription errMsg ;
1156 errMsg << "A molecular configuration for the definition named "
1157 << molDef->GetName()
1158 << " has already been created "
1159 "with user ID "
1160 << molConf->fUserIdentifier << " and label "
1161 << molConf->GetLabel();
1162 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1163 "DOUBLE_CREATION",
1165 errMsg);
1166 // KILL APP
1167 }
1168 else
1169 {
1170 auto newConf =
1171 new G4MolecularConfiguration(molDef,
1172 label,
1173 molDef->GetCharge());
1174 newConf->fUserIdentifier = userIdentifier;
1175
1176 GetManager()->AddUserID(userIdentifier, newConf);
1177
1178// G4MoleculeTable::Instance()->
1179// RecordMolecularConfiguration(userIdentifier, newConf);
1180 return newConf;
1181 }
1182 return molConf;
1183}
const G4String & GetLabel() const

◆ CreateMolecularConfiguration() [3/4]

G4MolecularConfiguration * G4MolecularConfiguration::CreateMolecularConfiguration ( const G4String & userIdentifier,
const G4MoleculeDefinition * molDef,
const G4String & label,
const G4ElectronOccupancy & eOcc,
bool & wasAlreadyCreated )
static

Definition at line 1188 of file G4MolecularConfiguration.cc.

1194{
1195 assert(label != "");
1196 wasAlreadyCreated = false;
1197
1198 G4MolecularConfiguration* molConf =
1199 GetManager()->GetMolecularConfiguration(molDef, eOcc);
1200
1201 if(molConf != nullptr)
1202 {
1203 if(molConf->GetElectronOccupancy() != nullptr)
1204 {
1205 if(*molConf->GetElectronOccupancy() == eOcc)
1206 {
1207 if((molConf->fLabel != nullptr) && *molConf->fLabel == label)
1208 {
1209 wasAlreadyCreated = true;
1210 return molConf;
1211 }
1212 if(molConf->fLabel == nullptr)
1213 {
1214 wasAlreadyCreated = true;
1215 molConf->SetLabel(label);
1216 return molConf;
1217 }
1218 if(molConf->fLabel->empty())
1219 {
1220 wasAlreadyCreated = true;
1221 molConf->SetLabel(label);
1222 return molConf;
1223 }
1224 }
1225 }
1226
1227
1228 molConf->PrintState();
1229 G4ExceptionDescription errMsg ;
1230 errMsg << "A molecular configuration for the definition named "
1231 << molDef->GetName()
1232 << " has already been created "
1233 "with user ID "
1234 << molConf->fUserIdentifier
1235 << " and possible different electronic state";
1236 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1237 "DOUBLE_CREATION",
1239 errMsg);
1240 }
1241 else
1242 {
1243 auto newConf =
1244 new G4MolecularConfiguration(molDef,
1245 eOcc,
1246 label);
1247 newConf->fUserIdentifier = userIdentifier;
1248
1249 GetManager()->AddUserID(userIdentifier, newConf);
1250
1251// G4MoleculeTable::Instance()->
1252// RecordMolecularConfiguration(userIdentifier, newConf);
1253 return newConf;
1254 }
1255 return molConf;
1256}
const G4ElectronOccupancy * GetElectronOccupancy() const

◆ CreateMolecularConfiguration() [4/4]

G4MolecularConfiguration * G4MolecularConfiguration::CreateMolecularConfiguration ( const G4String & userIdentifier,
const G4MoleculeDefinition * molDef,
int charge,
const G4String & label,
bool & wasAlreadyCreated )
static

Definition at line 955 of file G4MolecularConfiguration.cc.

960{
961 wasAlreadyCreated = false;
962 G4MolecularConfiguration* molConf =
963 GetManager()->GetMolecularConfiguration(molDef, charge);
964
965 if (molConf != nullptr)
966 {
967 if(molConf->fLabel == nullptr)
968 {
969 molConf->SetLabel(label);
971 wMsg << "The molecular configuration for the definition named "
972 << molDef->GetName()
973 << " with charge " << charge << " has already been created "
974 "but with NO label";
975 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
976 "DOUBLE_CREATION",
978 wMsg);
979 }
980 else if(molConf->fLabel->empty() )
981 {
982 molConf->SetLabel(label);
983 }
984 else if(*(molConf->fLabel) != label)
985 {
987 errMsg << "The molecular configuration for the definition named "
988 << molDef->GetName()
989 << " with charge " << charge << " has already been created "
990 "but with a different label :"
991 << molConf->GetLabel();
992 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
993 "DOUBLE_CREATION",
995 errMsg);
996 // KILL APP
997 }
998
999 if(molConf->fUserIdentifier.empty())
1000 {
1001 molConf->fUserIdentifier = userIdentifier;
1002
1004 wMsg << "The molecular configuration for the definition named "
1005 << molDef->GetName()
1006 << " with label " << label << " has already been created.";
1007 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1008 "DOUBLE_CREATION",
1010 wMsg);
1011 }
1012 else if(molConf->fUserIdentifier != userIdentifier)
1013 {
1014 G4ExceptionDescription errMsg ;
1015 errMsg << "The molecular configuration for the definition named "
1016 << molDef->GetName()
1017 << " with label " << label << " has already been created "
1018 "BUT with a different user ID :"
1019 << molConf->fUserIdentifier;
1020 G4Exception("G4MolecularConfiguration::CreateMolecularConfiguration",
1021 "DOUBLE_CREATION",
1023 errMsg);
1024 // KILL APP
1025 }
1026
1027 wasAlreadyCreated = true;
1028 return molConf;
1029 }
1030
1031 auto newConf =
1032 new G4MolecularConfiguration(molDef, label, charge);
1033 newConf->fUserIdentifier = userIdentifier;
1034
1035 GetManager()->AddUserID(userIdentifier, newConf);
1036
1037// G4MoleculeTable::Instance()->RecordMolecularConfiguration(userIdentifier,
1038// newConf);
1039 return newConf;
1040}

◆ DeleteManager()

void G4MolecularConfiguration::DeleteManager ( )
static

Definition at line 402 of file G4MolecularConfiguration.cc.

403{
405 delete fgManager;
406 fgManager = nullptr;
407 lock.unlock();
408}
G4TemplateAutoLock< G4Mutex > G4AutoLock

Referenced by G4DNAChemistryManager::Clear().

◆ DiffCoeffWater()

double G4MolecularConfiguration::DiffCoeffWater ( double temperature_K)
static

Definition at line 1418 of file G4MolecularConfiguration.cc.

1419{
1420 return pow(10, 4.311
1421 - 2.722e3/temperature_K
1422 + 8.565e5/(temperature_K *temperature_K)
1423 - 1.181e8/(temperature_K*temperature_K*temperature_K ))*1e-9*m2/s;
1424}

Referenced by ScaleAllDiffusionCoefficientsOnWater(), and G4DNAMolecularReactionData::ScaledParameterization().

◆ ExciteMolecule()

G4MolecularConfiguration * G4MolecularConfiguration::ExciteMolecule ( G4int ExcitedLevel) const

Method used in Geant4-DNA to excite water molecules

Definition at line 554 of file G4MolecularConfiguration.cc.

555{
556// MakeExceptionIfFinalized();
557 CheckElectronOccupancy(__func__);
558 G4ElectronOccupancy newElectronOccupancy(*fElectronOccupancy);
559
560 newElectronOccupancy.RemoveElectron(ExcitedLevel, 1);
561 newElectronOccupancy.AddElectron(5, 1);
562
563 return ChangeConfiguration(newElectronOccupancy);
564}

◆ Finalize()

void G4MolecularConfiguration::Finalize ( )
inline

Definition at line 561 of file G4MolecularConfiguration.hh.

◆ FinalizeAll()

void G4MolecularConfiguration::FinalizeAll ( )
static

Definition at line 1497 of file G4MolecularConfiguration.cc.

1498{
1499 const std::vector<G4MolecularConfiguration*>& species =
1501
1502 for(auto specie : species)
1503 {
1504 specie->Finalize();
1505 }
1506
1507}
const std::vector< G4MolecularConfiguration * > & GetAllSpecies()

Referenced by G4MoleculeTable::Finalize().

◆ GetAtomsNumber()

G4int G4MolecularConfiguration::GetAtomsNumber ( ) const

Returns the nomber of atoms compouning the molecule

Definition at line 687 of file G4MolecularConfiguration.cc.

688{
689 return fMoleculeDefinition->GetAtomsNumber();
690}

◆ GetCharge()

G4int G4MolecularConfiguration::GetCharge ( ) const
inline

Returns the charge of molecule.

Definition at line 518 of file G4MolecularConfiguration.hh.

519{
520 return fDynCharge;
521}

◆ GetDecayTime()

G4double G4MolecularConfiguration::GetDecayTime ( ) const
inline

Returns the decay time of the molecule.

Definition at line 502 of file G4MolecularConfiguration.hh.

503{
504 return fDynDecayTime;
505}

◆ GetDefinition()

◆ GetDiffusionCoefficient() [1/2]

G4double G4MolecularConfiguration::GetDiffusionCoefficient ( ) const
inline

◆ GetDiffusionCoefficient() [2/2]

G4double G4MolecularConfiguration::GetDiffusionCoefficient ( const G4Material * material,
double temperature ) const
inline

Definition at line 579 of file G4MolecularConfiguration.hh.

581{
582 return fDiffParam(material, temperature, this);
583}

◆ GetDissociationChannels()

const vector< const G4MolecularDissociationChannel * > * G4MolecularConfiguration::GetDissociationChannels ( ) const

Definition at line 740 of file G4MolecularConfiguration.cc.

741{
742 // if (fElectronOccupancy == 0) return 0;
743 return fMoleculeDefinition->GetDecayChannels(this);
744}

◆ GetElectronOccupancy()

const G4ElectronOccupancy * G4MolecularConfiguration::GetElectronOccupancy ( ) const
inline

Returns the object ElectronOccupancy describing the electronic configuration of the molecule.

Definition at line 480 of file G4MolecularConfiguration.hh.

481{
482 return fElectronOccupancy;
483}

Referenced by CreateMolecularConfiguration(), and G4MolecularConfiguration::G4MolecularConfigurationManager::RemoveMolecularConfigurationFromTable().

◆ GetFakeParticleID()

G4int G4MolecularConfiguration::GetFakeParticleID ( ) const

Definition at line 748 of file G4MolecularConfiguration.cc.

749{
750 if(fMoleculeDefinition != nullptr) return fMoleculeDefinition->GetPDGEncoding();
751 G4Exception("G4MolecularConfiguration::GetMoleculeID",
752 "",
754 "You should first enter a molecule definition");
755
756 return INT_MAX;
757}
#define INT_MAX
Definition templates.hh:90

◆ GetFormatedName()

const G4String & G4MolecularConfiguration::GetFormatedName ( ) const

Returns the formated name of the molecule

Definition at line 680 of file G4MolecularConfiguration.cc.

681{
682 return fFormatedName;
683}

◆ GetGlobalTemperature()

G4double G4MolecularConfiguration::GetGlobalTemperature ( )
static

◆ GetLabel()

const G4String & G4MolecularConfiguration::GetLabel ( ) const
inline

Definition at line 553 of file G4MolecularConfiguration.hh.

554{
555 if(fLabel == nullptr)
556 fLabel = new G4String();
557
558 return (*fLabel);
559}

Referenced by CreateMolecularConfiguration(), CreateMolecularConfiguration(), and PrintState().

◆ GetManager()

◆ GetMass()

G4double G4MolecularConfiguration::GetMass ( ) const
inline

Returns the total mass of the molecule.

Definition at line 529 of file G4MolecularConfiguration.hh.

530{
531 return fDynMass;
532}

◆ GetMolecularConfiguration() [1/3]

◆ GetMolecularConfiguration() [2/3]

G4MolecularConfiguration * G4MolecularConfiguration::GetMolecularConfiguration ( const G4String & userID)
static

Definition at line 1490 of file G4MolecularConfiguration.cc.

1491{
1492 return GetManager()->GetMolecularConfiguration(userID);
1493}

◆ GetMolecularConfiguration() [3/3]

G4MolecularConfiguration * G4MolecularConfiguration::GetMolecularConfiguration ( int moleculeID)
static

Definition at line 947 of file G4MolecularConfiguration.cc.

948{
949 return GetManager()->GetMolecularConfiguration(moleculeID);
950}

◆ GetMoleculeID()

G4int G4MolecularConfiguration::GetMoleculeID ( ) const
inline

◆ GetName()

◆ GetNbElectrons()

G4double G4MolecularConfiguration::GetNbElectrons ( ) const

Returns the number of electron.

Definition at line 694 of file G4MolecularConfiguration.cc.

695{
696 CheckElectronOccupancy(__func__);
697 return fElectronOccupancy->GetTotalOccupancy();
698}

◆ GetNumberOfSpecies()

int G4MolecularConfiguration::GetNumberOfSpecies ( )
static

◆ GetOrCreateMolecularConfiguration() [1/3]

G4MolecularConfiguration * G4MolecularConfiguration::GetOrCreateMolecularConfiguration ( const G4MoleculeDefinition * molDef)
static

Definition at line 321 of file G4MolecularConfiguration.cc.

323{
324 if (molDef->GetGroundStateElectronOccupancy() != nullptr)
325 {
326 const G4ElectronOccupancy& elecOcc =
328 G4MolecularConfiguration* molConf =
329 GetManager()->GetMolecularConfiguration(molDef, elecOcc);
330
331 if (molConf != nullptr)
332 {
333 return molConf;
334 }
335
336 auto newConf =
337 new G4MolecularConfiguration(molDef,
338 elecOcc);
339 newConf->SetUserID(molDef->GetName());
340 return newConf;
341 }
342
343 G4MolecularConfiguration* molConf =
344 GetManager()->GetMolecularConfiguration(molDef, molDef->GetCharge());
345 if(molConf != nullptr)
346 {
347 return molConf;
348 }
349
350 auto newConf =
351 new G4MolecularConfiguration(molDef, molDef->GetCharge());
352 newConf->SetUserID(molDef->GetName());
353 return newConf;
354}

Referenced by G4Molecule::G4Molecule(), G4Molecule::G4Molecule(), G4Molecule::G4Molecule(), G4Molecule::G4Molecule(), G4MoleculeTable::PrepareMolecularConfiguration(), G4Molecule::SetElectronOccupancy(), and G4MoleculeTableMessenger::SetNewValue().

◆ GetOrCreateMolecularConfiguration() [2/3]

G4MolecularConfiguration * G4MolecularConfiguration::GetOrCreateMolecularConfiguration ( const G4MoleculeDefinition * molDef,
const G4ElectronOccupancy & eOcc )
static

Definition at line 359 of file G4MolecularConfiguration.cc.

362{
363 return GetManager()->GetOrCreateMolecularConfiguration(molDef, elecOcc);
364
365// G4MolecularConfiguration* molConf =
366// GetManager()->GetMolecularConfiguration(molDef, elecOcc);
367//
368// if (molConf)
369// {
370// return molConf;
371// }
372// else
373// {
374// G4MolecularConfiguration* newConf =
375// new G4MolecularConfiguration(molDef, elecOcc);
376// return newConf;
377// }
378}
G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)

◆ GetOrCreateMolecularConfiguration() [3/3]

G4MolecularConfiguration * G4MolecularConfiguration::GetOrCreateMolecularConfiguration ( const G4MoleculeDefinition * molDef,
int charge )
static

Definition at line 383 of file G4MolecularConfiguration.cc.

386{
387 G4MolecularConfiguration* molConf =
388 GetManager()->GetMolecularConfiguration(molDef, charge);
389
390 if(molConf != nullptr)
391 {
392 return molConf;
393 }
394
395 auto newConf =
396 new G4MolecularConfiguration(molDef, charge);
397 return newConf;
398}

◆ GetUserID()

const G4String & G4MolecularConfiguration::GetUserID ( ) const
inline

Definition at line 567 of file G4MolecularConfiguration.hh.

568{
569 return fUserIdentifier;
570}

Referenced by G4MoleculeReactionCounterIndex::FormattedReactionString().

◆ GetUserIDTable()

std::map< G4String, G4MolecularConfiguration * > & G4MolecularConfiguration::GetUserIDTable ( )
inlinestatic

Definition at line 166 of file G4MolecularConfiguration.hh.

167 {
168 return GetManager()->GetUserIDTable();
169 }
std::map< G4String, G4MolecularConfiguration * > & GetUserIDTable()

Referenced by G4MoleculeTable::GetConfigurationIterator().

◆ GetVanDerVaalsRadius()

G4double G4MolecularConfiguration::GetVanDerVaalsRadius ( ) const
inline

Definition at line 513 of file G4MolecularConfiguration.hh.

514{
516}

◆ IonizeMolecule()

G4MolecularConfiguration * G4MolecularConfiguration::IonizeMolecule ( G4int IonizedLevel) const

Method used in Geant4-DNA to ionize water molecules

Definition at line 571 of file G4MolecularConfiguration.cc.

572{
573// MakeExceptionIfFinalized();
574 CheckElectronOccupancy(__func__);
575 G4ElectronOccupancy newElectronOccupancy(*fElectronOccupancy);
576
577 if (newElectronOccupancy.GetOccupancy(IonizedLevel) != 0)
578 {
579 newElectronOccupancy.RemoveElectron(IonizedLevel, 1);
580 }
581 else
582 {
583 G4String errMsg = "There is no electron on the orbit "
584 + G4UIcommand::ConvertToString(IonizedLevel)
585 + " you want to free. The molecule's name you want to ionized is "
586 + GetName();
587 G4Exception("G4MolecularConfiguration::IonizeMolecule",
588 "",
590 errMsg);
591 PrintState();
592 }
593
594 // DEBUG
595 // PrintState();
596
597 return ChangeConfiguration(newElectronOccupancy);
598}
const G4String & GetName() const

◆ Load()

G4MolecularConfiguration * G4MolecularConfiguration::Load ( std::istream & in)
static

Definition at line 1372 of file G4MolecularConfiguration.cc.

1373{
1374 return new G4MolecularConfiguration(in);
1375}

◆ MakeExceptionIfFinalized()

void G4MolecularConfiguration::MakeExceptionIfFinalized ( )
protected

Definition at line 112 of file G4MolecularConfiguration.cc.

113{
114 if(fIsFinalized)
115 {
117 errMsg << "This molecular configuration " << GetName()
118 << " is already finalized. Therefore its "
119 " properties cannot be changed.";
120 G4Exception("G4MolecularConfiguration::MakeExceptionIfFinalized",
121 "CONF_FINALIZED",FatalException,errMsg);
122 }
123}
@ FatalException

Referenced by SetDecayTime(), SetDiffusionCoefficient(), SetMass(), and SetVanDerVaalsRadius().

◆ MoveOneElectron()

G4MolecularConfiguration * G4MolecularConfiguration::MoveOneElectron ( G4int orbitToFree,
G4int orbitToFill ) const

Move one electron from an orbit to another.

Definition at line 644 of file G4MolecularConfiguration.cc.

646{
647// MakeExceptionIfFinalized();
648 CheckElectronOccupancy(__func__);
649 G4ElectronOccupancy newElectronOccupancy(*fElectronOccupancy);
650
651 if (newElectronOccupancy.GetOccupancy(orbitToFree) >= 1)
652 {
653 newElectronOccupancy.RemoveElectron(orbitToFree, 1);
654 newElectronOccupancy.AddElectron(orbitToFill, 1);
655 }
656 else
657 {
658 G4String errMsg = "There is no electron on the orbit "
659 + G4UIcommand::ConvertToString(orbitToFree)
660 + " you want to free. The molecule's name is " + GetName();
661 G4Exception("G4MolecularConfiguration::MoveOneElectron",
662 "",
664 errMsg);
665 PrintState();
666 }
667
668 return ChangeConfiguration(newElectronOccupancy);
669}

◆ operator=()

G4MolecularConfiguration & G4MolecularConfiguration::operator= ( G4MolecularConfiguration & right)
protected

Definition at line 543 of file G4MolecularConfiguration.cc.

544{
545// if (&right == this) return *this;
546 return *this;
547}

◆ PrintAll()

void G4MolecularConfiguration::PrintAll ( )
static

Definition at line 1509 of file G4MolecularConfiguration.cc.

1510{
1511 const std::vector<G4MolecularConfiguration*>& species =
1513 G4cout<<G4endl;
1514 G4cout<<"Molecular Config"<<std::setw(25)<<" | Diffusion Coefficient (m2 / s) "<<std::setw(20)<<" | Radius (nm) "<<G4endl;
1515 G4cout<<"__________________________________________"
1516 "___________________________________"<<G4endl;
1517 for(auto specie : species)
1518 {
1519 G4cout<<specie->GetName()
1520 <<std::setw(G4int(30 - specie->GetName().length()))
1521 <<right<<specie->GetDiffusionCoefficient() * 1.0e3<<std::setw(30)
1522 <<specie->GetVanDerVaalsRadius()/CLHEP::nm<<G4endl;
1523 G4cout<<"__________________________________________"
1524 "___________________________________"<<G4endl;
1525 }
1526
1527}
int G4int
Definition G4Types.hh:85
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

Referenced by G4MoleculeTableMessenger::SetNewValue().

◆ PrintState()

void G4MolecularConfiguration::PrintState ( ) const

Display the electronic state of the molecule.

Definition at line 702 of file G4MolecularConfiguration.cc.

703{
704 G4cout << "-------------- Start Printing State " << GetName()
705 << " ---------------" << G4endl;
706
707 if (fElectronOccupancy != nullptr)
708 {
709 G4cout << "--------------Print electronic state of " << GetName()
710 << "---------------" << G4endl;
711 fElectronOccupancy->DumpInfo();
712 if(fElectronOccupancy==fMoleculeDefinition->GetGroundStateElectronOccupancy())
713 {
714 G4cout<<"At ground state"<<G4endl;
715 }
716 }
717 else
718 {
719 G4cout << "--- No electron occupancy set up ---" << G4endl;
720 }
721
722 G4cout << "Charge :"
723 << fDynCharge
724 << G4endl;
725
726 if(fLabel != nullptr)
727 {
728 G4cout << "Label :"
729 << GetLabel()
730 << G4endl;
731 }
732 G4cout << "-------------- End Of State " << GetName()
733 << " -----------------------" << G4endl;
734}

Referenced by CreateMolecularConfiguration(), CreateMolecularConfiguration(), IonizeMolecule(), MoveOneElectron(), and RemoveElectron().

◆ RemoveElectron()

G4MolecularConfiguration * G4MolecularConfiguration::RemoveElectron ( G4int orbit,
G4int number = 1 ) const

Remove n electrons to a given orbit.

Definition at line 615 of file G4MolecularConfiguration.cc.

617{
618// MakeExceptionIfFinalized();
619 CheckElectronOccupancy(__func__);
620 G4ElectronOccupancy newElectronOccupancy(*fElectronOccupancy);
621
622 if (newElectronOccupancy.GetOccupancy(orbit) != 0)
623 {
624 newElectronOccupancy.RemoveElectron(orbit, number);
625 }
626 else
627 {
628 G4String errMsg = "There is already no electron into the orbit "
630 + " you want to free. The molecule's name is " + GetName();
631 G4Exception("G4MolecularConfiguration::RemoveElectron",
632 "",
634 errMsg);
635 PrintState();
636 }
637
638 return ChangeConfiguration(newElectronOccupancy);
639}

◆ ReturnDefaultDiffCoeff()

double G4MolecularConfiguration::ReturnDefaultDiffCoeff ( const G4Material * ,
double ,
const G4MolecularConfiguration * molConf )
staticprotected

◆ ScaleAllDiffusionCoefficientsOnWater()

void G4MolecularConfiguration::ScaleAllDiffusionCoefficientsOnWater ( double temperature_K)
staticprotected

Definition at line 1429 of file G4MolecularConfiguration.cc.

1431{
1432 double D_water_0 = DiffCoeffWater(fgTemperature);
1433 double D_water_f = DiffCoeffWater(temperature_K);
1434
1435 G4cout << "Scaling factor = " << D_water_f/D_water_0 << G4endl;
1436
1439
1440 while(it())
1441 {
1442 G4MolecularConfiguration* conf = it.value();
1443 double D_0 = conf->GetDiffusionCoefficient() ;
1444 double D_f = D_water_f * D_0 /D_water_0;
1445 conf->SetDiffusionCoefficient(D_f);
1446 };
1447}
G4MoleculeIterator< G4MolecularConfiguration > G4ConfigurationIterator
static double DiffCoeffWater(double temperature_K)
static G4MoleculeTable * Instance()
G4ConfigurationIterator GetConfigurationIterator()

Referenced by SetGlobalTemperature().

◆ Serialize()

void G4MolecularConfiguration::Serialize ( std::ostream & out)

Definition at line 1322 of file G4MolecularConfiguration.cc.

1323{
1324 G4String moleculeName = fMoleculeDefinition->GetName();
1325 WRITE(out, moleculeName);
1326
1327// if(fLabel)
1328// out << fLabel;
1329// else
1330// out << "";
1333 WRITE(out,fDynDecayTime);
1334 WRITE(out,fDynMass);
1335 WRITE(out,fDynCharge);
1336 WRITE(out,fMoleculeID);
1337 WRITE(out,fFormatedName);
1338 WRITE(out,fName);
1339 WRITE(out,fIsFinalized);
1340}
void WRITE(std::ostream &out, const T &toBeSaved)

◆ SetDecayTime()

void G4MolecularConfiguration::SetDecayTime ( G4double dynDecayTime)
inline

Set the decay time of the molecule.

Definition at line 496 of file G4MolecularConfiguration.hh.

497{
499 fDynDecayTime = dynDecayTime;
500}

Referenced by G4MoleculeDefinition::NewConfigurationWithElectronOccupancy().

◆ SetDiffusionCoefficient()

void G4MolecularConfiguration::SetDiffusionCoefficient ( G4double dynDiffusionCoefficient)
inline

Sets the diffusion coefficient D of the molecule used in diffusion processes to calculate the mean square jump distance between two changes of direction. In three dimension : <x^2> = 6 D t where t is the mean jump time between two changes of direction.

Note : Diffusion Coefficient in one medium only For the time being, we will consider only one diffusion coefficient for the all simulation => diffusion in one medium only If the user needs to use the diffusion in different materials, she/he should contact the developers/maintainers of this package

Definition at line 485 of file G4MolecularConfiguration.hh.

486{
488 fDynDiffusionCoefficient = dynDiffusionCoefficient;
489}

Referenced by G4EmDNAChemistry_option1::ConstructMolecule(), G4MoleculeTable::CreateConfiguration(), and ScaleAllDiffusionCoefficientsOnWater().

◆ SetGlobalTemperature()

void G4MolecularConfiguration::SetGlobalTemperature ( G4double temperature)
static

Definition at line 1461 of file G4MolecularConfiguration.cc.

1462{
1464 fgTemperature = temperature;
1465}
static void ScaleAllDiffusionCoefficientsOnWater(double temperature_K)

Referenced by G4DNAChemistryManager::SetGlobalTemperature().

◆ SetLabel()

void G4MolecularConfiguration::SetLabel ( const G4String & label)
inline

Definition at line 539 of file G4MolecularConfiguration.hh.

540{
541 assert(fLabel == 0 || *fLabel == "");
542 if(fLabel == nullptr)
543 {
544 fLabel = new G4String(label);
545 }
546 else
547 {
548 *fLabel = label;
549 }
550 fgManager->RecordNewlyLabeledConfiguration(this);
551}

Referenced by CreateMolecularConfiguration(), CreateMolecularConfiguration(), CreateMolecularConfiguration(), and G4MolecularConfiguration().

◆ SetMass()

void G4MolecularConfiguration::SetMass ( G4double aMass)
inline

Set the total mass of the molecule.

Definition at line 523 of file G4MolecularConfiguration.hh.

524{
526 fDynMass = aMass;
527}

Referenced by G4ChemDissociationChannels::ConstructMolecule(), and G4ChemDissociationChannels_option1::ConstructMolecule().

◆ SetUserID()

void G4MolecularConfiguration::SetUserID ( const G4String & userID)

Definition at line 1409 of file G4MolecularConfiguration.cc.

1410{
1411 fUserIdentifier = userID;
1412 GetManager()->AddUserID(userID, this);
1413// G4MoleculeTable::Instance()->RecordMolecularConfiguration(userID, this);
1414}

◆ SetVanDerVaalsRadius()

void G4MolecularConfiguration::SetVanDerVaalsRadius ( G4double dynVanDerVaalsRadius)
inline

The Van Der Valls Radius of the molecule

Definition at line 507 of file G4MolecularConfiguration.hh.

508{
510 fDynVanDerVaalsRadius = dynVanDerVaalsRadius;
511}

Referenced by G4ChemDissociationChannels_option1::ConstructMolecule().

◆ UnFinalize()

void G4MolecularConfiguration::UnFinalize ( )
inline

Definition at line 585 of file G4MolecularConfiguration.hh.

586{
587 fIsFinalized = false;
588}

◆ Unserialize()

void G4MolecularConfiguration::Unserialize ( std::istream & in)

Definition at line 1344 of file G4MolecularConfiguration.cc.

1345{
1346 G4String moleculeName;
1347 READ(in, moleculeName);
1350
1351// G4String label;
1352//
1353// in.read((char*)(&label), sizeof(label));
1354//
1355// if(label)
1356// fLabel = new G4String(label);
1357// else
1358// fLabel = 0;
1361 READ(in,fDynDecayTime);
1362 READ(in,fDynMass);
1363 READ(in,fDynCharge);
1364 READ(in,fMoleculeID);
1365 READ(in,fFormatedName);
1366 READ(in,fName);
1367 READ(in,fIsFinalized);
1368}
void READ(std::istream &in, T &toBeSaved)
G4MoleculeDefinition * GetMoleculeDefinition(const G4String &, bool mustExist=true)

Referenced by G4MolecularConfiguration().

Member Data Documentation

◆ fDiffParam

◆ fDynCharge

◆ fDynDecayTime

G4double G4MolecularConfiguration::fDynDecayTime
protected

◆ fDynDiffusionCoefficient

◆ fDynMass

G4double G4MolecularConfiguration::fDynMass
protected

◆ fDynVanDerVaalsRadius

◆ fElectronOccupancy

◆ fFormatedName

G4String G4MolecularConfiguration::fFormatedName
protected

◆ fgManager

◆ fgTemperature

G4double G4MolecularConfiguration::fgTemperature = 298
staticprotected

◆ fIsFinalized

◆ fLabel

◆ fMoleculeDefinition

◆ fMoleculeID

◆ fName

G4String G4MolecularConfiguration::fName
protected

◆ fUserIdentifier


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