Discrete process for reflection and diffusion at optical interfaces. More...
#include <OpBoundaryProcessSimple.hh>
Public Member Functions | |
OpBoundaryProcessSimple (const G4String &processName="OpBoundary", G4ProcessType type=fOptical) | |
G4bool | IsApplicable (const G4ParticleDefinition &aParticleType) |
G4double | GetMeanFreePath (const G4Track &, G4double, G4ForceCondition *condition) |
G4VParticleChange * | PostStepDoIt (const G4Track &aTrack, const G4Step &aStep) |
OpBoundaryProcessSimpleStatus | GetStatus () const |
Private Member Functions | |
G4bool | G4BooleanRand (const G4double prob) const |
Private Attributes | |
OpBoundaryProcessSimpleStatus | fTheStatus |
G4double | fCarTolerance |
int | fVerbosity |
Discrete process for reflection and diffusion at optical interfaces.
G4VDiscreteProcess
This class invokes a simplified model of optical reflections at boundaries between different materials. The relevant reflectivities are ultimately read from detinfo::LArProperties
via larg4::MaterialPropertiesLoader
.
The required parameters are total reflectance (detinfo::LArProperties::SurfaceReflectances()
) and ratio of diffuse to specular reflectance (detinfo::LArProperties::SurfaceReflectanceDiffuseFractions()
). Each photon crossing a boundary with a defined reflectance is randomly either reflected or absorbed and killed according to the supplied probability.
Every reflected photon with a defined diffuse reflection fraction is then randomly either diffusely or specularly reflected according to the supplied probability. All materials with no defined reflectance are assumed to be black and absorb all incident photons.
This physics process is loaded in larg4::OpticalPhysics
physics constructor.
This class is based on the G4OpBoundaryProcess
class in Geant4 and was adapted for LArSoft by Ben Jones, MIT, March 2010.
Definition at line 102 of file OpBoundaryProcessSimple.hh.
larg4::OpBoundaryProcessSimple::OpBoundaryProcessSimple | ( | const G4String & | processName = "OpBoundary" , |
G4ProcessType | type = fOptical |
||
) |
Definition at line 65 of file OpBoundaryProcessSimple.cxx.
|
inlineprivate |
Definition at line 133 of file OpBoundaryProcessSimple.hh.
G4double larg4::OpBoundaryProcessSimple::GetMeanFreePath | ( | const G4Track & | , |
G4double | , | ||
G4ForceCondition * | condition | ||
) |
Definition at line 233 of file OpBoundaryProcessSimple.cxx.
|
inline |
Definition at line 146 of file OpBoundaryProcessSimple.hh.
|
inline |
Definition at line 140 of file OpBoundaryProcessSimple.hh.
G4VParticleChange * larg4::OpBoundaryProcessSimple::PostStepDoIt | ( | const G4Track & | aTrack, |
const G4Step & | aStep | ||
) |
Definition at line 81 of file OpBoundaryProcessSimple.cxx.
|
private |
Definition at line 127 of file OpBoundaryProcessSimple.hh.
|
private |
Definition at line 126 of file OpBoundaryProcessSimple.hh.
|
private |
Definition at line 129 of file OpBoundaryProcessSimple.hh.