Geant4  10.00.p02
G4OpBoundaryProcess Class Reference

#include <G4OpBoundaryProcess.hh>

+ Inheritance diagram for G4OpBoundaryProcess:
+ Collaboration diagram for G4OpBoundaryProcess:

Public Member Functions

 G4OpBoundaryProcess (const G4String &processName="OpBoundary", G4ProcessType type=fOptical)
 
 ~G4OpBoundaryProcess ()
 
G4bool IsApplicable (const G4ParticleDefinition &aParticleType)
 
G4double GetMeanFreePath (const G4Track &, G4double, G4ForceCondition *condition)
 
G4VParticleChangePostStepDoIt (const G4Track &aTrack, const G4Step &aStep)
 
G4OpBoundaryProcessStatus GetStatus () const
 
- Public Member Functions inherited from G4VDiscreteProcess
 G4VDiscreteProcess (const G4String &, G4ProcessType aType=fNotDefined)
 
 G4VDiscreteProcess (G4VDiscreteProcess &)
 
virtual ~G4VDiscreteProcess ()
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)
 
- Public Member Functions inherited from G4VProcess
 G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined)
 
 G4VProcess (const G4VProcess &right)
 
virtual ~G4VProcess ()
 
G4int operator== (const G4VProcess &right) const
 
G4int operator!= (const G4VProcess &right) const
 
G4double GetCurrentInteractionLength () const
 
void SetPILfactor (G4double value)
 
G4double GetPILfactor () const
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
const G4StringGetProcessName () const
 
G4ProcessType GetProcessType () const
 
void SetProcessType (G4ProcessType)
 
G4int GetProcessSubType () const
 
void SetProcessSubType (G4int)
 
virtual void StartTracking (G4Track *)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *)
 
virtual const G4ProcessManagerGetProcessManager ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
virtual void DumpInfo () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
const G4VProcessGetMasterProcess () const
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 

Private Member Functions

 G4OpBoundaryProcess (const G4OpBoundaryProcess &right)
 
G4OpBoundaryProcessoperator= (const G4OpBoundaryProcess &right)
 
G4bool G4BooleanRand (const G4double prob) const
 
G4ThreeVector GetFacetNormal (const G4ThreeVector &Momentum, const G4ThreeVector &Normal) const
 
void DielectricMetal ()
 
void DielectricDielectric ()
 
void DielectricLUT ()
 
void DielectricDichroic ()
 
void ChooseReflection ()
 
void DoAbsorption ()
 
void DoReflection ()
 
G4double GetIncidentAngle ()
 
G4double GetReflectivity (G4double E1_perp, G4double E1_parl, G4double incidentangle, G4double RealRindex, G4double ImaginaryRindex)
 
void CalculateReflectivity (void)
 
void BoundaryProcessVerbose (void) const
 
G4bool InvokeSD (const G4Step *step)
 

Private Attributes

G4double thePhotonMomentum
 
G4ThreeVector OldMomentum
 
G4ThreeVector OldPolarization
 
G4ThreeVector NewMomentum
 
G4ThreeVector NewPolarization
 
G4ThreeVector theGlobalNormal
 
G4ThreeVector theFacetNormal
 
G4MaterialMaterial1
 
G4MaterialMaterial2
 
G4OpticalSurfaceOpticalSurface
 
G4MaterialPropertyVectorPropertyPointer
 
G4MaterialPropertyVectorPropertyPointer1
 
G4MaterialPropertyVectorPropertyPointer2
 
G4double Rindex1
 
G4double Rindex2
 
G4double cost1
 
G4double cost2
 
G4double sint1
 
G4double sint2
 
G4OpBoundaryProcessStatus theStatus
 
G4OpticalSurfaceModel theModel
 
G4OpticalSurfaceFinish theFinish
 
G4double theReflectivity
 
G4double theEfficiency
 
G4double theTransmittance
 
G4double prob_sl
 
G4double prob_ss
 
G4double prob_bs
 
G4int iTE
 
G4int iTM
 
G4double kCarTolerance
 
size_t idx
 
size_t idy
 
G4Physics2DVectorDichroicVector
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 
- Protected Attributes inherited from G4VProcess
const G4ProcessManageraProcessManager
 
G4VParticleChangepParticleChange
 
G4ParticleChange aParticleChange
 
G4double theNumberOfInteractionLengthLeft
 
G4double currentInteractionLength
 
G4double theInitialNumberOfInteractionLength
 
G4String theProcessName
 
G4String thePhysicsTableFileName
 
G4ProcessType theProcessType
 
G4int theProcessSubType
 
G4double thePILfactor
 
G4bool enableAtRestDoIt
 
G4bool enableAlongStepDoIt
 
G4bool enablePostStepDoIt
 
G4int verboseLevel
 

Detailed Description

Definition at line 131 of file G4OpBoundaryProcess.hh.

Constructor & Destructor Documentation

G4OpBoundaryProcess::G4OpBoundaryProcess ( const G4String processName = "OpBoundary",
G4ProcessType  type = fOptical 
)
G4OpBoundaryProcess::~G4OpBoundaryProcess ( )

Definition at line 152 of file G4OpBoundaryProcess.cc.

G4OpBoundaryProcess::G4OpBoundaryProcess ( const G4OpBoundaryProcess right)
private

Member Function Documentation

void G4OpBoundaryProcess::CalculateReflectivity ( void  )
private

Definition at line 1193 of file G4OpBoundaryProcess.cc.

References cost1, GetFacetNormal(), GetIncidentAngle(), GetReflectivity(), ground, kCarTolerance, OldMomentum, OldPolarization, PropertyPointer1, PropertyPointer2, sint1, theFacetNormal, theFinish, theGlobalNormal, thePhotonMomentum, theReflectivity, and G4PhysicsVector::Value().

Referenced by DielectricMetal(), and PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::ChooseReflection ( )
inlineprivate

Definition at line 283 of file G4OpBoundaryProcess.hh.

References BackScattering, G4UniformRand, LambertianReflection, LobeReflection, prob_bs, prob_sl, prob_ss, SpikeReflection, theFacetNormal, theGlobalNormal, and theStatus.

Referenced by DielectricDielectric(), and DielectricMetal().

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DielectricDichroic ( )
private

Definition at line 840 of file G4OpBoundaryProcess.cc.

References Dichroic, DichroicVector, DoReflection(), FatalException, G4BooleanRand(), G4endl, G4Exception(), G4OpticalSurface::GetDichroicVector(), idx, idy, NewMomentum, NewPolarization, OldMomentum, OldPolarization, OpticalSurface, perCent, G4INCL::Math::pi, theGlobalNormal, thePhotonMomentum, theStatus, theTransmittance, and G4Physics2DVector::Value().

Referenced by PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DielectricDielectric ( )
private

Definition at line 881 of file G4OpBoundaryProcess.cc.

References alpha, BackScattering, ChooseReflection(), cost1, cost2, DoAbsorption(), DoReflection(), FresnelReflection, FresnelRefraction, G4BooleanRand(), G4SwapObj(), G4SwapPtr(), GetFacetNormal(), groundbackpainted, kCarTolerance, LambertianReflection, Material1, Material2, NewMomentum, NewPolarization, OldMomentum, OldPolarization, polished, polishedbackpainted, Rindex1, Rindex2, sint1, sint2, theFacetNormal, theFinish, theGlobalNormal, theModel, theReflectivity, theStatus, theTransmittance, TotalInternalReflection, and unified.

Referenced by PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DielectricLUT ( )
private

Definition at line 780 of file G4OpBoundaryProcess.cc.

References DoAbsorption(), G4BooleanRand(), G4OpticalSurface::GetPhiIndexMax(), G4OpticalSurface::GetThetaIndexMax(), groundbackpainted, kCarTolerance, NewMomentum, NewPolarization, NoRINDEX, OldMomentum, OldPolarization, OpticalSurface, G4INCL::Math::pi, theFacetNormal, theFinish, theGlobalNormal, theReflectivity, and theStatus.

Referenced by PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DielectricMetal ( )
private

Definition at line 689 of file G4OpBoundaryProcess.cc.

References BackScattering, CalculateReflectivity(), ChooseReflection(), DoAbsorption(), DoReflection(), G4BooleanRand(), GetFacetNormal(), glisur, iTE, iTM, LambertianReflection, LobeReflection, n, NewMomentum, NewPolarization, OldMomentum, OldPolarization, polished, PropertyPointer1, PropertyPointer2, sint1, theFacetNormal, theFinish, theGlobalNormal, theModel, theReflectivity, and theStatus.

Referenced by PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DoAbsorption ( )
inlineprivate

Definition at line 304 of file G4OpBoundaryProcess.hh.

References Absorption, G4VProcess::aParticleChange, Detection, fStopAndKill, G4BooleanRand(), NewMomentum, NewPolarization, OldMomentum, OldPolarization, G4VParticleChange::ProposeLocalEnergyDeposit(), G4VParticleChange::ProposeTrackStatus(), theEfficiency, thePhotonMomentum, and theStatus.

Referenced by DielectricDielectric(), DielectricLUT(), DielectricMetal(), and PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4OpBoundaryProcess::DoReflection ( )
inlineprivate

Definition at line 326 of file G4OpBoundaryProcess.hh.

References G4LambertianRand(), GetFacetNormal(), ground, LambertianReflection, LobeReflection, NewMomentum, NewPolarization, OldMomentum, OldPolarization, PropertyPointer1, PropertyPointer2, SpikeReflection, theFacetNormal, theFinish, theGlobalNormal, and theStatus.

Referenced by DielectricDichroic(), DielectricDielectric(), DielectricMetal(), and PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4OpBoundaryProcess::G4BooleanRand ( const G4double  prob) const
inlineprivate

Definition at line 262 of file G4OpBoundaryProcess.hh.

References G4UniformRand.

Referenced by DielectricDichroic(), DielectricDielectric(), DielectricLUT(), DielectricMetal(), DoAbsorption(), and PostStepDoIt().

+ Here is the caller graph for this function:

G4ThreeVector G4OpBoundaryProcess::GetFacetNormal ( const G4ThreeVector Momentum,
const G4ThreeVector Normal 
) const
private

Definition at line 617 of file G4OpBoundaryProcess.cc.

References alpha, G4UniformRand, G4OpticalSurface::GetPolish(), G4OpticalSurface::GetSigmaAlpha(), LUT, G4INCL::Math::min(), OpticalSurface, G4INCL::DeJongSpin::shoot(), theModel, and unified.

Referenced by CalculateReflectivity(), DielectricDielectric(), DielectricMetal(), and DoReflection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4OpBoundaryProcess::GetIncidentAngle ( )
private

Definition at line 1130 of file G4OpBoundaryProcess.cc.

References OldMomentum, G4INCL::Math::pi, and theFacetNormal.

Referenced by CalculateReflectivity().

+ Here is the caller graph for this function:

G4double G4OpBoundaryProcess::GetMeanFreePath ( const G4Track ,
G4double  ,
G4ForceCondition condition 
)
virtual

Implements G4VDiscreteProcess.

Definition at line 1121 of file G4OpBoundaryProcess.cc.

References DBL_MAX, and Forced.

G4double G4OpBoundaryProcess::GetReflectivity ( G4double  E1_perp,
G4double  E1_parl,
G4double  incidentangle,
G4double  RealRindex,
G4double  ImaginaryRindex 
)
private

Definition at line 1140 of file G4OpBoundaryProcess.cc.

References G4UniformRand, iTE, and iTM.

Referenced by CalculateReflectivity().

+ Here is the caller graph for this function:

G4OpBoundaryProcessStatus G4OpBoundaryProcess::GetStatus ( ) const
inline

Definition at line 277 of file G4OpBoundaryProcess.hh.

References theStatus.

Referenced by WLSSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

G4bool G4OpBoundaryProcess::InvokeSD ( const G4Step step)
private

Definition at line 1248 of file G4OpBoundaryProcess.cc.

References G4Step::AddTotalEnergyDeposit(), G4Step::GetPostStepPoint(), G4StepPoint::GetSensitiveDetector(), G4VSensitiveDetector::Hit(), and thePhotonMomentum.

Referenced by PostStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4OpBoundaryProcess::IsApplicable ( const G4ParticleDefinition aParticleType)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 270 of file G4OpBoundaryProcess.hh.

References G4OpticalPhoton::OpticalPhoton().

+ Here is the call graph for this function:

G4OpBoundaryProcess& G4OpBoundaryProcess::operator= ( const G4OpBoundaryProcess right)
private
G4VParticleChange * G4OpBoundaryProcess::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
virtual

Reimplemented from G4VDiscreteProcess.

Definition at line 163 of file G4OpBoundaryProcess.cc.

References G4VProcess::aParticleChange, BoundaryProcessVerbose(), CalculateReflectivity(), Detection, dielectric_dichroic, dielectric_dielectric, dielectric_LUT, dielectric_metal, DielectricDichroic(), DielectricDielectric(), DielectricLUT(), DielectricMetal(), DoAbsorption(), DoReflection(), EventMustBeAborted, fGeomBoundary, FresnelRefraction, fStopAndKill, G4BooleanRand(), G4cerr, G4cout, G4endl, G4Exception(), G4Track::GetDynamicParticle(), G4OpticalSurface::GetFinish(), G4ParallelWorldProcess::GetHyperStep(), G4ParallelWorldProcess::GetHypNavigatorID(), G4VPhysicalVolume::GetLogicalVolume(), G4StepPoint::GetMaterial(), G4Material::GetMaterialPropertiesTable(), G4OpticalSurface::GetModel(), G4DynamicParticle::GetMomentumDirection(), G4VPhysicalVolume::GetMotherLogical(), G4VPhysicalVolume::GetName(), G4StepPoint::GetPhysicalVolume(), G4DynamicParticle::GetPolarization(), G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4MaterialPropertiesTable::GetProperty(), G4Track::GetStepLength(), G4StepPoint::GetStepStatus(), G4LogicalSkinSurface::GetSurface(), G4LogicalBorderSurface::GetSurface(), G4LogicalSurface::GetSurfaceProperty(), G4DynamicParticle::GetTotalMomentum(), G4TransportationManager::GetTransportationManager(), G4SurfaceProperty::GetType(), G4Track::GetVelocity(), glisur, ground, groundbackpainted, groundfrontpainted, G4ParticleChange::Initialize(), InvokeSD(), iTE, iTM, kCarTolerance, LambertianReflection, Material1, Material2, NewMomentum, NewPolarization, NoRINDEX, NotAtBoundary, OldMomentum, OldPolarization, OpticalSurface, polished, polishedbackpainted, polishedfrontpainted, G4VDiscreteProcess::PostStepDoIt(), prob_bs, prob_sl, prob_ss, PropertyPointer, PropertyPointer1, PropertyPointer2, G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChange::ProposeMomentumDirection(), G4ParticleChange::ProposePolarization(), G4VParticleChange::ProposeTrackStatus(), G4ParticleChange::ProposeVelocity(), Rindex1, Rindex2, SameMaterial, StepTooSmall, theEfficiency, theFinish, theGlobalNormal, theModel, thePhotonMomentum, theReflectivity, theStatus, theTransmittance, Undefined, unified, G4PhysicsVector::Value(), and G4VProcess::verboseLevel.

+ Here is the call graph for this function:

Member Data Documentation

G4double G4OpBoundaryProcess::cost1
private
G4double G4OpBoundaryProcess::cost2
private

Definition at line 236 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), and G4OpBoundaryProcess().

G4Physics2DVector* G4OpBoundaryProcess::DichroicVector
private

Definition at line 254 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDichroic(), and G4OpBoundaryProcess().

size_t G4OpBoundaryProcess::idx
private

Definition at line 253 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDichroic(), and G4OpBoundaryProcess().

size_t G4OpBoundaryProcess::idy
private

Definition at line 253 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDichroic(), and G4OpBoundaryProcess().

G4int G4OpBoundaryProcess::iTE
private
G4int G4OpBoundaryProcess::iTM
private
G4double G4OpBoundaryProcess::kCarTolerance
private
G4Material* G4OpBoundaryProcess::Material1
private

Definition at line 224 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), G4OpBoundaryProcess(), and PostStepDoIt().

G4Material* G4OpBoundaryProcess::Material2
private

Definition at line 225 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), G4OpBoundaryProcess(), and PostStepDoIt().

G4ThreeVector G4OpBoundaryProcess::NewMomentum
private
G4ThreeVector G4OpBoundaryProcess::NewPolarization
private
G4OpticalSurface* G4OpBoundaryProcess::OpticalSurface
private
G4double G4OpBoundaryProcess::prob_bs
private

Definition at line 247 of file G4OpBoundaryProcess.hh.

Referenced by ChooseReflection(), G4OpBoundaryProcess(), and PostStepDoIt().

G4double G4OpBoundaryProcess::prob_sl
private

Definition at line 247 of file G4OpBoundaryProcess.hh.

Referenced by ChooseReflection(), G4OpBoundaryProcess(), and PostStepDoIt().

G4double G4OpBoundaryProcess::prob_ss
private

Definition at line 247 of file G4OpBoundaryProcess.hh.

Referenced by ChooseReflection(), G4OpBoundaryProcess(), and PostStepDoIt().

G4MaterialPropertyVector* G4OpBoundaryProcess::PropertyPointer
private

Definition at line 229 of file G4OpBoundaryProcess.hh.

Referenced by G4OpBoundaryProcess(), and PostStepDoIt().

G4MaterialPropertyVector* G4OpBoundaryProcess::PropertyPointer1
private
G4MaterialPropertyVector* G4OpBoundaryProcess::PropertyPointer2
private
G4double G4OpBoundaryProcess::Rindex1
private

Definition at line 233 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), G4OpBoundaryProcess(), and PostStepDoIt().

G4double G4OpBoundaryProcess::Rindex2
private

Definition at line 234 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), G4OpBoundaryProcess(), and PostStepDoIt().

G4double G4OpBoundaryProcess::sint1
private
G4double G4OpBoundaryProcess::sint2
private

Definition at line 236 of file G4OpBoundaryProcess.hh.

Referenced by DielectricDielectric(), and G4OpBoundaryProcess().

G4double G4OpBoundaryProcess::theEfficiency
private

Definition at line 245 of file G4OpBoundaryProcess.hh.

Referenced by DoAbsorption(), G4OpBoundaryProcess(), and PostStepDoIt().

G4OpticalSurfaceModel G4OpBoundaryProcess::theModel
private
G4double G4OpBoundaryProcess::thePhotonMomentum
private
G4double G4OpBoundaryProcess::theReflectivity
private
G4double G4OpBoundaryProcess::theTransmittance
private

The documentation for this class was generated from the following files: