]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliV0vertexer.h
Fix for transient fSDigits, AliITSRawStream classes adapted to changed AliRawReader...
[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   void SetVertex(Double_t *vtx) { fX=vtx[0]; fY=vtx[1]; fZ=vtx[2]; }
24   void SetEvent(Int_t ev) {fEventN=ev;}
25
26   Int_t Tracks2V0vertices(const TFile *in, TFile *out);
27   Double_t PropagateToDCA(AliITStrackV2 *nt, AliITStrackV2 *pt);
28
29   void GetCuts(Double_t cuts[7]) const;
30   void GetVertex(Double_t *vtx) { vtx[0]=fX; vtx[1]=fY; vtx[2]=fZ; }
31
32 private:
33   Int_t fEventN;          //event number
34
35   Double_t fChi2max;      // maximal allowed chi2 
36   Double_t fDNmin;        // min. allowed negative daughter's impact parameter
37   Double_t fDPmin;        // min. allowed positive daughter's impact parameter
38   Double_t fDCAmax;       // maximal allowed DCA between the daughter tracks 
39   Double_t fCPAmax;       // maximal allowed cosine of V0's pointing angle
40   Double_t fRmin, fRmax;  // max & min radii of the fiducial volume
41   
42   Double_t fX;            // X-coordinate of the primary vertex
43   Double_t fY;            // Y-coordinate of the primary vertex
44   Double_t fZ;            // Z-coordinate of the primary vertex
45
46   ClassDef(AliV0vertexer,1)  // V0 verterxer 
47 };
48
49 inline AliV0vertexer::AliV0vertexer() {
50   fEventN=0;
51   fChi2max=33.; 
52   fDNmin=0.015; fDPmin=0.015;
53   fDCAmax=0.01; fCPAmax=0.025; 
54   fRmin=0.5;    fRmax=2.5; 
55   fX=fY=fZ=0.;
56 }
57
58 inline AliV0vertexer::AliV0vertexer(const Double_t cuts[7]) {
59   fEventN=0;
60   fChi2max=cuts[0]; 
61   fDNmin=cuts[1];   fDPmin=cuts[2];
62   fDCAmax=cuts[3];  fCPAmax=cuts[4];
63   fRmin=cuts[5];    fRmax=cuts[6]; 
64   fX=fY=fZ=0.;
65 }
66
67 inline void AliV0vertexer::SetCuts(const Double_t cuts[7]) {
68   fChi2max=cuts[0]; 
69   fDNmin=cuts[1];   fDPmin=cuts[2];
70   fDCAmax=cuts[3];  fCPAmax=cuts[4];
71   fRmin=cuts[5];    fRmax=cuts[6]; 
72 }
73
74 inline void AliV0vertexer::GetCuts(Double_t cuts[7]) const {
75   cuts[0]=fChi2max; 
76   cuts[1]=fDNmin;   cuts[2]=fDPmin; 
77   cuts[3]=fDCAmax;  cuts[4]=fCPAmax;
78   cuts[5]=fRmin;    cuts[6]=fRmax; 
79 }
80
81 #endif
82
83