Add the avalanche feature in the TRACS found at https://github.com/CERN-SSD/TRACS .
The purpose of this development is to simulate so-called LGAD, which has "gain layer" beneath the charge collection electrodes.
One important policy with this work (so far) is that minimizing the change as mush as possible
though re-arrangement of the code structure could fit more in future development.
login to cepcvtx.
user@cepcvtx:~$ cd {some directory under which you want to setup the code = Somewhere}
user@cepcvtx:Somewhere$ git clone https://github.com/rkiuchi/TRACS
user@cepcvtx:Somewhere$ cd TRACS
user@cepcvtx:Somewhere/TRACS$ ./setup.sh
user@cepcvtx:Somewhere/TRACS$ make
user@cepcvtx:Somewhere/TRACS$ cd ./run/template.IR_Bottom.20190901/
user@cepcvtx:Somewhere/TRACS$ ../../myApp/DoTracsOnly 1 MyConfigTRACS
You can check several distribution in the ROOT files. Notice that those are bi-products during development/debugging procedures, thus could be changed/modified in future.
user@cepcvtx:Somewhere/TRACS$ root wf120V
root> h_w_u->Draw(); // Weighting potential
root> h_w_f_grad->Draw(); // Weighting field
root> h_d_f_grad->Draw(); // E-field
root> h_d_f_grad_Y->Draw(); // E-field along with Z-axis
user@cepcvtx:Somewhere/TRACS$ root current120V_scan0
root> i_total->Draw(); // Total current
root> i_init_elec->Draw(); // Contribution from initial electrons
root> i_init_hole->Draw(); // Contribution from initial holes
root> i_gen_elec->Draw(); // Contribution from secondary electrons
root> i_gen_hole->Draw(); // Contribution from secondary holes
user@cepcvtx:Somewhere/TRACS$ root ncarrier.root
root> e_gentime->Draw(); // Generation time of all of electrons
root> h_gentime->Draw(); // Generation time of all of holes
user@cepcvtx:Somewhere/TRACS$ root Neff_dist.root
root> neff_dist->Draw(); // Effective doping profile
user@cepcvtx:Somewhere/TRACS$ ../../myApp/Edge_tree NOirrad_dt0ps_4pF_tNOtrappingns_dz5um_dy5dV20V_0nns_bottom_0_rc.hetct
user@cepcvtx:Somewhere/TRACS$ root NOirrad_dt0ps_4pF_tNOtrappingns_dz5um_dy5dV20V_0nns_bottom_0_rc.hetct.root
root> .x loadlib.c
root> edge->StartViewer();
or
root> TBrowser a;
Here, newly introduced parameters in the config file ("MyConfigTRACS" in the template) are mainly described.
The shape of "Gain Layer" is now assumed as a simple Gaussian for which we need to specify some parameters:
The (carrier loop)calculation time scales with the number of carriers, including the secondary generated ones due to the Avalanche effect. Thus, stopping the loop calculation iteration, if the number of generated carriers reaches or exceeds the ratio bellow. The ratio is defined as the number between the total number of carriers generated and the number of initial carriers read from a carrier file.
In addion to above, the effective doping level in the bulk except the "gain layer" is also important.
This is determined from the detector thickness and the full depletion voltage, which is already used in the original TRACS.
Therefore, you need to set the full depletion voltage correctly. ( In fact, the impact ionization effect happens only
at the high doping area, and less effect if one sets the full depletion voltage == nominal doping level wrongly )
One of point is that this full depletion voltage is that one without the "gain layer", to estimate normal doping level correctly.
The other factor related with the impact ionization effect is the temperature of the detector. Do not forget about its value.
V1.1)
The model and parameters are taken from :
M. Valdinoci, D. Ventura, M. C. Vecchi, M. Rudan, G. Baccarani, F. Illien, A. Stricker, L. Zullino, "Impact-ionization in silicon at large operating temperature", SISPAD '99, Sept. 6-8, 1999, Kyoto, Japan.