Draft: Allow Definition of 3D Implants
Status Quo
Currently, there is the possibility to define 2D implants at the sensor surface, and the transfer modules allow to collect charge carriers either from the full pixel area or only from these defined areas. The depth is governed by the max_depth_distance
parameter of the transfer modules. Propagation only ends at sensor surface.
New Features
This MR implements three-dimensional implants, which can for example be used to simulate 3D sensors. With the current implementation, both the definition of 2D implants (essentially regions on the sensor surface) and 3D implants (as volumes in the sensor material) is possible. Features:
- New method
DetectorModel::isWithinImplant()
allows to check for charge carrier positions within implants to stop propagation - Additional
depth
parameter of the method is used in case only 2D implants are defined - not sure if this is the most beautiful implementation, but it reduces code complexity especially in the transfer modules where we need to distinguis- 3D implant collection
- 2D implant collection with
max_depth_distance
parameter - Collection from full sensor surface with
max_depth_distance
- New methods
DetectorModel::getSensorIntercept()
andDetectorModel::getImplantIntercept()
allow to find the intercept point with the respective surface given one point inside and one outside the volume. This implements a Liang-Barsky line clipping method for the efficient interception of a box with a line segment. Here, the order of the points is important since only intersections in the positive direction are considered. This replaces the hard-coded interpolations performed up to now in the propagation modules. - 3D implants are implemented also in the G4 geometry construction and can be filled with any material available.
To Dos
-
Should we shift the interpolated surface points by a nm
in order for them to stay within the respective volumes? This would make later selection based on their position a bit more robust I guess? -
Testing - possibly also with an actual 3D sensor electric field. It would be great to see some line graphs for this type of sensor -
Follow-up: backside implants - required for ohmic columns -
Check implementation for radial-strip detector (cc @rprivara )
Fixes #65 (closed)