G4VDiscreteProcess
public G4VProcess
Abstract class which defines the public behavior of discrete physics interactions.
class
// Abstract class which defines the public behavior of
// discrete physics interactions.
public:
G4VDiscreteProcess(const G4String& ,
G4ProcessType aType = fNotDefined );
G4VDiscreteProcess(G4VDiscreteProcess &);
virtual ~G4VDiscreteProcess();
public :// with description
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition
);
virtual G4VParticleChange* PostStepDoIt(
const G4Track& ,
const G4Step&
);
// no operation in AtRestDoIt and AlongStepDoIt
virtual G4double AlongStepGetPhysicalInteractionLength(
const G4Track&,
G4double ,
G4double ,
G4double& ,
G4GPILSelection*
){ return -1.0; };
virtual G4double AtRestGetPhysicalInteractionLength(
const G4Track& ,
G4ForceCondition*
) { return -1.0; };
// no operation in AtRestDoIt and AlongStepDoIt
virtual G4VParticleChange* AtRestDoIt(
const G4Track& ,
const G4Step&
) {return 0;};
virtual G4VParticleChange* AlongStepDoIt(
const G4Track& ,
const G4Step&
) {return 0;};
protected:// with description
virtual G4double GetMeanFreePath(const G4Track& aTrack,
G4double previousStepSize,
G4ForceCondition* condition
)=0;
// Calculates from the macroscopic cross section a mean
// free path, the value is returned in units of distance.
private:
// hide default constructor and assignment operator as private
G4VDiscreteProcess();
G4VDiscreteProcess & operator=(const G4VDiscreteProcess &right);