Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4Molecule Class Reference

#include <G4Molecule.hh>

Inheritance diagram for G4Molecule:
Collaboration diagram for G4Molecule:

Public Member Functions

void Print () const
 
voidoperator new (size_t)
 
void operator delete (void *)
 
 G4Molecule (const G4Molecule &)
 
G4Moleculeoperator= (const G4Molecule &right)
 
G4bool operator== (const G4Molecule &right) const
 
G4bool operator!= (const G4Molecule &right) const
 
G4bool operator< (const G4Molecule &right) const
 
 operator int () const
 
virtual G4ITType GetITSubType () const
 
 G4Molecule (G4MoleculeDefinition *molecule)
 
 G4Molecule (G4MoleculeDefinition *molDef, int charge)
 
 G4Molecule (G4MoleculeDefinition *molecule, G4int, G4int)
 
 G4Molecule (G4MoleculeDefinition *molecule, G4int, G4bool)
 
 G4Molecule (G4MolecularConfiguration *)
 
virtual ~G4Molecule ()
 
const G4StringGetName () const
 
const G4StringGetFormatedName () const
 
G4int GetAtomsNumber () const
 
void SetElectronOccupancy (const G4ElectronOccupancy *)
 
void ExciteMolecule (G4int)
 
void IonizeMolecule (G4int)
 
void AddElectron (G4int orbit, G4int n=1)
 
void RemoveElectron (G4int, G4int number=1)
 
void MoveOneElectron (G4int, G4int)
 
G4double GetNbElectrons () const
 
void PrintState () const
 
G4TrackBuildTrack (G4double globalTime, const G4ThreeVector &Position)
 
G4double GetKineticEnergy () const
 
G4double GetDiffusionVelocity () const
 
const std::vector< const
G4MolecularDissociationChannel * > * 
GetDecayChannel () const
 
G4int GetFakeParticleID () const
 
G4int GetMoleculeID () const
 
const G4MoleculeDefinitionGetDefinition () const
 
void SetDiffusionCoefficient (G4double)
 
G4double GetDiffusionCoefficient () const
 
G4double GetDiffusionCoefficient (const G4Material *, double temperature) const
 
void SetDecayTime (G4double)
 
G4double GetDecayTime () const
 
void SetVanDerVaalsRadius (G4double)
 
G4double GetVanDerVaalsRadius () const
 
const G4ElectronOccupancyGetElectronOccupancy () const
 
G4int GetCharge () const
 
void SetMass (G4double)
 
G4double GetMass () const
 
const G4StringGetLabel () const
 
void SetLabel (const G4String &label)
 
void ChangeConfigurationToLabel (const G4String &label)
 
G4MolecularConfigurationGetMolecularConfiguration () const
 
- Public Member Functions inherited from G4IT
 G4IT ()
 
 G4IT (G4Track *)
 
virtual ~G4IT ()
 
virtual G4bool diff (const G4IT &right) const =0
 
virtual G4bool equal (const G4IT &right) const =0
 
G4bool operator< (const G4IT &right) const
 
G4bool operator== (const G4IT &right) const
 
G4bool operator!= (const G4IT &right) const
 
void SetTrack (G4Track *)
 
G4TrackGetTrack ()
 
const G4TrackGetTrack () const
 
void RecordCurrentPositionNTime ()
 
const G4ThreeVectorGetPosition () const
 
double operator[] (int i) const
 
const G4ThreeVectorGetPreStepPosition () const
 
G4double GetPreStepLocalTime () const
 
G4double GetPreStepGlobalTime () const
 
void SetPrevious (G4IT *)
 
void SetNext (G4IT *)
 
G4ITGetPrevious ()
 
G4ITGetNext ()
 
const G4ITGetPrevious () const
 
const G4ITGetNext () const
 
void SetITBox (G4ITBox *)
 
const G4ITBoxGetITBox () const
 
void TakeOutBox ()
 
void SetNode (G4KDNode_Base *)
 
G4KDNode_BaseGetNode () const
 
void SetParentID (int, int)
 
void GetParentID (int &, int &)
 
G4TrackingInformationGetTrackingInfo ()
 
G4TrackListNodeGetListNode ()
 
void SetListNode (G4TrackListNode *node)
 
virtual const G4ITType GetITType () const =0
 
- Public Member Functions inherited from G4VUserTrackInformation
 G4VUserTrackInformation ()
 
 G4VUserTrackInformation (const G4String &infoType)
 
 G4VUserTrackInformation (const G4VUserTrackInformation &)
 
G4VUserTrackInformationoperator= (const G4VUserTrackInformation &)
 
virtual ~G4VUserTrackInformation ()
 
const G4StringGetType () const
 

Static Public Member Functions

static G4MoleculeGetMolecule (const G4Track *)
 

Additional Inherited Members

- Public Types inherited from G4IT
enum  ELimited {
  kDoNot, kUnique, kSharedTransport, kSharedOther,
  kUndefLimited
}
 
- Protected Member Functions inherited from G4IT
 G4IT (const G4IT &)
 
G4IToperator= (const G4IT &)
 
- Protected Attributes inherited from G4IT
G4TrackfpTrack
 
- Protected Attributes inherited from G4VUserTrackInformation
G4StringpType
 

Detailed Description

Class Description The dynamic molecule holds all the data that change for a molecule It has a pointer to G4MoleculeDefinition object, which holds all the "ground level" information.

Definition at line 98 of file G4Molecule.hh.

Constructor & Destructor Documentation

G4Molecule::G4Molecule ( const G4Molecule right)

Definition at line 104 of file G4Molecule.cc.

104  :
105  G4VUserTrackInformation("G4Molecule"), G4IT(right)
106 {
107  fpMolecularConfiguration = right.fpMolecularConfiguration;
108 }
G4IT()
Definition: G4IT.cc:68

Here is the call graph for this function:

Here is the caller graph for this function:

G4Molecule::G4Molecule ( G4MoleculeDefinition moleculeDefinition)

To build a molecule at ground state according to a given G4MoleculeDefinition that can be obtained from G4GenericMoleculeManager

Build a molecule at ground state according to a given G4MoleculeDefinition that can be obtained from G4GenericMoleculeManager

Definition at line 181 of file G4Molecule.cc.

181  :
182  G4VUserTrackInformation("G4Molecule"), G4IT()
184 {
185  fpMolecularConfiguration =
187  GetOrCreateMolecularConfiguration(moleculeDefinition);
188 }
G4IT()
Definition: G4IT.cc:68
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
G4Molecule::G4Molecule ( G4MoleculeDefinition molDef,
int  charge 
)

Definition at line 192 of file G4Molecule.cc.

193 {
194  fpMolecularConfiguration =
196  GetOrCreateMolecularConfiguration(moleculeDefinition,
197  charge);
198 }
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)

Here is the call graph for this function:

G4Molecule::G4Molecule ( G4MoleculeDefinition moleculeDefinition,
G4int  OrbitalToFree,
G4int  OrbitalToFill 
)

To build a molecule at a specific excitation/ionisation state according to a ground state that can be obtained from G4GenericMoleculeManager

Build a molecule at a specific excitation/ionisation state according to a ground state that can be obtained from G4GenericMoleculeManager. Put 0 in the second option if this is a ionisation.

Definition at line 206 of file G4Molecule.cc.

208  :
209  G4VUserTrackInformation("G4Molecule"), G4IT()
211 {
212  if (moleculeDefinition->GetGroundStateElectronOccupancy())
213  {
214  G4ElectronOccupancy dynElectronOccupancy(
215  *moleculeDefinition->GetGroundStateElectronOccupancy());
216 
217  if (OrbitalToFill != 0)
218  {
219  dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
220  dynElectronOccupancy.AddElectron(OrbitalToFill - 1, 1);
221  // dynElectronOccupancy.DumpInfo(); // DEBUG
222  }
223 
224  if (OrbitalToFill == 0)
225  {
226  dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
227  // dynElectronOccupancy.DumpInfo(); // DEBUG
228  }
229 
230  fpMolecularConfiguration =
232  moleculeDefinition, dynElectronOccupancy);
233  }
234  else
235  {
236  fpMolecularConfiguration = 0;
237  G4Exception(
238  "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, "
239  "G4int OrbitalToFree, G4int OrbitalToFill)",
240  "G4Molecule_wrong_usage_of_constructor",
242  "If you want to use this constructor, the molecule definition has to be "
243  "first defined with electron occupancies");
244  }
245 }
G4IT()
Definition: G4IT.cc:68
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
G4int RemoveElectron(G4int orbit, G4int number=1)
G4Molecule::G4Molecule ( G4MoleculeDefinition moleculeDefinition,
G4int  Level,
G4bool  Excitation 
)

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 253 of file G4Molecule.cc.

255  :
256  G4VUserTrackInformation("G4Molecule"), G4IT()
257 {
258  if (moleculeDefinition->GetGroundStateElectronOccupancy())
259  {
260  G4ElectronOccupancy dynElectronOccupancy(
261  *moleculeDefinition->GetGroundStateElectronOccupancy());
262 
263  if (Excitation == true)
264  {
265  dynElectronOccupancy.RemoveElectron(Level, 1);
266  dynElectronOccupancy.AddElectron(5, 1);
267  // dynElectronOccupancy.DumpInfo(); // DEBUG
268  }
269 
270  if (Excitation == false)
271  {
272  dynElectronOccupancy.RemoveElectron(Level, 1);
273  // dynElectronOccupancy.DumpInfo(); // DEBUG
274  }
275 
276  fpMolecularConfiguration =
278  moleculeDefinition, dynElectronOccupancy);
279  }
280  else
281  {
282  fpMolecularConfiguration = 0;
283  G4Exception(
284  "G4Molecule::G4Molecule(G4MoleculeDefinition * moleculeDefinition, "
285  "G4int OrbitalToFree, G4int OrbitalToFill)",
286  "G4Molecule_wrong_usage_of_constructor",
288  "If you want to use this constructor, the molecule definition has to be "
289  "first defined with electron occupancies");
290 
291  }
292 }
G4IT()
Definition: G4IT.cc:68
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
G4int RemoveElectron(G4int orbit, G4int number=1)

Here is the call graph for this function:

G4Molecule::G4Molecule ( G4MolecularConfiguration molConf)

Definition at line 296 of file G4Molecule.cc.

297 {
298  fpMolecularConfiguration = molConf;
299 }

Here is the call graph for this function:

G4Molecule::~G4Molecule ( )
virtual

Definition at line 160 of file G4Molecule.cc.

161 {
162  if (fpTrack != nullptr)
163  {
164  if (G4VMoleculeCounter::Instance()->InUse())
165  {
167  RemoveAMoleculeAtTime(fpMolecularConfiguration,
169  &(fpTrack->GetPosition()));
170  }
171  fpTrack = nullptr;
172  }
173  fpMolecularConfiguration = nullptr;
174 }
const G4ThreeVector & GetPosition() const
G4Track * fpTrack
Definition: G4IT.hh:168
G4double GetGlobalTime() const
static G4VMoleculeCounter * Instance()

Here is the call graph for this function:

Member Function Documentation

void G4Molecule::AddElectron ( G4int  orbit,
G4int  n = 1 
)

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 332 of file G4Molecule.cc.

333 {
334  fpMolecularConfiguration = fpMolecularConfiguration->AddElectron(orbit,
335  number);
336 }
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1)

Here is the call graph for this function:

G4Track * G4Molecule::BuildTrack ( G4double  globalTime,
const G4ThreeVector Position 
)

Definition at line 391 of file G4Molecule.cc.

393 {
394  if (fpTrack != 0){
395  G4Exception("G4Molecule::BuildTrack", "Molecule001", FatalErrorInArgument,
396  "A track was already assigned to this molecule");
397  }
398 
399  // Kinetic Values
400  // Set a random direction to the molecule
401  G4double costheta = (2 * G4UniformRand()-1);
402  G4double theta = acos(costheta);
403  G4double phi = 2 * pi * G4UniformRand();
404 
405  G4double xMomentum = cos(phi) * sin(theta);
406  G4double yMomentum = sin(theta) * sin(phi);
407  G4double zMomentum = costheta;
408 
409  G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum);
410  G4double KineticEnergy = GetKineticEnergy();
411 
412  G4DynamicParticle* dynamicParticle = new G4DynamicParticle(
413  fpMolecularConfiguration->GetDefinition(), MomentumDirection,
414  KineticEnergy);
415 
418  AddAMoleculeAtTime(fpMolecularConfiguration,
419  globalTime,
420  &(fpTrack->GetPosition()));
421  }
422 
423  //Set the Track
424  fpTrack = new G4Track(dynamicParticle, globalTime, position);
426 
427  return fpTrack;
428 }
const G4ThreeVector & GetPosition() const
#define G4UniformRand()
Definition: Randomize.hh:97
G4Track * fpTrack
Definition: G4IT.hh:168
static G4VMoleculeCounter * Instance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetUserInformation(G4VUserTrackInformation *aValue) const
G4double GetKineticEnergy() const
Definition: G4Molecule.cc:432
const G4MoleculeDefinition * GetDefinition() const
static constexpr double pi
Definition: G4SIunits.hh:75
double G4double
Definition: G4Types.hh:76
static G4bool InUse()

Here is the call graph for this function:

Here is the caller graph for this function:

void G4Molecule::ChangeConfigurationToLabel ( const G4String label)

Definition at line 611 of file G4Molecule.cc.

612 {
613  // TODO check fpMolecularConfiguration already exists
614  // and new one as well
615  // TODO notify for stack change
616  fpMolecularConfiguration =
618  fpMolecularConfiguration->GetDefinition(), label);
619 
620  assert(fpMolecularConfiguration!=0);
621 }
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
const G4MoleculeDefinition * GetDefinition() const

Here is the call graph for this function:

void G4Molecule::ExciteMolecule ( G4int  ExcitedLevel)

Method used in Geant4-DNA to excite water molecules

Definition at line 314 of file G4Molecule.cc.

315 {
316  fpMolecularConfiguration = fpMolecularConfiguration->ExciteMolecule(
317  ExcitedLevel);
318 }
G4MolecularConfiguration * ExciteMolecule(G4int)

Here is the call graph for this function:

G4int G4Molecule::GetAtomsNumber ( ) const

Returns the nomber of atoms compouning the molecule

Definition at line 370 of file G4Molecule.cc.

371 {
372  return fpMolecularConfiguration->GetAtomsNumber();
373 }

Here is the call graph for this function:

G4int G4Molecule::GetCharge ( ) const

Returns the charge of molecule.

Definition at line 518 of file G4Molecule.cc.

519 {
520  return fpMolecularConfiguration->GetCharge();
521 }

Here is the call graph for this function:

const vector< const G4MolecularDissociationChannel * > * G4Molecule::GetDecayChannel ( ) const

Definition at line 469 of file G4Molecule.cc.

470 {
471  return fpMolecularConfiguration->GetDecayChannel();
472 }
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4Molecule::GetDecayTime ( ) const

Returns the decay time of the molecule.

Definition at line 497 of file G4Molecule.cc.

498 {
499  return fpMolecularConfiguration->GetDecayTime();
500 }

Here is the call graph for this function:

Here is the caller graph for this function:

const G4MoleculeDefinition * G4Molecule::GetDefinition ( ) const

Get molecule definition. This G4MoleculeDefinition has the ground electronic state of the molecule.

Definition at line 546 of file G4Molecule.cc.

547 {
548  return fpMolecularConfiguration->GetDefinition();
549 }
const G4MoleculeDefinition * GetDefinition() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4Molecule::GetDiffusionCoefficient ( ) const

Returns the diffusion coefficient D.

Definition at line 560 of file G4Molecule.cc.

561 {
562  return fpMolecularConfiguration->GetDiffusionCoefficient();
563 }

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4Molecule::GetDiffusionCoefficient ( const G4Material mat,
double  temperature 
) const

Returns the diffusion coefficient D.

Definition at line 567 of file G4Molecule.cc.

569 {
570  return fpMolecularConfiguration->GetDiffusionCoefficient(mat,
571  temperature);
572 }

Here is the call graph for this function:

G4double G4Molecule::GetDiffusionVelocity ( ) const

Definition at line 444 of file G4Molecule.cc.

445 {
446  double moleculeMass = fpMolecularConfiguration->GetMass() / (c_squared);
447 
449  // Different possibilities
451  // Ideal Gaz case : Maxwell Boltzmann Distribution
452  // double sigma = k_Boltzmann * fgTemperature / mass;
453  // return G4RandGauss::shoot( 0, sigma );
455  // Ideal Gaz case : mean velocity from equipartition theorem
456  return sqrt(3 * k_Boltzmann *
459  // Using this approximation for liquid is wrong
460  // However the brownian process avoid taking
461  // care of energy consideration and plays only
462  // with positions
463 }
static constexpr double k_Boltzmann
static constexpr double c_squared

Here is the call graph for this function:

Here is the caller graph for this function:

const G4ElectronOccupancy * G4Molecule::GetElectronOccupancy ( ) const

Returns the object ElectronOccupancy describing the electronic configuration of the molecule.

Definition at line 539 of file G4Molecule.cc.

540 {
541  return fpMolecularConfiguration->GetElectronOccupancy();
542 }
const G4ElectronOccupancy * GetElectronOccupancy() const

Here is the call graph for this function:

G4int G4Molecule::GetFakeParticleID ( ) const

Definition at line 476 of file G4Molecule.cc.

477 {
478  return fpMolecularConfiguration->GetFakeParticleID();
479 }

Here is the call graph for this function:

const G4String & G4Molecule::GetFormatedName ( ) const

Returns the formated name of the molecule

Definition at line 363 of file G4Molecule.cc.

364 {
365  return fpMolecularConfiguration->GetFormatedName();
366 }
const G4String & GetFormatedName() const

Here is the call graph for this function:

virtual G4ITType G4Molecule::GetITSubType ( ) const
inlinevirtual

Reimplemented from G4IT.

Definition at line 128 of file G4Molecule.hh.

129  {
130  return GetMoleculeID();
131  }
G4int GetMoleculeID() const
Definition: G4Molecule.cc:483

Here is the call graph for this function:

G4double G4Molecule::GetKineticEnergy ( ) const

Definition at line 432 of file G4Molecule.cc.

433 {
435  // Ideal Gaz case
436  double v = GetDiffusionVelocity();
437  double E = (fpMolecularConfiguration->GetMass() / (c_squared)) * (v * v) / 2.;
439  return E;
440 }
static constexpr double c_squared
G4double GetDiffusionVelocity() const
Definition: G4Molecule.cc:444

Here is the call graph for this function:

Here is the caller graph for this function:

const G4String & G4Molecule::GetLabel ( ) const

Returns the label of the molecule configuration

Definition at line 597 of file G4Molecule.cc.

598 {
599  return fpMolecularConfiguration->GetLabel();
600 }
const G4String & GetLabel() const

Here is the call graph for this function:

G4double G4Molecule::GetMass ( ) const

Returns the total mass of the molecule.

Definition at line 532 of file G4Molecule.cc.

533 {
534  return fpMolecularConfiguration->GetMass();
535 }

Here is the call graph for this function:

G4MolecularConfiguration * G4Molecule::GetMolecularConfiguration ( ) const

Definition at line 576 of file G4Molecule.cc.

577 {
578  return fpMolecularConfiguration;
579 }

Here is the caller graph for this function:

G4Molecule * G4Molecule::GetMolecule ( const G4Track track)
static

Definition at line 90 of file G4Molecule.cc.

91 {
92  return (G4Molecule*) (GetIT(track));
93 }
G4IT * GetIT(const G4Track *track)
Definition: G4IT.cc:49

Here is the call graph for this function:

G4int G4Molecule::GetMoleculeID ( ) const

Definition at line 483 of file G4Molecule.cc.

484 {
485  return fpMolecularConfiguration->GetMoleculeID();
486 }

Here is the call graph for this function:

Here is the caller graph for this function:

const G4String & G4Molecule::GetName ( ) const
virtual

Returns the name of the molecule

Implements G4IT.

Definition at line 356 of file G4Molecule.cc.

357 {
358  return fpMolecularConfiguration->GetName();
359 }
const G4String & GetName() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4Molecule::GetNbElectrons ( ) const

Returns the number of electron.

Definition at line 377 of file G4Molecule.cc.

378 {
379  return fpMolecularConfiguration->GetNbElectrons();
380 }

Here is the call graph for this function:

G4double G4Molecule::GetVanDerVaalsRadius ( ) const

Definition at line 511 of file G4Molecule.cc.

512 {
513  return fpMolecularConfiguration->GetVanDerVaalsRadius();
514 }

Here is the call graph for this function:

void G4Molecule::IonizeMolecule ( G4int  IonizedLevel)

Method used in Geant4-DNA to ionize water molecules

Definition at line 324 of file G4Molecule.cc.

325 {
326  fpMolecularConfiguration = fpMolecularConfiguration->IonizeMolecule(
327  IonizedLevel);
328 }
G4MolecularConfiguration * IonizeMolecule(G4int)

Here is the call graph for this function:

void G4Molecule::MoveOneElectron ( G4int  orbitToFree,
G4int  orbitToFill 
)

Move one electron from an orbit to another.

Definition at line 348 of file G4Molecule.cc.

349 {
350  fpMolecularConfiguration = fpMolecularConfiguration->MoveOneElectron(
351  orbitToFree, orbitToFill);
352 }
G4MolecularConfiguration * MoveOneElectron(G4int, G4int)

Here is the call graph for this function:

void G4Molecule::operator delete ( void aMolecule)
inline

Definition at line 316 of file G4Molecule.hh.

318 {
319  aMoleculeAllocator->FreeSingle((G4Molecule *) aMolecule);
320 }
G4DLLIMPORT G4ThreadLocal G4Allocator< G4Molecule > * aMoleculeAllocator
G4ThreadLocal/G4double G4Molecule::fgTemperature = 310; // 310*kelvin;
Definition: G4Molecule.cc:65
G4Molecule::operator int ( ) const
inline

Definition at line 123 of file G4Molecule.hh.

124  {
125  return GetMoleculeID();
126  }
G4int GetMoleculeID() const
Definition: G4Molecule.cc:483

Here is the call graph for this function:

void * G4Molecule::operator new ( size_t  )
inline

Definition at line 308 of file G4Molecule.hh.

310 {
312  return (void *) aMoleculeAllocator->MallocSingle();
313 }
G4DLLIMPORT G4ThreadLocal G4Allocator< G4Molecule > * aMoleculeAllocator
G4ThreadLocal/G4double G4Molecule::fgTemperature = 310; // 310*kelvin;
Definition: G4Molecule.cc:65
G4bool G4Molecule::operator!= ( const G4Molecule right) const

Definition at line 132 of file G4Molecule.cc.

133 {
134  return !(*this == right);
135 }
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 143 of file G4Molecule.cc.

144 {
145  return fpMolecularConfiguration < right.fpMolecularConfiguration;
146 }
G4Molecule & G4Molecule::operator= ( const G4Molecule right)

Definition at line 112 of file G4Molecule.cc.

113 {
114  if (&right == this) return *this;
115  fpMolecularConfiguration = right.fpMolecularConfiguration;
116  return *this;
117 }
G4bool G4Molecule::operator== ( const G4Molecule right) const

Definition at line 121 of file G4Molecule.cc.

122 {
123  if (fpMolecularConfiguration == right.fpMolecularConfiguration)
124  {
125  return true;
126  }
127  return false;
128 }
void G4Molecule::Print ( ) const
virtual

Reimplemented from G4IT.

Definition at line 97 of file G4Molecule.cc.

98 {
99  G4cout << "The user track information is a molecule" << G4endl;
100 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void G4Molecule::PrintState ( ) const

Show the electronic state of the molecule.

Definition at line 384 of file G4Molecule.cc.

385 {
386  fpMolecularConfiguration->PrintState();
387 }

Here is the call graph for this function:

Here is the caller graph for this function:

void G4Molecule::RemoveElectron ( G4int  orbit,
G4int  number = 1 
)

Remove n electrons to a given orbit.

Definition at line 340 of file G4Molecule.cc.

341 {
342  fpMolecularConfiguration = fpMolecularConfiguration->RemoveElectron(orbit,
343  number);
344 }
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1)

Here is the call graph for this function:

void G4Molecule::SetDecayTime ( G4double  dynDecayTime)

Set the decay time of the molecule.

Definition at line 490 of file G4Molecule.cc.

491 {
492  fpMolecularConfiguration->SetDecayTime(dynDecayTime);
493 }

Here is the call graph for this function:

void G4Molecule::SetDiffusionCoefficient ( G4double  dynDiffusionCoefficient)

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 553 of file G4Molecule.cc.

554 {
555  fpMolecularConfiguration->SetDiffusionCoefficient(dynDiffusionCoefficient);
556 }

Here is the call graph for this function:

void G4Molecule::SetElectronOccupancy ( const G4ElectronOccupancy occ)

Will set up the correct molecularConfiguration given an electron configuration

Definition at line 303 of file G4Molecule.cc.

304 {
305  fpMolecularConfiguration =
307  fpMolecularConfiguration->GetDefinition(), *occ);
308 }
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)
const G4MoleculeDefinition * GetDefinition() const

Here is the call graph for this function:

void G4Molecule::SetLabel ( const G4String label)

Definition at line 604 of file G4Molecule.cc.

605 {
606  fpMolecularConfiguration->SetLabel(label);
607 }

Here is the call graph for this function:

void G4Molecule::SetMass ( G4double  aMass)

Set the total mass of the molecule.

Definition at line 525 of file G4Molecule.cc.

526 {
527  fpMolecularConfiguration->SetMass(aMass);
528 }

Here is the call graph for this function:

void G4Molecule::SetVanDerVaalsRadius ( G4double  dynVanDerVaalsRadius)

The Van Der Valls Radius of the molecule

Definition at line 504 of file G4Molecule.cc.

505 {
506  fpMolecularConfiguration->SetVanDerVaalsRadius(dynVanDerVaalsRadius);
507 }

Here is the call graph for this function:


The documentation for this class was generated from the following files: