#include <G4Molecule.hh>
Inheritance diagram for G4Molecule:
Definition at line 76 of file G4Molecule.hh.
G4Molecule::G4Molecule | ( | const G4Molecule & | ) |
Definition at line 82 of file G4Molecule.cc.
References G4Molecule().
Referenced by G4Molecule().
00082 : 00083 G4VUserTrackInformation("G4Molecule"), G4IT(right) 00084 { 00085 Init(); 00086 fMolecularConfiguration = right . fMolecularConfiguration; 00087 }
G4Molecule::G4Molecule | ( | G4MoleculeDefinition * | molecule | ) |
To build a molecule at ground state according to a given G4MoleculeDefinition that can be obtained from G4GenericMoleculeManager
Definition at line 160 of file G4Molecule.cc.
References G4Molecule(), and G4MolecularConfiguration::GetMolecularConfiguration().
00160 : 00161 G4VUserTrackInformation("G4Molecule"), G4IT() 00163 { 00164 Init(); 00165 fMolecularConfiguration = G4MolecularConfiguration::GetMolecularConfiguration(moleculeDefinition); 00166 }
G4Molecule::G4Molecule | ( | G4MoleculeDefinition * | molecule, | |
G4int | , | |||
G4int | ||||
) |
To build a molecule at a specific excitation/ionisation state according to a ground state that can be obtained from G4GenericMoleculeManager
Definition at line 173 of file G4Molecule.cc.
References G4Molecule(), G4MoleculeDefinition::GetGroundStateElectronOccupancy(), and G4MolecularConfiguration::GetMolecularConfiguration().
00173 : 00174 G4VUserTrackInformation("G4Molecule"), G4IT() 00176 { 00177 Init(); 00178 00179 G4ElectronOccupancy dynElectronOccupancy (*moleculeDefinition->GetGroundStateElectronOccupancy()); 00180 00181 if (OrbitalToFill != 0) 00182 { 00183 dynElectronOccupancy.RemoveElectron(OrbitalToFree-1,1); 00184 dynElectronOccupancy.AddElectron(OrbitalToFill-1,1); 00185 // dynElectronOccupancy.DumpInfo(); // DEBUG 00186 } 00187 00188 if (OrbitalToFill == 0) 00189 { 00190 dynElectronOccupancy.RemoveElectron(OrbitalToFree-1,1); 00191 // dynElectronOccupancy.DumpInfo(); // DEBUG 00192 } 00193 00194 fMolecularConfiguration = G4MolecularConfiguration::GetMolecularConfiguration(moleculeDefinition, dynElectronOccupancy); 00195 }
G4Molecule::G4Molecule | ( | G4MoleculeDefinition * | molecule, | |
G4int | , | |||
G4bool | ||||
) |
Specific builder for water molecules to be used in Geant4-DNA, the last option Excitation is true if the molecule is excited, is false is the molecule is ionized.
Definition at line 202 of file G4Molecule.cc.
References G4Molecule(), G4MoleculeDefinition::GetGroundStateElectronOccupancy(), and G4MolecularConfiguration::GetMolecularConfiguration().
00202 : 00203 G4VUserTrackInformation("G4Molecule"), G4IT() 00204 { 00205 Init(); 00206 00207 G4ElectronOccupancy dynElectronOccupancy (*moleculeDefinition->GetGroundStateElectronOccupancy()); 00208 00209 if (Excitation == true) 00210 { 00211 dynElectronOccupancy.RemoveElectron(Level,1); 00212 dynElectronOccupancy.AddElectron(5,1); 00213 // dynElectronOccupancy.DumpInfo(); // DEBUG 00214 } 00215 00216 if (Excitation == false) 00217 { 00218 dynElectronOccupancy.RemoveElectron(Level,1); 00219 // dynElectronOccupancy.DumpInfo(); // DEBUG 00220 } 00221 00222 fMolecularConfiguration = G4MolecularConfiguration::GetMolecularConfiguration(moleculeDefinition, dynElectronOccupancy); 00223 }
G4Molecule::~G4Molecule | ( | ) | [virtual] |
Definition at line 138 of file G4Molecule.cc.
References G4IT::fpTrack, G4Track::GetGlobalTime(), G4MoleculeCounter::GetMoleculeCounter(), and G4MoleculeCounter::RemoveAMoleculeAtTime().
00140 { 00141 if(fpTrack!=NULL) 00142 { 00143 if(G4MoleculeCounter::GetMoleculeCounter()->InUse()) 00144 { 00145 G4MoleculeCounter::GetMoleculeCounter()->RemoveAMoleculeAtTime(*this, 00146 fpTrack->GetGlobalTime()); 00147 } 00148 fpTrack = 0; 00149 } 00150 fMolecularConfiguration = 0; 00151 fDynamicParticle = 0; 00152 // DEBUG 00153 // G4cout<<"Molecule killed"<<G4endl; 00154 }
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 244 of file G4Molecule.cc.
References G4MolecularConfiguration::AddElectron().
Referenced by G4EmDNAPhysicsChemistry::ConstructDecayChannels(), and G4EmDNAPhysicsChemistry::ConstructReactionTable().
00245 { 00246 fMolecularConfiguration = fMolecularConfiguration->AddElectron(orbit,number); 00247 }
G4Track * G4Molecule::BuildTrack | ( | G4double | globalTime, | |
const G4ThreeVector & | Position | |||
) |
Definition at line 279 of file G4Molecule.cc.
References G4MoleculeCounter::AddAMoleculeAtTime(), FatalErrorInArgument, G4IT::fpTrack, G4Exception(), G4UniformRand, G4MolecularConfiguration::GetDefinition(), GetKineticEnergy(), G4MoleculeCounter::GetMoleculeCounter(), and G4INCL::Math::pi.
Referenced by G4DNAChemistryManager::CreateSolvatedElectron(), G4DNAChemistryManager::CreateWaterMolecule(), G4DNAChemistryManager::PushMolecule(), and G4DNAChemistryManager::PushMoleculeAtParentTimeAndPlace().
00280 { 00281 if(fpTrack != 0) 00282 { 00283 G4Exception("G4Molecule::BuildTrack","Molecule001", 00284 FatalErrorInArgument,"A track was already assigned to this molecule"); 00285 } 00286 00287 // Kinetic Values 00288 // Set a random direction to the molecule 00289 G4double costheta = (2*G4UniformRand()-1); 00290 G4double theta = acos (costheta); 00291 G4double phi = 2*pi*G4UniformRand(); 00292 00293 G4double xMomentum = cos(phi)* sin(theta); 00294 G4double yMomentum = sin(theta)*sin(phi); 00295 G4double zMomentum = costheta; 00296 00297 G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum); 00298 G4double KineticEnergy = GetKineticEnergy(); 00299 // G4cout << " **** KineticEnergy : " << KineticEnergy << G4endl; 00300 fDynamicParticle = new G4DynamicParticle(fMolecularConfiguration->GetDefinition(), 00301 MomentumDirection, 00302 KineticEnergy); 00303 00304 if(G4MoleculeCounter::GetMoleculeCounter()->InUse()) 00305 G4MoleculeCounter::GetMoleculeCounter()->AddAMoleculeAtTime(*this,globalTime); 00306 00307 //Set the Track 00308 fpTrack = new G4Track(fDynamicParticle, globalTime, Position); 00309 fpTrack -> SetUserInformation (this); 00310 00311 return fpTrack; 00312 }
void G4Molecule::ExciteMolecule | ( | G4int | ) |
Method used in Geant4-DNA to excite water molecules
Definition at line 232 of file G4Molecule.cc.
References G4MolecularConfiguration::ExciteMolecule().
00233 { 00234 fMolecularConfiguration = fMolecularConfiguration->ExciteMolecule(ExcitedLevel); 00235 }
G4int G4Molecule::GetAtomsNumber | ( | ) | const |
Returns the nomber of atoms compouning the molecule
Definition at line 264 of file G4Molecule.cc.
References G4MolecularConfiguration::GetAtomsNumber().
00265 { 00266 return fMolecularConfiguration->GetAtomsNumber(); 00267 }
G4int G4Molecule::GetCharge | ( | ) | const |
Returns the charge of molecule.
Definition at line 375 of file G4Molecule.cc.
References G4MolecularConfiguration::GetCharge().
00376 { 00377 return fMolecularConfiguration->GetCharge() ; 00378 }
const vector< const G4MolecularDecayChannel * > * G4Molecule::GetDecayChannel | ( | ) | const |
Definition at line 345 of file G4Molecule.cc.
References G4MolecularConfiguration::GetDecayChannel().
00346 { 00347 return fMolecularConfiguration->GetDecayChannel(); 00348 }
G4double G4Molecule::GetDecayTime | ( | ) | const |
Returns the decay time of the molecule.
Definition at line 360 of file G4Molecule.cc.
References G4MolecularConfiguration::GetDecayTime().
00361 { 00362 return fMolecularConfiguration->GetDecayTime(); 00363 }
const G4MoleculeDefinition * G4Molecule::GetDefinition | ( | ) | const |
Get molecule definition. This G4MoleculeDefinition has the ground electronic state of the molecule.
Definition at line 395 of file G4Molecule.cc.
References G4MolecularConfiguration::GetDefinition().
Referenced by G4MoleculeCounter::AddAMoleculeAtTime(), G4DNAMolecularDecay::DecayIt(), G4DNAMolecularDecayDisplacer::GetProductsDisplacement(), and G4MoleculeCounter::RemoveAMoleculeAtTime().
00396 { 00397 return fMolecularConfiguration->GetDefinition(); 00398 }
G4double G4Molecule::GetDiffusionCoefficient | ( | ) | const |
Returns the diffusion coefficient D.
Definition at line 405 of file G4Molecule.cc.
References G4MolecularConfiguration::GetDiffusionCoefficient().
Referenced by G4DNABrownianTransportation::AlongStepGetPhysicalInteractionLength(), G4DNABrownianTransportation::ComputeStep(), G4DNASmoluchowskiReactionModel::FindReaction(), G4DNAMolecularReactionData::G4DNAMolecularReactionData(), and G4DNAMolecularReaction::MakeReaction().
00406 { 00407 return fMolecularConfiguration->GetDiffusionCoefficient(); 00408 }
G4double G4Molecule::GetDiffusionVelocity | ( | ) | const |
Definition at line 324 of file G4Molecule.cc.
References G4MolecularConfiguration::GetMass().
Referenced by GetKineticEnergy().
00325 { 00326 double moleculeMass = fMolecularConfiguration->GetMass()/(c_squared); 00327 00329 // Different possibilities 00331 // Ideal Gaz case : Maxwell Boltzmann Distribution 00332 // double sigma = k_Boltzmann * fgTemperature / mass; 00333 // return G4RandGauss::shoot( 0, sigma ); 00335 // Ideal Gaz case : mean velocity from equipartition theorem 00336 return sqrt(3*k_Boltzmann*fgTemperature/moleculeMass); 00338 // Using this approximation for liquid is wrong 00339 // However the brownian process avoid taking 00340 // care of energy consideration and plays only 00341 // with positions 00342 }
const G4ElectronOccupancy * G4Molecule::GetElectronOccupancy | ( | ) | const |
Returns the object ElectronOccupancy describing the electronic configuration of the molecule.
Definition at line 390 of file G4Molecule.cc.
References G4MolecularConfiguration::GetElectronOccupancy().
Referenced by G4DNAMolecularDecay::DecayIt().
00391 { 00392 return fMolecularConfiguration->GetElectronOccupancy(); 00393 }
double G4Molecule::GetGlobalTemperature | ( | ) | [inline, static] |
G4double G4Molecule::GetKineticEnergy | ( | ) | const |
Definition at line 314 of file G4Molecule.cc.
References GetDiffusionVelocity(), and G4MolecularConfiguration::GetMass().
Referenced by BuildTrack().
00315 { 00317 // Ideal Gaz case 00318 double v = GetDiffusionVelocity(); 00319 double E = (fMolecularConfiguration->GetMass()/(c_squared))*(v*v)/2.; 00321 return E; 00322 }
G4double G4Molecule::GetMass | ( | ) | const |
Returns the total mass of the molecule.
Definition at line 385 of file G4Molecule.cc.
References G4MolecularConfiguration::GetMass().
00386 { 00387 return fMolecularConfiguration->GetMass(); 00388 }
G4MolecularConfiguration * G4Molecule::GetMolecularConfiguration | ( | ) | [inline] |
Definition at line 273 of file G4Molecule.hh.
Referenced by G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength().
G4int G4Molecule::GetMoleculeID | ( | ) | const |
Definition at line 350 of file G4Molecule.cc.
References G4MolecularConfiguration::GetMoleculeID().
00351 { 00352 return fMolecularConfiguration->GetMoleculeID(); 00353 }
const G4String & G4Molecule::GetName | ( | ) | const [virtual] |
Returns the name of the molecule
Implements G4IT.
Definition at line 259 of file G4Molecule.cc.
References G4MolecularConfiguration::GetName().
Referenced by G4MoleculeCounter::AddAMoleculeAtTime(), G4DNAMoleculeEncounterStepper::CalculateStep(), G4DNAMolecularReactionTable::CanReactWith(), G4DNAMolecularDecay::DecayIt(), G4DNABrownianTransportation::Diffusion(), G4DNASmoluchowskiReactionModel::FindReaction(), G4DNAMolecularReactionTable::GetReactionData(), G4DNAMolecularReactionTable::GetReativesNData(), G4DNASecondOrderReaction::PostStepDoIt(), G4DNAIndirectHit::Print(), G4DNAMolecularReactionTable::PrintTable(), G4DNAChemistryManager::PushMolecule(), G4DNAChemistryManager::PushMoleculeAtParentTimeAndPlace(), G4MoleculeCounter::RemoveAMoleculeAtTime(), and G4DNAMolecularReaction::TestReactibility().
00260 { 00261 return fMolecularConfiguration->GetName(); 00262 }
G4double G4Molecule::GetNbElectrons | ( | ) | const |
Returns the number of electron.
Definition at line 269 of file G4Molecule.cc.
References G4MolecularConfiguration::GetNbElectrons().
00270 { 00271 return fMolecularConfiguration->GetNbElectrons(); 00272 }
G4double G4Molecule::GetVanDerVaalsRadius | ( | ) | const |
Definition at line 370 of file G4Molecule.cc.
References G4MolecularConfiguration::GetVanDerVaalsRadius().
00371 { 00372 return fMolecularConfiguration->GetVanDerVaalsRadius(); 00373 }
void G4Molecule::IonizeMolecule | ( | G4int | ) |
Method used in Geant4-DNA to ionize water molecules
Definition at line 239 of file G4Molecule.cc.
References G4MolecularConfiguration::IonizeMolecule().
00240 { 00241 fMolecularConfiguration = fMolecularConfiguration->IonizeMolecule(IonizedLevel); 00242 }
G4Molecule::ITDef | ( | G4Molecule | ) | const |
Move one electron from an orbit to another.
Definition at line 254 of file G4Molecule.cc.
References G4MolecularConfiguration::MoveOneElectron().
00255 { 00256 fMolecularConfiguration = fMolecularConfiguration->MoveOneElectron(orbitToFree,orbitToFill); 00257 }
void G4Molecule::operator delete | ( | void * | aVUserTrackInformation | ) | [inline] |
Reimplemented from G4IT.
Definition at line 265 of file G4Molecule.hh.
References aMoleculeAllocator.
00267 { 00268 // DEBUG 00269 // G4cout<<"G4Molecule::operator delete(void * aMolecule) called"<<G4endl; 00270 aMoleculeAllocator.FreeSingle((G4Molecule *) aMolecule); 00271 }
void * G4Molecule::operator new | ( | size_t | ) | [inline] |
Reimplemented from G4IT.
Definition at line 256 of file G4Molecule.hh.
References aMoleculeAllocator.
00258 { 00259 void * aMolecule; 00260 aMolecule = (void *) aMoleculeAllocator.MallocSingle(); 00261 return aMolecule; 00262 }
G4bool G4Molecule::operator!= | ( | const G4Molecule & | right | ) | const |
G4bool G4Molecule::operator< | ( | const G4Molecule & | right | ) | const |
The two methods below are the most called of the simulation : compare molecules in the MoleculeStackManager or in the InteractionTable
Definition at line 116 of file G4Molecule.cc.
References fMolecularConfiguration.
00117 { 00118 return fMolecularConfiguration < right.fMolecularConfiguration ; 00119 }
G4Molecule & G4Molecule::operator= | ( | const G4Molecule & | right | ) |
Definition at line 89 of file G4Molecule.cc.
00090 { 00091 if (&right==this) return *this; 00092 Init(); 00093 fMolecularConfiguration = right . fMolecularConfiguration; 00094 return *this; 00095 }
G4bool G4Molecule::operator== | ( | const G4Molecule & | right | ) | const |
Definition at line 97 of file G4Molecule.cc.
References fMolecularConfiguration.
00098 { 00099 if(fMolecularConfiguration==right.fMolecularConfiguration) 00100 { 00101 return true; 00102 } 00103 return false; 00104 }
void G4Molecule::PrintState | ( | ) | const |
Show the electronic state of the molecule.
Definition at line 274 of file G4Molecule.cc.
References G4MolecularConfiguration::PrintState().
Referenced by G4MoleculeCounter::RemoveAMoleculeAtTime().
00275 { 00276 fMolecularConfiguration->PrintState(); 00277 }
Remove n electrons to a given orbit.
Definition at line 249 of file G4Molecule.cc.
References G4MolecularConfiguration::RemoveElectron().
Referenced by G4EmDNAPhysicsChemistry::ConstructReactionTable().
00250 { 00251 fMolecularConfiguration = fMolecularConfiguration->RemoveElectron(orbit,number); 00252 }
void G4Molecule::SetDecayTime | ( | G4double | ) |
Set the decay time of the molecule.
Definition at line 355 of file G4Molecule.cc.
References G4MolecularConfiguration::SetDecayTime().
00356 { 00357 fMolecularConfiguration->SetDecayTime(dynDecayTime); 00358 }
void G4Molecule::SetDiffusionCoefficient | ( | G4double | ) |
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.
Definition at line 400 of file G4Molecule.cc.
References G4MolecularConfiguration::SetDiffusionCoefficient().
Referenced by G4EmDNAPhysicsChemistry::ConstructDecayChannels(), and G4EmDNAPhysicsChemistry::ConstructReactionTable().
00401 { 00402 fMolecularConfiguration->SetDiffusionCoefficient(dynDiffusionCoefficient); 00403 }
void G4Molecule::SetElectronOccupancy | ( | const G4ElectronOccupancy * | ) |
Will set up the correct molecularConfiguration given an electron configuration
Definition at line 225 of file G4Molecule.cc.
References G4MolecularConfiguration::GetDefinition(), and G4MolecularConfiguration::GetMolecularConfiguration().
00226 { 00227 fMolecularConfiguration = G4MolecularConfiguration::GetMolecularConfiguration(fMolecularConfiguration->GetDefinition(), *occ); 00228 }
void G4Molecule::SetGlobalTemperature | ( | double | ) | [inline, static] |
void G4Molecule::SetMass | ( | G4double | ) |
Set the total mass of the molecule.
Definition at line 380 of file G4Molecule.cc.
References G4MolecularConfiguration::SetMass().
Referenced by G4EmDNAPhysicsChemistry::ConstructDecayChannels(), and G4EmDNAPhysicsChemistry::ConstructReactionTable().
00381 { 00382 fMolecularConfiguration->SetMass(aMass); 00383 }
void G4Molecule::SetVanDerVaalsRadius | ( | G4double | ) |
The Van Der Valls Radius of the molecule
Definition at line 365 of file G4Molecule.cc.
References G4MolecularConfiguration::SetVanDerVaalsRadius().
00366 { 00367 fMolecularConfiguration->SetVanDerVaalsRadius(dynVanDerVaalsRadius); 00368 }