CbmRoot
CbmKFSecondaryVertexFinder.h
Go to the documentation of this file.
1 
10 #ifndef CBMKFSECONDARYVERTEXFINDER_H
11 #define CBMKFSECONDARYVERTEXFINDER_H
12 
13 #include "CbmKFTrackInterface.h"
14 #include "CbmKFVertexInterface.h"
15 
16 #include <vector>
17 
18 class CbmKFSecondaryVertexFinder : public TObject {
19 
20  std::vector<CbmKFTrackInterface*> vTracks;
21  Int_t NDF;
22  Double_t Chi2, MassConstraint;
23  Double_t r[8], r0[8], C[36];
25 
26  void AddMassConstraint();
27  void AddTopoConstraint();
28  Double_t& Cij(Int_t i, Int_t j) {
29  return C[(j <= i) ? i * (i + 1) / 2 + j : j * (j + 1) / 2 + i];
30  }
31 
32 public:
34  : vTracks(), NDF(0), Chi2(0), MassConstraint(0), VParent(0), VGuess(0) {
35  Clear();
36  };
38 
39  virtual void Clear(Option_t* opt = "");
40  void ClearTracks();
41  void AddTrack(CbmKFTrackInterface* Track);
42  void SetTracks(std::vector<CbmKFTrackInterface*>& vTracks);
43  void SetApproximation(CbmKFVertexInterface* Guess = 0);
44  void SetMassConstraint(Double_t MotherMass = -1);
45  void SetTopoConstraint(CbmKFVertexInterface* Parent = 0);
46  void Fit();
48  void GetVertex(CbmVertex& vtx);
49  void GetMotherTrack(Double_t T[], Double_t C[]);
50  void GetMass(Double_t* M, Double_t* Error);
51  void Extrapolate(double T);
52 
54 
55 private:
58 };
59 #endif /* !CBMKFSECONDARYVERTEXFINDER_H */
CbmKFSecondaryVertexFinder::GetVertex
void GetVertex(CbmKFVertexInterface &vtx)
Definition: CbmKFSecondaryVertexFinder.cxx:288
CbmKFSecondaryVertexFinder::VGuess
CbmKFVertexInterface * VGuess
Definition: CbmKFSecondaryVertexFinder.h:24
CbmKFSecondaryVertexFinder::Chi2
Double_t Chi2
Definition: CbmKFSecondaryVertexFinder.h:22
CbmKFVertexInterface.h
CbmKFSecondaryVertexFinder::r0
Double_t r0[8]
Definition: CbmKFSecondaryVertexFinder.h:23
CbmKFSecondaryVertexFinder::Clear
virtual void Clear(Option_t *opt="")
CbmKFSecondaryVertexFinder::GetMotherTrack
void GetMotherTrack(Double_t T[], Double_t C[])
Definition: CbmKFSecondaryVertexFinder.cxx:305
CbmKFSecondaryVertexFinder::C
Double_t C[36]
Definition: CbmKFSecondaryVertexFinder.h:23
CbmKFSecondaryVertexFinder::SetTopoConstraint
void SetTopoConstraint(CbmKFVertexInterface *Parent=0)
Definition: CbmKFSecondaryVertexFinder.cxx:46
CbmKFSecondaryVertexFinder::GetMass
void GetMass(Double_t *M, Double_t *Error)
Definition: CbmKFSecondaryVertexFinder.cxx:363
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
CbmKFSecondaryVertexFinder::Fit
void Fit()
Definition: CbmKFSecondaryVertexFinder.cxx:50
CbmKFSecondaryVertexFinder::SetTracks
void SetTracks(std::vector< CbmKFTrackInterface * > &vTracks)
Definition: CbmKFSecondaryVertexFinder.cxx:34
CbmKFSecondaryVertexFinder::AddTrack
void AddTrack(CbmKFTrackInterface *Track)
Definition: CbmKFSecondaryVertexFinder.cxx:30
CbmKFSecondaryVertexFinder::AddMassConstraint
void AddMassConstraint()
Definition: CbmKFSecondaryVertexFinder.cxx:379
CbmKFTrackInterface.h
CbmKFSecondaryVertexFinder::operator=
void operator=(const CbmKFSecondaryVertexFinder &)
CbmKFSecondaryVertexFinder::VParent
CbmKFVertexInterface * VParent
Definition: CbmKFSecondaryVertexFinder.h:24
CbmKFSecondaryVertexFinder::CbmKFSecondaryVertexFinder
CbmKFSecondaryVertexFinder(const CbmKFSecondaryVertexFinder &)
CbmKFSecondaryVertexFinder
Definition: CbmKFSecondaryVertexFinder.h:18
CbmVertex
Definition: CbmVertex.h:26
CbmKFVertexInterface
Definition: CbmKFVertexInterface.h:24
CbmKFSecondaryVertexFinder::NDF
Int_t NDF
Definition: CbmKFSecondaryVertexFinder.h:21
CbmKFSecondaryVertexFinder::AddTopoConstraint
void AddTopoConstraint()
Definition: CbmKFSecondaryVertexFinder.cxx:457
CbmKFSecondaryVertexFinder::ClassDef
ClassDef(CbmKFSecondaryVertexFinder, 1)
CbmKFSecondaryVertexFinder::SetMassConstraint
void SetMassConstraint(Double_t MotherMass=-1)
Definition: CbmKFSecondaryVertexFinder.cxx:42
CbmKFSecondaryVertexFinder::~CbmKFSecondaryVertexFinder
~CbmKFSecondaryVertexFinder()
Definition: CbmKFSecondaryVertexFinder.h:37
CbmKFTrackInterface
Definition: CbmKFTrackInterface.h:26
CbmKFSecondaryVertexFinder::r
Double_t r[8]
Definition: CbmKFSecondaryVertexFinder.h:23
CbmKFSecondaryVertexFinder::Extrapolate
void Extrapolate(double T)
Definition: CbmKFSecondaryVertexFinder.cxx:416
CbmKFSecondaryVertexFinder::MassConstraint
Double_t MassConstraint
Definition: CbmKFSecondaryVertexFinder.h:22
CbmKFSecondaryVertexFinder::Cij
Double_t & Cij(Int_t i, Int_t j)
Definition: CbmKFSecondaryVertexFinder.h:28
CbmKFSecondaryVertexFinder::vTracks
std::vector< CbmKFTrackInterface * > vTracks
Definition: CbmKFSecondaryVertexFinder.h:20
CbmKFSecondaryVertexFinder::ClearTracks
void ClearTracks()
Definition: CbmKFSecondaryVertexFinder.cxx:28
CbmKFSecondaryVertexFinder::SetApproximation
void SetApproximation(CbmKFVertexInterface *Guess=0)
Definition: CbmKFSecondaryVertexFinder.cxx:38
CbmKFSecondaryVertexFinder::CbmKFSecondaryVertexFinder
CbmKFSecondaryVertexFinder()
Definition: CbmKFSecondaryVertexFinder.h:33