BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnMotherFitterPart.h
Go to the documentation of this file.
1
#ifndef BMNMOTHERFITTERPART_H
2
#define BMNMOTHERFITTERPART_H
3
4
/// \ingroup rec
5
/// \class BmnMotherFitterPart
6
/// \brief Kalman filter mother particle fitter for the BM@N detector
7
/// \brief (using BmnParticle)
8
///
9
/// \author Alexander Zinchenko, LHEP JINR Dubna
10
11
// class MpdKalmanTrack;
12
class
CbmStsTrack
;
13
class
CbmVertex
;
14
// class MpdKalmanFilter;
15
class
CbmKF
;
16
class
TVector3
;
17
#include "
BmnParticle.h
"
18
#include "FairTask.h"
19
20
#include <
TH1D.h
>
21
#include <
TMatrixD.h
>
22
#include <vector>
23
using
std::vector;
24
25
class
TClonesArray
;
26
27
class
BmnMotherFitterPart
:
public
FairTask
28
{
29
30
public
:
31
static
BmnMotherFitterPart
*
Instance
();
///< get singleton instance
32
static
BmnMotherFitterPart
*
Instance
(
const
char
* name,
33
const
char
* title =
"FAIR Task"
);
///< get singleton instance
34
35
virtual
void
Exec
(
Option_t
* option);
36
37
void
Reset
();
38
void
Register
();
39
40
// virtual InitStatus ReInit();
41
// void WeightAtDca(MpdParticle *part, MpdKalmanTrack &track, Double_t *vert); // obtain MpdParticle weight at DCA
42
Double_t
BuildMother
(
43
BmnParticle
* mother,
44
vector<BmnParticle*>& vDaught);
// build mother from daughters
45
// Double_t BuildMother(BmnParticle *mother, vector<CbmStsTrack *> &vTracks,
46
// vector<BmnParticle *> &vDaught);
47
Double_t
FindVertex
(vector<BmnParticle*> vDaught,
TVector3
& vtx);
// find vertex from daughter tracks
48
Bool_t
ComputeAandB
(
const
TMatrixD
& xk0,
49
const
BmnParticle
& part,
50
TMatrixD
& a,
51
TMatrixD
& b,
52
TMatrixD
& ck0,
53
Bool_t
flag =
kTRUE
);
// compute matrices of derivatives
54
Double_t
FieldConst
()
const
{
return
fieldConst
; }
55
TMatrixD
ComputeQmatr
(vector<BmnParticle*> vDaught);
56
TMatrixD
&
GetCovariance
() {
return
fCovar
; }
// access to covariance matrix
57
Double_t
Chi2Vertex
(
BmnParticle
* part,
const
CbmVertex
* vtx);
///< compute Chi2 w.r.t. vertex
58
59
protected
:
60
virtual
InitStatus
Init
();
61
virtual
InitStatus
ReInit
();
62
virtual
void
Finish
();
63
virtual
~BmnMotherFitterPart
();
///< Destructor
64
65
private
:
66
BmnMotherFitterPart
();
///< Default ctor
67
BmnMotherFitterPart
(
const
char
* name,
const
char
* title =
"FAIR Task"
);
///< Ctor
68
static
void
DestroyInstance
()
69
{
70
if
(
fgMF
)
71
delete
fgMF
;
72
}
// automatic deleting
73
Bool_t
EvalVertex
(vector<BmnParticle*> vDaught);
// evaluate vertex from daughter tracks
74
Bool_t
Smooth
(vector<BmnParticle*> vDaught);
// smooth (update track momenta and track lengths)
75
Bool_t
ComputeAB0
(
const
TMatrixD
& xk0,
76
const
BmnParticle
& part,
77
TMatrixD
& a,
78
TMatrixD
& b,
79
TMatrixD
& ck0,
80
Bool_t
flag);
// compute matrices of derivatives for neutrals
81
TVector3
Parabola
(
TVector3
& pos0,
TVector3
& pos1,
TVector3
& pos2);
82
83
private
:
84
static
BmnMotherFitterPart
*
fgMF
;
85
Double_t
fieldConst
;
///< mag. field constant
86
Double_t
fVtx
[3];
///< decay vertex position
87
TMatrixD
fCovar
;
///< covariance matrix
88
TH1D
*
fTestHist
;
///< histogram for testing
89
90
// MpdKalmanFilter *fKF;
91
CbmKF
*
fKF
;
92
93
ClassDef
(
BmnMotherFitterPart
, 0);
94
};
95
#endif
Bool_t
bool Bool_t
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
ClassDef
#define ClassDef(name, id)
TH1D.h
TMatrixD.h
TMatrixD
TMatrixT< Double_t > TMatrixD
BmnMotherFitterPart::~BmnMotherFitterPart
virtual ~BmnMotherFitterPart()
Destructor.
Definition
BmnMotherFitterPart.cxx:85
BmnMotherFitterPart::ComputeAB0
Bool_t ComputeAB0(const TMatrixD &xk0, const BmnParticle &part, TMatrixD &a, TMatrixD &b, TMatrixD &ck0, Bool_t flag)
Definition
BmnMotherFitterPart.cxx:812
BmnMotherFitterPart::fVtx
Double_t fVtx[3]
decay vertex position
Definition
BmnMotherFitterPart.h:86
BmnMotherFitterPart::Reset
void Reset()
Definition
BmnMotherFitterPart.cxx:122
BmnMotherFitterPart::Chi2Vertex
Double_t Chi2Vertex(BmnParticle *part, const CbmVertex *vtx)
compute Chi2 w.r.t. vertex
Definition
BmnMotherFitterPart.cxx:1025
BmnMotherFitterPart::Exec
virtual void Exec(Option_t *option)
Definition
BmnMotherFitterPart.cxx:143
BmnMotherFitterPart::ComputeQmatr
TMatrixD ComputeQmatr(vector< BmnParticle * > vDaught)
Definition
BmnMotherFitterPart.cxx:946
BmnMotherFitterPart::ReInit
virtual InitStatus ReInit()
Definition
BmnMotherFitterPart.cxx:115
BmnMotherFitterPart::Finish
virtual void Finish()
Definition
BmnMotherFitterPart.cxx:137
BmnMotherFitterPart::ComputeAandB
Bool_t ComputeAandB(const TMatrixD &xk0, const BmnParticle &part, TMatrixD &a, TMatrixD &b, TMatrixD &ck0, Bool_t flag=kTRUE)
Definition
BmnMotherFitterPart.cxx:695
BmnMotherFitterPart::fTestHist
TH1D * fTestHist
histogram for testing
Definition
BmnMotherFitterPart.h:88
BmnMotherFitterPart::GetCovariance
TMatrixD & GetCovariance()
Definition
BmnMotherFitterPart.h:56
BmnMotherFitterPart::Instance
static BmnMotherFitterPart * Instance()
get singleton instance
Definition
BmnMotherFitterPart.cxx:59
BmnMotherFitterPart::DestroyInstance
static void DestroyInstance()
Definition
BmnMotherFitterPart.h:68
BmnMotherFitterPart::BuildMother
Double_t BuildMother(BmnParticle *mother, vector< BmnParticle * > &vDaught)
Definition
BmnMotherFitterPart.cxx:150
BmnMotherFitterPart::fgMF
static BmnMotherFitterPart * fgMF
Definition
BmnMotherFitterPart.h:84
BmnMotherFitterPart::fKF
CbmKF * fKF
Definition
BmnMotherFitterPart.h:91
BmnMotherFitterPart::EvalVertex
Bool_t EvalVertex(vector< BmnParticle * > vDaught)
Definition
BmnMotherFitterPart.cxx:340
BmnMotherFitterPart::FieldConst
Double_t FieldConst() const
Definition
BmnMotherFitterPart.h:54
BmnMotherFitterPart::Register
void Register()
Definition
BmnMotherFitterPart.cxx:129
BmnMotherFitterPart::BmnMotherFitterPart
BmnMotherFitterPart()
Default ctor.
Definition
BmnMotherFitterPart.cxx:35
BmnMotherFitterPart::fCovar
TMatrixD fCovar
covariance matrix
Definition
BmnMotherFitterPart.h:87
BmnMotherFitterPart::Init
virtual InitStatus Init()
Definition
BmnMotherFitterPart.cxx:93
BmnMotherFitterPart::Smooth
Bool_t Smooth(vector< BmnParticle * > vDaught)
Definition
BmnMotherFitterPart.cxx:609
BmnMotherFitterPart::FindVertex
Double_t FindVertex(vector< BmnParticle * > vDaught, TVector3 &vtx)
Definition
BmnMotherFitterPart.cxx:454
BmnMotherFitterPart::Parabola
TVector3 Parabola(TVector3 &pos0, TVector3 &pos1, TVector3 &pos2)
Definition
BmnMotherFitterPart.cxx:1099
BmnMotherFitterPart::fieldConst
Double_t fieldConst
mag. field constant
Definition
BmnMotherFitterPart.h:85
BmnParticle
Particle object in BM@N (to work with decays).
Definition
BmnParticle.h:37
CbmKF
The CbmKF Kalman Filter algorithm.
Definition
CbmKF.h:28
CbmStsTrack
Definition
CbmStsTrack.h:28
CbmVertex
CbmVertex.h.
Definition
CbmVertex.h:21
FairTask
TClonesArray
TH1D
TVector3
BmnParticle.h
install
include
BmnMotherFitterPart.h
Generated on
for BmnRoot by
1.17.0