GeneralBrokenLines V03-01-02
gblpy
General information

Introduction

For a track with an initial trajectory from a prefit of the (2D, 4D or 5D) measurements (internal seed) or an external prediction (external seed) the description of multiple scattering is added by offsets in a local system. Along the initial trajectory points are defined with can describe a measurement or a scatterer or both. Multiple measurements can be added to a point to implement ambiguities. The refit provides corrections to the local track parameters (in the local system) and the corresponding covariance matrix at any of those points. Non-diagonal covariance matrices will be diagonalized internally. Outliers can be down-weighted by use of M-estimators. At one point the measurements can be omitted from the refit to calculate unbiased residuals.

A position measurement is in a plane defined by two directions. Along one direction the measurement precision may be zero, defining a 1D measurement in the other direction.

The broken lines trajectory is defined by (2D) offsets at the first and last point and all points with a scatterer. The prediction for a measurement is obtained by interpolation of the enclosing offsets and for triplets of adjacent offsets kink angles are determined (thin scatterer, single offset) or for quadruplets of adjacent offsets kink angles and steps are determined (thick scatterer, two offsets, see logo). This requires for all points the jacobians for propagation to the previous and next point with an offset. These are calculated from the point-to-point jacobians along the initial trajectory. The sequence of points has to be strictly monotonic in arc-length.

Additional local or global parameters can be added and the trajectories can be written to special binary files for calibration and alignment with Millepede-II. (V. Blobel, NIM A, 566 (2006), pp. 5-13).

The conventions for the coordinate systems follow: Derivation of Jacobians for the propagation of covariance matrices of track parameters in homogeneous magnetic fields A. Strandlie, W. Wittek, NIM A, 566 (2006) 687-698.

The source code is available at the DESY GitLab server, see: https://gitlab.desy.de/claus.kleinwort/general-broken-lines/-/wikis/home

Calling sequence:

  1. Create trajectory:
    traj = GblTrajectory()
  2. For all points on initial trajectory
    • Create point (supply jacobian from previous point):
      point = GblPoint(jacobian)
    • Optionally add measurement(s) to point:
      point.addMeasurement(..)
    • Optionally additional local or global parameters for measurement:
      point.addLocals(..)
      point.addGlobals(..)
    • Optionally add scatterer to point:
      point.addScatterer(..)
    • Add point (ordered by arc length) to trajectory, get label of point:
      label = traj.addPoint(point)
  3. Optionally add external seed:
    traj.addExternalSeed(..)
  4. Fit trajectory (potentially several times with different options), get Chi2, Ndf (and weight lost by M-estimators):
    [..] = traj.fit()
  5. For any point on inital trajectory
    • Get corrections and covariance matrix for track parameters:
      [..] = traj.getResults(label)
    • Optionally get residuals with errors for measurements:
      [..] = traj.getMeasResults(label)
    • Optionally get residuals with errors for scatterers:
      [..] = traj.getScatResults(label)
  6. Optionally write trajectory to MP binary file:
    traj.milleOut(..)

Alternatively trajectories can by read from MP binary files and fitted. As the points on the initial trajectory are not stored in this files results at points (corrections, covariance matrix) are not available and omission of measurements from a point is not possible.

Examples

Technical examples are given in gbltst.py, an example silicon tracker in gblsit.py.

References:

  • V. Blobel, C. Kleinwort, F. Meier, Fast alignment of a complex tracking detector using advanced track models, Computer Phys. Communications (2011), doi:10.1016/j.cpc.2011.03.017
  • C. Kleinwort, General Broken Lines as advanced track fitting method, NIM A, 673 (2012), 107-110, doi:10.1016/j.nima.2012.01.024