Processes



Class name:
G4ProcessManager

Category: PhysicsProcess
Documentation:
It collects all physics a particle can undertake as
four aggregated vectors. One is for processes at rest,
one is for discrete processes, one for semi-continuous
processes and one for continuous processes.
The Tracking will message the
GetPhysicalInteractionLength() of the different types
of processes in order to limit the step and select the
occurence of processes. It will message the DoIt() to
apply the selected processes.
GetPhysicalInteractionLength() is called at every step
for every kind of process except for processes at rest
(for which GetPhysicalInteractionLength() is called
only if the stop signal is set). In addition, the
Tracking will limit the step and select the occurence
of the processes according to the shortest physical
interaction length computed (except for processes at
rest, for which the Tracking will select the occurence
of the process which returns the shortest mean
life-time from the GetPhysicalInteractionLength()).
DoIt() is called at every step for the processes of
type continuous, semi-continuous, and for any other
user-defined.
For discrete processes and processes at rest, DoIt() is
called only for the selected process.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Public Interface:
Operations:
AddContinuousProcess (G4VProcess)
AddDiscreteProcess (G4VProcess)
AddRestProcess (G4VProcess)
AddSemiContinuousProcess (G4VProcess)
GetContinuousProcessVector ( )
GetDiscreteProcessVector ( )
GetProcessTypeVector ( )
GetRestProcessVector ( )
GetSemiContinuousProcessVector ( )
RemoveProcess (G4VProcess)

Private Interface:
Has-A Relationships:
G4ProcessTypeVector theProcessTypeVector

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
AddContinuousProcess

Public member of: G4ProcessManager
Return Class: void
Arguments:
G4VProcess *aContinuousProcess
Documentation:
Adds a process in the continuous-process vector pointed
by the fourth element of theProcessTypeVector.

Concurrency: Sequential



Operation name:
AddDiscreteProcess

Public member of: G4ProcessManager
Return Class: void
Arguments:
G4VProcess *aDiscreteProcess
Documentation:
Adds a process to the discrete process vector pointed
by the second element of theProcessTypeVector.

Concurrency: Sequential



Operation name:
AddRestProcess

Public member of: G4ProcessManager
Return Class: void
Arguments:
G4VProcess *aProcess
Documentation:
Adds a process to the vector of processes at rest
pointed by the first element of theProcessTypeVector.

Concurrency: Sequential



Operation name:
AddSemiContinuousProcess

Public member of: G4ProcessManager
Return Class: void
Arguments:
G4VProcess *aSemiContinuousProcess
Documentation:
Adds a process to the semi-continuous process vector
pointed by the third element of theProcessTypeVector.

Concurrency: Sequential



Operation name:
GetContinuousProcessVector

Public member of: G4ProcessManager
Return Class: G4ProcessVector*
Documentation:
Returns the address of the continuous-process vector.

Qualification: const
Concurrency: Sequential



Operation name:
GetDiscreteProcessVector

Public member of: G4ProcessManager
Return Class: G4ProcessVector*
Documentation:
Returns the address of the discrete process vector.

Qualification: const
Concurrency: Sequential



Operation name:
GetProcessTypeVector

Public member of: G4ProcessManager
Return Class: G4ProcessTypeVector*
Documentation:
Returns the address of theProcessTypeVector.

Qualification: static
Concurrency: Sequential



Operation name:
GetRestProcessVector

Public member of: G4ProcessManager
Return Class: G4ProcessVector*
Documentation:
Returns the address of the vector of processes at rest.

Qualification: const
Concurrency: Sequential



Operation name:
GetSemiContinuousProcessVector

Public member of: G4ProcessManager
Return Class: G4ProcessVector*
Documentation:
Returns the address of the semi-continuous process
vector.

Qualification: const
Concurrency: Sequential



Operation name:
RemoveProcess

Public member of: G4ProcessManager
Return Class: void
Arguments:
G4VProcess *aProcess
Documentation:
Removes a process from the relative vector.

Concurrency: Sequential



Class name:
G4VProcess

Category: PhysicsProcess
Documentation:
An abstract class for physics process objects. It
defines public methods which describe the behavior of a
physics process.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Public Uses:
G4DynamicParticle
G4Material
G4PhysicsVector

Public Interface:
Operations:
BuildPhysicsTable (const G4ParticleDefinition)
DoIt (G4DynamicParticle, G4Material, G4double)
GetPhysicalInteractionLength (G4DynamicParticle, G4Material, G4double)
GetPhysicsTable ( )
GetProcessName ( )

Protected Interface:
Has-A Relationships:
G4ParticleChange aParticleChange
The G4ParticleChange object which is
modified and returned by address by the
DoIt() method.

G4double theKineticEnergyCuts
The vector of cuts in kinetic energy (a
value per material). It is allocated,
computed and deallocated in the specific
process' SetCut() method.

G4PhysicsTable thePhysicsTable
A Physics Table can be either a
cross-sections table or an energy table
(or can be used for other specific
purposes).


Private Interface:
Has-A Relationships:
G4double theCutInMaxInteractionLength
For charged particles this is coincident
with cutting in the stopping range.

G4String theProcessName
The name of the process


State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
BuildPhysicsTable

Public member of: G4VProcess
Return Class: void
Arguments:
const G4ParticleDefinition &aDefinition
Documentation:
Messaged by the Particle definition (via the process
manager) whenever cross section tables have to be
rebuilt (i.e. if new materials have been defined).
It is overloaded by individual processes when they need
physics tables.

Qualification: virtual
Concurrency: Sequential



Operation name:
DoIt

Public member of: G4VProcess
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Documentation:
A virtual base class function that has to be overridden
by any subclass. The DoIt method actually performs the
physics process and determines either
momentum change of the production of secondaries etc.

Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicalInteractionLength

Public member of: G4VProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double numberOfInteractionLengthLeft=0
Documentation:
Returns the step-size which is allowed by "this"
process.

Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicsTable

Public member of: G4VProcess
Return Class: const G4PhysicsTable*
Documentation:
Returns the address of the physics table.

Qualification: const
Concurrency: Sequential



Operation name:
GetProcessName

Public member of: G4VProcess
Return Class: G4String
Documentation:
Returns the name of the process.

Qualification: const
Concurrency: Sequential



Class name:
G4VDiscreteProcess

Category: PhysicsProcess
Documentation:
Abstract class which defines the public behavior of
discrete physics interactions.

Export Control: Public
Cardinality: 1
Hierarchy:
Superclasses: G4VProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetPhysicalInteractionLength (G4DynamicParticle, G4Material, G4double)

Protected Interface:
Operations:
GetMeanFreePath (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4VDiscreteProcess
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetMeanFreePath

Protected member of: G4VDiscreteProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Documentation:
Calculates from the macroscopic cross section a mean
free path, the value is returned in units of distance.

Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicalInteractionLength

Public member of: G4VDiscreteProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double numberOfInteractionLengthLeft=0
Concurrency: Sequential



Class name:
G4VContinuousProcess

Category: PhysicsProcess
Documentation:
Abstract class which defines the public behavior of
continuous physics interactions.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetPhysicalInteractionLength (G4DynamicParticle, G4Material, G4double)

Protected Interface:
Operations:
GetContinuousStepLimit (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4VContinuousProcess
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetContinuousStepLimit

Protected member of: G4VContinuousProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicalInteractionLength

Public member of: G4VContinuousProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double numberOfInteractionLengthLeft=0
Concurrency: Sequential



Class name:
G4ParticleChange

Category: PhysicsProcess
Documentation:
Contains the results after invocation of a physics
process. This includes
final states of parent particle (momentum, energy, etc)
and secondary particles generated by the interaction.
The tracking assumes that all the values of energy and
momentum are in global reference system, therefore all
the needed Lorentz transformations must have been
already done when filling the data-members of this
class.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Public Interface:
Operations:
AddSecondary (G4DynamicParticle)
GetEnergyChange ( )
GetKillSignal ( )
GetLocalEnergyDeposited ( )
GetMomentumChange ( )
GetNumberOfSecondaries ( )
GetPolarizationChange ( )
GetSecondary (G4int)
GetSpread ( )
GetStopSignal ( )
GetTimeDelay ( )
SetEnergyChange (G4double)
SetKillSignal (G4bool)
SetLocalEnergyDeposited (G4double)
SetMomentumChange (G4double, G4double, G4double)
SetMomentumChange (G4ThreeVector)
SetNumberOfSecondaries (G4int)
SetPolarizationChange (G4double, G4double, G4double)
SetSpread (G4SpreadVector)
SetStopSignal (G4bool)
SetTimeDelay (G4double)
delete (void)
new (size_t)

Private Interface:
Has-A Relationships:
G4SpreadVector spreadOfSecondaries
The "spreader" vector data member
containing the distances (normalized to
the current step size) of the
secondaries' vertexes from the start
point of the current step: the tracking
will then be able to compute in real
space coordinates the vertexes of such
secondaries.

G4double theEnergyChange
The final kinetic energy of the current
particle.

G4bool theKillSignal
Is an indicator that the existence of the
particle has stopped due to the invoked
process

G4DynamicParticleFastVector theListOfSecondaries
G4double theLocalEnergyDeposited
It represents the part of the energy lost
for discrete or semi-continuous processes
which is due to secondaries not generated
because they would have been below their
cut threshold.
The sum of the locally deposited energy +
the delta-energy coming from the
continuous processes gives the total
energy loss localized in the current
step.

G4ParticleMomentum theMomentumChange
Is the vector containing the final
momentum direction after the invoked
process. The application of the change of
the momentum direction of the particle is
not done here. The responsibility to
apply the change is up the entity which
invoked the process.

G4int theNumberOfSecondaries
The total number of secondaries produced
by each process.

G4ThreeVector thePolarizationChange
The changed (final) polarization of a
given particle.

G4bool theStopSignal
It is an indicator that the existence of
the particle has stopped due to the
invoked process (then processes at rest
will be invoked by the Tracking).

G4double theTimeDelay
Time delay introduced by processes like
decay, or processes at rest.


State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
AddSecondary

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4DynamicParticle *aSecondary
Documentation:
Adds a secondary particle to
G4DynamicParticleFastVector.

Concurrency: Sequential



Operation name:
GetEnergyChange

Public member of: G4ParticleChange
Return Class: G4double
Documentation:
Returns the final kinetic energy of the current
particle.

Qualification: const
Concurrency: Sequential



Operation name:
GetKillSignal

Public member of: G4ParticleChange
Return Class: G4bool
Documentation:
Returns the value of theKillSignal.

Qualification: const
Concurrency: Sequential



Operation name:
GetLocalEnergyDeposited

Public member of: G4ParticleChange
Return Class: G4double
Documentation:
Gets the locally deposited energy for discrete and
semi-continuous processes.

Qualification: const
Concurrency: Sequential



Operation name:
GetMomentumChange

Public member of: G4ParticleChange
Return Class: const const G4ParticleMomentum*
Documentation:
Returns the final momentum direction of the current
particle.

Qualification: const
Concurrency: Sequential



Operation name:
GetNumberOfSecondaries

Public member of: G4ParticleChange
Return Class: G4int
Documentation:
Returns the number of secondaries current stored in
G4DynamicParticleFastVector.

Qualification: const
Concurrency: Sequential



Operation name:
GetPolarizationChange

Public member of: G4ParticleChange
Return Class: const G4ThreeVector*
Documentation:
Returns the final polarization of the current particle.

Qualification: const
Concurrency: Sequential



Operation name:
GetSecondary

Public member of: G4ParticleChange
Return Class: const G4DynamicParticle*
Arguments:
G4int anIndex
Documentation:
Returns a generated secondary particle.

Qualification: const
Concurrency: Sequential



Operation name:
GetSpread

Public member of: G4ParticleChange
Return Class: G4SpreadVector*
Documentation:
Returns the spread of secondaries.

Qualification: const
Concurrency: Sequential



Operation name:
GetStopSignal

Public member of: G4ParticleChange
Return Class: G4bool
Documentation:
Returns the value of theStopSignal.

Qualification: const
Concurrency: Sequential



Operation name:
GetTimeDelay

Public member of: G4ParticleChange
Return Class: G4double
Documentation:
Returns the time delay.

Qualification: const
Concurrency: Sequential



Operation name:
SetEnergyChange

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4double theEnergyChange
Documentation:
Sets the final kinetic energy of the current particle.

Concurrency: Sequential



Operation name:
SetKillSignal

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4bool aKillSignal
Documentation:
Sets the value of fKillSignal.

Concurrency: Sequential



Operation name:
SetLocalEnergyDeposited

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4double anEnergyPart
Documentation:
Sets the locally deposited energy for discrete and
semi-continuous processes.

Concurrency: Sequential



Operation name:
SetMomentumChange

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4double deltaPx
G4double deltaPy
G4double deltaPz
Documentation:
Sets theMometumChange vector: it is the final momentum
direction.

Concurrency: Sequential



Operation name:
SetMomentumChange

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4ThreeVector deltaP
Documentation:
Sets theMomentumChange vector: it is the final momentum
direction.

Concurrency: Sequential



Operation name:
SetNumberOfSecondaries

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4int totSecondaries
Documentation:
This function must be called when the number of
secondaries is known in the DoIt() method; it resets
theNumberOfSecondaries to 0 (that will be incremented
at every AddSecondary() call).
This method has to be called just before any call to
AddSecondary() and even if there are no secondaries
this method has to be called before returning this
G4ParticleChange object from the DoIt().

Concurrency: Sequential



Operation name:
SetPolarizationChange

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4double deltaPx
G4double deltaPy
G4double deltaPz
Documentation:
Sets thePolarizationChange vector.

Concurrency: Sequential



Operation name:
SetSpread

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4SpreadVector *aPositionList
Documentation:
Sets the spreadOfSecondaries to the normalized
positions vector returned by the Spreader() method of a
semi-continuous process.

Concurrency: Sequential



Operation name:
SetStopSignal

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4bool theStopSignal
Documentation:
Sets the value of theStopSignal.

Concurrency: Sequential



Operation name:
SetTimeDelay

Public member of: G4ParticleChange
Return Class: void
Arguments:
G4double aTimeDelay
Documentation:
Sets the time delay introduced by processes like decay.

Concurrency: Sequential



Operation name:
delete

Public member of: G4ParticleChange
Return Class: void
Arguments:
void *aParticleChange
Documentation:
Overloaded operator delete for G4Allocator.

Concurrency: Sequential



Operation name:
new

Public member of: G4ParticleChange
Return Class: void*
Arguments:
size_t size
Documentation:
Overloaded operator new for G4Allocator.

Concurrency: Sequential



Class name:
G4DynamicParticleFastVector

Category: PhysicsProcess
Documentation:
Contains pointers to G4DynamicParticle objects which
are generated by
either primary or secondary interaction.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Instantiates class: G4FastVector
Generic parameters:
class G4DynamicParticle
G4int 1024
Associations:

G4FastVector

Private Interface:
Has-A Relationships:
G4DynamicParticle

State machine: No
Concurrency: Sequential
Persistence: Transient



Class name:
G4EnergyLoss

Category: PhysicsProcess
Documentation:
A continuous interaction class which describes energy
loss of charged particles.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VContinuousProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetConstraints (G4DynamicParticle, G4Material)

Private Interface:
Operations:
GetContinuousStepLimit (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4EnergyLoss
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetConstraints

Public member of: G4EnergyLoss
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
GetContinuousStepLimit

Private member of: G4EnergyLoss
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Class name:
G4MultipleScattering

Category: PhysicsProcess
Documentation:
A continuous interaction class which describes multiple
scattering of charged particles.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VContinuousProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetConstraints (G4DynamicParticle, G4Material)

Private Interface:
Operations:
GetContinuousStepLimit (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4MultipleScattering
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetConstraints

Public member of: G4MultipleScattering
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
GetContinuousStepLimit

Private member of: G4MultipleScattering
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Class name:
G4VSemiContinuousProcess

Category: PhysicsProcess
Documentation:
Abstract class which defines the public behavior of
semi-continuous physics interactions like Cherenkov and
synchroton radiation, for which secondaries must be
spred along the step by the tracking.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetPhysicalInteractionLength (G4DynamicParticle, G4Material, G4double)

Protected Interface:
Operations:
GetSemiContinuousStepLimit (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4VSemiContinuousProcess
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicalInteractionLength

Public member of: G4VSemiContinuousProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double numberOfInteractionLengthLeft=0
Concurrency: Sequential



Operation name:
GetSemiContinuousStepLimit

Protected member of: G4VSemiContinuousProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Qualification: pure virtual
Concurrency: Sequential



Class name:
G4Cherenkov

Category: PhysicsProcess
Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VSemiContinuousProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetSemiConstraints (G4DynamicParticle, G4Material)

Protected Interface:
Operations:
Spreader (G4int)

Private Interface:
Operations:
GetSemiContinuousStepLimit (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4Cherenkov
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetSemiConstraints

Public member of: G4Cherenkov
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
GetSemiContinuousStepLimit

Private member of: G4Cherenkov
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
Spreader

Protected member of: G4Cherenkov
Return Class: G4SpreadVector*
Arguments:
G4int numerOfSecondaries
Documentation:
To fill the Spread-vector data member of the
ParticleChange object.

Qualification: virtual
Concurrency: Sequential



Class name:
G4SyncrotronRadiation

Category: PhysicsProcess
Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VSemiContinuousProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetSemiConstraints (G4DynamicParticle, G4Material)

Protected Interface:
Operations:
Spreader (G4int)

Private Interface:
Operations:
GetSemiContinuousStepLimit (G4Dynamicparticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4SyncrotronRadiation
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetSemiConstraints

Public member of: G4SyncrotronRadiation
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
GetSemiContinuousStepLimit

Private member of: G4SyncrotronRadiation
Return Class: G4double
Arguments:
G4Dynamicparticle *particle
G4Material *material
Concurrency: Sequential



Operation name:
Spreader

Protected member of: G4SyncrotronRadiation
Return Class: G4SpreadVector*
Arguments:
G4int numberOfSecondaries
Documentation:
To fill the Spread-vector data member of the
ParticleChange object.

Qualification: virtual
Concurrency: Sequential



Class name:
G4PairProduction

Category: PhysicsProcess
Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VDiscreteProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetMicroscopicCrossSection (G4DynamicParticle, G4Material)

Private Interface:
Operations:
GetMeanFreePath (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4PairProduction
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetMeanFreePath

Private member of: G4PairProduction
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Documentation:
Calculates from the macroscopic cross section a mean
free path, the value is returned in units of meter.

Semantics:
Object diagram: GetMeanFreePath

Concurrency: Sequential



Operation name:
GetMicroscopicCrossSection

Public member of: G4PairProduction
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Class name:
G4PhotoFission

Category: PhysicsProcess
Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VDiscreteProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetMicroscopicCrossSection (G4DynamicParticle, G4Material)

Private Interface:
Operations:
GetMeanFreePath (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4PhotoFission
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength = 0
Concurrency: Sequential



Operation name:
GetMeanFreePath

Private member of: G4PhotoFission
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Documentation:
Calculates from the macroscopic cross section a mean
free path, the value is returned in units of meter.

Semantics:
Object diagram: GetMeanFreePath

Concurrency: Sequential



Operation name:
GetMicroscopicCrossSection

Public member of: G4PhotoFission
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Concurrency: Sequential



Class name:
G4PhysicsTable

Category: PhysicsProcess
Documentation:
Table of cross-sections or energy-loss values for a
list of materials.

Export Control: Public
Cardinality: 1
Hierarchy:
Superclasses: none
Instantiates class: RWTPtrOrderedVector
Generic parameters:
class G4PhysicsVector
Associations:

RWTPtrOrderedVector

Private Interface:
Has-A Relationships:
G4PhysicsVector

State machine: No
Concurrency: Sequential
Persistence: Transient



Class name:
G4PhysicsVector

Category: PhysicsProcess
Documentation:
The physics vectors which has energy-loss or
cross-section values of a particle and a material in
the given range of the energies. This class serves as
the base class for a vector having various energy
scale, for example like 'log', 'linear', 'free', etc.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Public Interface:
Operations:
GetComment ( )
GetLowEdgeEnergy (size_t)
GetNextTable ( )
GetValue (G4double, G4bool)
GetVectorLength ( )
IsFilledVectorExist ( )
IsLinkedTableExist ( )
LinkPhysicsTable (G4PhysicsTable)
PutComment (G4String)
PutValue (size_t, G4double)
operator() (const size_t)
operator[] (const size_t)

Protected Interface:
Has-A Relationships:
G4DataVector binVector
Vector to keep the low edge value of bin.

G4DataVector dataVector
Vector to keep the cross-section
energy-loss.

G4double edgeMax
G4double edgeMin
size_t lastBin
Caches the last bin location.

G4double lastEnergy
Caches the last input value.

G4double lastValue
Caches the last output value.

size_t numberOfBin
G4PhysicsTable ptrNextTable

Operations:
FindBinLocation (G4double)
LinearInterpolation (G4double, size_t)

Private Interface:
Has-A Relationships:
G4String comment

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
FindBinLocation

Protected member of: G4PhysicsVector
Return Class: size_t
Arguments:
G4double theEnergy
Documentation:
Pure virtual function to find the bin number in which
theEnergy belongs to.

Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetComment

Public member of: G4PhysicsVector
Return Class: G4String
Documentation:
Retrieves a comment on G4PhysicsVector.

Concurrency: Sequential



Operation name:
GetLowEdgeEnergy

Public member of: G4PhysicsVector
Return Class: G4double
Arguments:
size_t binNumber
Documentation:
Get the energy value at athe low edge of the specified
bin. Take note that the 'binNumber' starts from 0.
This value is defined when a physics vector is
constructed by a constructor of a derived class.
This function has to be used when filling the physics
vector by means of PutValue().

Qualification: virtual
Concurrency: Sequential



Operation name:
GetNextTable

Public member of: G4PhysicsVector
Return Class: const G4PhysicsTable*
Documentation:
Returns the pointer to a physics table created for
elements or isotopes (when the cross-sections or
energy-losses depend explicitly on them).

Concurrency: Sequential



Operation name:
GetValue

Public member of: G4PhysicsVector
Return Class: G4double
Arguments:
G4double theEnergy
G4bool &isOutRange
Documentation:
Get the cross-section energy-loss value corresponding
to the given energy. An appropriate interpolation is
used to calculate the value.

Concurrency: Sequential



Operation name:
GetVectorLength

Public member of: G4PhysicsVector
Return Class: size_t
Documentation:
Gets the total length (bin number) of the vector.

Concurrency: Sequential



Operation name:
IsFilledVectorExist

Public member of: G4PhysicsVector
Return Class: G4bool
Documentation:
Returns true if a non-empty physics vector exists.

Concurrency: Sequential



Operation name:
IsLinkedTableExist

Public member of: G4PhysicsVector
Return Class: G4bool
Documentation:
Returns true if the physics vector has an extended
physics table.

Concurrency: Sequential



Operation name:
LinearInterpolation

Protected member of: G4PhysicsVector
Return Class: G4double
Arguments:
G4double theEnergy
size_t theLocBin
Documentation:
Linear interpolation function.

Concurrency: Sequential



Operation name:
LinkPhysicsTable

Public member of: G4PhysicsVector
Return Class: void
Arguments:
G4PhysicsTable &theTable
Documentation:
Links the given G4PhysicsTable to the current
G4PhysicsVector.

Concurrency: Sequential



Operation name:
PutComment

Public member of: G4PhysicsVector
Return Class: void
Arguments:
G4String theComment
Documentation:
Put a comment to the G4PhysicsVector. This may help to
check which vector one is accessing.

Concurrency: Sequential



Operation name:
PutValue

Public member of: G4PhysicsVector
Return Class: void
Arguments:
size_t binNumber
G4double theValue
Documentation:
Put 'theValue' into the bin specified by 'binNumber'.
Take note that the 'binNumber' starts from '0'.
To fill the vector, one has beforehand to construct a
vector using the constructor with Emin, Emax, Nbin.
'theValue should be the cross-section energy-loss value
corresponding to the low edge energy of the bin
specified by 'binNumber'. The low edge energy value of
a bin can be returned using GetLowEdgeEnergy().

Concurrency: Sequential



Operation name:
operator()

Public member of: G4PhysicsVector
Return Class: G4int
Arguments:
const size_t binNumber
Documentation:
Returns simply the value in the bin specified by
'binNumber' of the dataVector. The boundary checking
will not be done.

Qualification: const
Concurrency: Sequential



Operation name:
operator[]

Public member of: G4PhysicsVector
Return Class: G4int
Arguments:
const size_t binNumber
Documentation:
Returns simply the value in the bin specified by
'binNumber' of the dataVector. The boundary check will
be done.

Qualification: const
Concurrency: Sequential



Class name:
G4DataVector

Category: PhysicsProcess
Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Instantiates class: RWTValOrderedVector
Generic parameters:
class G4double
Associations:

RWTValOrderedVector

State machine: No
Concurrency: Sequential
Persistence: Transient



Class name:
G4FastVector

Category: PhysicsProcess
Documentation:
Template class defining a vector of pointers, not
performing boundary checking.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Generic parameters:
class G4DynamicParticle
G4int N
Public Interface:
Operations:
SetElement (G4int, Type)
initialize (G4int)
operator[] (G4int)

Private Interface:
Has-A Relationships:
Type* ptr
Pointer for dynamic allocation of space.

Type theArray

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
SetElement

Public member of: G4FastVector
Return Class: void
Arguments:
G4int anIndex
Type *anElement
Documentation:
To insert an element at the given position inside the
vector.

Concurrency: Sequential



Operation name:
initialize

Public member of: G4FastVector
Return Class: void
Arguments:
G4int items
Documentation:
Initializes the vector dynamically allocating a new
chunk of memory if the given size is greater than the
default value.

Concurrency: Sequential



Operation name:
operator[]

Public member of: G4FastVector
Return Class: Type*
Arguments:
G4int anIndex
Documentation:
Access operator to the array.

Concurrency: Sequential



Class name:
G4ProcessTypeVector

Category: PhysicsProcess
Documentation:
Is an instanciation of the parameterized
RWTPtrOrderedVector class. It contains the pointers to
the different types of process vectors.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: none
Instantiates class: RWTPtrOrderedVector
Generic parameters:
class G4ProcessVector
Associations:

RWTPtrOrderedVector

Private Interface:
Has-A Relationships:
G4ProcessVector

State machine: No
Concurrency: Sequential
Persistence: Transient



Class name:
G4ProcessVector

Category: PhysicsProcess
Documentation:
Is a container for pointers to physics process objects.
Its functionality is derived from
RWTPtrOrderedVector.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: RWTPtrOrderedVector
Public Interface:
Operations:
operator== (const G4ProcessVector)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
operator==

Public member of: G4ProcessVector
Return Class: G4bool
Arguments:
const G4ProcessVector &right
Documentation:
Provides a well-defined equality semantics.

Concurrency: Sequential



Class name:
G4PhysicsLinearVector

Category: PhysicsProcess
Documentation:
The Physics vector which has energy-loss or
cross-section values of a particle and a material in
the given range of energies. The energy scale is
linear.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4PhysicsVector
Protected Interface:
Operations:
FindBinLocation (G4double)

Private Interface:
Has-A Relationships:
G4double baseBin
G4double dBin

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
FindBinLocation

Protected member of: G4PhysicsLinearVector
Return Class: size_t
Arguments:
G4double theEnergy
Documentation:
Finds the bin number in which theEnergy belongs to.

Concurrency: Sequential



Class name:
G4PhysicsLogVector

Category: PhysicsProcess
Documentation:
The physics vector which has energy-loss or
cross-section values of a particle and a material in
the given range of energies. The energy scale is
logarithmic.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4PhysicsVector
Protected Interface:
Operations:
FindBinLocation (G4double)

Private Interface:
Has-A Relationships:
G4double baseBin
G4double dBin

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
FindBinLocation

Protected member of: G4PhysicsLogVector
Return Class: size_t
Arguments:
G4double theEnergy
Documentation:
Finds the bin number in which theEnergy belongs to.

Concurrency: Sequential
A Physics Table can be either a cross-sections table or an
energy table (or can be used for other specific purposes).

The G4ParticleChange object which is modified and returned
by address by the DoIt() method.




Class name:
G4VRestProcess

Category: PhysicsProcess
Documentation:
Abstract class which defines the public behavior of
physics interactions at rest.

Export Control: Public
Cardinality: n
Hierarchy:
Superclasses: G4VProcess
Public Interface:
Operations:
DoIt (G4DynamicParticle, G4Material, G4double)
GetPhysicalInteractionLength (G4DynamicParticle, G4Material, G4double)

Protected Interface:
Operations:
GetMeanLifeTime (G4DynamicParticle, G4Material)

State machine: No
Concurrency: Sequential
Persistence: Transient



Operation name:
DoIt

Public member of: G4VRestProcess
Return Class: G4ParticleChange*
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double *truePathLength=0
Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetMeanLifeTime

Protected member of: G4VRestProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
Documentation:
Calculates the mean life-time (i.e. for decays) of the
particle at rest due to the occurence of the given
process or converts the probablity of interaction (i.e.
for annihilation) into the life-time of hte particle
for the occurence of the given process.

Qualification: pure virtual
Concurrency: Sequential



Operation name:
GetPhysicalInteractionLength

Public member of: G4VRestProcess
Return Class: G4double
Arguments:
G4DynamicParticle *particle
G4Material *material
G4double numberOfInteractionLengthLeft=0
Concurrency: Sequential
Vector to keep the cross-section energy-loss.

Vector to keep the low edge value of bin.