]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliV0vertexer.h
Made a new abstract base class; AliL3HoughBaseTransformer for different implementations
[u/mrichter/AliRoot.git] / ITS / 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 //
9 //   Origin: Iouri Belikov, IReS, Strasbourg, Jouri.Belikov@cern.ch 
10 //------------------------------------------------------------------
11
12 #include "TObject.h"
13
14 class TFile;
15 class AliITStrackV2;
16
17 //_____________________________________________________________________________
18 class AliV0vertexer : public TObject {
19 public:
20   AliV0vertexer();
21   AliV0vertexer(const Double_t cuts[7]);
22   void SetCuts(const Double_t cuts[7]);
23
24   Int_t Tracks2V0vertices(const TFile *in, TFile *out);
25   Double_t PropagateToDCA(AliITStrackV2 *nt, AliITStrackV2 *pt);
26
27   void GetCuts(Double_t cuts[7]) const;
28
29 private:
30   Double_t fChi2max;      // maximal allowed chi2 
31   Double_t fDNmin;        // min. allowed negative daughter's impact parameter
32   Double_t fDPmin;        // min. allowed positive daughter's impact parameter
33   Double_t fDCAmax;       // maximal allowed DCA between the daughter tracks 
34   Double_t fCPAmax;       // maximal allowed cosine of V0's pointing angle
35   Double_t fRmin, fRmax;  // max & min radii of the fiducial volume
36   
37   ClassDef(AliV0vertexer,1)  // V0 verterxer 
38 };
39
40 inline AliV0vertexer::AliV0vertexer() {
41  fChi2max=33.; 
42  fDNmin=0.015; fDPmin=0.015;
43  fDCAmax=0.01; fCPAmax=0.025; 
44  fRmin=0.5;    fRmax=2.5; 
45 }
46
47 inline AliV0vertexer::AliV0vertexer(const Double_t cuts[7]) {
48   fChi2max=cuts[0]; 
49   fDNmin=cuts[1];   fDPmin=cuts[2];
50   fDCAmax=cuts[3];  fCPAmax=cuts[4];
51   fRmin=cuts[5];    fRmax=cuts[6]; 
52 }
53
54 inline void AliV0vertexer::SetCuts(const Double_t cuts[7]) {
55   fChi2max=cuts[0]; 
56   fDNmin=cuts[1];   fDPmin=cuts[2];
57   fDCAmax=cuts[3];  fCPAmax=cuts[4];
58   fRmin=cuts[5];    fRmax=cuts[6]; 
59 }
60
61 inline void AliV0vertexer::GetCuts(Double_t cuts[7]) const {
62   cuts[0]=fChi2max; 
63   cuts[1]=fDNmin;   cuts[2]=fDPmin; 
64   cuts[3]=fDCAmax;  cuts[4]=fCPAmax;
65   cuts[5]=fRmin;    cuts[6]=fRmax; 
66 }
67
68 #endif
69
70