Allpix Squared merge requestshttps://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests2023-09-15T14:55:59+02:00https://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests/1069Draft: Add Electric Field Option for Gain Layers2023-09-15T14:55:59+02:00Simon SpannagelDraft: Add Electric Field Option for Gain LayersThis is the first port of @fdewit's work on gain reduction mechanisms to the main repository.
All code is from @fdewit, my changes only concern
* Formatting
* Some readability & rebase to latest `master`
* Documentation, taken from @fde...This is the first port of @fdewit's work on gain reduction mechanisms to the main repository.
All code is from @fdewit, my changes only concern
* Formatting
* Some readability & rebase to latest `master`
* Documentation, taken from @fdewit's thesis
For reference, the thesis can be found here: https://www.ru.nl/publish/pages/913454/2023_femke_de_wit_thesis.pdf
To do:
* [ ] Add test cases based on examples from @fdewit
* [ ] Ensure that this also works e.g. with an iLGAD sensor or with an *n* bulk sensor
* [ ] Finish documentationFeature 3.1.0https://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests/1041Charge carrier reflection on surface2024-03-26T11:34:44+01:00Ben BruersCharge carrier reflection on surfaceThe surface reflection introduced in MR !1014 is modified as follows:
- the electric field and doping concentration for the diffusion modeling are taken from the position before the drift modelling (`last_position`) as also addressed in ...The surface reflection introduced in MR !1014 is modified as follows:
- the electric field and doping concentration for the diffusion modeling are taken from the position before the drift modelling (`last_position`) as also addressed in !1035. This avoids that the diffusion uses a null field / concentration, if the charge carrier drifts outside of the sensor
- the charge collection and surface reflection are carried out before other effects, such as trapping, recombination, etc. are modeled. Otherwise nonphysical effects are observed
- the surface effect is modified to actually reflect the charge carrier at the surface (note the z-position change). This is necessary to avoid nonphysical behavior, if e.g. the electric field at the surface is zero. The current implementation may lead to charges "bouncing" along the surface (which is also somewhat nonphysical). Yet, this is observed to model the measurement well
- currently the reflection is only implemented for the z-boundary of the sensor. Other use-cases seem unlikely, yet we can discuss this
Finally, the author-list has been updated, adding @cscharf and me.
Tagging @cscharfhttps://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests/1013Fast Masetti and MasettiCanali Models2024-03-13T11:19:52+01:00Simon SpannagelFast Masetti and MasettiCanali ModelsThis adds a tabulated `pow` implementation with logarithmic binning, making it possible to cover huge ranges like required for the doping concentration of the Masetti models, covering 1e13/cm^3 - 1e20/cm^3 of relevant doping concentratio...This adds a tabulated `pow` implementation with logarithmic binning, making it possible to cover huge ranges like required for the doping concentration of the Masetti models, covering 1e13/cm^3 - 1e20/cm^3 of relevant doping concentrations.
Using this, there is a `masetti_fast` and a `masetti_canali_fast` model, the latter performing like this:
### At effective doping of 1e13/cm^3
![imcf_e_1e13](/uploads/2549510cd3bc739ef25e4aedf9f32723/imcf_e_1e13.png) ![imcf_h_1e13](/uploads/1214b9bbda853b3d28713e86fec71db7/imcf_h_1e13.png)
![mcf_e_1e13](/uploads/4498deceecabbf0fab797e2082cfb930/mcf_e_1e13.png) ![mcf_h_1e13](/uploads/520bcadac3dfa089fe0b6100546efa89/mcf_h_1e13.png)
### At effective doping of 1e20/cm^3
![icanali_e](/uploads/20020bb447b3d67e7c712a32e3ff09ac/icanali_e.png) ![icanali_h](/uploads/815fed52964c0bbdd61ba50446290912/icanali_h.png)
![canali_e](/uploads/e3d1b83db84f795f9bac1da5b24d5ced/canali_e.png) ![canali_h](/uploads/de62a7b5728c405cca706bc87af3fbde/canali_h.png)https://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests/1000Draft: Impact Ionization: Find Field Edge with Binary Search2024-04-16T18:23:31+02:00Simon SpannagelDraft: Impact Ionization: Find Field Edge with Binary SearchThis Mr implements a subsampling of individual charge carrier steps in case a strong electric field gradient is found. The edge position within the step is calculated using an efficient binary search with nanometer step width.
The calcu...This Mr implements a subsampling of individual charge carrier steps in case a strong electric field gradient is found. The edge position within the step is calculated using an efficient binary search with nanometer step width.
The calculated fraction of the step propagated in the high-field region is then sued to scale the step length used to calculate the local gain factors. Here, the higher of the two field values (pre- or post- step) is then taken, making this a more precise estimate both for steps into but also out of the gain region.
There are a few open questions and items to address:
- [x] I reintroduced the threshold field to have a handle on *when* we consider something a high-field region, and also what edge value to search for. Does this make sense?
- [ ] We could think of placing the secondaries either at pre- or post-step positions depending on where the higher field is (stepping into or out of the high-field region)
- [ ] The entire propagation code becomes a bit spaghetti-like, and I'd love suggestions on how to nicely refactor this into some farfalle.
- [ ] We currently have quite some performance impact, not necessarily by the binary search (just some field lookups) but by impact ionization in general. Do be inverstigated
- [ ] We should benchmark this in terms of physics performance. @pschutze ?
P.S.: MR 1000 :tada:Feature 3.1.0https://gitlab.cern.ch/allpix-squared/allpix-squared/-/merge_requests/944Draft: Allow specifying Material for Implants2023-01-30T11:15:04+01:00Simon SpannagelDraft: Allow specifying Material for ImplantsThis is an attempt towards #259 but needs more work with Geant4.This is an attempt towards #259 but needs more work with Geant4.