Implementation of the HGTD tracking geometry
This MR includes the first classes of the HGTD_TrackingGeometry
package, implemented to build the tracking geometry for the HGTD.
I have implemented the layers such that the surfaces are contained in a grid structure (implemented via a BinnedArray1D1D
) using (R,phi)
polar coordinate of the HGTD surfaces' centre.
The picture below shows grid and the centres of the modules on one layer:
The search for compatible surfaces is done via the HGTD_OverlapDescriptor
which knows the layer it is associated to and navigate the grid to return for a given position the surface of the corresponding bin and the surrounding ones, namely +/-3 in R
-direction and +/-3 in phi. The tolerance (in number of steps) in the two direction is adjustable via two parameters of the HGTD_OverlapDescriptor
constructor and can be changed if needed.
EDIT: The number of steps has been adapted to fix some inefficiencies in searching for compatible surfaces.
The configurations implemented allows to find the HGTD tracking geometry layers and surfaces where expected. This is what can be visualised using the ExtrapolationEngineTest
(first layer on the positive endcap side):
Some changes are needed in the HGTD_ModuleDesign
class to obtain the correct rotation of the HGTD modules and hence surfaces.
Contains also code cleanup.
The material is not yet mapped on the layers. It will be implemented soon.
Tagging the relevant people: @cohm, @dshope, @aleopold, @asalzbur, @nstyles, @tstreble, @tadej, @lshan, @wyswys, @sch