92 G4cout <<
"The user track information is a molecule" <<
G4endl;
107 if (&right ==
this)
return *
this;
127 return !(*
this ==
right);
201 G4int OrbitalToFill) :
210 if (OrbitalToFill != 0)
213 dynElectronOccupancy.AddElectron(OrbitalToFill - 1, 1);
217 if (OrbitalToFill == 0)
219 dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
225 moleculeDefinition, dynElectronOccupancy);
231 "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, "
232 "G4int OrbitalToFree, G4int OrbitalToFill)",
233 "G4Molecule_wrong_usage_of_constructor",
235 "If you want to use this constructor, the molecule definition has to be "
236 "first defined with electron occupancies");
256 if (Excitation ==
true)
259 dynElectronOccupancy.AddElectron(5, 1);
263 if (Excitation ==
false)
265 dynElectronOccupancy.RemoveElectron(Level, 1);
271 moleculeDefinition, dynElectronOccupancy);
277 "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, "
278 "G4int OrbitalToFree, G4int OrbitalToFill)",
279 "G4Molecule_wrong_usage_of_constructor",
281 "If you want to use this constructor, the molecule definition has to be "
282 "first defined with electron occupancies");
344 orbitToFree, orbitToFill);
389 "A track was already assigned to this molecule");
398 G4double xMomentum = cos(phi) * sin(theta);
399 G4double yMomentum = sin(theta) * sin(phi);
402 G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum);
449 return sqrt(3 * k_Boltzmann *
461 const vector<const G4MolecularDissociationChannel*>*
561 double temperature)
const
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.
const G4String & GetName() const
Returns the name of the molecule.
void SetDiffusionCoefficient(G4double)
Sets the diffusion coefficient D of the molecule used in diffusion processes to calculate the mean sq...
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
G4bool operator!=(const G4Molecule &right) const
CLHEP::Hep3Vector G4ThreeVector
G4Molecule()
Default molecule builder.
G4bool operator<(const G4Molecule &right) const
The two methods below are the most called of the simulation : compare molecules in the MoleculeStackM...
static G4Molecule * GetMolecule(const G4Track *)
G4double GetMass() const
Returns the total mass of the molecule.
void SetMass(G4double)
Set the total mass of the molecule.
const G4ThreeVector & GetPosition() const
void SetLabel(const G4String &label)
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
G4MolecularConfiguration * fpMolecularConfiguration
G4double GetDiffusionCoefficient() const
Returns the diffusion coefficient D.
G4double GetNbElectrons() const
Returns the number of electron.
G4double GetNbElectrons() const
Returns the number of electron.
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
G4MolecularConfiguration * GetMolecularConfiguration() const
const G4ElectronOccupancy * GetElectronOccupancy() const
Returns the object ElectronOccupancy describing the electronic configuration of the molecule...
G4int GetFakeParticleID() const
static G4double GetGlobalTemperature()
void ChangeConfigurationToLabel(const G4String &label)
const G4String & GetName() const
Returns the name of the molecule.
G4IT * GetIT(const G4Track *track)
void MoveOneElectron(G4int, G4int)
Move one electron from an orbit to another.
const G4String & GetLabel() const
Returns the label of the molecule configuration.
G4GLOB_DLL std::ostream G4cout
G4MolecularConfiguration * IonizeMolecule(G4int)
Method used in Geant4-DNA to ionize water molecules.
void SetElectronOccupancy(const G4ElectronOccupancy *)
Will set up the correct molecularConfiguration given an electron configuration.
G4int GetAtomsNumber() const
Returns the nomber of atoms compouning the molecule.
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1)
Add n electrons to a given orbit.
G4int GetFakeParticleID() const
ITImp(G4Molecule) G4ThreadLocal G4Allocator< G4Molecule > *aMoleculeAllocator=0
G4ThreadLocal/G4double G4Molecule::fgTemperature = 310; // 310*kelvin;
G4Molecule * GetMolecule(const G4Track &track)
void SetVanDerVaalsRadius(G4double)
The Van Der Valls Radius of the molecule.
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...
G4Molecule & operator=(const G4Molecule &right)
G4double GetGlobalTime() const
static G4VMoleculeCounter * Instance()
G4int GetMoleculeID() const
void IonizeMolecule(G4int)
Method used in Geant4-DNA to ionize water molecules.
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
const G4MoleculeDefinition * GetDefinition() const
Get molecule definition.
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void SetUserInformation(G4VUserTrackInformation *aValue) const
G4Track * BuildTrack(G4double globalTime, const G4ThreeVector &Position)
G4double GetMass() const
Returns the total mass of the molecule.
const G4String & GetFormatedName() const
Returns the formated name of the molecule.
G4int GetCharge() const
Returns the charge of molecule.
const G4String & GetFormatedName() const
Returns the formated name of the molecule.
void SetMass(G4double)
Set the total mass of the molecule.
G4double GetKineticEnergy() const
void RemoveElectron(G4int, G4int number=1)
Remove n electrons to a given orbit.
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.
G4DLLIMPORT G4ThreadLocal G4Allocator< G4Molecule > * aMoleculeAllocator
void PrintState() const
Show the electronic state of the molecule.
const G4MoleculeDefinition * GetDefinition() const
const G4String & GetLabel() const
static constexpr double pi
G4double GetDiffusionVelocity() const
Class Description The dynamic molecule holds all the data that change for a molecule It has a pointer...
G4double GetDecayTime() const
Returns the decay time of the molecule.
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
const G4ElectronOccupancy * GetElectronOccupancy() const
Returns the object ElectronOccupancy describing the electronic configuration of the molecule...
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1)
Remove n electrons to a given orbit.
G4double GetVanDerVaalsRadius() const
G4double GetDecayTime() const
Returns the decay time of the molecule.
G4MolecularConfiguration * ExciteMolecule(G4int)
Method used in Geant4-DNA to excite water molecules.
virtual void Print() const
void AddElectron(G4int orbit, G4int n=1)
Add n electrons to a given orbit.
G4bool operator==(const G4Molecule &right) const
void SetDecayTime(G4double)
Set the decay time of the molecule.
G4int RemoveElectron(G4int orbit, G4int number=1)
G4double GetVanDerVaalsRadius() const
void ExciteMolecule(G4int)
Method used in Geant4-DNA to excite water molecules.
G4int GetMoleculeID() const