Skip to content

Implement stereo angle for radial strip detectors

Radek Privara requested to merge rprivara/allpix-squared:stereo_angle into master

This MR adds the option to set the sensor stereo angle for radial strip detector models. Small improvements to the existing radial strip implementation are also included:

  • GeometryBuilderGeant4: the sensor/wrapper shape is now more accurate (using G4Tubs class instead of G4Trd).
  • DetectorHistogrammer: y-axis bin widths in the polar hitmap now correspond to strip lengths.

Current goals:

  • Create the geometry in DetectorConstructionG4.
  • Define the main transformations in getPositionPolar() and getPositionCartesian() member functions.
  • Adjust other RadialStripDetectorModel member functions to work with the stereo angle.
  • DetectorHistogrammer: Fix whatever output the stereo angle has broken.
  • Update the geometry configuration in the ATLAS_ITk_petal example to reflect the stereo angle.

Stereo angle

The stereo angle is a design feature of ATLAS ITk Strip end-cap detectors. The strips on a sensor do not point to the sensor origin O (local coordinate center) but to a focal point F, obtained by rotating the sensor origin point by the stereo angle around the sensor center Ow (see image below). This feature ensures good tracking performance of two back-to-back strip detectors. The stereo angle is 20mrad for all ATLAS ITk Strip end-cap detectors.

stereo_angle

The stereo angle is defined for a radial strip detector model via the stereo_angle parameter in the model's configuration file. Its default value is zero, i.e. the strip focal point coincides with the sensor origin point.

The main changes are in the getPolarPosition() and getCartesianPosition() member functions of the RadialStripDetectorModel class. The Polar2DPoint returned by getPolarPosition() is now constructed in such a way that its radial component R is measured from the sensor origin, while the angular component Phi is measured from the strip focal point and incorporates the stereo angle. getCartesianPosition() was adjusted to properly handle this composite polar position and transform it into standard cartesian coordinates with their origin in the sensor origin.

Edited by Radek Privara

Merge request reports