Module kalman_mod
module kalman_mod
! Uses
use precision_mod
use physicalconstants_mod
use det_geom_mod
use chambers_mod
use filters_mod
use tdc_mod
use unp_mod
use matrix_mod
use hists_mod
use namelist_mod
use hitpos_struct_mod
use hitpos_mod
use pattern_mod
use leftright_mod
use timezero_mod
use Calibrations_mod, ONLY: BField
! Types
public type KalHit_type
private type perm_type
! Variables
type (KalHit_type), public, TARGET, dimension (DCMaxAllowedHits) :: KalHit
real (kind=r4), private, DIMENSION(5,5) :: As
real (kind=r4), private, DIMENSION(2,1) :: rp
real (kind=r4), private, DIMENSION(2,1) :: rf
real (kind=r4), private, DIMENSION(2,1) :: rs
real (kind=r4), private, DIMENSION(5,2) :: Kf
real (kind=r4), private, DIMENSION(2,2) :: RCOVs
real (kind=r4), private :: Chi2sTot
logical, public :: KalFail
integer (kind=i4), private :: IterateCluster = 0
integer (kind=i4), private :: IterateTime = 0
type (KalHit_type), private, POINTER :: hitP
type (KalHit_type), private, POINTER :: nextP
real (kind=r4), private :: Suz
real (kind=r4), private :: Svz
real (kind=r4), private :: Uzero
real (kind=r4), private :: Vzero
real (kind=r4), private :: Zzero
type (window_type), private, POINTER :: windowP
real (kind=r4), public, DIMENSION(10), TARGET :: TrackParam
integer (kind=i4), private :: KalTest
real, private :: Chi2Save
real (kind=r4), private, PARAMETER :: SigmaBig = 500.E-04
integer (kind=i4), private :: nLRPerm
integer (kind=i4), private, POINTER :: nhitsP
integer (kind=i4), private, PARAMETER :: MaxPerm = 1000
type (perm_type), private, DIMENSION(0:MaxPerm) :: Perm
logical, private :: UsePerm
integer (kind=i4), private :: nHitsClean
integer (kind=i4), private :: NoiseExclude
real (kind=r4), private :: Chi2sNorm
real (kind=r4), private :: TrackTheta
real (kind=r4), private :: TrackPhi
real (kind=r4), private :: TrackBeta
real (kind=r4), private :: TrackVelocity
! Subroutines and functions
public subroutine KalFit (iWindow)
private subroutine KalInit ()
private subroutine KalFitCluster ()
private subroutine KalFitTime (iWindow)
private subroutine KalFilter ()
private subroutine KalSmooth ()
private subroutine KalTrackModel (deltaZ)
private subroutine PhysicsParams ()
private subroutine KalHists ()
end module kalman_mod
Description of Types
KalHit_type
public type KalHit_type
real (kind=r4), DIMENSION(5,1) :: Xp
real (kind=r4), DIMENSION(5,1) :: Xf
real (kind=r4), DIMENSION(5,1) :: Xs
real (kind=r4), DIMENSION(5,5) :: Cp
real (kind=r4), DIMENSION(5,5) :: Cf
real (kind=r4), DIMENSION(5,5) :: Cs
real (kind=r4), DIMENSION(5,5) :: Ft
real (kind=r4), DIMENSION(2,1) :: Xm
real (kind=r4), DIMENSION(2,2) :: Vcov
real (kind=r4), DIMENSION(2,5) :: Hm
real (kind=r4), DIMENSION(1,1) :: Chi2s
end type KalHit_type
perm_type
private type perm_type
character, DIMENSION(DCMaxAllowedHits) :: LCR
end type perm_type
Description of Variables
KalHit
type (KalHit_type), public, TARGET, dimension (DCMaxAllowedHits) :: KalHit
As
real (kind=r4), private, DIMENSION(5,5) :: As
rp
real (kind=r4), private, DIMENSION(2,1) :: rp
rf
real (kind=r4), private, DIMENSION(2,1) :: rf
rs
real (kind=r4), private, DIMENSION(2,1) :: rs
Kf
real (kind=r4), private, DIMENSION(5,2) :: Kf
RCOVs
real (kind=r4), private, DIMENSION(2,2) :: RCOVs
Chi2sTot
real (kind=r4), private :: Chi2sTot
KalFail
logical, public :: KalFail
IterateCluster
integer (kind=i4), private :: IterateCluster = 0
IterateTime
integer (kind=i4), private :: IterateTime = 0
hitP
type (KalHit_type), private, POINTER :: hitP
nextP
type (KalHit_type), private, POINTER :: nextP
Suz
real (kind=r4), private :: Suz
Svz
real (kind=r4), private :: Svz
Uzero
real (kind=r4), private :: Uzero
Vzero
real (kind=r4), private :: Vzero
Zzero
real (kind=r4), private :: Zzero
windowP
type (window_type), private, POINTER :: windowP
TrackParam
real (kind=r4), public, DIMENSION(10), TARGET :: TrackParam
KalTest
integer (kind=i4), private :: KalTest
Chi2Save
real, private :: Chi2Save
SigmaBig
real (kind=r4), private, PARAMETER :: SigmaBig = 500.E-04
nLRPerm
integer (kind=i4), private :: nLRPerm
nhitsP
integer (kind=i4), private, POINTER :: nhitsP
MaxPerm
integer (kind=i4), private, PARAMETER :: MaxPerm = 1000
Perm
type (perm_type), private, DIMENSION(0:MaxPerm) :: Perm
UsePerm
logical, private :: UsePerm
nHitsClean
integer (kind=i4), private :: nHitsClean
NoiseExclude
integer (kind=i4), private :: NoiseExclude
Chi2sNorm
real (kind=r4), private :: Chi2sNorm
TrackTheta
real (kind=r4), private :: TrackTheta
TrackPhi
real (kind=r4), private :: TrackPhi
TrackBeta
real (kind=r4), private :: TrackBeta
TrackVelocity
real (kind=r4), private :: TrackVelocity
Description of Subroutines and Functions
KalFit
public subroutine KalFit (iWindow)
integer (kind=i4) :: iWindow
! Calls: HF1, HitCluster, KalFitCluster, KalFitTime, KalHists, KalInit, LeftRightGeom, LeftRightInit, LeftRightPerm, PhysicsParams, kerror
end subroutine KalFit
KalInit
private subroutine KalInit ()
end subroutine KalInit
KalFitCluster
private subroutine KalFitCluster ()
! Calls: KalFilter, KalSmooth, kerror
end subroutine KalFitCluster
KalFitTime
private subroutine KalFitTime (iWindow)
integer (kind=i4) :: iWindow
! Calls: HitTime, KalFilter, KalSmooth, PhysicsParams, kerror
end subroutine KalFitTime
KalFilter
private subroutine KalFilter ()
! Calls: KalTrackModel, kerror
end subroutine KalFilter
KalSmooth
private subroutine KalSmooth ()
end subroutine KalSmooth
KalTrackModel
private subroutine KalTrackModel (deltaZ)
real :: deltaZ
end subroutine KalTrackModel
PhysicsParams
private subroutine PhysicsParams ()
end subroutine PhysicsParams
KalHists
private subroutine KalHists ()
! Calls: HF1, HF2
end subroutine KalHists