GeneralBrokenLines V03-01-02
gblpy
Public Member Functions | Private Attributes | List of all members
gblpy.gblfit.GblPoint Class Reference

User supplied point on (initial) trajectory. More...

Inheritance diagram for gblpy.gblfit.GblPoint:

Public Member Functions

def __init__ (self, aJacobian)
 Create new point. More...
 
def addMeasurement (self, aMeasurement, minPrecision=0.)
 Add a mesurement to a point. More...
 
def hasMeasurement (self)
 Check point for a measurement. More...
 
def getMeasurements (self)
 Retrieve measurements of a point. More...
 
def addScatterer (self, aScatterer)
 Add a (thin or thick) scatterer to a point. More...
 
def getScatDim (self)
 Get scatterer dimension. More...
 
def getScatterer (self)
 Retrieve scatterer of a point. More...
 
def getReducedScatterer (self)
 Retrieve (reduced) scatterer of a point. More...
 
def addLocals (self, derivatives)
 Add local derivatives (to last measurement). More...
 
def addGlobals (self, labels, derivatives)
 Add global derivatives (to last measurement). More...
 
def setLabel (self, aLabel)
 Define label of a point. More...
 
def getLabel (self)
 Retrieve label of a point. More...
 
def setOffset (self, anOffset)
 Define offset of a point and references to previous and next point with offset. More...
 
def getOffset (self)
 Get offset of a point. More...
 
def setType (self, aType)
 Define type of a point. More...
 
def isFirst (self)
 Is first point? More...
 
def isLast (self)
 Is last point? More...
 
def getP2pJacobian (self)
 Retrieve jacobian of a point. More...
 
def addPrevJacobian (self, aJacobian)
 Add jacobian to previous offset. More...
 
def addNextJacobian (self, aJacobian)
 Add jacobian to next offset. More...
 
def getDerivatives (self, index)
 Get derivatives for locally linearized track model (backward or forward propagation). More...
 
def printPoint (self)
 Print point. More...
 

Private Attributes

 __label
 label for referencing point (0,1,..,number(points)-1); int More...
 
 __offset
 >=0: offset number at point, <0: offset number at next point with offset; int More...
 
 __type
 type (-1: first, 0: inner, 1: last) More...
 
 __p2pJacobian
 Point-to-point jacobian from previous point; matrix(float) More...
 
 __jacobians
 jacobians for propagation to previous or next point with offsets; pair(matrix(float)) More...
 
 __measurements
 measurements at point; list(GblMeasurement) More...
 
 __scatDim
 scatterer dimension (valid 2(thin) or 4(thick)) More...
 
 __scatterer
 scatterer at point: (transformation or None,) initial kinks, precision (inverse covariance matrix); list(matrix(float)) More...
 

Detailed Description

User supplied point on (initial) trajectory.

Must have jacobians for propagation to previous or next point with offsets (first, last point, points with scatterer). May have:

  1. Measurement(s) (usually 1D or 2D (or 4D or 5D))
  2. Scatterer (thin, 2D kinks)

Definition at line 182 of file gblfit.py.

Constructor & Destructor Documentation

◆ __init__()

def gblpy.gblfit.GblPoint.__init__ (   self,
  aJacobian 
)

Create new point.

Parameters
aJacobianjacobian from previous point; matrix(float)

Definition at line 188 of file gblfit.py.

Member Function Documentation

◆ addGlobals()

def gblpy.gblfit.GblPoint.addGlobals (   self,
  labels,
  derivatives 
)

Add global derivatives (to last measurement).

Parameters
labelsglobal labels; matrix(int)
derivativesglobal derivatives; matrix(float)

Definition at line 341 of file gblfit.py.

References gblpy.gblfit.GblPoint.__measurements, and gblpy.gblfit.GblPoint.addGlobals().

Referenced by gblpy.gblfit.GblPoint.addGlobals().

◆ addLocals()

def gblpy.gblfit.GblPoint.addLocals (   self,
  derivatives 
)

Add local derivatives (to last measurement).

Parameters
derivativeslocal derivatives; matrix(float)

Definition at line 332 of file gblfit.py.

References gblpy.gblfit.GblPoint.__measurements, and gblpy.gblfit.GblPoint.addLocals().

Referenced by gblpy.gblfit.GblPoint.addLocals().

◆ addMeasurement()

def gblpy.gblfit.GblPoint.addMeasurement (   self,
  aMeasurement,
  minPrecision = 0. 
)

Add a mesurement to a point.

Add measurement with arbitrary precision (inverse covariance) matrix. Will be diagonalized.

Parameters
aMeasurementmeasurement (projection (or None), residuals, precision (diagonal of or full matrix)); list(matrix(float))
minPrecisionMinimal precision to accept measurement

Definition at line 220 of file gblfit.py.

References gblpy.gblfit.GblPoint.__measurements.

◆ addNextJacobian()

def gblpy.gblfit.GblPoint.addNextJacobian (   self,
  aJacobian 
)

Add jacobian to next offset.

Parameters
aJacobianjacobian for propagation to next point with offsets; matrix(float)

Definition at line 420 of file gblfit.py.

References gblpy.gblfit.GblPoint.__jacobians.

◆ addPrevJacobian()

def gblpy.gblfit.GblPoint.addPrevJacobian (   self,
  aJacobian 
)

Add jacobian to previous offset.

Parameters
aJacobianjacobian for propagation to previous point with offsets; matrix(float)

Definition at line 413 of file gblfit.py.

References gblpy.gblfit.GblPoint.__jacobians.

◆ addScatterer()

def gblpy.gblfit.GblPoint.addScatterer (   self,
  aScatterer 
)

Add a (thin or thick) scatterer to a point.

Add scatterer with arbitrary precision (inverse covariance) matrix. Will be diagonalized

Thin scatterer: Changes local track direction.

The (2x2) precision matrix for the local slopes is defined by the angular scattering error theta_0 and the scalar products c_1, c_2 of the offset directions in the local frame with the track direction:

       (1 - c_1*c_1 - c_2*c_2)   |  1 - c_1*c_1     - c_1*c_2  |
  P =  ~~~~~~~~~~~~~~~~~~~~~~~ * |                             |
           theta_0*theta_0       |    - c_1*c_2   1 - c_2*c_2  |

For a diagonal precision matrix at least one of the scalar products c_1, c_2 must be zero.

One offset is defined at the point. The comparison with the previous and next offsets allows to define a kink.

Thick scatterer: Local track direction and position change (correlated).

Combination of several scatterers extrapolated to point (yielding dense (4x4) covariance matrix). E.g. sum of thin scatterers (covariance V_i, jacobian J_i for slopes and offsets):

  P = [sum(J_i*V_i*J_i^t)]^-1

For each thin scatterer the covarinace matrix V_i is defined by the angular scattering error theta_0,i and the scalar products c_1,i, c_2,i of the offset directions in the local frame with the track direction:

                                    | 1 - c_2,i^2  c_1,i*c_2,i     0     0 |
                                    |                                      |
                theta_0,i^2         | c_1,i*c_2,i  1 - c_1,i^2     0     0 |
  V_i = ------------------------- * |                                      |
        (1 - c_1,i^2 - c_2,i^2)^2   |      0            0          0     0 |
                                    |                                      |
                                    |      0            0          0     0 |

Two offsets are defined at the point to describe a step (in the trajectory). The comparison with the previous and next offsets allows to define a kink.

Parameters
aScattererscatterer (kinks(+steps), precision (diagonal of or full matrix, thin:2x2, thick:4x4)); list(matrix(float))

Definition at line 284 of file gblfit.py.

References gblpy.gblfit.GblPoint.__scatDim, and gblpy.gblfit.GblPoint.__scatterer.

◆ getDerivatives()

def gblpy.gblfit.GblPoint.getDerivatives (   self,
  index 
)

Get derivatives for locally linearized track model (backward or forward propagation).

Parameters
index0 (previous) or 1 (next point with offsets); int
Returns
derivatives; list(matrix(float))

Definition at line 428 of file gblfit.py.

References gblpy.gblfit.GblPoint.__jacobians.

◆ getLabel()

def gblpy.gblfit.GblPoint.getLabel (   self)

Retrieve label of a point.

Returns
label; int

Definition at line 356 of file gblfit.py.

References gblpy.gblfit.GblPoint.__label, and gblpy.gblfit.GblData.__label.

◆ getMeasurements()

def gblpy.gblfit.GblPoint.getMeasurements (   self)

Retrieve measurements of a point.

Returns
measurements; list(GblMeasurements)

Definition at line 234 of file gblfit.py.

References gblpy.gblfit.GblPoint.__measurements.

◆ getOffset()

def gblpy.gblfit.GblPoint.getOffset (   self)

Get offset of a point.

Returns
offset number (at point (>=0) or at next point with offset (<0)); int

Definition at line 370 of file gblfit.py.

References gblpy.gblfit.GblPoint.__offset.

◆ getP2pJacobian()

def gblpy.gblfit.GblPoint.getP2pJacobian (   self)

Retrieve jacobian of a point.

Returns
point-to-point jacobian (from previous point); matrix(float)

Definition at line 406 of file gblfit.py.

References gblpy.gblfit.GblPoint.__p2pJacobian.

◆ getReducedScatterer()

def gblpy.gblfit.GblPoint.getReducedScatterer (   self)

Retrieve (reduced) scatterer of a point.

Reduce to positional scatterer.

Returns
scatterer (transformation, steps, precision); list(matrix(float))

Definition at line 315 of file gblfit.py.

References gblpy.gblfit.GblPoint.__scatterer.

◆ getScatDim()

def gblpy.gblfit.GblPoint.getScatDim (   self)

Get scatterer dimension.

Returns
dimension; int

Definition at line 299 of file gblfit.py.

References gblpy.gblfit.GblPoint.__scatDim.

◆ getScatterer()

def gblpy.gblfit.GblPoint.getScatterer (   self)

Retrieve scatterer of a point.

Returns
scatterer (transformation, kinks(+steps), precision); list(matrix(float))

Definition at line 306 of file gblfit.py.

References gblpy.gblfit.GblPoint.__scatterer.

◆ hasMeasurement()

def gblpy.gblfit.GblPoint.hasMeasurement (   self)

Check point for a measurement.

Returns
flag; bool

Definition at line 227 of file gblfit.py.

References gblpy.gblfit.GblPoint.__measurements.

◆ isFirst()

def gblpy.gblfit.GblPoint.isFirst (   self)

Is first point?

Returns
flag; bool

Definition at line 384 of file gblfit.py.

References gblpy.gblfit.GblPoint.__type, and gblpy.gblfit.GblData.__type.

◆ isLast()

def gblpy.gblfit.GblPoint.isLast (   self)

Is last point?

Returns
flag; bool

Definition at line 391 of file gblfit.py.

References gblpy.gblfit.GblPoint.__type, and gblpy.gblfit.GblData.__type.

◆ printPoint()

def gblpy.gblfit.GblPoint.printPoint (   self)

◆ setLabel()

def gblpy.gblfit.GblPoint.setLabel (   self,
  aLabel 
)

Define label of a point.

Parameters
aLabellabel; int

Definition at line 349 of file gblfit.py.

References gblpy.gblfit.GblPoint.__label, and gblpy.gblfit.GblData.__label.

◆ setOffset()

def gblpy.gblfit.GblPoint.setOffset (   self,
  anOffset 
)

Define offset of a point and references to previous and next point with offset.

Parameters
anOffsetoffset number (at point (>=0) or at next point with offset (<0)); int

Definition at line 363 of file gblfit.py.

References gblpy.gblfit.GblPoint.__offset.

◆ setType()

def gblpy.gblfit.GblPoint.setType (   self,
  aType 
)

Define type of a point.

Parameters
aTypetype (-1: first, 0: inner, 1: last); int

Definition at line 377 of file gblfit.py.

References gblpy.gblfit.GblPoint.__type, and gblpy.gblfit.GblData.__type.

Member Data Documentation

◆ __jacobians

gblpy.gblfit.GblPoint.__jacobians
private

jacobians for propagation to previous or next point with offsets; pair(matrix(float))

Definition at line 198 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.addNextJacobian(), gblpy.gblfit.GblPoint.addPrevJacobian(), and gblpy.gblfit.GblPoint.getDerivatives().

◆ __label

gblpy.gblfit.GblPoint.__label
private

label for referencing point (0,1,..,number(points)-1); int

Definition at line 190 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.getLabel(), gblpy.gblfit.GblData.getLabel(), gblpy.gblfit.GblData.printData(), gblpy.gblfit.GblPoint.printPoint(), and gblpy.gblfit.GblPoint.setLabel().

◆ __measurements

gblpy.gblfit.GblPoint.__measurements
private

◆ __offset

gblpy.gblfit.GblPoint.__offset
private

>=0: offset number at point, <0: offset number at next point with offset; int

Definition at line 192 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.getOffset(), gblpy.gblfit.GblPoint.printPoint(), and gblpy.gblfit.GblPoint.setOffset().

◆ __p2pJacobian

gblpy.gblfit.GblPoint.__p2pJacobian
private

Point-to-point jacobian from previous point; matrix(float)

Definition at line 196 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.getP2pJacobian().

◆ __scatDim

gblpy.gblfit.GblPoint.__scatDim
private

scatterer dimension (valid 2(thin) or 4(thick))

Definition at line 202 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.addScatterer(), gblpy.gblfit.GblPoint.getScatDim(), and gblpy.gblfit.GblPoint.printPoint().

◆ __scatterer

gblpy.gblfit.GblPoint.__scatterer
private

scatterer at point: (transformation or None,) initial kinks, precision (inverse covariance matrix); list(matrix(float))

Definition at line 204 of file gblfit.py.

Referenced by gblpy.gblfit.GblPoint.addScatterer(), gblpy.gblfit.GblPoint.getReducedScatterer(), and gblpy.gblfit.GblPoint.getScatterer().

◆ __type

gblpy.gblfit.GblPoint.__type
private

The documentation for this class was generated from the following file: