CbmRoot
Loading...
Searching...
No Matches
CbmKFTrack.cxx
Go to the documentation of this file.
1/* Copyright (C) 2006-2013 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Denis Bertini [committer], Florian Uhlig, Andrey Lebedev */
4
5#include "CbmKFTrack.h"
6
7#include "CbmGlobalTrack.h"
8#include "CbmKFMath.h"
9#include "CbmStsTrack.h"
10#include "FairTrackParam.h"
11#include "TDatabasePDG.h"
12#include "TMath.h"
13#include "TParticlePDG.h"
14
16
18 : fMass(0)
19 , fChi2(0)
20 , fIsElectron(kFALSE)
21 , fNDF(0)
22 , fHits()
23{
24 for (Int_t i = 0; i < 6; i++) {
25 fT[i] = 0.;
26 }
27 for (Int_t i = 0; i < 15; i++) {
28 fC[i] = 0.;
29 }
30}
31
32
34{
35 for (Int_t i = 0; i < 6; i++) {
36 fT[i] = track.GetTrack()[i];
37 }
38 for (Int_t i = 0; i < 15; i++) {
39 fC[i] = track.GetCovMatrix()[i];
40 }
41 fMass = track.GetMass();
42 fIsElectron = track.IsElectron();
43 fChi2 = track.GetRefChi2();
44 fNDF = track.GetRefNDF();
45}
46
47void CbmKFTrack::SetTrackParam(const FairTrackParam& track) { CbmKFMath::CopyTrackParam2TC(&track, fT, fC); }
48
50{
51 SetPID(track.GetPidHypo());
52 SetTrackParam(first ? *track.GetParamFirst() : *track.GetParamLast());
53 GetRefChi2() = track.GetChiSq();
54 GetRefNDF() = track.GetNDF();
55}
56
58{
59 SetPID(track.GetPidHypo());
60 SetTrackParam(first ? *track.GetParamFirst() : *track.GetParamLast());
61 GetRefChi2() = track.GetChi2();
62 GetRefNDF() = track.GetNDF();
63}
64
65void CbmKFTrack::GetTrackParam(FairTrackParam& track) { CbmKFMath::CopyTC2TrackParam(&track, fT, fC); }
66
68{
69 FairTrackParam par(first ? *track.GetParamFirst() : *track.GetParamLast());
70 GetTrackParam(par); //first? *track.GetParamFirst() : *track.GetParamLast() );
71 first ? track.SetParamFirst(&par) : track.SetParamLast(&par);
72 track.SetChiSq(GetRefChi2());
73 track.SetNDF(GetRefNDF());
74}
75
77{
78 FairTrackParam par(first ? *track.GetParamFirst() : *track.GetParamLast());
79 GetTrackParam(par); //first? *track.GetParamFirst() : *track.GetParamLast() );
80 first ? track.SetParamFirst(&par) : track.SetParamLast(&par);
81 track.SetChi2(GetRefChi2());
82 track.SetNDF(GetRefNDF());
83}
84
85void CbmKFTrack::SetPID(Int_t pidHypo)
86{
87 TParticlePDG* particlePDG = TDatabasePDG::Instance()->GetParticle(pidHypo);
88 fMass = (particlePDG) ? particlePDG->Mass() : 0.13957;
89 fIsElectron = (TMath::Abs(pidHypo) == 11);
90}
ClassImp(CbmKFTrack) CbmKFTrack
Data class for STS tracks.
bool first
const FairTrackParam * GetParamLast() const
void SetParamLast(const FairTrackParam *parLast)
double GetChi2() const
int32_t GetPidHypo() const
void SetChi2(double chi2)
void SetParamFirst(const FairTrackParam *parFirst)
void SetNDF(int32_t ndf)
int32_t GetNDF() const
const FairTrackParam * GetParamFirst() const
static void CopyTC2TrackParam(FairTrackParam *par, Double_t T[], Double_t C[])
static void CopyTrackParam2TC(const FairTrackParam *par, Double_t T[], Double_t C[])
virtual Bool_t IsElectron() const
Mass hypothesis.
virtual Double_t * GetTrack()
Is it electron.
virtual Double_t GetMass() const
virtual Int_t & GetRefNDF()
Chi^2 after fit.
virtual Double_t * GetCovMatrix()
array[6] of track parameters(x,y,tx,ty,qp,z)
virtual Double_t & GetRefChi2()
array[15] of covariance matrix
void GetStsTrack(CbmStsTrack &track, bool first=1)
void SetGlobalTrack(CbmGlobalTrack &track, bool first=1)
Double_t & GetRefChi2() override
array[15] of covariance matrix
Definition CbmKFTrack.h:79
void SetTrack(CbmKFTrackInterface &track)
Int_t fNDF
Definition CbmKFTrack.h:31
CbmKFTrack()
Default constructor.
void SetStsTrack(CbmStsTrack &track, bool first=1)
Bool_t fIsElectron
Definition CbmKFTrack.h:30
void GetTrackParam(FairTrackParam &track)
Int_t & GetRefNDF() override
Chi^2 after fit.
Definition CbmKFTrack.h:80
Double_t fChi2
Definition CbmKFTrack.h:29
void SetTrackParam(const FairTrackParam &track)
Double_t fMass
Definition CbmKFTrack.h:29
Double_t fC[15]
Definition CbmKFTrack.h:29
Double_t fT[6]
Definition CbmKFTrack.h:29
void GetGlobalTrack(CbmGlobalTrack &track, bool first=1)
void SetPID(Int_t pidHypo)
int32_t GetPidHypo() const
Definition CbmTrack.h:61
const FairTrackParam * GetParamLast() const
Definition CbmTrack.h:69
int32_t GetNDF() const
Definition CbmTrack.h:64
void SetParamFirst(const FairTrackParam *par)
Definition CbmTrack.h:86
const FairTrackParam * GetParamFirst() const
Definition CbmTrack.h:68
void SetChiSq(double chiSq)
Definition CbmTrack.h:81
void SetNDF(int32_t ndf)
Definition CbmTrack.h:82
void SetParamLast(const FairTrackParam *par)
Definition CbmTrack.h:87
double GetChiSq() const
Definition CbmTrack.h:63