60 G4double G4Molecule::fgTemperature = 310;
79 G4cout<<
"The user track information is a molecule"<<
G4endl;
85 fpMolecularConfiguration = right . fpMolecularConfiguration;
90 if (&right==
this)
return *
this;
91 fpMolecularConfiguration = right . fpMolecularConfiguration;
97 if(fpMolecularConfiguration==right.fpMolecularConfiguration)
106 return !(*
this ==
right);
116 return fpMolecularConfiguration < right.fpMolecularConfiguration ;
126 fpMolecularConfiguration = 0 ;
142 fpMolecularConfiguration = 0;
167 if (OrbitalToFill != 0)
170 dynElectronOccupancy.AddElectron(OrbitalToFill-1,1);
174 if (OrbitalToFill == 0)
176 dynElectronOccupancy.RemoveElectron(OrbitalToFree-1,1);
193 if (Excitation ==
true)
196 dynElectronOccupancy.AddElectron(5,1);
200 if (Excitation ==
false)
202 dynElectronOccupancy.RemoveElectron(Level,1);
218 fpMolecularConfiguration = fpMolecularConfiguration->
ExciteMolecule(ExcitedLevel);
225 fpMolecularConfiguration = fpMolecularConfiguration->
IonizeMolecule(IonizedLevel);
230 fpMolecularConfiguration = fpMolecularConfiguration->
AddElectron(orbit,number);
235 fpMolecularConfiguration = fpMolecularConfiguration->
RemoveElectron(orbit,number);
240 fpMolecularConfiguration = fpMolecularConfiguration->
MoveOneElectron(orbitToFree,orbitToFill);
245 return fpMolecularConfiguration->
GetName();
267 G4Exception(
"G4Molecule::BuildTrack",
"Molecule001",
277 G4double xMomentum = cos(phi)* sin(theta);
278 G4double yMomentum = sin(theta)*sin(phi);
281 G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum);
293 fpTrack -> SetUserInformation (
this);
320 return sqrt(3*
k_Boltzmann*fgTemperature/moleculeMass);
361 return fpMolecularConfiguration->
GetCharge() ;
366 fpMolecularConfiguration->
SetMass(aMass);
371 return fpMolecularConfiguration->
GetMass();
396 return fpMolecularConfiguration ;
401 fgTemperature = temperature;
406 return fgTemperature;
G4double GetDiffusionCoefficient() const
const G4String & GetName() const
void SetDiffusionCoefficient(G4double)
G4bool operator!=(const G4Molecule &right) const
virtual void AddAMoleculeAtTime(const G4Molecule &, G4double)
G4bool operator<(const G4Molecule &right) const
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4ElectronOccupancy &electronOccupancy)
G4double GetDiffusionCoefficient() const
static G4MoleculeCounter * GetMoleculeCounter()
G4double GetNbElectrons() const
G4double GetNbElectrons() const
const std::vector< const G4MolecularDecayChannel * > * GetDecayChannel() const
G4MolecularConfiguration * GetMolecularConfiguration() const
const G4ElectronOccupancy * GetElectronOccupancy() const
const G4ThreeVector const G4double const
static G4double GetGlobalTemperature()
const std::vector< const G4MolecularDecayChannel * > * GetDecayChannel() const
G4Molecule(const G4Molecule &)
const G4String & GetName() const
G4IT * GetIT(const G4Track *track)
void MoveOneElectron(G4int, G4int)
G4GLOB_DLL std::ostream G4cout
G4MolecularConfiguration * IonizeMolecule(G4int)
void SetElectronOccupancy(const G4ElectronOccupancy *)
G4int GetAtomsNumber() const
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1)
void SetVanDerVaalsRadius(G4double)
G4MolecularConfiguration * MoveOneElectron(G4int, G4int)
void SetDiffusionCoefficient(G4double)
G4Molecule & operator=(const G4Molecule &right)
G4double GetGlobalTime() const
G4Molecule * GetMolecule(const G4Track &track)
G4int GetMoleculeID() const
void IonizeMolecule(G4int)
const G4MoleculeDefinition * GetDefinition() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4Track * BuildTrack(G4double globalTime, const G4ThreeVector &Position)
G4double GetKineticEnergy() const
void RemoveElectron(G4int, G4int number=1)
void SetDecayTime(G4double)
void SetVanDerVaalsRadius(G4double)
G4int GetAtomsNumber() const
G4DLLIMPORT G4ThreadLocal G4Allocator< G4Molecule > * aMoleculeAllocator
const G4MoleculeDefinition * GetDefinition() const
G4double GetDiffusionVelocity() const
G4double GetDecayTime() const
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
const G4ElectronOccupancy * GetElectronOccupancy() const
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1)
G4double GetVanDerVaalsRadius() const
static void SetGlobalTemperature(G4double)
virtual void RemoveAMoleculeAtTime(const G4Molecule &, G4double)
G4double GetDecayTime() const
G4MolecularConfiguration * ExciteMolecule(G4int)
void AddElectron(G4int orbit, G4int n=1)
G4bool operator==(const G4Molecule &right) const
void SetDecayTime(G4double)
G4int RemoveElectron(G4int orbit, G4int number=1)
G4double GetVanDerVaalsRadius() const
void ExciteMolecule(G4int)
G4int GetMoleculeID() const