Geant4-11
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4Molecule Class Referenceabstract

#include <G4Molecule.hh>

Inheritance diagram for G4Molecule:
G4IT G4VUserTrackInformation

Public Member Functions

void AddElectron (G4int orbit, G4int n=1)
 
G4Track * BuildTrack (G4double globalTime, const G4ThreeVector &Position)
 
void ChangeConfigurationToLabel (const G4String &label)
 
virtual G4bool diff (const G4IT &right) const =0
 
virtual G4bool equal (const G4IT &right) const =0
 
void ExciteMolecule (G4int)
 
 G4Molecule (const G4MolecularConfiguration *)
 
 G4Molecule (const G4Molecule &)
 
 G4Molecule (G4MoleculeDefinition *pMoleculeDefinition)
 
 G4Molecule (G4MoleculeDefinition *pMoleculeDefinition, G4int, G4bool)
 
 G4Molecule (G4MoleculeDefinition *pMoleculeDefinition, G4int, G4int)
 
 G4Molecule (G4MoleculeDefinition *pMoleculeDefinition, int charge)
 
G4int GetAtomsNumber () const
 
G4int GetCharge () const
 
G4double GetDecayTime () const
 
const G4MoleculeDefinition * GetDefinition () const
 
G4double GetDiffusionCoefficient () const
 
G4double GetDiffusionCoefficient (const G4Material *, double temperature) const
 
G4double GetDiffusionVelocity () const
 
const std::vector< const G4MolecularDissociationChannel * > * GetDissociationChannels () const
 
const G4ElectronOccupancy * GetElectronOccupancy () const
 
G4int GetFakeParticleID () const
 
const G4String & GetFormatedName () const
 
const G4ITBox * GetITBox () const
 
virtual G4ITType GetITSubType () const
 
virtual const G4ITType GetITType () const =0
 
G4double GetKineticEnergy () const
 
const G4String & GetLabel () const
 
G4TrackListNode * GetListNode ()
 
G4double GetMass () const
 
const G4MolecularConfiguration * GetMolecularConfiguration () const
 
G4int GetMoleculeID () const
 
const G4String & GetName () const
 
G4double GetNbElectrons () const
 
G4IT * GetNext ()
 
const G4IT * GetNext () const
 
G4KDNode_Base * GetNode () const
 
void GetParentID (int &, int &)
 
const G4ThreeVector & GetPosition () const
 
G4double GetPreStepGlobalTime () const
 
G4double GetPreStepLocalTime () const
 
const G4ThreeVector & GetPreStepPosition () const
 
G4IT * GetPrevious ()
 
const G4IT * GetPrevious () const
 
G4Track * GetTrack ()
 
const G4Track * GetTrack () const
 
G4TrackingInformation * GetTrackingInfo ()
 
const G4String & GetType () const
 
G4double GetVanDerVaalsRadius () const
 
void IonizeMolecule (G4int)
 
 ITDef (G4Molecule) void Print() const
 
void MoveOneElectron (G4int, G4int)
 
void operator delete (void *)
 
 operator int () const
 
void * operator new (size_t)
 
G4bool operator!= (const G4IT &right) const
 
G4bool operator!= (const G4Molecule &right) const
 
G4bool operator< (const G4IT &right) const
 
G4bool operator< (const G4Molecule &right) const
 
G4Molecule & operator= (const G4Molecule &right)
 
G4bool operator== (const G4IT &right) const
 
G4bool operator== (const G4Molecule &right) const
 
double operator[] (int i) const
 
virtual void Print () const
 
void PrintState () const
 
void RecordCurrentPositionNTime ()
 
void RemoveElectron (G4int, G4int number=1)
 
void SetDecayTime (G4double)
 
void SetDiffusionCoefficient (G4double)
 
void SetElectronOccupancy (const G4ElectronOccupancy *)
 
void SetITBox (G4ITBox *)
 
void SetLabel (const G4String &label)
 
void SetListNode (G4TrackListNode *node)
 
void SetMass (G4double)
 
void SetNext (G4IT *)
 
void SetNode (G4KDNode_Base *)
 
void SetParentID (int, int)
 
void SetPrevious (G4IT *)
 
void SetTrack (G4Track *)
 
void SetVanDerVaalsRadius (G4double)
 
void TakeOutBox ()
 
virtual ~G4Molecule ()
 

Static Public Member Functions

static G4Molecule * GetMolecule (const G4Track *)
 

Protected Attributes

G4Track * fpTrack
 
G4String * pType = nullptr
 

Private Member Functions

 G4Molecule ()
 

Private Attributes

int fParentID_A
 
int fParentID_B
 
G4ITBox * fpITBox
 
G4KDNode_Base * fpKDNode
 
const G4MolecularConfiguration * fpMolecularConfiguration
 
G4IT * fpNextIT
 
G4IT * fpPreviousIT
 
G4TrackingInformation * fpTrackingInformation
 
G4TrackListNode * fpTrackNode
 

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() [1/7]

G4Molecule::G4Molecule ( const G4Molecule &  right)

Definition at line 104 of file G4Molecule.cc.

105 : G4VUserTrackInformation("G4Molecule")
106 , G4IT(right)
107{
109}
G4IT()
Definition: G4IT.cc:67
const G4MolecularConfiguration * fpMolecularConfiguration
Definition: G4Molecule.hh:292

References fpMolecularConfiguration.

◆ G4Molecule() [2/7]

G4Molecule::G4Molecule ( G4MoleculeDefinition *  pMoleculeDefinition)

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

181 : G4VUserTrackInformation("G4Molecule")
182 , G4IT()
183{
185}
static G4MolecularConfiguration * GetOrCreateMolecularConfiguration(const G4MoleculeDefinition *)

References fpMolecularConfiguration, and G4MolecularConfiguration::GetOrCreateMolecularConfiguration().

◆ G4Molecule() [3/7]

G4Molecule::G4Molecule ( G4MoleculeDefinition *  pMoleculeDefinition,
int  charge 
)

◆ G4Molecule() [4/7]

G4Molecule::G4Molecule ( G4MoleculeDefinition *  pMoleculeDefinition,
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 200 of file G4Molecule.cc.

203 : G4VUserTrackInformation("G4Molecule")
204 , G4IT()
205{
206 if (pMoleculeDefinition->GetGroundStateElectronOccupancy())
207 {
208 G4ElectronOccupancy dynElectronOccupancy(*pMoleculeDefinition->GetGroundStateElectronOccupancy());
209
210 if (OrbitalToFill != 0)
211 {
212 dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
213 dynElectronOccupancy.AddElectron(OrbitalToFill - 1, 1);
214 // dynElectronOccupancy.DumpInfo(); // DEBUG
215 }
216
217 if (OrbitalToFill == 0)
218 {
219 dynElectronOccupancy.RemoveElectron(OrbitalToFree - 1, 1);
220 // dynElectronOccupancy.DumpInfo(); // DEBUG
221 }
222
225 pMoleculeDefinition, dynElectronOccupancy);
226 }
227 else
228 {
229 fpMolecularConfiguration = nullptr;
231 "G4Molecule::G4Molecule(G4MoleculeDefinition* pMoleculeDefinition, "
232 "G4int OrbitalToFree, G4int OrbitalToFill)",
233 "G4Molecule_wrong_usage_of_constructor",
235 "If you want to use this constructor, the molecule definition has to be "
236 "first defined with electron occupancies");
237 }
238}
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const

References G4ElectronOccupancy::AddElectron(), FatalErrorInArgument, fpMolecularConfiguration, G4Exception(), G4MoleculeDefinition::GetGroundStateElectronOccupancy(), G4MolecularConfiguration::GetOrCreateMolecularConfiguration(), and G4ElectronOccupancy::RemoveElectron().

◆ G4Molecule() [5/7]

G4Molecule::G4Molecule ( G4MoleculeDefinition *  pMoleculeDefinition,
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 245 of file G4Molecule.cc.

248 : G4VUserTrackInformation("G4Molecule")
249 , G4IT()
250{
251 if (pMoleculeDefinition->GetGroundStateElectronOccupancy())
252 {
253 G4ElectronOccupancy dynElectronOccupancy(*pMoleculeDefinition->GetGroundStateElectronOccupancy());
254
255 if (excitation)
256 {
257 dynElectronOccupancy.RemoveElectron(level, 1);
258 dynElectronOccupancy.AddElectron(5, 1);
259 // dynElectronOccupancy.DumpInfo(); // DEBUG
260 }
261 else
262 {
263 dynElectronOccupancy.RemoveElectron(level, 1);
264 // dynElectronOccupancy.DumpInfo(); // DEBUG
265 }
266
268 dynElectronOccupancy);
269 }
270 else
271 {
272 fpMolecularConfiguration = nullptr;
274 "G4Molecule::G4Molecule(G4MoleculeDefinition* pMoleculeDefinition, "
275 "G4int OrbitalToFree, G4int OrbitalToFill)",
276 "G4Molecule_wrong_usage_of_constructor",
278 "If you want to use this constructor, the molecule definition has to be "
279 "first defined with electron occupancies");
280 }
281}

References G4ElectronOccupancy::AddElectron(), FatalErrorInArgument, fpMolecularConfiguration, G4Exception(), G4MoleculeDefinition::GetGroundStateElectronOccupancy(), G4MolecularConfiguration::GetOrCreateMolecularConfiguration(), and G4ElectronOccupancy::RemoveElectron().

◆ G4Molecule() [6/7]

G4Molecule::G4Molecule ( const G4MolecularConfiguration *  pMolecularConfiguration)

Definition at line 285 of file G4Molecule.cc.

286{
287 fpMolecularConfiguration = pMolecularConfiguration;
288}

References fpMolecularConfiguration.

◆ ~G4Molecule()

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}
G4Track * fpTrack
Definition: G4IT.hh:167
const G4ThreeVector & GetPosition() const
G4double GetGlobalTime() const
static G4VMoleculeCounter * Instance()

References fpMolecularConfiguration, G4IT::fpTrack, G4Track::GetGlobalTime(), G4Track::GetPosition(), and G4VMoleculeCounter::Instance().

◆ G4Molecule() [7/7]

G4Molecule::G4Molecule ( )
private

Default molecule builder

Definition at line 151 of file G4Molecule.cc.

152 : G4VUserTrackInformation("G4Molecule")
153 , G4IT()
154{
155 fpMolecularConfiguration = nullptr;
156}

References fpMolecularConfiguration.

Member Function Documentation

◆ AddElectron()

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

316{
318}
G4MolecularConfiguration * AddElectron(G4int orbit, G4int n=1) const

References G4MolecularConfiguration::AddElectron(), and fpMolecularConfiguration.

Referenced by G4DNAChemistryManager::CreateWaterMolecule().

◆ BuildTrack()

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

Definition at line 373 of file G4Molecule.cc.

375{
376 if (fpTrack != nullptr)
377 {
378 G4Exception("G4Molecule::BuildTrack", "Molecule001", FatalErrorInArgument,
379 "A track was already assigned to this molecule");
380 }
381
382 // Kinetic Values
383 // Set a random direction to the molecule
384 G4double costheta = (2 * G4UniformRand() - 1);
385 G4double theta = acos(costheta);
386 G4double phi = 2 * pi * G4UniformRand();
387
388 G4double xMomentum = cos(phi) * sin(theta);
389 G4double yMomentum = sin(theta) * sin(phi);
390 G4double zMomentum = costheta;
391
392 G4ThreeVector MomentumDirection(xMomentum, yMomentum, zMomentum);
394
395 G4DynamicParticle* dynamicParticle = new G4DynamicParticle(
396 fpMolecularConfiguration->GetDefinition(), MomentumDirection,
397 KineticEnergy);
398
400 {
402 AddAMoleculeAtTime(fpMolecularConfiguration,
403 globalTime,
404 &(fpTrack->GetPosition()));
405 }
406
407 //Set the Track
408 fpTrack = new G4Track(dynamicParticle, globalTime, position);
410
411 return fpTrack;
412}
static constexpr double pi
Definition: G4SIunits.hh:55
double G4double
Definition: G4Types.hh:83
#define G4UniformRand()
Definition: Randomize.hh:52
const G4MoleculeDefinition * GetDefinition() const
G4double GetKineticEnergy() const
Definition: G4Molecule.cc:416
void SetUserInformation(G4VUserTrackInformation *aValue) const

References FatalErrorInArgument, fpMolecularConfiguration, G4IT::fpTrack, G4Exception(), G4UniformRand, G4MolecularConfiguration::GetDefinition(), GetKineticEnergy(), G4Track::GetPosition(), G4VMoleculeCounter::Instance(), G4VMoleculeCounter::InUse(), pi, and G4Track::SetUserInformation().

Referenced by G4MoleculeGun::BuildAndPushTrack(), G4DNAChemistryManager::CreateWaterMolecule(), G4DNAIRT::Sampling(), and G4DNAIRT_geometries::Sampling().

◆ ChangeConfigurationToLabel()

void G4Molecule::ChangeConfigurationToLabel ( const G4String &  label)

Definition at line 546 of file G4Molecule.cc.

547{
548 // TODO check fpMolecularConfiguration already exists
549 // and new one as well
550 // TODO notify for stack change
553
554 assert(fpMolecularConfiguration != nullptr);
555}
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)

References fpMolecularConfiguration, G4MolecularConfiguration::GetDefinition(), and G4MolecularConfiguration::GetMolecularConfiguration().

Referenced by G4DNAElectronHoleRecombination::MakeReaction().

◆ diff()

virtual G4bool G4IT::diff ( const G4IT &  right) const
pure virtualinherited

Referenced by G4IT::operator<().

◆ equal()

virtual G4bool G4IT::equal ( const G4IT &  right) const
pure virtualinherited

Referenced by G4IT::operator==().

◆ ExciteMolecule()

void G4Molecule::ExciteMolecule ( G4int  excitationLevel)

Method used in Geant4-DNA to excite water molecules

Definition at line 301 of file G4Molecule.cc.

302{
304}
G4MolecularConfiguration * ExciteMolecule(G4int) const

References G4MolecularConfiguration::ExciteMolecule(), and fpMolecularConfiguration.

Referenced by G4DNAChemistryManager::CreateWaterMolecule().

◆ GetAtomsNumber()

G4int G4Molecule::GetAtomsNumber ( ) const

Returns the nomber of atoms compouning the molecule

Definition at line 352 of file G4Molecule.cc.

References fpMolecularConfiguration, and G4MolecularConfiguration::GetAtomsNumber().

◆ GetCharge()

G4int G4Molecule::GetCharge ( ) const

Returns the charge of molecule.

Definition at line 488 of file G4Molecule.cc.

References fpMolecularConfiguration, and G4MolecularConfiguration::GetCharge().

◆ GetDecayTime()

G4double G4Molecule::GetDecayTime ( ) const

Returns the decay time of the molecule.

Definition at line 474 of file G4Molecule.cc.

475{
477}

References fpMolecularConfiguration, and G4MolecularConfiguration::GetDecayTime().

Referenced by G4DNAMolecularDissociation::GetMeanLifeTime().

◆ GetDefinition()

const G4MoleculeDefinition * G4Molecule::GetDefinition ( ) const

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

Definition at line 509 of file G4Molecule.cc.

510{
512}

References fpMolecularConfiguration, and G4MolecularConfiguration::GetDefinition().

◆ GetDiffusionCoefficient() [1/2]

G4double G4Molecule::GetDiffusionCoefficient ( ) const

◆ GetDiffusionCoefficient() [2/2]

G4double G4Molecule::GetDiffusionCoefficient ( const G4Material *  pMaterial,
double  temperature 
) const

Returns the diffusion coefficient D.

Definition at line 523 of file G4Molecule.cc.

525{
527 temperature);
528}

References fpMolecularConfiguration, and G4MolecularConfiguration::GetDiffusionCoefficient().

◆ GetDiffusionVelocity()

G4double G4Molecule::GetDiffusionVelocity ( ) const

Definition at line 428 of file G4Molecule.cc.

429{
430 double moleculeMass = fpMolecularConfiguration->GetMass() / (c_squared);
431
433 // Different possibilities
435 // Ideal Gaz case : Maxwell Boltzmann Distribution
436 // double sigma = k_Boltzmann * fgTemperature / mass;
437 // return G4RandGauss::shoot( 0, sigma );
439 // Ideal Gaz case : mean velocity from equipartition theorem
440 return sqrt(3 * k_Boltzmann *
443 // Using this approximation for liquid is wrong
444 // However the brownian process avoid taking
445 // care of energy consideration and plays only
446 // with positions
447}
float k_Boltzmann
Definition: hepunit.py:298
float c_squared
Definition: hepunit.py:257

References source.hepunit::c_squared, fpMolecularConfiguration, G4MolecularConfiguration::GetGlobalTemperature(), G4MolecularConfiguration::GetMass(), and source.hepunit::k_Boltzmann.

Referenced by GetKineticEnergy().

◆ GetDissociationChannels()

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

Definition at line 453 of file G4Molecule.cc.

454{
456}
const std::vector< const G4MolecularDissociationChannel * > * GetDissociationChannels() const

References fpMolecularConfiguration, and G4MolecularConfiguration::GetDissociationChannels().

◆ GetElectronOccupancy()

const G4ElectronOccupancy * G4Molecule::GetElectronOccupancy ( ) const

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

Definition at line 502 of file G4Molecule.cc.

503{
505}
const G4ElectronOccupancy * GetElectronOccupancy() const

References fpMolecularConfiguration, and G4MolecularConfiguration::GetElectronOccupancy().

◆ GetFakeParticleID()

G4int G4Molecule::GetFakeParticleID ( ) const

◆ GetFormatedName()

const G4String & G4Molecule::GetFormatedName ( ) const

Returns the formated name of the molecule

Definition at line 345 of file G4Molecule.cc.

346{
348}
const G4String & GetFormatedName() const

References fpMolecularConfiguration, and G4MolecularConfiguration::GetFormatedName().

◆ GetITBox()

const G4ITBox * G4IT::GetITBox ( ) const
inlineinherited

Definition at line 183 of file G4IT.hh.

184{
185 return fpITBox;
186}
G4ITBox * fpITBox
Definition: G4IT.hh:170

References G4IT::fpITBox.

◆ GetITSubType()

virtual G4ITType G4Molecule::GetITSubType ( ) const
inlinevirtual

Reimplemented from G4IT.

Definition at line 130 of file G4Molecule.hh.

131 {
132 return GetMoleculeID();
133 }
G4int GetMoleculeID() const
Definition: G4Molecule.cc:467

References GetMoleculeID().

◆ GetITType()

virtual const G4ITType G4IT::GetITType ( ) const
pure virtualinherited

◆ GetKineticEnergy()

G4double G4Molecule::GetKineticEnergy ( ) const

Definition at line 416 of file G4Molecule.cc.

417{
419 // Ideal Gaz case
420 double v = GetDiffusionVelocity();
421 double E = (fpMolecularConfiguration->GetMass() / (c_squared)) * (v * v) / 2.;
423 return E;
424}
G4double GetDiffusionVelocity() const
Definition: G4Molecule.cc:428

References source.hepunit::c_squared, fpMolecularConfiguration, GetDiffusionVelocity(), and G4MolecularConfiguration::GetMass().

Referenced by BuildTrack().

◆ GetLabel()

const G4String & G4Molecule::GetLabel ( ) const

Returns the label of the molecule configuration

Definition at line 539 of file G4Molecule.cc.

540{
542}
const G4String & GetLabel() const

References fpMolecularConfiguration, and G4MolecularConfiguration::GetLabel().

◆ GetListNode()

G4TrackListNode * G4IT::GetListNode ( )
inlineinherited

Definition at line 148 of file G4IT.hh.

149 {
150 return fpTrackNode;
151 }
G4TrackListNode * fpTrackNode
Definition: G4IT.hh:179

References G4IT::fpTrackNode.

◆ GetMass()

G4double G4Molecule::GetMass ( ) const

Returns the total mass of the molecule.

Definition at line 495 of file G4Molecule.cc.

496{
498}

References fpMolecularConfiguration, and G4MolecularConfiguration::GetMass().

◆ GetMolecularConfiguration()

const G4MolecularConfiguration * G4Molecule::GetMolecularConfiguration ( ) const

◆ GetMolecule()

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:48

References GetIT().

Referenced by G4DNAIRT::Sampling(), and G4DNAIRT_geometries::Sampling().

◆ GetMoleculeID()

G4int G4Molecule::GetMoleculeID ( ) const

◆ GetName()

const G4String & G4Molecule::GetName ( ) const
virtual

◆ GetNbElectrons()

G4double G4Molecule::GetNbElectrons ( ) const

Returns the number of electron.

Definition at line 359 of file G4Molecule.cc.

References fpMolecularConfiguration, and G4MolecularConfiguration::GetNbElectrons().

◆ GetNext() [1/2]

G4IT * G4IT::GetNext ( )
inlineinherited

Definition at line 208 of file G4IT.hh.

209{
210 return fpNextIT;
211}
G4IT * fpNextIT
Definition: G4IT.hh:172

References G4IT::fpNextIT.

Referenced by G4ITBox::Extract(), G4ITBox::TransferTo(), and G4ITBox::~G4ITBox().

◆ GetNext() [2/2]

const G4IT * G4IT::GetNext ( ) const
inlineinherited

Definition at line 245 of file G4IT.hh.

246{
247 return fpNextIT;
248}

References G4IT::fpNextIT.

◆ GetNode()

G4KDNode_Base * G4IT::GetNode ( ) const
inlineinherited

Definition at line 255 of file G4IT.hh.

256{
257 return fpKDNode;
258}
G4KDNode_Base * fpKDNode
Definition: G4IT.hh:173

References G4IT::fpKDNode.

◆ GetParentID()

void G4IT::GetParentID ( int &  p_a,
int &  p_b 
)
inlineinherited

Definition at line 234 of file G4IT.hh.

235{
236 p_a = fParentID_A;
237 p_b = fParentID_B;
238}
int fParentID_A
Definition: G4IT.hh:175
int fParentID_B
Definition: G4IT.hh:176

References G4IT::fParentID_A, and G4IT::fParentID_B.

◆ GetPosition()

const G4ThreeVector & G4IT::GetPosition ( ) const
inherited

Definition at line 214 of file G4IT.cc.

215{
216 if (fpTrack) return GetTrack()->GetPosition();
217 return *(new G4ThreeVector());
218}
CLHEP::Hep3Vector G4ThreeVector
G4Track * GetTrack()
Definition: G4IT.hh:218

References G4IT::fpTrack, G4Track::GetPosition(), and G4IT::GetTrack().

◆ GetPreStepGlobalTime()

G4double G4IT::GetPreStepGlobalTime ( ) const
inherited

Definition at line 228 of file G4IT.cc.

229{
231}
G4TrackingInformation * fpTrackingInformation
Definition: G4IT.hh:178
G4double GetPreStepGlobalTime() const

References G4IT::fpTrackingInformation, and G4TrackingInformation::GetPreStepGlobalTime().

◆ GetPreStepLocalTime()

G4double G4IT::GetPreStepLocalTime ( ) const
inherited

◆ GetPreStepPosition()

const G4ThreeVector & G4IT::GetPreStepPosition ( ) const
inherited

Definition at line 238 of file G4IT.cc.

239{
241}
const G4ThreeVector & GetPreStepPosition() const

References G4IT::fpTrackingInformation, and G4TrackingInformation::GetPreStepPosition().

◆ GetPrevious() [1/2]

G4IT * G4IT::GetPrevious ( )
inlineinherited

Definition at line 203 of file G4IT.hh.

204{
205 return fpPreviousIT;
206}
G4IT * fpPreviousIT
Definition: G4IT.hh:171

References G4IT::fpPreviousIT.

Referenced by G4ITBox::Extract(), and G4ITBox::FindIT().

◆ GetPrevious() [2/2]

const G4IT * G4IT::GetPrevious ( ) const
inlineinherited

Definition at line 240 of file G4IT.hh.

241{
242 return fpPreviousIT;
243}

References G4IT::fpPreviousIT.

◆ GetTrack() [1/2]

G4Track * G4IT::GetTrack ( )
inlineinherited

◆ GetTrack() [2/2]

const G4Track * G4IT::GetTrack ( ) const
inlineinherited

Definition at line 223 of file G4IT.hh.

224{
225 return fpTrack;
226}

References G4IT::fpTrack.

◆ GetTrackingInfo()

G4TrackingInformation * G4IT::GetTrackingInfo ( )
inlineinherited

◆ GetType()

const G4String & G4VUserTrackInformation::GetType ( ) const
inherited

Definition at line 75 of file G4VUserTrackInformation.cc.

76{
77 static const G4String NOTYPE = "NONE";
78 if(pType != nullptr)
79 return *pType;
80 else
81 return NOTYPE;
82}

References G4VUserTrackInformation::pType.

Referenced by G4ScintillationTrackInformation::IsScintillationTrackInformation().

◆ GetVanDerVaalsRadius()

G4double G4Molecule::GetVanDerVaalsRadius ( ) const

◆ IonizeMolecule()

void G4Molecule::IonizeMolecule ( G4int  ionizationLevel)

Method used in Geant4-DNA to ionize water molecules

Definition at line 308 of file G4Molecule.cc.

309{
311}
G4MolecularConfiguration * IonizeMolecule(G4int) const

References fpMolecularConfiguration, and G4MolecularConfiguration::IonizeMolecule().

Referenced by G4DNAChemistryManager::CreateWaterMolecule().

◆ ITDef()

G4Molecule::ITDef ( G4Molecule  ) const

◆ MoveOneElectron()

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

Move one electron from an orbit to another.

Definition at line 330 of file G4Molecule.cc.

331{
333 fpMolecularConfiguration->MoveOneElectron(orbitToFree, orbitToFill);
334}
G4MolecularConfiguration * MoveOneElectron(G4int, G4int) const

References fpMolecularConfiguration, and G4MolecularConfiguration::MoveOneElectron().

◆ operator delete()

void G4Molecule::operator delete ( void *  aMolecule)
inline

Definition at line 313 of file G4Molecule.hh.

315{
316 aMoleculeAllocator()->FreeSingle((G4Molecule *)aMolecule);
317}
G4DLLIMPORT G4Allocator< G4Molecule > *& aMoleculeAllocator()

References aMoleculeAllocator().

◆ operator int()

G4Molecule::operator int ( ) const
inline

Definition at line 125 of file G4Molecule.hh.

126 {
127 return GetMoleculeID();
128 }

References GetMoleculeID().

◆ operator new()

void * G4Molecule::operator new ( size_t  )
inline

Definition at line 302 of file G4Molecule.hh.

304{
305 if (!aMoleculeAllocator())
306 {
308 }
309 return (void *)aMoleculeAllocator()->MallocSingle();
310}

References aMoleculeAllocator().

◆ operator!=() [1/2]

G4bool G4IT::operator!= ( const G4IT &  right) const
inherited

Definition at line 202 of file G4IT.cc.

203{
204 return !(this->operator==(right));
205}
G4bool operator==(const G4IT &right) const
Definition: G4IT.cc:193

References G4IT::operator==().

◆ operator!=() [2/2]

G4bool G4Molecule::operator!= ( const G4Molecule &  right) const

Definition at line 133 of file G4Molecule.cc.

134{
135 return !(*this == right);
136}

◆ operator<() [1/2]

G4bool G4IT::operator< ( const G4IT &  right) const
inherited

Definition at line 180 of file G4IT.cc.

181{
182 if (GetITType() == right.GetITType())
183 {
184 return (this->diff(right));
185 }
186 else
187 {
188 return (GetITType() < right.GetITType());
189 }
190 return false;
191}
virtual const G4ITType GetITType() const =0
virtual G4bool diff(const G4IT &right) const =0

References G4IT::diff(), and G4IT::GetITType().

◆ operator<() [2/2]

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

145{
147}

References fpMolecularConfiguration.

◆ operator=()

G4Molecule & G4Molecule::operator= ( const G4Molecule &  right)

Definition at line 113 of file G4Molecule.cc.

114{
115 if (&right == this) return *this;
117 return *this;
118}

References fpMolecularConfiguration.

◆ operator==() [1/2]

G4bool G4IT::operator== ( const G4IT &  right) const
inherited

Definition at line 193 of file G4IT.cc.

194{
195 if (GetITType() == right.GetITType())
196 {
197 return this->equal(right);
198 }
199 return false;
200}
virtual G4bool equal(const G4IT &right) const =0

References G4IT::equal(), and G4IT::GetITType().

Referenced by G4IT::operator!=().

◆ operator==() [2/2]

G4bool G4Molecule::operator== ( const G4Molecule &  right) const

Definition at line 122 of file G4Molecule.cc.

123{
125 {
126 return true;
127 }
128 return false;
129}

References fpMolecularConfiguration.

◆ operator[]()

double G4IT::operator[] ( int  i) const
inherited

Definition at line 207 of file G4IT.cc.

208{
209 return fpTrack->GetPosition()[i];
210}

References G4IT::fpTrack, and G4Track::GetPosition().

◆ Print()

virtual void G4IT::Print ( ) const
inlinevirtualinherited

Reimplemented from G4VUserTrackInformation.

Definition at line 97 of file G4IT.hh.

98 {
99 ;
100 }

◆ PrintState()

void G4Molecule::PrintState ( ) const

Show the electronic state of the molecule.

Definition at line 366 of file G4Molecule.cc.

References fpMolecularConfiguration, and G4MolecularConfiguration::PrintState().

◆ RecordCurrentPositionNTime()

void G4IT::RecordCurrentPositionNTime ( )
inherited

◆ RemoveElectron()

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

Remove n electrons to a given orbit.

Definition at line 322 of file G4Molecule.cc.

323{
326}
G4MolecularConfiguration * RemoveElectron(G4int, G4int number=1) const

References fpMolecularConfiguration, and G4MolecularConfiguration::RemoveElectron().

◆ SetDecayTime()

void G4Molecule::SetDecayTime ( G4double  )

Set the decay time of the molecule.

◆ SetDiffusionCoefficient()

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.

◆ SetElectronOccupancy()

void G4Molecule::SetElectronOccupancy ( const G4ElectronOccupancy *  pElectronOcc)

Will set up the correct molecularConfiguration given an electron configuration

Definition at line 292 of file G4Molecule.cc.

References fpMolecularConfiguration, G4MolecularConfiguration::GetDefinition(), and G4MolecularConfiguration::GetOrCreateMolecularConfiguration().

◆ SetITBox()

void G4IT::SetITBox ( G4ITBox *  aITBox)
inlineinherited

Definition at line 188 of file G4IT.hh.

189{
190 fpITBox = aITBox;
191}

References G4IT::fpITBox.

Referenced by G4ITBox::Extract(), and G4ITBox::Push().

◆ SetLabel()

void G4Molecule::SetLabel ( const G4String &  label)

◆ SetListNode()

void G4IT::SetListNode ( G4TrackListNode *  node)
inlineinherited

Definition at line 152 of file G4IT.hh.

153 {
154 fpTrackNode = node;
155 }

References G4IT::fpTrackNode.

◆ SetMass()

void G4Molecule::SetMass ( G4double  )

Set the total mass of the molecule.

◆ SetNext()

void G4IT::SetNext ( G4IT *  aIT)
inlineinherited

Definition at line 198 of file G4IT.hh.

199{
200 fpNextIT = aIT;
201}

References G4IT::fpNextIT.

Referenced by G4ITBox::Extract(), and G4ITBox::Push().

◆ SetNode()

void G4IT::SetNode ( G4KDNode_Base *  aNode)
inlineinherited

Definition at line 250 of file G4IT.hh.

251{
252 fpKDNode = aNode;
253}

References G4IT::fpKDNode.

◆ SetParentID()

void G4IT::SetParentID ( int  p_a,
int  p_b 
)
inlineinherited

Definition at line 228 of file G4IT.hh.

229{
230 fParentID_A = p_a;
231 fParentID_B = p_b;
232}

References G4IT::fParentID_A, and G4IT::fParentID_B.

Referenced by G4ITModelProcessor::ComputeTrackReaction().

◆ SetPrevious()

void G4IT::SetPrevious ( G4IT *  aIT)
inlineinherited

Definition at line 193 of file G4IT.hh.

194{
195 fpPreviousIT = aIT;
196}

References G4IT::fpPreviousIT.

Referenced by G4ITBox::Extract(), and G4ITBox::Push().

◆ SetTrack()

void G4IT::SetTrack ( G4Track *  track)
inlineinherited

Definition at line 213 of file G4IT.hh.

214{
215 fpTrack = track;
216}

References G4IT::fpTrack.

◆ SetVanDerVaalsRadius()

void G4Molecule::SetVanDerVaalsRadius ( G4double  )

The Van Der Valls Radius of the molecule

◆ TakeOutBox()

void G4IT::TakeOutBox ( )
inherited

Definition at line 139 of file G4IT.cc.

140{
141 if(fpITBox)
142 {
143 fpITBox->Extract(this);
144 fpITBox = nullptr;
145 }
146
147 if(fpTrackNode)
148 {
149 delete fpTrackNode;
150 fpTrackNode = nullptr;
151 }
152
153 if(fpKDNode)
154 {
156 fpKDNode = nullptr;
157 }
158}
void InactiveNode(G4KDNode_Base *)
Definition: G4KDNode.cc:57
void Extract(G4IT *)
Definition: G4ITBox.cc:86

References G4ITBox::Extract(), G4IT::fpITBox, G4IT::fpKDNode, G4IT::fpTrackNode, and InactiveNode().

Referenced by G4IT::~G4IT().

Field Documentation

◆ fParentID_A

int G4IT::fParentID_A
privateinherited

Definition at line 175 of file G4IT.hh.

Referenced by G4IT::G4IT(), G4IT::GetParentID(), G4IT::operator=(), and G4IT::SetParentID().

◆ fParentID_B

int G4IT::fParentID_B
privateinherited

Definition at line 176 of file G4IT.hh.

Referenced by G4IT::G4IT(), G4IT::GetParentID(), G4IT::operator=(), and G4IT::SetParentID().

◆ fpITBox

G4ITBox* G4IT::fpITBox
privateinherited

◆ fpKDNode

G4KDNode_Base* G4IT::fpKDNode
privateinherited

Definition at line 173 of file G4IT.hh.

Referenced by G4IT::G4IT(), G4IT::GetNode(), G4IT::operator=(), G4IT::SetNode(), and G4IT::TakeOutBox().

◆ fpMolecularConfiguration

const G4MolecularConfiguration* G4Molecule::fpMolecularConfiguration
private

◆ fpNextIT

G4IT* G4IT::fpNextIT
privateinherited

Definition at line 172 of file G4IT.hh.

Referenced by G4IT::GetNext(), G4IT::operator=(), and G4IT::SetNext().

◆ fpPreviousIT

G4IT* G4IT::fpPreviousIT
privateinherited

Definition at line 171 of file G4IT.hh.

Referenced by G4IT::GetPrevious(), G4IT::operator=(), and G4IT::SetPrevious().

◆ fpTrack

G4Track* G4IT::fpTrack
protectedinherited

◆ fpTrackingInformation

G4TrackingInformation* G4IT::fpTrackingInformation
privateinherited

◆ fpTrackNode

G4TrackListNode* G4IT::fpTrackNode
privateinherited

◆ pType

G4String* G4VUserTrackInformation::pType = nullptr
protectedinherited

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