92 G4cout <<
"The user track information is a molecule" <<
G4endl;
98 G4VUserTrackInformation(
"G4Molecule"),
G4IT(right)
107 if (&right ==
this)
return *
this;
127 return !(*
this ==
right);
145 G4VUserTrackInformation(
"G4Molecule"),
G4IT()
173 G4VUserTrackInformation(
"G4Molecule"),
G4IT()
197 G4int OrbitalToFill) :
198 G4VUserTrackInformation(
"G4Molecule"),
G4IT()
206 if (OrbitalToFill != 0)
209 dynElectronOccupancy.AddElectron(OrbitalToFill - 1, 1);
213 if (OrbitalToFill == 0)
215 dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
221 moleculeDefinition, dynElectronOccupancy);
227 "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, " 228 "G4int OrbitalToFree, G4int OrbitalToFill)",
229 "G4Molecule_wrong_usage_of_constructor",
231 "If you want to use this constructor, the molecule definition has to be " 232 "first defined with electron occupancies");
245 G4VUserTrackInformation(
"G4Molecule"),
G4IT()
252 if (Excitation ==
true)
255 dynElectronOccupancy.AddElectron(5, 1);
259 if (Excitation ==
false)
261 dynElectronOccupancy.RemoveElectron(Level, 1);
267 moleculeDefinition, dynElectronOccupancy);
273 "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, " 274 "G4int OrbitalToFree, G4int OrbitalToFill)",
275 "G4Molecule_wrong_usage_of_constructor",
277 "If you want to use this constructor, the molecule definition has to be " 278 "first defined with electron occupancies");
340 orbitToFree, orbitToFill);
386 "A track was already assigned to this molecule");
395 G4double xMomentum = cos(phi) * sin(theta);
396 G4double yMomentum = sin(theta) * sin(phi);
399 G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum);
413 fpTrack =
new G4Track(dynamicParticle, globalTime, position);
414 fpTrack->SetUserInformation(
this);
457 const vector<const G4MolecularDissociationChannel*>*
557 double temperature)
const
void SetLabel(const G4String &)
void SetDiffusionCoefficient(G4double)
const G4String & GetName() const
static G4Molecule * GetMolecule(const G4Track *)
void SetLabel(const G4String &label)
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
const G4String & GetLabel() const
const G4MoleculeDefinition * GetDefinition() const
G4double GetNbElectrons() const
G4MolecularConfiguration * fpMolecularConfiguration
static G4MoleculeCounter * GetMoleculeCounter()
virtual void RemoveAMoleculeAtTime(G4MolecularConfiguration *, G4double time, int number=1)
const G4ElectronOccupancy * GetElectronOccupancy() const
static G4double GetGlobalTemperature()
G4double GetVanDerVaalsRadius() const
const G4ElectronOccupancy * GetElectronOccupancy() const
G4int GetAtomsNumber() const
void ChangeConfigurationToLabel(const G4String &label)
G4int GetAtomsNumber() const
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
G4int GetFakeParticleID() const
const G4MoleculeDefinition * GetDefinition() const
G4int GetMoleculeID() const
G4IT * GetIT(const G4Track *track)
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
void MoveOneElectron(G4int, G4int)
G4bool operator<(const G4Molecule &right) const
const G4String & GetLabel() const
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
G4double GetNbElectrons() const
G4MolecularConfiguration * IonizeMolecule(G4int)
void SetElectronOccupancy(const G4ElectronOccupancy *)
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1)
G4double GetDecayTime() const
ITImp(G4Molecule) G4ThreadLocal G4Allocator< G4Molecule > *aMoleculeAllocator=0
G4ThreadLocal/G4double G4Molecule::fgTemperature = 310; // 310*kelvin;
G4MolecularConfiguration * GetMolecularConfiguration() const
G4Molecule * GetMolecule(const G4Track &track)
void SetVanDerVaalsRadius(G4double)
G4MolecularConfiguration * MoveOneElectron(G4int, G4int)
void SetDiffusionCoefficient(G4double)
virtual void AddAMoleculeAtTime(G4MolecularConfiguration *, G4double time, int number=1)
G4double GetKineticEnergy() const
G4Molecule & operator=(const G4Molecule &right)
void IonizeMolecule(G4int)
G4int GetFakeParticleID() const
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4Track * BuildTrack(G4double globalTime, const G4ThreeVector &Position)
virtual void Print() const
G4double GetDiffusionVelocity() const
G4bool operator!=(const G4Molecule &right) const
G4double GetDiffusionCoefficient() const
void RemoveElectron(G4int, G4int number=1)
void SetDecayTime(G4double)
void SetVanDerVaalsRadius(G4double)
G4DLLIMPORT G4ThreadLocal G4Allocator< G4Molecule > * aMoleculeAllocator
G4bool operator==(const G4Molecule &right) const
const G4String & GetFormatedName() const
const G4String & GetFormatedName() const
G4double GetVanDerVaalsRadius() const
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1)
G4MolecularConfiguration * ExciteMolecule(G4int)
G4double GetDecayTime() const
void AddElectron(G4int orbit, G4int n=1)
G4double GetDiffusionCoefficient() const
void SetDecayTime(G4double)
G4int GetMoleculeID() const
G4int RemoveElectron(G4int orbit, G4int number=1)
void ExciteMolecule(G4int)