Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / 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 //          Reads V0s and tracks, writes out cascade vertices
9 //    Origin: Christian Kuhn, IReS, Strasbourg, christian.kuhn@ires.in2p3.fr
10 //------------------------------------------------------------------
11
12 #include "TObject.h"
13
14 class AliESDEvent;
15 class TTree;
16 class AliESDv0;
17 class AliExternalTrackParam;
18
19 //_____________________________________________________________________________
20 class AliCascadeVertexer : public TObject {
21 public:
22   AliCascadeVertexer();
23   void SetCuts(const Double_t cuts[8]);
24   static void SetDefaultCuts(const Double_t cuts[8]);
25
26   Int_t V0sTracks2CascadeVertices(AliESDEvent *event);
27   Double_t PropagateToDCA(AliESDv0 *vtx,AliExternalTrackParam *trk,Double_t b);
28
29   void GetCuts(Double_t cuts[8]) const;
30   static void GetDefaultCuts(Double_t cuts[8]);
31
32 private:
33   static
34   Double_t fgChi2max;   // maximal allowed chi2 
35   static
36   Double_t fgDV0min;    // min. allowed V0 impact parameter
37   static
38   Double_t fgMassWin;   // window around the Lambda mass
39   static
40   Double_t fgDBachMin;  // min. allowed bachelor impact parameter
41   static
42   Double_t fgDCAmax;    // maximal allowed DCA between the V0 and the track 
43   static
44   Double_t fgCPAmin;    // minimal allowed cosine of the cascade pointing angle
45   static
46   Double_t fgRmin, fgRmax;// max & min radii of the fiducial volume
47   
48   Double_t fChi2max;    // maximal allowed chi2 
49   Double_t fDV0min;     // min. allowed V0 impact parameter
50   Double_t fMassWin;    // window around the Lambda mass
51   Double_t fDBachMin;   // min. allowed bachelor impact parameter
52   Double_t fDCAmax;     // maximal allowed DCA between the V0 and the track 
53   Double_t fCPAmin;     // minimal allowed cosine of the cascade pointing angle
54   Double_t fRmin, fRmax;// max & min radii of the fiducial volume
55   
56   ClassDef(AliCascadeVertexer,3)  // cascade verterxer 
57 };
58
59 inline AliCascadeVertexer::AliCascadeVertexer() :
60   TObject(),
61   fChi2max(fgChi2max), 
62   fDV0min(fgDV0min),
63   fMassWin(fgMassWin),
64   fDBachMin(fgDBachMin),
65   fDCAmax(fgDCAmax),
66   fCPAmin(fgCPAmin), 
67   fRmin(fgRmin),
68   fRmax(fgRmax)
69 {
70 }
71
72 inline void AliCascadeVertexer::SetCuts(const Double_t cuts[8]) {
73   fChi2max=cuts[0]; 
74   fDV0min=cuts[1];   fMassWin=cuts[2]; fDBachMin=cuts[3];
75   fDCAmax=cuts[4];   fCPAmin=cuts[5];
76   fRmin=cuts[6];     fRmax=cuts[7]; 
77 }
78
79 inline void AliCascadeVertexer::SetDefaultCuts(const Double_t cuts[8]) {
80   fgChi2max=cuts[0]; 
81   fgDV0min=cuts[1];   fgMassWin=cuts[2]; fgDBachMin=cuts[3];
82   fgDCAmax=cuts[4];   fgCPAmin=cuts[5];
83   fgRmin=cuts[6];     fgRmax=cuts[7]; 
84 }
85
86 inline void AliCascadeVertexer::GetCuts(Double_t cuts[8]) const {
87   cuts[0]=fChi2max; 
88   cuts[1]=fDV0min;   cuts[2]=fMassWin;  cuts[3]=fDBachMin;
89   cuts[4]=fDCAmax;   cuts[5]=fCPAmin;
90   cuts[6]=fRmin;     cuts[7]=fRmax; 
91 }
92
93 inline void AliCascadeVertexer::GetDefaultCuts(Double_t cuts[8]) {
94   cuts[0]=fgChi2max; 
95   cuts[1]=fgDV0min;   cuts[2]=fgMassWin;  cuts[3]=fgDBachMin;
96   cuts[4]=fgDCAmax;   cuts[5]=fgCPAmin;
97   cuts[6]=fgRmin;     cuts[7]=fgRmax; 
98 }
99
100 #endif
101