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
 
void * operator new (size_t)
 
void operator delete (void *)
 
 G4Molecule (const G4Molecule &)
 
G4Molecule & operator= (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 G4String & GetName () const
 
const G4String & GetFormatedName () 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
 
G4Track * BuildTrack (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 G4MoleculeDefinition * GetDefinition () 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 G4ElectronOccupancy * GetElectronOccupancy () const
 
G4int GetCharge () const
 
void SetMass (G4double)
 
G4double GetMass () const
 
const G4String & GetLabel () const
 
void SetLabel (const G4String &label)
 
void ChangeConfigurationToLabel (const G4String &label)
 
G4MolecularConfiguration * GetMolecularConfiguration () 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 *)
 
G4Track * GetTrack ()
 
const G4Track * GetTrack () const
 
void RecordCurrentPositionNTime ()
 
const G4ThreeVector & GetPosition () const
 
double operator[] (int i) const
 
const G4ThreeVector & GetPreStepPosition () const
 
G4double GetPreStepLocalTime () const
 
G4double GetPreStepGlobalTime () const
 
void SetPrevious (G4IT *)
 
void SetNext (G4IT *)
 
G4IT * GetPrevious ()
 
G4IT * GetNext ()
 
const G4IT * GetPrevious () const
 
const G4IT * GetNext () const
 
void SetITBox (G4ITBox *)
 
const G4ITBox * GetITBox () const
 
void TakeOutBox ()
 
void SetNode (G4KDNode_Base *)
 
G4KDNode_Base * GetNode () const
 
void SetParentID (int, int)
 
void GetParentID (int &, int &)
 
G4TrackingInformation * GetTrackingInfo ()
 
G4TrackListNode * GetListNode ()
 
void SetListNode (G4TrackListNode *node)
 
virtual const G4ITType GetITType () const =0
 
- Public Member Functions inherited from G4VUserTrackInformation
 G4VUserTrackInformation ()
 
 G4VUserTrackInformation (const G4String &infoType)
 
 G4VUserTrackInformation (const G4VUserTrackInformation &)
 
G4VUserTrackInformation & operator= (const G4VUserTrackInformation &)
 
virtual ~G4VUserTrackInformation ()
 
const G4String & GetType () const
 

Static Public Member Functions

static G4Molecule * GetMolecule (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 &)
 
G4IT & operator= (const G4IT &)
 
- Protected Attributes inherited from G4IT
G4Track * fpTrack
 
- Protected Attributes inherited from G4VUserTrackInformation
G4String * pType
 

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: