FairRoot/PandaRoot
KFVertex.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------------
2 // The KFVertex class
3 // .
4 // @author S.Gorbunov, I.Kisel
5 // @version 1.0
6 // @since 13.05.07
7 //
8 // Class to reconstruct and store primary and secondary vertices.
9 // The method is described in CBM-SOFT note 2007-003,
10 // ``Reconstruction of decayed particles based on the Kalman filter'',
11 // http://www.gsi.de/documents/DOC-2007-May-14-1.pdf
12 //
13 // This class is ALICE interface to general mathematics in KFParticleBase
14 //
15 // -= Copyright &copy ALICE HLT Group =-
16 //_________________________________________________________________________________
17 
18 #ifndef KFVERTEX_H
19 #define KFVERTEX_H
20 
21 #include "KFParticle.h"
22 #include "KFPVertex.h"
23 
24 class KFVertex : public KFParticle
25 {
26 
27  public:
28 
29  //*
30  //* INITIALIZATION
31  //*
32 
33  //* Constructor (empty)
34 
36 
37  //* Destructor (empty)
38 
40 
41  //* Initialisation from VVertex
42 
43  KFVertex( const KFPVertex &vertex );
44 
45 
46  //*
47  //* ACCESSORS
48  //*
49 
50  //* Number of tracks composing the vertex
51 
52  Int_t GetNContributors() const { return fIsConstrained ?fNDF/2:(fNDF+3)/2; }
53 
54  //*
55  //* CONSTRUCTION OF THE VERTEX BY ITS DAUGHTERS
56  //* USING THE KALMAN FILTER METHOD
57  //*
58 
59 
60  //* Simple way to construct vertices ex. D0 = Pion + Kaon;
61 
62  void operator +=( const KFParticle &Daughter );
63 
64  //* Subtract particle from vertex
65 
66  KFVertex operator -( const KFParticle &Daughter ) const;
67 
68  void operator -=( const KFParticle &Daughter );
69 
70  //* Set beam constraint to the primary vertex
71 
72  void SetBeamConstraint( float X, float Y, float Z,
73  float ErrX, float ErrY, float ErrZ );
74 
75  //* Set beam constraint off
76 
77  void SetBeamConstraintOff();
78 
79  //* Construct vertex with selection of tracks (primary vertex)
80 
81  void ConstructPrimaryVertex( const KFParticle *vDaughters[], int NDaughters,
82  Bool_t vtxFlag[], float ChiCut=3.5 );
83 
84  protected:
85 
86  Bool_t fIsConstrained; // Is the beam constraint set
87 
88 };
89 
90 
91 //---------------------------------------------------------------------
92 //
93 // Inline implementation of the KFVertex methods
94 //
95 //---------------------------------------------------------------------
96 
97 
98 inline void KFVertex::operator+=( const KFParticle &Daughter )
99 {
100  KFParticle::operator+=( Daughter );
101 }
102 
103 
104 inline void KFVertex::operator-=( const KFParticle &Daughter )
105 {
106  Daughter.SubtractFromVertex( *this );
107 }
108 
109 inline KFVertex KFVertex::operator-( const KFParticle &Daughter ) const
110 {
111  KFVertex tmp = *this;
112  Daughter.SubtractFromVertex( tmp );
113  return tmp;
114 }
115 
116 
117 #endif
int NDaughters() const
KFVertex operator-(const KFParticle &Daughter) const
Definition: KFVertex.h:109
void operator+=(const KFParticle &Daughter)
Definition: KFVertex.h:98
void SetBeamConstraint(float X, float Y, float Z, float ErrX, float ErrY, float ErrZ)
Definition: KFVertex.cxx:46
void SubtractFromVertex(KFParticle &v) const
Definition: KFParticle.h:954
void ConstructPrimaryVertex(const KFParticle *vDaughters[], int NDaughters, Bool_t vtxFlag[], float ChiCut=3.5)
Definition: KFVertex.cxx:67
Bool_t fIsConstrained
Definition: KFVertex.h:86
const Double_t & X() const
Definition: KFParticle.h:129
void operator-=(const KFParticle &Daughter)
Definition: KFVertex.h:104
void operator+=(const KFParticle &Daughter)
Definition: KFParticle.h:830
void SetBeamConstraintOff()
Definition: KFVertex.cxx:62
const Double_t & Z() const
Definition: KFParticle.h:131
KFVertex()
Definition: KFVertex.h:35
Int_t GetNContributors() const
Definition: KFVertex.h:52
~KFVertex()
Definition: KFVertex.h:39
const Double_t & Y() const
Definition: KFParticle.h:130