Definitions and data fields; construction and fitting. More...
Data Types | |
type | gblpoint |
Point on trajectory. More... |
Public Member Functions | |
subroutine | gblfit (cdw, mrank, np, ndf, chi2, wls) |
Perform fit of trajectory. | |
subroutine | gblprp |
Prepare broken lines trajectory. | |
subroutine | gblcjc |
Calculate broken lines from point to point jacobians. | |
subroutine | gblini (lprnt, icoord) |
Initialize. | |
subroutine | gbladp (ajac, ipoint) |
Add point to trajectory. | |
subroutine | gbladm (proj, res, prec) |
Add 2D measurement to current point. | |
subroutine | gbladl (nder, der, iret) |
Add local derivatives to measurement. | |
subroutine | gbladg (nder, lder, der, iret) |
Add global derivatives to measurement. | |
subroutine | gblads (res, prec) |
Add (thin) scatterer to current point. | |
subroutine | gbldmp |
Dump trajectory definition. | |
subroutine | gbldat |
Generate DATa record. | |
subroutine | gblder (ipoint, idir, w, wj, dw) |
get (matrices and vectors for) derivatives. | |
subroutine | gblmat |
Build MATrix and rhs vector. | |
subroutine | gblch2 (idwm, chi2, swgt) |
Calculate Chi2. | |
subroutine | gblmp2 (iret) |
generate Millepede-II record | |
subroutine | gbljac (ipoint, itrans, ioff1) |
Get jacobian (transposed). broken lines parameter (q/p,..,u_i,..) to local parameter (q/p,alpha,u) | |
subroutine | gblres (ipoint, dpar, dcov) |
Get parameters and covariance matrix at point. | |
subroutine | gbladx (ipoint, dprc) |
Add (inverse covariance matrix from) external seed. | |
subroutine | gblinu (a, b) |
Calculate offset part of inverse jacobian. |
Public Attributes | |
integer, parameter | maxfitpar = 250 |
max. number of fit parameters | |
integer, parameter | maxfitsymmatsize = (maxFitPar*maxFitPar+maxFitPar)/2 |
integer, parameter | maxbandwidth = 10 |
max. band width | |
integer, parameter | maxbordersize = 10 |
max. border size | |
integer, parameter | maxtrackpar = maxBorderSize+5 |
max. number of local track parameters | |
integer, parameter | maxtracksymmatsize = (maxTrackPar*maxTrackPar+maxTrackPar)/2 |
integer, parameter | maxpoints = 1000 |
max. points | |
integer, parameter | sizedatabuffer = 10*maxPoints |
max. integrated size of data blocks | |
integer | trajlevel |
level of (preparation of) trajectory (fit) | |
integer | printlevel |
print level | |
integer | offsetdimension |
dimension of offsets (2: 2D offsets for track in 3D, 1: 1D offsets for track in 2D) | |
integer | numpoints |
number of points | |
integer | nummeas |
number (of points) with measurement | |
integer | numscat |
number (of points) with scatterer | |
integer | numoffsets |
number (of points) with offsets (as fit parameter) | |
integer | numkinks |
number of (multiple scattering) kinks | |
integer | lastoffset |
last point with offset | |
integer | lastscatterer |
last point with scatterer | |
integer | numfitpar |
number of fit parameters | |
integer | numcurv |
flag (0/1) for usage of Q/P as fit parameter | |
integer | bandsize |
band size | |
integer | numaddlocpar |
number of additional local track parameters | |
integer | extseedpoint |
point with external seed (or 0) | |
integer | firstactivecoord |
first active offset coordinate (0: u_1, 1: u_2) | |
integer | lastdownweightmethod |
last used down-weighting method | |
double precision, dimension(maxfitpar) | vecb |
right hand side of linear equation system (A*x=b) | |
double precision, dimension(maxfitsymmatsize) | mata |
(sym.) matrix of linear equation system (A*x=b) | |
double precision, dimension(maxtracksymmatsize) | extseedmat |
external seed (precision matrix) | |
double precision, dimension(maxtrackpar *maxtrackpar) | jactracktofit |
jacobian for transformation fit to track parameter | |
type(gblpoint), dimension(maxpoints) | points |
list of GblPoints | |
integer | numdatablocks |
number of data blocks with measurements or kinks | |
integer | integdatasize |
integrated size of data blocks | |
integer | maxdatasize |
max. integrated size | |
integer, dimension(sizedatabuffer) | intdata |
integer part of data blocks (lower part, 1..mdat) or local/global derivatives (upper part, mdat+1..mxdat) | |
real, dimension(sizedatabuffer) | floatdata |
float part of data blocks or local/global derivatives | |
integer | maxusedfitpar = 0 |
max. number of fit parameters used | |
integer | lastnumfitpar = 0 |
number of fit parameters from last fit | |
integer | lastbordersize = 0 |
border size from last fit | |
integer | lastbandwidth = 0 |
band width from last fit |
Definitions and data fields; construction and fitting.
Definition at line 84 of file gbltraj.f90.
subroutine gbltraj::gbladg | ( | integer, intent(in) | nder, |
integer, dimension(nder), intent(in) | lder, | ||
real, dimension(2,nder), intent(in) | der, | ||
integer, intent(out) | iret | ||
) |
Add global derivatives to measurement.
[in] | NDER | number of local derivatives |
[in] | LDER | labels for global derivatives |
[in] | DER | local derivatives |
[out] | IRET | number of non zero derivatives added |
Definition at line 532 of file gbltraj.f90.
subroutine gbltraj::gbladl | ( | integer, intent(in) | nder, |
real, dimension(2,nder), intent(in) | der, | ||
integer, intent(out) | iret | ||
) |
Add local derivatives to measurement.
[in] | NDER | number of local derivatives |
[in] | DER | local derivatives |
[out] | IRET | number of non zero derivatives added |
Definition at line 478 of file gbltraj.f90.
subroutine gbltraj::gbladm | ( | double precision, dimension(2,2), intent(in) | proj, |
real, dimension(2), intent(in) | res, | ||
real, dimension(2), intent(in) | prec | ||
) |
Add 2D measurement to current point.
[in] | PROJ | projection matrix of measurement directions into local system (dm/du) |
[in] | RES | residuals (m) |
[in] | PREC | diagonal of inverse covariance matrix |
Definition at line 442 of file gbltraj.f90.
Referenced by test().
subroutine gbltraj::gbladp | ( | double precision, dimension(5,5), intent(in) | ajac, |
integer, intent(out) | ipoint | ||
) |
Add point to trajectory.
[in] | AJAC | jacobian from previous point |
[out] | IPOINT | identifier |
Definition at line 386 of file gbltraj.f90.
Referenced by test().
subroutine gbltraj::gblads | ( | real, dimension(2), intent(in) | res, |
real, dimension(2), intent(in) | prec | ||
) |
Add (thin) scatterer to current point.
Changes local track direction.
[in] | RES | values for initial kinks (in case of iterating) |
[in] | PREC | diagonal of inverse (multiple scattering) covariance matrix |
Definition at line 587 of file gbltraj.f90.
Referenced by test().
subroutine gbltraj::gbladx | ( | integer, intent(in) | ipoint, |
double precision, dimension(*), intent(in) | dprc | ||
) |
Add (inverse covariance matrix from) external seed.
[in] | IPOINT | (signed) point (<0: side towards previous point, >0: side towards next point) |
[in] | DPRC | precision matrix (inverse covariance) from external seed (NP2 double precision values, symmetric storage mode, NP2=(NP+1)*NP/2, NP is number of track parameters: 5 + local par.) |
Definition at line 1404 of file gbltraj.f90.
Referenced by test().
subroutine gbltraj::gblch2 | ( | integer, intent(in) | idwm, |
real, intent(out) | chi2, | ||
real, intent(out) | swgt | ||
) |
Calculate Chi2.
[in] | IDWM | down-weighting method (0-3) |
[out] | CHI2 | Chi2 |
[out] | SWGT | sum of weights |
Definition at line 1048 of file gbltraj.f90.
Referenced by gblfit().
subroutine gbltraj::gblcjc | ( | ) |
Calculate broken lines from point to point jacobians.
Definition at line 256 of file gbltraj.f90.
References gblinu().
Referenced by gblprp().
subroutine gbltraj::gbldat | ( | ) |
subroutine gbltraj::gblder | ( | integer, intent(inout) | ipoint, |
integer, intent(in) | idir, | ||
double precision, dimension(2,2), intent(out) | w, | ||
double precision, dimension(2,2), intent(out) | wj, | ||
double precision, dimension(2), intent(out) | dw | ||
) |
get (matrices and vectors for) derivatives.
[in] | IPOINT | point |
[in] | IDIR | direction |
[out] | W | W (=(+/-)S^-1) |
[out] | WJ | W*J |
[out] | DW | W*d |
Definition at line 941 of file gbltraj.f90.
subroutine gbltraj::gbldmp | ( | ) |
Dump trajectory definition.
Definition at line 624 of file gbltraj.f90.
subroutine gbltraj::gblfit | ( | character (len=*), intent(in) | cdw, |
integer, intent(out) | mrank, | ||
integer, intent(out) | np, | ||
integer, intent(out) | ndf, | ||
real, intent(out) | chi2, | ||
real, intent(out) | wls | ||
) |
Perform fit of trajectory.
Optionally iterate for outlier down-weighting.
[in] | CDW | string defining iterations for outlier down weighting, one char per iteration (C: Cauchy, H: Huber, T: Tukey) |
[out] | MRANK | rank of measurements |
[out] | NP | number of track parameter at given point |
[out] | NDF | degrees of freedom |
[out] | CHI2 | Chi2 |
[out] | WLS | lost measurements: N-sum(weight) |
Definition at line 166 of file gbltraj.f90.
References gblch2(), gblmat(), gblprp(), and sqmibb().
Referenced by test().
subroutine gbltraj::gblini | ( | integer, intent(in) | lprnt, |
integer, intent(in), optional | icoord | ||
) |
Initialize.
[in] | LPRNT | print level |
[in] | ICOORD | coordinate (1: u_1, 2: u_2) to use |
Definition at line 338 of file gbltraj.f90.
Referenced by test().
subroutine gbltraj::gblinu | ( | double precision, dimension(5,5), intent(in) | a, |
double precision, dimension(5,5), intent(out) | b | ||
) |
Calculate offset part of inverse jacobian.
[in] | A | (5*5) matrix A |
[out] | B | (5*5) matrix B with last 2 rows of inverse(A) |
Definition at line 1435 of file gbltraj.f90.
Referenced by gblcjc().
subroutine gbltraj::gbljac | ( | integer, intent(in) | ipoint, |
integer, intent(in) | itrans, | ||
integer, intent(out) | ioff1 | ||
) |
Get jacobian (transposed). broken lines parameter (q/p,..,u_i,..) to local parameter (q/p,alpha,u)
[in] | IPOINT | (signed) point |
[in] | ITRANS | =0 not transposed, =1 transposed |
[out] | IOFF1 | offsets IOFF1,IOFF1+1 needed to define offset and slope at IPOINT |
Definition at line 1165 of file gbltraj.f90.
References gblder().
subroutine gbltraj::gblmat | ( | ) |
subroutine gbltraj::gblmp2 | ( | integer, intent(out) | iret | ) |
generate Millepede-II record
[out] | IRET | number MillePede measurements in record |
Definition at line 1111 of file gbltraj.f90.
References gblprp(), and mille().
Referenced by test().
subroutine gbltraj::gblprp | ( | ) |
subroutine gbltraj::gblres | ( | integer, intent(inout) | ipoint, |
double precision, dimension(*), intent(out) | dpar, | ||
double precision, dimension(*), intent(out) | dcov | ||
) |
Get parameters and covariance matrix at point.
[in] | IPOINT | (signed) point (<0: side towards previous point, >0: side towards next point) |
[out] | DPAR | corrections (NP double precision values) (NP is number of track parameters: 5 + local par.) |
[out] | DCOV | covariance matrix (NP2 double precision values, symmetric storage mode, NP2=(NP+1)*NP/2) |
Definition at line 1328 of file gbltraj.f90.
References dbavat(), dbgax(), and gbljac().
Referenced by test().
integer gbltraj::bandsize |
band size
Definition at line 109 of file gbltraj.f90.
double precision, dimension(maxtracksymmatsize) gbltraj::extseedmat |
external seed (precision matrix)
Definition at line 116 of file gbltraj.f90.
integer gbltraj::extseedpoint |
point with external seed (or 0)
Definition at line 111 of file gbltraj.f90.
integer gbltraj::firstactivecoord |
first active offset coordinate (0: u_1, 1: u_2)
Definition at line 112 of file gbltraj.f90.
real, dimension(sizedatabuffer) gbltraj::floatdata |
float part of data blocks or local/global derivatives
Definition at line 146 of file gbltraj.f90.
integer, dimension(sizedatabuffer) gbltraj::intdata |
integer part of data blocks (lower part, 1..mdat) or local/global derivatives (upper part, mdat+1..mxdat)
Definition at line 144 of file gbltraj.f90.
integer gbltraj::integdatasize |
integrated size of data blocks
Definition at line 142 of file gbltraj.f90.
double precision, dimension(maxtrackpar*maxtrackpar) gbltraj::jactracktofit |
jacobian for transformation fit to track parameter
Definition at line 117 of file gbltraj.f90.
integer gbltraj::lastbandwidth = 0 |
band width from last fit
Definition at line 151 of file gbltraj.f90.
integer gbltraj::lastbordersize = 0 |
border size from last fit
Definition at line 150 of file gbltraj.f90.
integer gbltraj::lastdownweightmethod |
last used down-weighting method
Definition at line 113 of file gbltraj.f90.
integer gbltraj::lastnumfitpar = 0 |
number of fit parameters from last fit
Definition at line 149 of file gbltraj.f90.
integer gbltraj::lastoffset |
last point with offset
Definition at line 105 of file gbltraj.f90.
integer gbltraj::lastscatterer |
last point with scatterer
Definition at line 106 of file gbltraj.f90.
double precision, dimension(maxfitsymmatsize) gbltraj::mata |
(sym.) matrix of linear equation system (A*x=b)
Definition at line 115 of file gbltraj.f90.
integer, parameter gbltraj::maxbandwidth = 10 |
max. band width
Definition at line 89 of file gbltraj.f90.
integer, parameter gbltraj::maxbordersize = 10 |
max. border size
Definition at line 90 of file gbltraj.f90.
integer gbltraj::maxdatasize |
max. integrated size
Definition at line 143 of file gbltraj.f90.
integer, parameter gbltraj::maxfitpar = 250 |
max. number of fit parameters
Definition at line 87 of file gbltraj.f90.
integer, parameter gbltraj::maxfitsymmatsize = (maxFitPar*maxFitPar+maxFitPar)/2 |
Definition at line 88 of file gbltraj.f90.
integer, parameter gbltraj::maxpoints = 1000 |
max. points
Definition at line 93 of file gbltraj.f90.
integer, parameter gbltraj::maxtrackpar = maxBorderSize+5 |
max. number of local track parameters
Definition at line 91 of file gbltraj.f90.
integer, parameter gbltraj::maxtracksymmatsize = (maxTrackPar*maxTrackPar+maxTrackPar)/2 |
Definition at line 92 of file gbltraj.f90.
integer gbltraj::maxusedfitpar = 0 |
max. number of fit parameters used
Definition at line 148 of file gbltraj.f90.
integer gbltraj::numaddlocpar |
number of additional local track parameters
Definition at line 110 of file gbltraj.f90.
integer gbltraj::numcurv |
flag (0/1) for usage of Q/P as fit parameter
Definition at line 108 of file gbltraj.f90.
integer gbltraj::numdatablocks |
number of data blocks with measurements or kinks
Definition at line 141 of file gbltraj.f90.
integer gbltraj::numfitpar |
number of fit parameters
Definition at line 107 of file gbltraj.f90.
integer gbltraj::numkinks |
number of (multiple scattering) kinks
Definition at line 104 of file gbltraj.f90.
integer gbltraj::nummeas |
number (of points) with measurement
Definition at line 101 of file gbltraj.f90.
integer gbltraj::numoffsets |
number (of points) with offsets (as fit parameter)
Definition at line 103 of file gbltraj.f90.
integer gbltraj::numpoints |
number of points
Definition at line 100 of file gbltraj.f90.
integer gbltraj::numscat |
number (of points) with scatterer
Definition at line 102 of file gbltraj.f90.
integer gbltraj::offsetdimension |
dimension of offsets (2: 2D offsets for track in 3D, 1: 1D offsets for track in 2D)
Definition at line 98 of file gbltraj.f90.
list of GblPoints
Definition at line 139 of file gbltraj.f90.
integer gbltraj::printlevel |
print level
Definition at line 97 of file gbltraj.f90.
integer, parameter gbltraj::sizedatabuffer = 10*maxPoints |
max. integrated size of data blocks
Definition at line 94 of file gbltraj.f90.
integer gbltraj::trajlevel |
level of (preparation of) trajectory (fit)
Definition at line 96 of file gbltraj.f90.
double precision, dimension(maxfitpar) gbltraj::vecb |
right hand side of linear equation system (A*x=b)
Definition at line 114 of file gbltraj.f90.