46 #ifndef G4MolecularConfiguration_
47 #define G4MolecularConfiguration_ 1
68 if (totalOcc1 != totalOcc2)
70 return totalOcc1 < totalOcc2;
74 G4int occupancy1 = -1;
75 G4int occupancy2 = -1;
77 for (
G4int i = 0; i < sizeOrbit; i++)
82 if (occupancy1 != occupancy2)
84 return occupancy1 < occupancy2;
132 bool& wasAlreadyCreated);
139 bool& wasAlreadyCreated);
146 bool& wasAlreadyCreated);
152 bool& wasAlreadyCreated);
227 const std::vector<const G4MolecularDissociationChannel*>*
252 double temperature)
const;
433 typedef std::map<int,
435 typedef std::map<
const G4MoleculeDefinition*,
442 typedef std::map<
const G4MoleculeDefinition*,
447 typedef std::map<G4String, G4MolecularConfiguration*>
UserIDTable;
554 assert(fLabel == 0 || *fLabel ==
"");
593 double temperature)
const
595 return fDiffParam(material, temperature,
this);
The pointer G4MolecularConfiguration will be shared by all the molecules having the same molecule def...
G4double GetDiffusionCoefficient() const
Returns the diffusion coefficient D.
void SetLabel(const G4String &)
void PrintState() const
Display the electronic state of the molecule.
G4int GetCharge() const
Returns the charge of molecule.
static G4MolecularConfiguration * Load(std::istream &)
const G4String & GetName() const
Returns the name of the molecule.
G4int GetTotalOccupancy() const
void Serialize(std::ostream &)
~G4MolecularConfiguration()
MolChargeConfTable fChargeTable
void CreateDefaultDiffCoeffParam()
G4double fDynVanDerVaalsRadius
G4MolecularConfiguration * ChangeConfiguration(const G4ElectronOccupancy &newElectronOccupancy)
G4Mutex fMoleculeCreationMutex
static double fgTemperature
static G4Mutex fManagerCreationMutex
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
G4double fDynDiffusionCoefficient
void AddUserID(const G4String &name, G4MolecularConfiguration *molecule)
std::function< double(const G4Material *, double, const G4MolecularConfiguration *)> G4DiffCoeffParam
std::vector< G4MolecularConfiguration * > fMolConfPerID
G4double GetNbElectrons() const
Returns the number of electron.
G4int GetSizeOfOrbit() const
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)
const G4String & GetUserID() const
const G4ElectronOccupancy * FindCommonElectronOccupancy(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)
const G4ElectronOccupancy * GetElectronOccupancy() const
Returns the object ElectronOccupancy describing the electronic configuration of the molecule...
G4int Insert(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc, G4MolecularConfiguration *molConf)
void SetUserID(const G4String &userID)
G4double(* function)(G4double)
G4DiffCoeffParam fDiffParam
G4int GetFakeParticleID() const
static G4double GetGlobalTemperature()
static std::map< G4String, G4MolecularConfiguration * > & GetUserIDTable()
static G4MolecularConfigurationManager * fgManager
std::map< G4String, G4MolecularConfiguration * > & GetUserIDTable()
bool operator()(const G4ElectronOccupancy &occ1, const G4ElectronOccupancy &occ2) const
static void ScaleAllDiffusionCoefficientsOnWater(double temperature_K)
void RecordNewlyLabeledConfiguration(G4MolecularConfiguration *molConf)
G4int GetOccupancy(G4int orbit) const
static int GetNumberOfSpecies()
G4MolecularConfiguration * IonizeMolecule(G4int)
Method used in Geant4-DNA to ionize water molecules.
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1)
Add n electrons to a given orbit.
static void FinalizeAll()
void CheckElectronOccupancy(const char *line) const
static double DiffCoeffWater(double temperature_K)
int GetNumberOfCreatedSpecies()
static void DeleteManager()
G4MolecularConfiguration * MoveOneElectron(G4int, G4int)
Move one electron from an orbit to another.
void SetDiffusionCoefficient(G4double)
Sets the diffusion coefficient D of the molecule used in diffusion processes to calculate the mean sq...
G4MolecularConfiguration & operator=(G4MolecularConfiguration &right)
static void SetGlobalTemperature(G4double)
G4MolecularConfigurationManager()
static G4MolecularConfigurationManager * GetManager()
G4int GetMoleculeID() const
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
static double ReturnDefaultDiffCoeff(const G4Material *, double, const G4MolecularConfiguration *molConf)
G4MolecularConfiguration(const G4MoleculeDefinition *, const G4ElectronOccupancy &, const G4String &label="")
G4double GetMass() const
Returns the total mass of the molecule.
MolElectronConfTable fElecOccTable
const G4String & GetFormatedName() const
Returns the formated name of the molecule.
std::map< G4ElectronOccupancy, G4MolecularConfiguration *, comparator > ElectronOccupancyTable
void SetMass(G4double)
Set the total mass of the molecule.
MolLabelConfTable fLabelTable
void RemoveMolecularConfigurationFromTable(G4MolecularConfiguration *)
void SetDecayTime(G4double)
Set the decay time of the molecule.
void SetVanDerVaalsRadius(G4double)
The Van Der Valls Radius of the molecule.
G4int GetAtomsNumber() const
Returns the nomber of atoms compouning the molecule.
const std::vector< G4MolecularConfiguration * > & GetAllSpecies()
const G4MoleculeDefinition * GetDefinition() const
std::map< const G4MoleculeDefinition *, ElectronOccupancyTable > MolElectronConfTable
const G4String & GetLabel() const
void Unserialize(std::istream &)
G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *molDef, const G4ElectronOccupancy &eOcc)
std::map< G4String, G4MolecularConfiguration * > UserIDTable
std::map< const G4MoleculeDefinition *, ChargeTable > MolChargeConfTable
G4double GetDecayTime() const
Returns the decay time of the molecule.
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1)
Remove n electrons to a given orbit.
std::map< const G4String, G4MolecularConfiguration * > LabelTable
const G4ElectronOccupancy * fElectronOccupancy
G4MolecularConfiguration * ExciteMolecule(G4int)
Method used in Geant4-DNA to excite water molecules.
~G4MolecularConfigurationManager()
void MakeExceptionIfFinalized()
const G4MoleculeDefinition * fMoleculeDefinition
void AddDiffCoeffParameterization(const G4DiffCoeffParam &)
std::map< int, G4MolecularConfiguration * > ChargeTable
G4double GetVanDerVaalsRadius() const
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
std::map< const G4MoleculeDefinition *, std::map< const G4String, G4MolecularConfiguration * > > MolLabelConfTable