BmnRoot
Loading...
Searching...
No Matches
CbmPVFinderKF.cxx
Go to the documentation of this file.
1#include "CbmPVFinderKF.h"
2
3#include "CbmKFTrack.h"
4#include "CbmKFVertex.h"
5#include "CbmKFPrimaryVertexFinder.h"
6
7#include "CbmStsTrack.h"
8
9#include "TClonesArray.h"
10
11#include "math.h"
12
13Int_t CbmPVFinderKF::FindPrimaryVertex(TClonesArray* tracks, CbmVertex* vertex ){
14
15 Int_t NTracks = tracks->GetEntries();
16
18 CbmKFTrack* CloneArray = new CbmKFTrack[NTracks];
19 for( Int_t i=0; i<NTracks; i++ ){
20 CbmStsTrack* st = (CbmStsTrack*) tracks->At(i);
21 Int_t NHits = st->GetNStsHits();
22 if( NHits < 4 ) continue;
23 if( st->GetFlag() ) continue;
24 if( st->GetChi2()<0. || st->GetChi2()>3.5*3.5*st->GetNDF() ) continue;
25 CbmKFTrack &T = CloneArray[i];
26 T.SetStsTrack( *st );
27 if( !finite(T.GetTrack()[0]) || !finite(T.GetCovMatrix()[0])) continue;
28 Finder.AddTrack(&T);
29 }
31 Finder.Fit( v );
32 v.GetVertex(*vertex);
33 delete[] CloneArray;
34 return 0;
35}
__m128 v
Definition P4_F32vec4.h:1
int i
Definition P4_F32vec4.h:22
void AddTrack(CbmKFTrackInterface *Track)
void Fit(CbmKFVertexInterface &vtx)
void SetStsTrack(CbmStsTrack &track, bool first=1)
Double_t * GetTrack()
Is it electron.
Definition CbmKFTrack.h:51
Double_t * GetCovMatrix()
array[6] of track parameters(x,y,tx,ty,qp,z)
Definition CbmKFTrack.h:52
Int_t FindPrimaryVertex(TClonesArray *tracks, CbmVertex *vertex)
Int_t GetFlag() const
Definition CbmStsTrack.h:65
Int_t GetNStsHits() const
Definition CbmStsTrack.h:60
Double_t GetChi2() const
Definition CbmStsTrack.h:66
Int_t GetNDF() const
Definition CbmStsTrack.h:67