Launch {MCBackscattering}R Documentation

Launch Photons into Semi-infinite Media

Description

This function starts single photon into the semi-infinite media from surface (z = 0). The 3D launch direction c(u,v,w) points into the media, according to the incident angle (relative to normal) and refractive index. If incident angle was zero, the incidence is normal (perpendicular to surface). If incidence angle was not zero, elliptical distortion of circular light beam is also considered.

Usage

Launch(myObject,iAngle=0)

Arguments

myObject

The mandatory parameter of this function is the MCBS class created by MCBS constructor function.

iAngle

This optional parameter means the incident angle relative to normal. The default value is 0 (the incidence is perpendicular to surface).

Details

The Launch function, alias Launch.MCBS, calculates the start position of the single photon on the surface. The coordinates c(x,y,z) are computed as z = 0 and c(x,y) represent random position in circular light beam. The values z > 0 are inside the media. Beam intensity distribution is considered to be flat, what means that positions have equal probability to occur. Starting polar coordinates are adjusted randomly using uniform distribution by function Setup. If incident angle was not zero, elliptical distortion is corrected along the y-axis.

Value

The Launch function returns an MCBS object as class. Typically the same object is used in argument and result. Position and starting 3D vector are calculated:

x

position along x-axis, calculated from random polar coordinates.

y

position along y-axis, calculated from random polar coordinates. If incident angle was not zero, this value is distorted.

z

initial depth, z=0 on the surface.

u

launch vector coordinate along x-axis.

v

launch vector coordinate along y-axis. If incident angle was not zero, this value is calculated according to the incident angle and refractive index.

w

launch vector coordinate along z-axis. If incident angle was not zero, this value is calculated according to the incident angle and refractive index.

Note

Theoretical models assume the incident angle is zero. During measurement, camera and lightsource cannot occupy the same direction. According to the Fresnel reflection equations, incident angle below 20° is recommended. The non-zero incident angle requires correction in computation by means of refraction of the initial direction inside media and elliptical distortion of circular light beam on the surface. Please note that this function is not intended to use independently. It calculates start values for photon of index myObject$idx. If you want to use it to build your custom simulation, do not forget to assign index, such as myObject$idx <- 1. Index number must be between 1 and myObject$MAXLEN.

References

Jacques, S.L. (1998) Light Distributions from Point, Line and Plane Sources for Photochemical Reactions and Fluorescence in Turbid Biological Tissues. Photochemistry and Photobiology, 67(1): 23–-32. doi: 10.1111/j.1751-1097.1998.tb05161.x.

Wang, L., Jacques, S.L., Zheng, L. (1997) CONV-convolution for responses to a finite diameter photon beam incident on multi-layered tissues. Computer Methods and Programs in Biomedicine, 54: 141–-150. doi: 10.1016/S0169-2607(97)00021-7.

See Also

MCBS for construction of object with initial input parameters. Simulation for running the simulation with adjusted parameters. Chart for plot of calculated photon flux profile. Export for export of photon flux with corresponding radii. Setup for initial computation of specular reflection and transport albedo. Bounce for interaction with surface and computation of photon flux leaving media. Move for moving single photon forward. Absorb for absorption of single photon energy in interaction with media. Scatter for single photon scattering interaction with media. Randomize for adjustment of random trajectory vectors.

Examples

## Apple simulation data according to Qin and Lu (2006).
## DOI: 10.13031/2013.20862

# create object
cfgMedia <- c(0.63,30,0,1.4)
cfgSimulation <- c(1e6,0.05,1e-9,3,0.012)
apple <- MCBS(cfgMedia,cfgSimulation)
apple <- Setup(apple)

# calculate first photon
apple$idx <- 1
apple <- Launch(apple)
# see vector coordinates
cat("Start position",apple$x,":",apple$y,"\n")
cat("Direction",apple$u,":",apple$v,":",apple$w,"\n")

# calculate first photon with 10° incident angle
apple$idx <- 1
apple <- Launch(apple,10)
# see vector coordinates
cat("Start position",apple$x,":",apple$y,"\n")
cat("Direction",apple$u,":",apple$v,":",apple$w,"\n")

[Package MCBackscattering version 0.1.1 Index]