40 #ifndef OpBoundaryProcessSimple_h 41 #define OpBoundaryProcessSimple_h 1 43 #include "Geant4/G4ForceCondition.hh" 44 #include "Geant4/G4OpticalPhoton.hh" 45 #include "Geant4/G4ProcessType.hh" 46 #include "Geant4/G4String.hh" 47 #include "Geant4/G4Types.hh" 48 #include "Geant4/G4VDiscreteProcess.hh" 49 #include "Geant4/Randomize.hh" 51 class G4ParticleDefinition;
54 class G4VParticleChange;
105 G4ProcessType
type = fOptical);
108 G4bool
IsApplicable(
const G4ParticleDefinition& aParticleType);
114 G4double
GetMeanFreePath(
const G4Track&, G4double, G4ForceCondition* condition);
117 G4VParticleChange*
PostStepDoIt(
const G4Track& aTrack,
const G4Step& aStep);
135 return (G4UniformRand() < prob);
140 return (&aParticleType == G4OpticalPhoton::OpticalPhoton());
OpBoundaryProcessSimpleStatus
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
OpBoundaryProcessSimpleStatus GetStatus() const
OpBoundaryProcessSimpleStatus fTheStatus
Discrete process for reflection and diffusion at optical interfaces.
G4bool G4BooleanRand(const G4double prob) const
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *condition)
OpBoundaryProcessSimple(const G4String &processName="OpBoundary", G4ProcessType type=fOptical)