62#ifndef G4OpBoundaryProcess_h
63#define G4OpBoundaryProcess_h 1
182 void DielectricMetal();
183 void DielectricDielectric();
184 void DielectricLUT();
186 void ChooseReflection();
200 void CalculateReflectivity(
void);
202 void BoundaryProcessVerbose(
void)
const;
229 G4double cost1, cost2, sint1, sint2;
253G4bool G4OpBoundaryProcess::G4BooleanRand(
const G4double prob)
const
274void G4OpBoundaryProcess::ChooseReflection()
277 if ( rand >= 0.0 && rand < prob_ss ) {
279 theFacetNormal = theGlobalNormal;
281 else if ( rand >= prob_ss &&
282 rand <= prob_ss+prob_sl) {
285 else if ( rand > prob_ss+prob_sl &&
286 rand < prob_ss+prob_sl+prob_bs ) {
295void G4OpBoundaryProcess::DoAbsorption()
299 if ( G4BooleanRand(theEfficiency) ) {
309 NewMomentum = OldMomentum;
310 NewPolarization = OldPolarization;
317void G4OpBoundaryProcess::DoReflection()
322 theFacetNormal = (NewMomentum - OldMomentum).unit();
325 else if ( theFinish ==
ground ) {
328 if ( PropertyPointer1 && PropertyPointer2 ){
331 GetFacetNormal(OldMomentum,theGlobalNormal);
333 G4double PdotN = OldMomentum * theFacetNormal;
334 NewMomentum = OldMomentum - (2.*PdotN)*theFacetNormal;
340 theFacetNormal = theGlobalNormal;
341 G4double PdotN = OldMomentum * theFacetNormal;
342 NewMomentum = OldMomentum - (2.*PdotN)*theFacetNormal;
345 G4double EdotN = OldPolarization * theFacetNormal;
346 NewPolarization = -OldPolarization + (2.*EdotN)*theFacetNormal;
G4double condition(const G4ErrorSymMatrix &m)
G4OpBoundaryProcessStatus
@ PolishedTiOAirReflection
@ GroundTeflonAirReflection
@ EtchedVM2000AirReflection
@ EtchedVM2000GlueReflection
@ GroundLumirrorGlueReflection
@ GroundTyvekAirReflection
@ PolishedVM2000GlueReflection
@ PolishedTeflonAirReflection
@ EtchedTyvekAirReflection
@ EtchedLumirrorGlueReflection
@ GroundVM2000AirReflection
@ PolishedTyvekAirReflection
@ PolishedVM2000AirReflection
@ EtchedTeflonAirReflection
@ GroundVM2000GlueReflection
@ PolishedLumirrorGlueReflection
@ TotalInternalReflection
@ PolishedLumirrorAirReflection
@ EtchedLumirrorAirReflection
@ GroundLumirrorAirReflection
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *condition)
G4OpBoundaryProcessStatus GetStatus() const
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
static G4OpticalPhoton * OpticalPhoton()
void ProposeTrackStatus(G4TrackStatus status)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4ParticleChange aParticleChange