Class Specifications for Physics 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.