Updated code for tracking V2 (from Y. Belikov)
[u/mrichter/AliRoot.git] / ITS / AliCascadeVertexer.h
1 #ifndef ALICASCADEVERTEXER_H
2 #define ALICASCADEVERTEXER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //------------------------------------------------------------------
7 //                    Cascade Vertexer Class
8 //
9 //    Origin: Christian Kuhn, IReS, Strasbourg, christian.kuhn@ires.in2p3.fr
10 //------------------------------------------------------------------
11
12 #include "TObject.h"
13
14 class TFile;
15 class AliITStrackV2;
16 class AliV0vertex;
17
18 //_____________________________________________________________________________
19 class AliCascadeVertexer : public TObject {
20 public:
21   AliCascadeVertexer();
22   AliCascadeVertexer(const Double_t cuts[8]);
23   void SetCuts(const Double_t cuts[8]);
24
25   Int_t V0sTracks2CascadeVertices(const TFile *in, TFile *out);
26   Double_t PropagateToDCA(AliV0vertex *vtx, AliITStrackV2 *trk);
27
28   void GetCuts(Double_t cuts[8]) const;
29
30 private:
31   Double_t fChi2max;    // maximal allowed chi2 
32   Double_t fDV0min;     // min. allowed V0 impact parameter
33   Double_t fMassWin;    // window around the Lambda mass
34   Double_t fDBachMin;   // min. allowed bachelor impact parameter
35   Double_t fDCAmax;     // maximal allowed DCA between the V0 and the track 
36   Double_t fCPAmax;     // maximal allowed cosine of the cascade pointing angle
37   Double_t fRmin, fRmax;// max & min radii of the fiducial volume
38   
39   ClassDef(AliCascadeVertexer,1)  // cascade verterxer 
40 };
41
42 inline AliCascadeVertexer::AliCascadeVertexer() {
43  fChi2max=33.; 
44  fDV0min=0.015; fMassWin=0.05; fDBachMin=0.015;
45  fDCAmax=0.01;  fCPAmax=0.025; 
46  fRmin=0.5;     fRmax=2.5; 
47 }
48
49 inline AliCascadeVertexer::AliCascadeVertexer(const Double_t cuts[8]) {
50   fChi2max=cuts[0]; 
51   fDV0min=cuts[1];   fMassWin=cuts[2]; fDBachMin=cuts[3];
52   fDCAmax=cuts[4];   fCPAmax=cuts[5];
53   fRmin=cuts[6];     fRmax=cuts[7]; 
54 }
55
56 inline void AliCascadeVertexer::SetCuts(const Double_t cuts[8]) {
57   fChi2max=cuts[0]; 
58   fDV0min=cuts[1];   fMassWin=cuts[2]; fDBachMin=cuts[3];
59   fDCAmax=cuts[4];   fCPAmax=cuts[5];
60   fRmin=cuts[6];     fRmax=cuts[7]; 
61 }
62
63 inline void AliCascadeVertexer::GetCuts(Double_t cuts[8]) const {
64   cuts[0]=fChi2max; 
65   cuts[1]=fDV0min;   cuts[2]=fMassWin;  cuts[3]=fDBachMin;
66   cuts[4]=fDCAmax;   cuts[5]=fCPAmax;
67   cuts[6]=fRmin;     cuts[7]=fRmax; 
68 }
69
70 #endif
71
72