|
BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
|
Kalman filter mother particle fitter for the BM@N detector. More...
#include <BmnMotherFitterPart.h>
Static Public Member Functions | |
| static BmnMotherFitterPart * | Instance () |
| get singleton instance | |
| static BmnMotherFitterPart * | Instance (const char *name, const char *title="FAIR Task") |
| get singleton instance | |
| static BmnMotherFitterPart * | Instance () |
| get singleton instance | |
| static BmnMotherFitterPart * | Instance (const char *name, const char *title="FAIR Task") |
| get singleton instance | |
Protected Member Functions | |
| virtual InitStatus | Init () |
| virtual InitStatus | ReInit () |
| virtual void | Finish () |
| virtual | ~BmnMotherFitterPart () |
| Destructor. | |
| virtual InitStatus | Init () |
| virtual InitStatus | ReInit () |
| virtual void | Finish () |
| virtual | ~BmnMotherFitterPart () |
| Destructor. | |
Private Member Functions | |
| BmnMotherFitterPart () | |
| Default ctor. | |
| BmnMotherFitterPart (const char *name, const char *title="FAIR Task") | |
| Ctor. | |
| Bool_t | EvalVertex (vector< BmnParticle * > vDaught) |
| Bool_t | Smooth (vector< BmnParticle * > vDaught) |
| Bool_t | ComputeAB0 (const TMatrixD &xk0, const BmnParticle &part, TMatrixD &a, TMatrixD &b, TMatrixD &ck0, Bool_t flag) |
| TVector3 | Parabola (TVector3 &pos0, TVector3 &pos1, TVector3 &pos2) |
| BmnMotherFitterPart () | |
| Default ctor. | |
| BmnMotherFitterPart (const char *name, const char *title="FAIR Task") | |
| Ctor. | |
| Bool_t | EvalVertex (vector< BmnParticle * > vDaught) |
| Bool_t | Smooth (vector< BmnParticle * > vDaught) |
| Bool_t | ComputeAB0 (const TMatrixD &xk0, const BmnParticle &part, TMatrixD &a, TMatrixD &b, TMatrixD &ck0, Bool_t flag) |
| TVector3 | Parabola (TVector3 &pos0, TVector3 &pos1, TVector3 &pos2) |
Static Private Member Functions | |
| static void | DestroyInstance () |
| static void | DestroyInstance () |
Private Attributes | |
| Double_t | fieldConst |
| mag. field constant | |
| Double_t | fVtx [3] |
| decay vertex position | |
| TMatrixD | fCovar |
| covariance matrix | |
| TH1D * | fTestHist |
| histogram for testing | |
| CbmKF * | fKF |
Static Private Attributes | |
| static BmnMotherFitterPart * | fgMF = 0x0 |
Kalman filter mother particle fitter for the BM@N detector (using BmnParticle).
(using BmnParticle)
Definition at line 27 of file BmnMotherFitterPart.h.
|
protectedvirtual |
Destructor
Definition at line 85 of file BmnMotherFitterPart.cxx.
|
private |
Default constructor
Definition at line 35 of file BmnMotherFitterPart.cxx.
References fCovar, fKF, and CbmKF::Instance().
Referenced by Instance(), Instance(), and Parabola().
|
private |
Constructor
Definition at line 46 of file BmnMotherFitterPart.cxx.
References fCovar, fgMF, fKF, and CbmKF::Instance().
|
protectedvirtual |
|
private |
|
private |
| Double_t BmnMotherFitterPart::BuildMother | ( | BmnParticle * | mother, |
| vector< BmnParticle * > & | vDaught ) |
Build mother particle from daughters which were smoothed according to the decay vertex constraint (after FindVertex)
Definition at line 150 of file BmnMotherFitterPart.cxx.
References BmnParticle::AddDaughter(), ComputeAandB(), ComputeQmatr(), BmnParticle::FillJ(), BmnParticle::FillJinv(), FindVertex(), BmnParticle::GetA(), BmnParticle::GetB(), BmnParticle::GetCharge(), GetCovariance(), BmnParticle::GetE(), BmnParticle::GetIndx(), BmnParticle::GetJ(), BmnParticle::GetJinv(), BmnParticle::GetMass(), BmnParticle::GetNDF(), BmnParticle::Getx(), i, Instance(), TMatrixT< class Element >::Invert(), TMatrixT< Double_t >::kMult, TMatrixT< Double_t >::kTransposed, TMatrixT< Double_t >::kTransposeMult, TVector3::Mag(), BmnParticle::Momentum3(), BmnParticle::ParamsAtDca(), BmnParticle::SetCharge(), BmnParticle::SetChi2(), BmnParticle::SetG(), BmnParticle::SetMass(), BmnParticle::SetNDF(), BmnParticle::Setq(), BmnParticle::Setx(), BmnParticle::SetZ(), TMath::Sqrt(), TVector3::X(), TVector3::Y(), and TVector3::Z().
Referenced by BmnParticle::BuildMother().
| Double_t BmnMotherFitterPart::BuildMother | ( | BmnParticle * | mother, |
| vector< BmnParticle * > & | vDaught ) |
| Double_t BmnMotherFitterPart::Chi2Vertex | ( | BmnParticle * | part, |
| const CbmVertex * | vtx ) |
Compute Chi2 w.r.t. vertex
Definition at line 1025 of file BmnMotherFitterPart.cxx.
References ComputeAandB(), CbmVertex::CovMatrix(), BmnParticle::GetG(), BmnParticle::GetMeas(), CbmVertex::GetX(), CbmVertex::GetY(), CbmVertex::GetZ(), TMatrixT< class Element >::Invert(), TMatrixTSym< class Element >::Invert(), TMatrixT< Double_t >::kMult, TMatrixT< Double_t >::kTransposeMult, m, and TMatrixTSym< class Element >::SetMatrixArray().
Referenced by BmnParticle::Chi2Vertex().
| Double_t BmnMotherFitterPart::Chi2Vertex | ( | BmnParticle * | part, |
| const CbmVertex * | vtx ) |
| Bool_t BmnMotherFitterPart::ComputeAandB | ( | const TMatrixD & | xk0, |
| const BmnParticle & | part, | ||
| TMatrixD & | a, | ||
| TMatrixD & | b, | ||
| TMatrixD & | ck0, | ||
| Bool_t | flag = kTRUE ) |
Compute matrices of derivatives w.r.t. vertex coordinates and particle momentum
Definition at line 695 of file BmnMotherFitterPart.cxx.
References TMath::Abs(), ComputeAB0(), CbmKFTrackInterface::Extrapolate(), BmnParticle::GetCharge(), CbmKFTrack::GetCovMatrix(), BmnParticle::GetKFTrack(), TMatrixT< class Element >::GetMatrixArray(), CbmKFTrack::GetTrack(), BmnParticle::GetZ0(), i, CbmKFMath::indexS(), TMatrixT< Double_t >::kMult, CbmKFTrackInterface::Propagate(), TMath::Sign(), and TMath::Sqrt().
Referenced by BuildMother(), Chi2Vertex(), FindVertex(), and Smooth().
| Bool_t BmnMotherFitterPart::ComputeAandB | ( | const TMatrixD & | xk0, |
| const BmnParticle & | part, | ||
| TMatrixD & | a, | ||
| TMatrixD & | b, | ||
| TMatrixD & | ck0, | ||
| Bool_t | flag = kTRUE ) |
|
private |
Compute matrices of derivatives w.r.t. vertex coordinates and particle momentum (for neutrals)
Definition at line 812 of file BmnMotherFitterPart.cxx.
References TMath::Abs(), CbmKFTrackInterface::Extrapolate(), BmnParticle::GetKFTrack(), TMatrixT< class Element >::GetMatrixArray(), BmnParticle::GetMeas(), CbmKFTrack::GetTrack(), BmnParticle::GetZ0(), i, TMatrixT< Double_t >::kMult, TMath::Max(), CbmKFTrackInterface::Propagate(), and TMath::Sign().
Referenced by ComputeAandB().
|
private |
| TMatrixD BmnMotherFitterPart::ComputeQmatr | ( | vector< BmnParticle * > | vDaught | ) |
Compute matrix Q = covariance cov(qk,qj) Qkj = Wk*Bkt*Gk*Ak*C*Ajt*Gj*Bj*Wj = Wk*Bkt*Gk*Ak*(-E), k!=j Qii = D
Definition at line 946 of file BmnMotherFitterPart.cxx.
References BmnParticle::GetA(), BmnParticle::GetB(), BmnParticle::GetCharge(), BmnParticle::GetD(), BmnParticle::GetE(), BmnParticle::GetG(), BmnParticle::GetJ(), BmnParticle::GetW(), i, TMatrixT< Double_t >::kMult, TMatrixT< Double_t >::kTransposed, and TMatrixT< Double_t >::kTransposeMult.
Referenced by BuildMother().
| TMatrixD BmnMotherFitterPart::ComputeQmatr | ( | vector< BmnParticle * > | vDaught | ) |
|
inlinestaticprivate |
Definition at line 68 of file BmnMotherFitterPart.h.
References fgMF.
Referenced by Instance(), and Instance().
|
inlinestaticprivate |
Definition at line 68 of file BmnMotherFitterPart.h.
References fgMF.
|
private |
Evaluate decay vertex as average value of PCAs of particle pair combinations. Distances between particles vs Z are approximated by parabolas.
Definition at line 340 of file BmnMotherFitterPart.cxx.
References TMath::Abs(), fTestHist, fVtx, BmnParticle::GetKFTrack(), CbmKFTrack::GetTrack(), CbmKFTrack::GetTrackParam(), BmnParticle::GetXY(), TMath::Max(), TMath::Min(), TPad::Modified(), CbmKFTrackInterface::Propagate(), TCanvas::Update(), and z.
Referenced by FindVertex().
|
private |
|
virtual |
Definition at line 143 of file BmnMotherFitterPart.cxx.
|
virtual |
|
inline |
Definition at line 54 of file BmnMotherFitterPart.h.
References fieldConst.
|
inline |
Definition at line 54 of file BmnMotherFitterPart.h.
References fieldConst.
| Double_t BmnMotherFitterPart::FindVertex | ( | vector< BmnParticle * > | vDaught, |
| TVector3 & | vtx ) |
Kalman filter based secondary vertex fitter
Definition at line 454 of file BmnMotherFitterPart.cxx.
References ComputeAandB(), EvalVertex(), fCovar, fVtx, BmnParticle::GetG(), BmnParticle::GetMeas(), i, TMatrixT< class Element >::Invert(), TMatrixT< Double_t >::kInverted, TMatrixT< Double_t >::kMult, TMatrixT< Double_t >::kTransposeMult, m, and Smooth().
Referenced by BuildMother().
| Double_t BmnMotherFitterPart::FindVertex | ( | vector< BmnParticle * > | vDaught, |
| TVector3 & | vtx ) |
|
protectedvirtual |
Definition at line 137 of file BmnMotherFitterPart.cxx.
|
protectedvirtual |
|
inline |
Definition at line 56 of file BmnMotherFitterPart.h.
References fCovar.
Referenced by BuildMother().
|
inline |
Definition at line 56 of file BmnMotherFitterPart.h.
References fCovar.
|
protectedvirtual |
Definition at line 93 of file BmnMotherFitterPart.cxx.
References TMath::Abs(), fieldConst, and fTestHist.
|
protectedvirtual |
|
static |
Get pointer to the mother fitter singleton object
Definition at line 59 of file BmnMotherFitterPart.cxx.
References BmnMotherFitterPart(), DestroyInstance(), and fgMF.
Referenced by BuildMother(), BmnParticle::BuildMother(), and BmnParticle::Chi2Vertex().
|
static |
|
static |
Get pointer to the mother fitter singleton object
Definition at line 72 of file BmnMotherFitterPart.cxx.
References BmnMotherFitterPart(), DestroyInstance(), and fgMF.
|
static |
|
private |
Definition at line 1099 of file BmnMotherFitterPart.cxx.
|
private |
References BmnMotherFitterPart(), fCovar, fgMF, fieldConst, fKF, fTestHist, and fVtx.
| void BmnMotherFitterPart::Register | ( | ) |
Definition at line 129 of file BmnMotherFitterPart.cxx.
| void BmnMotherFitterPart::Register | ( | ) |
|
protectedvirtual |
Definition at line 115 of file BmnMotherFitterPart.cxx.
|
protectedvirtual |
| void BmnMotherFitterPart::Reset | ( | ) |
Definition at line 122 of file BmnMotherFitterPart.cxx.
| void BmnMotherFitterPart::Reset | ( | ) |
|
private |
Smooth particle momentum and corresponding covariance matrices
Definition at line 609 of file BmnMotherFitterPart.cxx.
References ComputeAandB(), d, fCovar, fVtx, BmnParticle::GetG(), BmnParticle::GetMeas(), TMatrixT< class Element >::Invert(), TMatrixT< Double_t >::kMult, TMatrixT< Double_t >::kTransposeMult, m, BmnParticle::SetA(), BmnParticle::SetB(), BmnParticle::SetC(), BmnParticle::SetCovD(), BmnParticle::SetCovE(), BmnParticle::Setq(), BmnParticle::SetW(), and BmnParticle::Setx().
Referenced by FindVertex().
|
private |
|
private |
Definition at line 87 of file BmnMotherFitterPart.h.
Referenced by BmnMotherFitterPart(), BmnMotherFitterPart(), FindVertex(), GetCovariance(), Parabola(), and Smooth().
|
staticprivate |
Definition at line 84 of file BmnMotherFitterPart.h.
Referenced by BmnMotherFitterPart(), DestroyInstance(), Instance(), Instance(), and Parabola().
|
private |
Definition at line 85 of file BmnMotherFitterPart.h.
Referenced by FieldConst(), Init(), and Parabola().
|
private |
Definition at line 91 of file BmnMotherFitterPart.h.
Referenced by BmnMotherFitterPart(), BmnMotherFitterPart(), and Parabola().
|
private |
Definition at line 88 of file BmnMotherFitterPart.h.
Referenced by EvalVertex(), Init(), and Parabola().
|
private |
Definition at line 86 of file BmnMotherFitterPart.h.
Referenced by EvalVertex(), FindVertex(), Parabola(), and Smooth().