FEDRA emulsion software from the OPERA Collaboration
SKalman< NTR > Class Template Reference

#include <SKalman.hh>

Inheritance diagram for SKalman< NTR >:
Collaboration diagram for SKalman< NTR >:

Public Member Functions

— Constructors —
 SKalman ()
 
 SKalman (const Track &t, const SVertex< NTR > &v)
 
— Track methods —
float x () const
 refitted Track $x$ position (= vertex $x$ position) More...
 
float y () const
 refitted Track $y$ position (= vertex $y$ position) More...
 
float x (float z) const
 refitted Track $x$ position at $z$ More...
 
float y (float z) const
 refitted Track $y$ position at $z$ More...
 
float z () const
 refitted Track $z$ position (= vertex $z$ position) More...
 
float tx () const
 refitted track slope $t_x$ More...
 
float ty () const
 refitted track slope $t_y$ More...
 
float p () const
 refitted momentum More...
 
float pt () const
 refitted transverse Track momentum $p_t$ More...
 
float pz () const
 momentum along More...
 
float chi2 () const
 Kalman $\chi^2$. Use only if you know what it is! More...
 
float phi () const
 refitted azimuthal angle $\phi$ [deg] More...
 
float theta () const
 refitted polar angle $\theta = \cos^{-1}(e_z)$ [deg] More...
 
float eta () const
 refitted rapidity $\eta = -\log\tan(\theta/2.)$ More...
 
int charge () const
 particle charge: -1 for neg. +1 for pos. & neutrals More...
 
float energy (double mass=0.) const
 $E = \sqrt{m^2 + p^2}$ More...
 
float xf (double mass=0.) const
 
float rap (double mass=0.) const
 Rapidity $y = \frac{1}{2}\ln(\frac{E+p_z}{E-p_z})$. More...
 
SVector< double, 3 > xvec () const
 vertex position More...
 
SVector< double, 3 > tvec () const
 $\vec{v} = (t_x,t_y,1.)$ refitted slope vector More...
 
SVector< double, 3 > evec () const
 $\vec{v} = (e_x,e_y,e_z)$ unit vector along refitted track More...
 
SVector< double, 3 > pvec () const
 $\vec{v} = (p_x,p_y,p_z)$ refitted mom. vector More...
 
void collect (vector< Track * > &c) const
 collect pointers More...
 
— Dummy Track functions —
bool isValid () const
 returns always true More...
 
void valid ()
 does nothing More...
 
void invalid ()
 does nothing More...
 
const SMatrix< double, 5 > & COV () const
 returns a 0 matrix More...
 
const SMatrix< double, 5 > & CINV () const
 returns a 0 matrix More...
 
bool propagate (const double z)
 dummy function: do nothing More...
 
unsigned short int ndf () const
 returns always 0 More...
 
float cov_x (double dz=0.) const
 returns 0 More...
 
float cov_y (double dz=0.) const
 returns 0 More...
 
float cov_tx () const
 returns 0 More...
 
float cov_ty () const
 returns 0 More...
 
float cov_p () const
 returns 0 More...
 
— Operators —
bool operator== (const Track &rhs) const
 compare Track pointers More...
 
— Access methods —
const SMatrix< double, 3 > & KCOV () const
 
const SMatrix< double, 3 > & KCINV () const
 
const SVector< double, 3 > & xv () const
 
const SMatrix< double, 3 > & F () const
 
const SMatrix< double, 3 > & ES () const
 
const SMatrix< double, 3 > & DS () const
 
- Public Member Functions inherited from Track
void addGrain (Grain gr)
 
bool evaluateEstimators ()
 
unsigned int getAreaSum () const
 
double getBottomZ () const
 
unsigned short getCount () const
 
double getErrX () const
 
double getErrY () const
 
double getErrZ () const
 
std::vector< GraingetGrains () const
 
double getSigma () const
 
double getSX () const
 
double getSY () const
 
double getSZ () const
 
double getTopZ () const
 
double getX () const
 
double getY () const
 
double getZ () const
 
void setAreaSum (unsigned int areaSum)
 
void setBottomZ (double z)
 
void setCount (unsigned short count)
 
void setErrX (double errx)
 
void setErrY (double erry)
 
void setErrZ (double errz)
 
void setSigma (double sigma)
 
void setSX (double sx)
 
void setSY (double sy)
 
void setSZ (double sz)
 
void setTopZ (double z)
 
void setX (double x)
 
void setY (double y)
 
void setZ (double z)
 
 Track ()
 
 ~Track ()
 

— Expert methods —

const Tracktrack_
 
const SVertex< NTR > * vtx_
 
double k_tx
 
double k_ty
 
double k_chi2
 
SVector< double, 3 > k_qvs
 
SVector< double, 3 > k_xv
 
SVector< double, 3 > k_qv
 
SMatrix< double, 3 > k_C
 
SMatrix< double, 3 > k_CINV
 
SVector< double, 5 > k_pc
 
SMatrix< double, 3, 5 > k_WBG
 
SMatrix< double, 3 > k_W
 
SMatrix< double, 3 > k_F
 
SMatrix< double, 3 > k_ES
 
SMatrix< double, 3 > k_DS
 
bool filter (const unsigned int I)
 filter step More...
 
bool smooth ()
 smoother step More...
 
bool smoothC ()
 cov. matrices of smoothed parameters More...
 
std::ostream & print (std::ostream &) const
 used by operator<<() More...
 

Additional Inherited Members

- Public Attributes inherited from Track
double dz
 
int Field
 
float FirstZ
 
TVector Intercept
 
TVector InterceptErrors
 
float LastZ
 
double meanDeltaTheta3D
 
double meanDeltaThetaXZ
 
double meanDeltaThetaYZ
 
double meanDistanceClustersTo3DLine
 
double meanGapClusterToCluster
 
double mx
 
double mxSigma
 
double my
 
double mySigma
 
BYTE * pCorrection
 
char * pCorrection
 
unsigned PointsN
 
TVectorpPoints
 
double qx
 
double qy
 
double rx
 
double ry
 
float Sigma
 
double sigmaDeltaTheta3D
 
double sigmaDeltaThetaXZ
 
double sigmaDeltaThetaYZ
 
TVector Slope
 
TVector SlopeErrors
 
boolean Valid
 
bool Valid
 
double xChi2
 
double yChi2
 

Detailed Description

template<unsigned int NTR>
class SKalman< NTR >

Fixed size Kalman filter class.

Author
T. Glebe

Constructor & Destructor Documentation

◆ SKalman() [1/2]

template<unsigned int NTR>
SKalman< NTR >::SKalman ( )

◆ SKalman() [2/2]

template<unsigned int NTR>
SKalman< NTR >::SKalman ( const Track t,
const SVertex< NTR > &  v 
)

Member Function Documentation

◆ charge()

template<unsigned int NTR>
int SKalman< NTR >::charge ( ) const

particle charge: -1 for neg. +1 for pos. & neutrals

◆ chi2()

template<unsigned int NTR>
float SKalman< NTR >::chi2 ( ) const

Kalman $\chi^2$. Use only if you know what it is!

◆ CINV()

template<unsigned int NTR>
const SMatrix< double, 5 > & SKalman< NTR >::CINV ( ) const

returns a 0 matrix

◆ collect()

template<unsigned int NTR>
void SKalman< NTR >::collect ( vector< Track * > &  c) const

collect pointers

◆ COV()

template<unsigned int NTR>
const SMatrix< double, 5 > & SKalman< NTR >::COV ( ) const

returns a 0 matrix

◆ cov_p()

template<unsigned int NTR>
float SKalman< NTR >::cov_p ( ) const

returns 0

◆ cov_tx()

template<unsigned int NTR>
float SKalman< NTR >::cov_tx ( ) const

returns 0

◆ cov_ty()

template<unsigned int NTR>
float SKalman< NTR >::cov_ty ( ) const

returns 0

◆ cov_x()

template<unsigned int NTR>
float SKalman< NTR >::cov_x ( double  dz = 0.) const

returns 0

◆ cov_y()

template<unsigned int NTR>
float SKalman< NTR >::cov_y ( double  dz = 0.) const

returns 0

◆ DS()

template<unsigned int NTR>
const SMatrix< double, 3 > & SKalman< NTR >::DS ( ) const

◆ energy()

template<unsigned int NTR>
float SKalman< NTR >::energy ( double  mass = 0.) const

$E = \sqrt{m^2 + p^2}$

◆ ES()

template<unsigned int NTR>
const SMatrix< double, 3 > & SKalman< NTR >::ES ( ) const

◆ eta()

template<unsigned int NTR>
float SKalman< NTR >::eta ( ) const

refitted rapidity $\eta = -\log\tan(\theta/2.)$

◆ evec()

template<unsigned int NTR>
SVector< double, 3 > SKalman< NTR >::evec ( ) const

$\vec{v} = (e_x,e_y,e_z)$ unit vector along refitted track

◆ F()

template<unsigned int NTR>
const SMatrix< double, 3 > & SKalman< NTR >::F ( ) const

◆ filter()

template<unsigned int NTR>
bool SKalman< NTR >::filter ( const unsigned int  I)

filter step

◆ invalid()

template<unsigned int NTR>
void SKalman< NTR >::invalid ( )

does nothing

◆ isValid()

template<unsigned int NTR>
bool SKalman< NTR >::isValid ( ) const

returns always true

◆ KCINV()

template<unsigned int NTR>
const SMatrix< double, 3 > & SKalman< NTR >::KCINV ( ) const

◆ KCOV()

template<unsigned int NTR>
const SMatrix< double, 3 > & SKalman< NTR >::KCOV ( ) const

◆ ndf()

template<unsigned int NTR>
unsigned short int SKalman< NTR >::ndf ( ) const

returns always 0

◆ operator==()

template<unsigned int NTR>
bool SKalman< NTR >::operator== ( const Track rhs) const

compare Track pointers

◆ p()

template<unsigned int NTR>
float SKalman< NTR >::p ( ) const

refitted momentum

◆ phi()

template<unsigned int NTR>
float SKalman< NTR >::phi ( ) const

refitted azimuthal angle $\phi$ [deg]

◆ print()

template<unsigned int NTR>
std::ostream & SKalman< NTR >::print ( std::ostream &  ) const

used by operator<<()

◆ propagate()

template<unsigned int NTR>
bool SKalman< NTR >::propagate ( const double  z)

dummy function: do nothing

◆ pt()

template<unsigned int NTR>
float SKalman< NTR >::pt ( ) const

refitted transverse Track momentum $p_t$

◆ pvec()

template<unsigned int NTR>
SVector< double, 3 > SKalman< NTR >::pvec ( ) const

$\vec{v} = (p_x,p_y,p_z)$ refitted mom. vector

◆ pz()

template<unsigned int NTR>
float SKalman< NTR >::pz ( ) const

momentum along

$z$: $p / \sqrt{t_x^2+t_y^2+1}$

◆ rap()

template<unsigned int NTR>
float SKalman< NTR >::rap ( double  mass = 0.) const

Rapidity $y = \frac{1}{2}\ln(\frac{E+p_z}{E-p_z})$.

◆ smooth()

template<unsigned int NTR>
bool SKalman< NTR >::smooth ( )

smoother step

◆ smoothC()

template<unsigned int NTR>
bool SKalman< NTR >::smoothC ( )

cov. matrices of smoothed parameters

◆ theta()

template<unsigned int NTR>
float SKalman< NTR >::theta ( ) const

refitted polar angle $\theta = \cos^{-1}(e_z)$ [deg]

◆ tvec()

template<unsigned int NTR>
SVector< double, 3 > SKalman< NTR >::tvec ( ) const

$\vec{v} = (t_x,t_y,1.)$ refitted slope vector

◆ tx()

template<unsigned int NTR>
float SKalman< NTR >::tx ( ) const

refitted track slope $t_x$

◆ ty()

template<unsigned int NTR>
float SKalman< NTR >::ty ( ) const

refitted track slope $t_y$

◆ valid()

template<unsigned int NTR>
void SKalman< NTR >::valid ( )

does nothing

◆ x() [1/2]

template<unsigned int NTR>
float SKalman< NTR >::x ( ) const

refitted Track $x$ position (= vertex $x$ position)

◆ x() [2/2]

template<unsigned int NTR>
float SKalman< NTR >::x ( float  z) const

refitted Track $x$ position at $z$

◆ xf()

template<unsigned int NTR>
float SKalman< NTR >::xf ( double  mass = 0.) const

$x_f = (p_z - E(m)\cdot\sqrt{1 - \frac{2m_p}{920 GeV/c + m_p}})/m_p$, $m_p$ = Proton mass, $m$ = Particle mass

◆ xv()

template<unsigned int NTR>
const SVector< double, 3 > & SKalman< NTR >::xv ( ) const

◆ xvec()

template<unsigned int NTR>
SVector< double, 3 > SKalman< NTR >::xvec ( ) const

vertex position

◆ y() [1/2]

template<unsigned int NTR>
float SKalman< NTR >::y ( ) const

refitted Track $y$ position (= vertex $y$ position)

◆ y() [2/2]

template<unsigned int NTR>
float SKalman< NTR >::y ( float  z) const

refitted Track $y$ position at $z$

◆ z()

template<unsigned int NTR>
float SKalman< NTR >::z ( ) const

refitted Track $z$ position (= vertex $z$ position)

Member Data Documentation

◆ k_C

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_C
private

◆ k_chi2

template<unsigned int NTR>
double SKalman< NTR >::k_chi2
private

◆ k_CINV

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_CINV
private

◆ k_DS

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_DS
private

◆ k_ES

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_ES
private

◆ k_F

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_F
private

◆ k_pc

template<unsigned int NTR>
SVector<double,5> SKalman< NTR >::k_pc
private

◆ k_qv

template<unsigned int NTR>
SVector<double,3> SKalman< NTR >::k_qv
private

◆ k_qvs

template<unsigned int NTR>
SVector<double,3> SKalman< NTR >::k_qvs
private

◆ k_tx

template<unsigned int NTR>
double SKalman< NTR >::k_tx
private

◆ k_ty

template<unsigned int NTR>
double SKalman< NTR >::k_ty
private

◆ k_W

template<unsigned int NTR>
SMatrix<double,3> SKalman< NTR >::k_W
private

◆ k_WBG

template<unsigned int NTR>
SMatrix<double,3,5> SKalman< NTR >::k_WBG
private

◆ k_xv

template<unsigned int NTR>
SVector<double,3> SKalman< NTR >::k_xv
private

◆ track_

template<unsigned int NTR>
const Track* SKalman< NTR >::track_
private

◆ vtx_

template<unsigned int NTR>
const SVertex<NTR>* SKalman< NTR >::vtx_
private

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