Post on 13-Dec-2015
Photon propagation and ice properties
Bootcamp 2012 @ UW Madison
Dmitry Chirkin, UW Madison
r
air bubble
photon
Scattering and Absorption of Light
Source is blurred
Source isdimmer
scattering
absorption
a = inverse absorption length (1/λabs)b = inverse scattering length (1/λsca)
Mie scattering theoryContinuity in E, H: boundary conditions in Maxwell equations
e-ikr+it
e-i|k||r|
r
Mie scattering theory
Analytical solution!
However:
Solved for spherical particles
Need to know the properties of dust particles:
• refractive index (Re and Im)• radii distributions
Mie scattering theory
Dust concentrations have been measured elsewhere in Antarctica: the “dust core” data
A better approximation to Mie scattering
fSL
Simplified Liu:
Henyey-Greenstein:
Mie:
Describes scattering on acid, mineral, salt, and soot with concentrations and radii at SP
Properties of photon propagation
Locally at x,y,z and for a given wavelength:
• group refractive index propagation speed• phase refractive index Cherenkov angle
• absorption coefficient• scattering coefficient• scattering function
• ice properties defined everywhere• for any wavelength
Photonics: conventional on CPU
• First, run photonics to fill space with photons, tabulate the result
• Create such tables for nominal light sources: cascade and uniform half-muon
• Simulate photon propagation by looking up photon density in tabulated distributions
Table generation is slow Simulation suffers from a wide range of binning artifacts Simulation is also slow! (most time is spent loading the tables)
Direct photon tracking with PPC
propagate photons directly when needed
photon propagation code
insert photon
length to absorption distance to next scatter
propagate to next scatterscatter
check for intersection with OMs
Check for distance to absorption
hit lost
PPC simulation on GPUgraphics processing unit
execution threads
propagation steps(between scatterings)
photon absorbed
new photon created(taken from the pool)
threads completetheir execution(no more photons)
Running on an NVidia GTX 295 CUDA-capable card,ppc is configured with:
448 threads in 30 blocks (total of 13440 threads)average of ~ 1024 photons per thread (total of 1.38 . 107 photons per call)
Photon Propagation Code: PPCThere are 5 versions of the ppc:
• original c++• "fast" c++• in Assembly• for CUDA GPU• C++ with OpenCL
All versions verified to produce identical results
comparison with i3mcmlhttp://icecube.wisc.edu/~dima/work/WISC/ppc/
GPU scalingOriginal: 1/2.08 1/2.70CPU c++: 1.00 1.00Assembly: 1.25 1.37GTX 295: 147 157GTX/Ori: 307 424C1060: 104 112C2050: 157 150GTX 480: 210 204
On GTX 295: 1.296 GHzRunning on 30 MPs x 448 threadsKernel uses: l=0 r=35 s=8176 c=62400
On GTX 480: 1.401 GHzRunning on 15 MPs x 768 threadsKernel uses: l=0 r=40 s=3960 c=62400
On C1060: 1.296 GHzRunning on 30 MPs x 448 threadsKernel uses: l=0 r=35 s=3992 c=62400
On C2050: 1.147 GHzRunning on 14 MPs x 768 threadsKernel uses: l=0 r=41 s=3960 c=62400
Uses cudaGetDeviceProperties() to get the number of multiprocessors,Uses cudaFuncGetAttributes() to get the maximum number of threads
Cudatest: lean and meanice fitting machine
cudatest:
Found 6 devices, driver 2030, runtime 20300(1.3): GeForce GTX 295 1.296 GHz G(939261952) S(16384) C(65536) R(16384) W(32)
l1 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)1(1.3): GeForce GTX 295 1.296 GHz G(939261952) S(16384) C(65536) R(16384) W(32)
l0 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)2(1.3): GeForce GTX 295 1.296 GHz G(939261952) S(16384) C(65536) R(16384) W(32)
l0 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)3(1.3): GeForce GTX 295 1.296 GHz G(938803200) S(16384) C(65536) R(16384) W(32)
l0 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)4(1.3): GeForce GTX 295 1.296 GHz G(939261952) S(16384) C(65536) R(16384) W(32)
l0 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)5(1.3): GeForce GTX 295 1.296 GHz G(939261952) S(16384) C(65536) R(16384) W(32)
l0 o1 c0 h1 i0 m30 a256 M(262144) T(512: 512,512,64) G(65535,65535,1)
3 GTX 295 cards, each with 2 GPUs
PSU
0 and 14 and 52 and 3
nvidia-smi -lsa
GPU 0:Product Name : GeForce GTX 295Serial : 1803836293359PCI ID : 5eb10deTemperature : 87 C
GPU 1:Product Name : GeForce GTX 295Serial : 2497590956570PCI ID : 5eb10deTemperature : 90 C
GPU 2:Product Name : GeForce GTX 295Serial : 1247671583504PCI ID : 5eb10deTemperature : 100 C
GPU 3:Product Name : GeForce GTX 295Serial : 2353575330598PCI ID : 5eb10deTemperature : 105 C
GPU 4:Product Name : GeForce GTX 295Serial : 1939228426794PCI ID : 5eb10deTemperature : 100 C
GPU 5:Product Name : GeForce GTX 295Serial : 2347233542940PCI ID : 5eb10deTemperature : 103 C
As fast as 900 CPU cores
scattered
absorbed
Measuring Scattering & Absorption
• Install light sources in the ice
• Use light sensors to:
- Measure how long it takes for light to travel through ice
- Measure how much light is delayed
- Measure how much light does not arrive
• Use different wavelengths
• Do above at many different depths
SPICE: South Pole Ice model
• Start with the bulk ice of reasonable scattering and absorption
• At each step of the minimizer compare the simulation of all flasher events at all depths to the available data set
• do this for many ice models, varying the properties of one layer at a time select the best one at each step
• converge to a solution!
Likelihood description of data: SPICE Mie
Find expectations for data and simulation by minimizing –log of
Regularization terms:
Measured in simulation: s and in data: d; ns and nd: number of simulated and data flasher events
Sum over emitters, receivers, time bins in receiver
Statistical description
There is an obvious constraint
which can be derived, e.g., from the normalization condition
Suppose we repeat the measurement in data nd times and in simulation ns times. The s and d are the expectation mean values of counts per measurement in simulation and in data.
With the total count in the combined set of simulation and data is s + d , the conditional probability distribution function of observing s simulation and d data counts is
Two hypotheses:If data data and simulation are unrelated and completely independent from each other, then we can maximize the likelihood for s and d independently, which with the above constraint yields
On the other hand, we can assume that data and simulation come from the same process, i.e.,
We can compare the two hypotheses by forming a likelihood ratio
Example: exp(-x/5)/5
To enhance the differences between the two likelihood approaches, consider that the amount of simulation is only 1/10th of that of data
200
2000
Optimal binning is determined by desire to:capture the changes in the ratemaximize the combined statistical power of the bins
The conditional probability (given the total count D) is
if the bins are considered independently i=di.
if the rate is constant across all bins, =i=D/L.
The likelihood ratio is
This never exceeds 1! so we use 1/L! or 8.
Bin size
Limiting case of near-constant rate
Small bin description
Single large bin of length L:
We prefer a single large bin if:
Initial fit to sca ~ abs
Starting with homogeneous “bulk ice” properties iterate until converged minimize q
2
1 simulatedevent/flasher 4 ev/fl 10 ev/fl
• Absolute calibration of average flasher is obtained “for free” no need to know absolute flasher light output beforehand no need to know absolute DOM sensitivity
1 statistical fluctuations
Minima inpy, toff, fSL
Correlation with dust logger dataef
fect
ive
sca
tter
ing
coef
ficie
nt (from Ryan Bay)
Scaling to the location of hole 50
fitted detector region
What is Ice anisotropy
Direction of more scatteringDire
ctio
n of
less
sca
tter
ing
Naïve approximation: multiply the scattering coefficient by a function of photon direction, e.g., by
1 + ( cos2- 1/3 )
However, this is unphysical:
(nin,nout) = (-nout,-nin) (time-reversal symmetry)
(nin,nout) = (-nin,-nout) (symmetry of ice)
(nin,nout) = (nout,nin)
A possible parameterizationThe scattering function we use is f(cos ), a combination of HG and SL.
How about this extension: f(cos )= f(nin . nout) f(Anin . Anout)
0 0A = 0 0 in the basis of the 2 scattering axes and z ( are, e.g., 1.05). 0 0 1/
However, function f(cos ) is well-defined for only cos between -1 and 1.
A possible modification is nin Anin/| Anin | nout A-1nout/| A-1nout |.
This introduces two extra parameters: (in addition to the direction of scattering preference).
The geometric scattering coefficient is constant with azimuth. However, the effective scattering coefficient receives azimuthal dependence as:
How important is anisotropy?
from SPICE paper
threshold: > 0, 1, 10, 100, 400 p.e.
30%
21%
so-so
awesome!
threshold: > 10 p.e.
History of SPICE model evolution
11/19/09 SPICE (also known as SPICE1): first version
seeded with AHA as initial solution AHA is used for extrapolation above and below the detector relies on AHA for correlation relation between be(400) and adust(400).
02/01/10 SPICE2:
fixed the hdh bug (see ppc readme file) seeded with bulk ice as initial solution dust logger and EDML data is used for extrapolation dust logger data is used to extend in x and y, taking into account layer tilt.
02/17/10 SPICE2+:
fixed the "x*y" option hit counting in ppc be(400) vs. adust(400) relation is determined with a global fit to arrival time distributions.
04/28/10 SPICE2x:
improved charge extraction in data: improved merging of the FADC and ATWD charges implemented saturation correction fixed the alternating ATWD bug updated DOM radius 17.8 --> 16.51 cm (cosmetic change: modifies only the meaning of py) fixed the DOM angular sensitivity curve (removed upturn at cos(theta)=-1).
06/09/10 SPICE2y:
Fixed code determining the closest DOMs to the current layer (when using tilted ice) Iterations (after timing fits) are combined (improving description in the dust layer) Randomized the simulation based on system time (with us resolution).
07/23/10 SPICEMie:
Much improved treatment of oversized DOMs in ppc Fits scattering function to a linear combination of HG and SAM functions, using higher g=0.9 Perform a global fit for py, overall time offset, scattering and absorption correlation coefficients Tilt map is estimated with respect to (0, 0) in IceCube coordinates (simplifies use with photonics).
04/16/12 SPICE Lea:
Improved data processing with the new feature extraction Improved likelihood description and optimized binning Introduced and fitted ice anisotropy effect
SPICE1:
Relies on AHA as a first guess, and for correlation between be and adust.
SPICE2:
Adds extrapolation with dust logger and EDML, ice tilt map from Ryan
SPICE2+:
Use full arrival time distributions, full fit for both be and adust.
SPICE Mie:
Fit for toff and shape of the scattering function
SPICE e-a:
New NNLS-based feature extraction. Fitted ice anisotropy
Embedded light sourcesin AMANDA
45°
isotropic source
(YAG laser)
cos source
(N2 lasers, blue LEDs)
tilted cos source
(UV flashers)
Timing fits to pulsed data
Fit paraboloid to 2 grid
►Scattering: e ± e
►Absorption: a ± a
►Correlation: ►Fit quality: 2
min
Make MC timing distributionsat grid points in e-a space
At each grid point, calculate2 of comparison between
data and MC timing distribution(allow for arbitrary tshift)
Fluence fits to DC data
d1
d2
DC source
In diffusive regime:
N(d) 1/d exp(-d/prop)
prop = sqrt(ae/3)
c = 1/prop
d
log(Nd)
slope = cc1
c2
c1
dust
No Monte Carlo!
3-component model of absorption
Ice extremely transparentbetween 200 nm and 500 nm
Absorption determined by dustconcentration in this range
Wavelength dependence of dustabsorption follows power law
A 6-parameter Plug-n-Play Ice Model
be(,d )
a(,d )
scattering
absorption
be(,d )Power law:
-
3-component model:
CMdust - + Ae-B/
T(d )
Linear correlation with dust:CMdust = D·be(400) + E
A = 6954 ± 973B = 6618 ± 71D = 71.4± 12.2E = 2.57 ± 0.58 = 0.90 ± 0.03 = 1.08 ± 0.01
Temperature correction:a = 0.01a T
id=301
id=302
id=303
Describing the data
Ice model must describe the data to which it was fit,
Ice model is built using the calibration in-situ light flasher data
ice model must describe the flasher data.
Here I quantify the (dis)agreement with a width of the distribution of the charge ratio qsimulation/qdata for all pairs of emitters and receivers in a flasher data set.
Remarks on comparison
Ice model error in description of the light deposition in the range of 125-250 meters away from the emitters:
SPICE 1: 29.2%SPICE Mie: 27.7%SPICE Lea: 20.0%
AHA: 55.2%WHAM: 42.4%
Well, what about timing?
See full collection of plots at http://icecube.wisc.edu/~dima/work/IceCube-ftp/ppc/lea/.
Direct Hole Ice simulation
Hole radius = ½ nominal DOMradius
Hole effective scattering ~ 50 cmHole absorption ~ 100 m
Do we need more detailed DOM simulation, including info about both the direction and point on the DOM surface?
Perhaps not, if the scattering length in the hole is not much shorter than the hole radius (speculation).
Remarks on the hole ice
Effect of the hole ice is quite subtle:• The number of photons is reduced on the side facing the emitter, and enhanced in the direction away from the emitter.
• The traditional “hole ice” implementation via the angular sensitivity modification reduces the number of photons in the direction into the PMT, and enhances the number of photons arriving into the back of the PMT.
If the emitter is inside the hole ice, the enhancement of photons received on the same string is dramatic.
Either effect is much smaller when receiver is on the different string can decouple measurement of bulk ice properties from the hole ice