15#define BMNPARTICLE_H 1
45 Double_t mass = 0.1396,
46 Double_t* orig = NULL);
49 Double_t mass = 0.1396,
50 Double_t* orig = NULL);
63 Int_t
GetPdg()
const {
return fPdg; }
65 Double_t
GetMass()
const {
return fMass; }
66 Double_t
GetMeas(Int_t
i)
const {
return fMeas(
i, 0); }
67 Double_t
GetXY(Int_t
i)
const {
return fXY0[
i]; }
69 Double_t
GetZ0()
const {
return fZ; }
76 Double_t
Phi()
const {
return TMath::ATan2(fq(1, 0), fq(0, 0)); }
77 Double_t
Pt()
const {
return TMath::Min(
Momentum() * TMath::Sin(
Theta()), 100.); }
83 Double_t
Momentum()
const {
return fCharge == 0 ? fq(2, 0) : TMath::Abs(fCharge / fq(2, 0)); }
91 Double_t
Dca()
const {
return fMeas(0, 0); }
92 Int_t
Ndaughters()
const {
return fDaughtersInds.size(); }
93 const vector<Int_t>&
DaughterInds()
const {
return fDaughtersInds; }
97 Double_t
Chi2()
const {
return fChi2; }
98 Bool_t
Point00()
const {
return fPoint00; }
103 TMatrixD&
GetJ() {
return fJ; }
105 TMatrixD&
GetD() {
return fD; }
106 TMatrixD&
GetE() {
return fE; }
107 TMatrixD&
GetA() {
return fA; }
108 TMatrixD&
GetB() {
return fB; }
109 TMatrixD&
GetC() {
return fC; }
110 TMatrixD&
GetG() {
return fG; }
111 TMatrixD&
GetW() {
return fW; }
112 TMatrixD&
Getq() {
return fq; }
113 TMatrixD&
Getx() {
return fx; }
115 Double_t
GetX()
const {
return fx(0, 0); }
116 Double_t
GetY()
const {
return fx(1, 0); }
117 Double_t
GetZ()
const {
return fx(2, 0); }
132 Double_t
BuildMother(vector<CbmStsTrack*>& vTracks, vector<BmnParticle*>& vDaught);
134 void SetMeas(TMatrixD& matr) { fMeas = matr; }
138 void SetA(TMatrixD& matr) { fA = matr; }
139 void SetB(TMatrixD& matr) { fB = matr; }
140 void SetC(TMatrixD& matr) { fC = matr; }
141 void SetG(TMatrixD& matr) { fG = matr; }
142 void SetW(TMatrixD& matr) { fW = matr; }
143 void Setq(TMatrixD& matr) { fq = matr; }
144 void Setx(TMatrixD& matr) { fx = matr; }
152 void SetZ(Double_t z) { fZ = z; }
159 TVector3 Parabola(TVector3& pos0, TVector3& pos1, TVector3& pos2);
161 void WeightAtDca(
CbmKFTrack& track, Double_t* vert);
168 vector<Int_t> fDaughtersInds;
202 return TMath::ATan(TMath::Sqrt(fq(1, 0) * fq(1, 0) + fq(0, 0) * fq(0, 0)));
Double_t GetTheta() const
void SetCovD(TMatrixD &matr)
Double_t GetMeas(Int_t i) const
void SetG(TMatrixD &matr)
Double_t BuildMother(vector< BmnParticle * > &vDaught)
void SetXY(Double_t x, Double_t y)
void SetW(TMatrixD &matr)
CbmKFTrack GetKFTrack() const
Double_t Rapidity() const
Bool_t Point00() const
flag for tracks extrapolated to (0,0)
BmnParticle()
Default ctor.
const Double_t Chi2Vertex()
return Chi2 w.r.t. vertex
BmnParticle(CbmStsTrack &track, Int_t indx=-1, Double_t mass=0.1396, Double_t *orig=NULL)
ctor from STS track
Double_t GetMomentum() const
BmnParticle(CbmKFTrack &track, Int_t indx=-1, Double_t mass=0.1396, Double_t *orig=NULL)
ctor from Kalman track
Double_t BuildMother(vector< CbmStsTrack * > &vTracks, vector< BmnParticle * > &vDaught)
void SetCharge(Int_t charge)
Double_t Chi2Vertex(CbmVertex *vtx)
compute Chi2 w.r.t. vertex
void Track2Part(CbmKFTrack &track, Bool_t setWeight, Double_t *orig)
void SetChi2(Double_t chi2)
void SetA(TMatrixD &matr)
TVector3 Momentum3() const
void SetMass(Double_t mass=-2.0)
void SetCovE(TMatrixD &matr)
Double_t Dca() const
signed DCA
void SetB(TMatrixD &matr)
Double_t Chi2() const
Chi2 of mother particle.
void SetMeas(TMatrixD &matr)
const vector< Int_t > & DaughterInds() const
void Setq(TMatrixD &matr)
void FillJinv(TVector3 &mom3)
void AddDaughter(Int_t indx)
Double_t GetXY(Int_t i) const
void Setx(TMatrixD &matr)
BmnParticle(const BmnParticle &part)
copy constructor
void SetC(TMatrixD &matr)
Double_t Momentum() const
BmnParticle & operator=(const BmnParticle &part)
assignment operator