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)
 
G4TrackBuildTrack (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 G4MoleculeDefinitionGetDefinition () const
 
G4double GetDiffusionCoefficient () const
 
G4double GetDiffusionCoefficient (const G4Material *, double temperature) const
 
G4double GetDiffusionVelocity () const
 
const std::vector< const G4MolecularDissociationChannel * > * GetDissociationChannels () const
 
const G4ElectronOccupancyGetElectronOccupancy () const
 
G4int GetFakeParticleID () const
 
const G4StringGetFormatedName () const
 
const G4ITBoxGetITBox () const
 
virtual G4ITType GetITSubType () const
 
virtual const G4ITType GetITType () const =0
 
G4double GetKineticEnergy () const
 
const G4StringGetLabel () const
 
G4TrackListNodeGetListNode ()
 
G4double GetMass () const
 
const G4MolecularConfigurationGetMolecularConfiguration () const
 
G4int GetMoleculeID () const
 
const G4StringGetName () const
 
G4double GetNbElectrons () const
 
G4ITGetNext ()
 
const G4ITGetNext () const
 
G4KDNode_BaseGetNode () const
 
void GetParentID (int &, int &)
 
const G4ThreeVectorGetPosition () const
 
G4double GetPreStepGlobalTime () const
 
G4double GetPreStepLocalTime () const
 
const G4ThreeVectorGetPreStepPosition () const
 
G4ITGetPrevious ()
 
const G4ITGetPrevious () const
 
G4TrackGetTrack ()
 
const G4TrackGetTrack () const
 
G4TrackingInformationGetTrackingInfo ()
 
const G4StringGetType () 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
 
G4Moleculeoperator= (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 G4MoleculeGetMolecule (const G4Track *)
 

Protected Attributes

G4TrackfpTrack
 
G4StringpType = nullptr
 

Private Member Functions

 G4Molecule ()
 

Private Attributes

int fParentID_A
 
int fParentID_B
 
G4ITBoxfpITBox
 
G4KDNode_BasefpKDNode
 
const G4MolecularConfigurationfpMolecularConfiguration
 
G4ITfpNextIT
 
G4ITfpPreviousIT
 
G4TrackingInformationfpTrackingInformation
 
G4TrackListNodefpTrackNode
 

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: