New conditions on the kITSrefit and kTPCrefit status bits
[u/mrichter/AliRoot.git] / STEER / AliV0vertexer.h
1 #ifndef ALIV0VERTEXER_H
2 #define ALIV0VERTEXER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //------------------------------------------------------------------
7 //                    V0 Vertexer Class
8 //            reads tracks writes out V0 vertices
9 //   Origin: Iouri Belikov, IReS, Strasbourg, Jouri.Belikov@cern.ch 
10 //------------------------------------------------------------------
11
12 #include "TObject.h"
13
14 class TTree;
15 class AliESDEvent;
16
17 //_____________________________________________________________________________
18 class AliV0vertexer : public TObject {
19 public:
20   AliV0vertexer();
21   void SetCuts(const Double_t cuts[7]);
22   static void SetDefaultCuts(const Double_t cuts[7]);
23
24   Int_t Tracks2V0vertices(AliESDEvent *event);
25
26   void GetCuts(Double_t cuts[7]) const;
27   static void GetDefaultCuts(Double_t cuts[7]);
28
29 private:
30   static
31   Double_t fgChi2max;      // maximal allowed chi2 
32   static
33   Double_t fgDNmin;        // min allowed impact parameter for the 1st daughter
34   static
35   Double_t fgDPmin;        // min allowed impact parameter for the 2nd daughter
36   static
37   Double_t fgDCAmax;       // maximal allowed DCA between the daughter tracks 
38   static
39   Double_t fgCPAmin;       // minimal allowed cosine of V0's pointing angle
40   static
41   Double_t fgRmin, fgRmax; // max & min radii of the fiducial volume
42   
43   Double_t fChi2max;      // maximal allowed chi2 
44   Double_t fDNmin;        // min allowed impact parameter for the 1st daughter
45   Double_t fDPmin;        // min allowed impact parameter for the 2nd daughter
46   Double_t fDCAmax;       // maximal allowed DCA between the daughter tracks 
47   Double_t fCPAmin;       // minimal allowed cosine of V0's pointing angle
48   Double_t fRmin, fRmax;  // max & min radii of the fiducial volume
49   
50   ClassDef(AliV0vertexer,3)  // V0 verterxer 
51 };
52
53 inline AliV0vertexer::AliV0vertexer() :
54   TObject(),
55   fChi2max(fgChi2max), 
56   fDNmin(fgDNmin),
57   fDPmin(fgDPmin),
58   fDCAmax(fgDCAmax),
59   fCPAmin(fgCPAmin), 
60   fRmin(fgRmin),
61   fRmax(fgRmax) 
62 {
63 }
64
65 inline void AliV0vertexer::SetCuts(const Double_t cuts[7]) {
66   fChi2max=cuts[0]; 
67   fDNmin=cuts[1];   fDPmin=cuts[2];
68   fDCAmax=cuts[3];  fCPAmin=cuts[4];
69   fRmin=cuts[5];    fRmax=cuts[6]; 
70 }
71
72 inline void AliV0vertexer::SetDefaultCuts(const Double_t cuts[7]) {
73   fgChi2max=cuts[0]; 
74   fgDNmin=cuts[1];   fgDPmin=cuts[2];
75   fgDCAmax=cuts[3];  fgCPAmin=cuts[4];
76   fgRmin=cuts[5];    fgRmax=cuts[6]; 
77 }
78
79 inline void AliV0vertexer::GetCuts(Double_t cuts[7]) const {
80   cuts[0]=fChi2max; 
81   cuts[1]=fDNmin;   cuts[2]=fDPmin; 
82   cuts[3]=fDCAmax;  cuts[4]=fCPAmin;
83   cuts[5]=fRmin;    cuts[6]=fRmax; 
84 }
85
86 inline void AliV0vertexer::GetDefaultCuts(Double_t cuts[7]) {
87   cuts[0]=fgChi2max; 
88   cuts[1]=fgDNmin;   cuts[2]=fgDPmin; 
89   cuts[3]=fgDCAmax;  cuts[4]=fgCPAmin;
90   cuts[5]=fgRmin;    cuts[6]=fgRmax; 
91 }
92
93 #endif
94
95