43 #ifndef OpBoundaryProcessSimple_h 44 #define OpBoundaryProcessSimple_h 1 47 #include "Geant4/globals.hh" 48 #include "Geant4/templates.hh" 49 #include "Geant4/geomdefs.hh" 50 #include "Geant4/Randomize.hh" 52 #include "Geant4/G4RandomTools.hh" 53 #include "Geant4/G4RandomDirection.hh" 55 #include "Geant4/G4Step.hh" 56 #include "Geant4/G4VDiscreteProcess.hh" 57 #include "Geant4/G4DynamicParticle.hh" 58 #include "Geant4/G4Material.hh" 59 #include "Geant4/G4LogicalBorderSurface.hh" 60 #include "Geant4/G4LogicalSkinSurface.hh" 61 #include "Geant4/G4OpticalSurface.hh" 62 #include "Geant4/G4OpticalPhoton.hh" 63 #include "Geant4/G4TransportationManager.hh" 118 G4ProcessType type = fOptical);
126 G4bool
IsApplicable(
const G4ParticleDefinition& aParticleType);
131 G4ForceCondition* condition);
138 const G4Step& aStep);
166 return (G4UniformRand() < prob);
173 return ( &aParticleType == G4OpticalPhoton::OpticalPhoton() );
OpBoundaryProcessSimpleStatus
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
OpBoundaryProcessSimpleStatus GetStatus() const
~OpBoundaryProcessSimple()
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)