Bo LI
Kalman filter algorithm for tracking 2 Kalman filter prediction provides a good criterion for hit selection; Kalman filter accumulates hit information and calculates the track parameters; So it can combine track finding and track fitting. δχ 2 is reasonable, accept hit δ χ 2 is bigger than cut, abandon hit measurement prediction K:gain matrix System equation and measurement equation a: state vector f: propagation function m: measurement h: projection function w: system noise ε: measurement error prediction update C:covariance of S.V.
Track models 3 state vector 2D straight track transfer matrix projection matrix State vector Despite of different track model, the way for adding a hit into track is the same: track following method d ρ : the distance beteen the helix and the hit in x-y plane φ 0 : the azimuthal angle of the hit with respect to the helix center κ : Q / P t d z : the distance between the helix and the hit in the z direction tan λ: the angle of the helix to the x-y plane For more about Kalman filter and helix model, please see KalTest manual:
The classes in tracking processor 4 marlin::Processor AttKalTrack virtual GetNumberOfHits() virtual RemoveHits(); virtual FindTrack() virtual SearchHit() virtual SearchTrack()=0; virtual Reset()=0; virtual Create()=0; virtual AddAndFilter()=0; virtual GetType ()=0; virtual GetDeltaChi2()=0; TPCHitDomain SetDomain() SkipDomain() SetRange() GetModule() GetRow() GetRangeOfRow() TPCHitMap FillEventHits ( ) RemoveHits () Clear () empty () GetHitsInDomain() GetFirstHit () GetHitPosition () TrackMakingKalmanFilterProcessor string _InputTrackerHitsCollectionName; string _outputTracksCollectionName; int _minTrackHits; int _maxSkipRows; int _trackType; map * _moduleorder; TPCParameters* _tpcparameters; LCCollectionVec* _tpcTracksCollection; TPCHitMap* _hitmap; AttKalTrack* _theKalTrackPtr; KalTest TKalTrack HeliKalTrack StraightKalTrack
Multi-module Transfer track between modules: Hit Add a step, get a roughly predicted hit. Then get the module ID. Module Next module This case will need more consideration in future
Straight line reconstruction minTrackHits=10 minTrackHits=60 y
Helix reconstruction P t =5GevP t =-5Gev yz y x
Magnetic field tool in MarlinTPC : GlobalFieldProcessor:: get_global_magnetic_field(x) Field Cylindrical2/3DMagneticField For making use of current track model in KalTest, a coordinate system rotation is needed for non-uniform magnetic field: Non-uniform magnetic field x y z x’ y’ z’ rotation
Non-uniform magnetic field(Cont.) State vector: Hit position: Covariance of state vector: Recalculate by rotation Kalman filter
Summary Kalman filter based MarlinTPC processor has been developed for multi module tracking – including straight line and helix. The code has been tested by MC data, and the first version is committed to MarlinTPC trunk; The solution to non-uniform magnetic field is decided. Next work is to implement it in KalTest