SND@LHC Software
Loading...
Searching...
No Matches
gbl Namespace Reference

Namespace for the general broken lines package. More...

Classes

class  BorderedBandMatrix
 (Symmetric) Bordered Band Matrix. More...
 
class  GblData
 Data (block) for independent scalar measurement. More...
 
class  GblPoint
 Point on trajectory. More...
 
class  GblTrajectory
 GBL trajectory. More...
 
class  MilleBinary
 Millepede-II (binary) record. More...
 
class  VMatrix
 Simple Matrix based on std::vector<double> More...
 
class  VSymMatrix
 Simple symmetric Matrix based on std::vector<double> More...
 
class  VVector
 Simple Vector based on std::vector<double> More...
 

Detailed Description

Namespace for the general broken lines package.

General information

Introduction

For a track with an initial trajectory from a prefit of the 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 (thin) scatterer or both. Measurements are arbitrary functions of the local track parameters at a point (e.g. 2D: position, 4D: direction+position). 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.

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. This requires for all points the jacobians for propagation to the previous and next 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).

Besides simple trajectories describing the path of a single particle composed trajectories are supported. These are constructed from the trajectories of multiple particles and some external parameters (like those describing a decay) and transformations at the first points from the external to the local track parameters.

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.

Calling sequence

  1. Create list of points on initial trajectory:
    std::vector<GblPoint> list
  2. For all points on initial trajectory:
    • Create points and add appropriate attributes:
      • point = gbl::GblPoint(..)
      • point.addMeasurement(..)
      • Add additional local or global parameters to measurement:
        • point.addLocals(..)
        • point.addGlobals(..)
      • point.addScatterer(..)
    • Add point (ordered by arc length) to list:
      list.push_back(point)
  3. Create (simple) trajectory from list of points:
    traj = gbl::GblTrajectory (list)
  4. Optionally with external seed:
    traj = gbl::GblTrajectory (list,seed)
  5. Optionally check validity of trajectory:
    if (not traj.isValid()) .. //abort
  6. Fit trajectory, return error code, get Chi2, Ndf (and weight lost by M-estimators):
    ierr = traj.fit(..)
  7. For any point on initial trajectory:
    • Get corrections and covariance matrix for track parameters:
      [..] = traj.getResults(label)
  8. Optionally write trajectory to MP binary file (doesn't needs to be fitted):
    traj.milleOut(..)

Local system and local parameters At each point on the trajectory a local coordinate system with local track parameters has to be defined. The first of the five parameters describes the bending, the next two the direction and the last two the position (offsets). The curvilinear system (T,U,V) with parameters (q/p, lambda, phi, x_t, y_t) is well suited.

Implementation

Matrices are implemented with ROOT (root.cern.ch). User input or output is in the form of TMatrices. Internally SMatrices are used for fixes sized and simple matrices based on std::vector<> for variable sized matrices.

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