Track parametrization for forward tracking
Updated on Thu, 2017-06-29 16:06 by jwebb. Originally created by perev on 2017-06-28 19:30.
Good track parametrization is important.
==============================
In Sti & Stv track represented: X,Y,Z,Psi,Ptin,TanL
It is good for eta about 1 and bad for bigger eta.
Why?
1. Too big tan(lambda)
2. Unstable Psi
The same story for Psi. Near track direction along Z axis Psi is very unstable.
Direction along Z axis is a singularity. A linearisation near singularity works badly,
but any Fit is based on linearity.
3. Too big 1./Pt
For forward tracking 1./Pt is also near singularity and tends to infinity.
4. Parametrisation is extremely inconvenient in the cases where magnetic field is not along Z axis and is not constant.
After few unsuccessful attempts I found the GOOD parametrization.
Looking at RungeKutta algorithm I found the parametrization which is used there:
X,Y,Z,Dx,Dy,Dz,Pinv
Where Dx,Dy,Dz direct cosines of the track
Pinv : -q/Ptot
These parameters have no singularities at all.
They are convenient for arbitrary magnetic field
Now what was done and what is still needed to do
1. THelixTrack which is used in Sti & Stv has the same problems.
New class THelix3d was developed and tested, which is working for arbitrary but constant magnetic field
1.1 .Matrix of derivatives class THDer3d_t( for THelix3d) was developed and tested.
1.2 Error matrix class THEmx3d_t ( for THelix3d) was developed and tested.
2. TRungeKutta class, for arbitrary magnetic field, was implemented (code of grkuta in Geant3), and tested
2.1. THDer3d_t class was applied for TRungeKutta derivatives and tested
2.2. THEmx3d_t class was applied for TRungeKutta errors and tested
3 StvUtil library was redeveloped for new parametrization;
3.1 Old parametrization was replaced by the new one;
3.2 THDer3d_t derivative matrix was applied for Stv track derivatives and tested
3.3 THEmx3d_t error matrix was applied for Stv track errors and tested
3.4 Stv converter to radial parameters & errors (StvRadial) representation, used in StEvent was redesigned for
new Stv parameters & error representation
3.5 Derivatives for StvRadial were tested
3.6 Errors for StvRadial were tested
3.7 Stv converter to impact parameters & errors representation (StvImpact), used in StEvent was
redesigned for new Stv parameters & error representation.
3.8 StvImpact derivatives were tested. Test failed yet.
3.6 StvTrack error propagation implemented but not tested yet
When StvUtil will be finished (few days), then full Stv will be recompiled with new StvUtil and modified.
This job will be easier, because all mathematical tests already (almost) done
Examples of testing StvRadial errors
Good track parametrization is important.
==============================
In Sti & Stv track represented: X,Y,Z,Psi,Ptin,TanL
It is good for eta about 1 and bad for bigger eta.
Why?
1. Too big tan(lambda)
Eta | tanL | |
---|---|---|
0 | 0 | |
1 | 1.1 | |
3 | 10 | |
5 | 74 | |
10 | 10000 |
2. Unstable Psi
The same story for Psi. Near track direction along Z axis Psi is very unstable.
Direction along Z axis is a singularity. A linearisation near singularity works badly,
but any Fit is based on linearity.
3. Too big 1./Pt
For forward tracking 1./Pt is also near singularity and tends to infinity.
4. Parametrisation is extremely inconvenient in the cases where magnetic field is not along Z axis and is not constant.
After few unsuccessful attempts I found the GOOD parametrization.
Looking at RungeKutta algorithm I found the parametrization which is used there:
X,Y,Z,Dx,Dy,Dz,Pinv
Where Dx,Dy,Dz direct cosines of the track
Pinv : -q/Ptot
These parameters have no singularities at all.
They are convenient for arbitrary magnetic field
Now what was done and what is still needed to do
1. THelixTrack which is used in Sti & Stv has the same problems.
New class THelix3d was developed and tested, which is working for arbitrary but constant magnetic field
1.1 .Matrix of derivatives class THDer3d_t( for THelix3d) was developed and tested.
1.2 Error matrix class THEmx3d_t ( for THelix3d) was developed and tested.
2. TRungeKutta class, for arbitrary magnetic field, was implemented (code of grkuta in Geant3), and tested
2.1. THDer3d_t class was applied for TRungeKutta derivatives and tested
2.2. THEmx3d_t class was applied for TRungeKutta errors and tested
3 StvUtil library was redeveloped for new parametrization;
3.1 Old parametrization was replaced by the new one;
3.2 THDer3d_t derivative matrix was applied for Stv track derivatives and tested
3.3 THEmx3d_t error matrix was applied for Stv track errors and tested
3.4 Stv converter to radial parameters & errors (StvRadial) representation, used in StEvent was redesigned for
new Stv parameters & error representation
3.5 Derivatives for StvRadial were tested
3.6 Errors for StvRadial were tested
3.7 Stv converter to impact parameters & errors representation (StvImpact), used in StEvent was
redesigned for new Stv parameters & error representation.
3.8 StvImpact derivatives were tested. Test failed yet.
3.6 StvTrack error propagation implemented but not tested yet
When StvUtil will be finished (few days), then full Stv will be recompiled with new StvUtil and modified.
This job will be easier, because all mathematical tests already (almost) done
Examples of testing StvRadial errors
»
- perev's blog
- Login or register to post comments