StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
KFVertex.h
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 ALIKFVERTEX_H
19 #define ALIKFVERTEX_H
20 
21 #include "KFParticle.h"
22 #include "VVertex.h"
23 
24 class KFVertex : public KFParticle
25 {
26 
27  public:
28 
29  //*
30  //* INITIALIZATION
31  //*
32 
33  //* Constructor (empty)
34 
35  KFVertex():KFParticle(),fIsConstrained(0){ }
36 
37  //* Destructor (empty)
38 
39  ~KFVertex(){}
40 
41  //* Initialisation from VVertex
42 
43  KFVertex( const VVertex &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( Double_t X, Double_t Y, Double_t Z,
73  Double_t ErrX, Double_t ErrY, Double_t 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[], Double_t ChiCut=3.5 );
83 
84  protected:
85 
86  Bool_t fIsConstrained;
87 
88  ClassDef( KFVertex, 1 );
89 
90 };
91 
92 
93 //---------------------------------------------------------------------
94 //
95 // Inline implementation of the KFVertex methods
96 //
97 //---------------------------------------------------------------------
98 
99 
100 inline void KFVertex::operator +=( const KFParticle &Daughter )
101 {
102  KFParticle::operator +=( Daughter );
103 }
104 
105 
106 inline void KFVertex::operator -=( const KFParticle &Daughter )
107 {
108  Daughter.SubtractFromVertex( *this );
109 }
110 
111 inline KFVertex KFVertex::operator -( const KFParticle &Daughter ) const
112 {
113  KFVertex tmp = *this;
114  Daughter.SubtractFromVertex( tmp );
115  return tmp;
116 }
117 
118 
119 #endif
ClassDef(KFVertex, 1)
Is the beam constraint set.