-
Notifications
You must be signed in to change notification settings - Fork 15
tree_ring_validation
During the growing of silicon boules the doping percentage can vary over time building "tree-ring" like structure in doping concentration. Much like a n-p junction, the gradient in doping establishes a static lateral electric field causing electrons to drift laterally into adjacent pixels while traveling through the silicon bulk.
For a more thorough introduction see e.g. Okura et al. (2015).
Craig Lage, Mike Jarvis, Andrei Nomerotski/SAWG
See recent talk by Craig Lage here
Tree rings analysis using BNL data by Sergey Karpov is here
Another review of tree rings in BNL sensors by Hye-Yun Park is here
The model is validated using the data acquired at BNL on TS3 (30 ITL, 37 E2V sensors, 106 runs in total) and on TS8 (39 ITL, 72 E2V sensors, 496 runs in total).
All data are available on ASTRO cluster in BNL at: /gpfs01/astro/workarea/ccdtest/prod
The model parameters
The tree rings are typically seen in flat field images where they represent the effective pixel area variation (or the Jacobian of coordinate transformation). On the other hand, for efficient simulation of data the coordinate distortion function is necessary. Therefore, it is decided to build an analytical model for radial coordinate displacement, and then compute pixel area variation from it.
The following model is selected to represent the effect:
Polynomial term describes the increase of tree rings amplitude with moving away from the center. Corresponding area variation is then
The parameters are chosen based on data acquired by Hye-Yun Park on TS3 for 5 ITL and 1 E2V sensors, available here.
The parameters are randomly generated for all sensors using build_tree_ring_file.py script according to the following rules:
- 15 sin + 15 cos frequencies (with random phases) normally distributed with mean 60 pix and sigma 10 pix
- 5 sin + 5 cos frequencies (with random phases) normally distributed with mean 35 pix and sigma 10 pix
- 60% sensors have small amplitudes, 40% - large (order of magnitude larger) amplitudes, uniformly distributed with ~2 times spread.
Actual parameters pre-generated for all sensors are stored in tree_ring_parameters_2018-04-26.txt. The code in imsim/tree_rings.py reads this file, constructs radial displacement function and passes it to galsim.SiliconSensor constructor in galsim/sensor.py. Then the low-level C++ code in Silicon.cpp uses it for actual displacement of incoming photons, applying also conversion depth correction to it (so the electrons converted deeper have smaller displacement). The latter is handled by Silicon::insidePixel method.
Area deviations and pixel shifts between the data and several simulated tree rings are compared statistically (need quantitative measure).
Current images (which image should we use here?) show qualitative agreement.
Camera
03/30/18 - Initial Version - CWW 08/11/18 - Updated version with more details on model and validation - Sergey Karpov