]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/lightvertexers/AliLightCascadeVertexer.h
Lightweight cascade checks -> code implementation 2
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / lightvertexers / AliLightCascadeVertexer.h
1 #ifndef AliLightCascadeVertexer_H
2 #define AliLightCascadeVertexer_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 AliESDv0;
16 class AliExternalTrackParam;
17
18 //_____________________________________________________________________________
19 class AliLightCascadeVertexer : public TObject {
20 public:
21   AliLightCascadeVertexer();
22   void SetCuts(const Double_t cuts[8]);
23   static void SetDefaultCuts(const Double_t cuts[8]);
24
25   Int_t V0sTracks2CascadeVertices(AliESDEvent *event);
26   Double_t Det(Double_t a00, Double_t a01, Double_t a10, Double_t a11) const;
27   Double_t Det(Double_t a00,Double_t a01,Double_t a02,
28                Double_t a10,Double_t a11,Double_t a12,
29                Double_t a20,Double_t a21,Double_t a22) const;
30
31   Double_t PropagateToDCA(AliESDv0 *vtx,AliExternalTrackParam *trk,Double_t b);
32
33   void GetCuts(Double_t cuts[8]) const;
34   static void GetDefaultCuts(Double_t cuts[8]);
35     
36     static void SetDefaultMaxEta(Double_t lMaxEta);
37     static void SetDefaultMinClusters(Double_t lMaxEta);
38     void SetMaxEta(Double_t lMaxEta);
39     void SetMinClusters(Double_t lMaxEta);
40
41 private:
42   static
43   Double_t fgChi2max;   // maximal allowed chi2 
44   static
45   Double_t fgDV0min;    // min. allowed V0 impact parameter
46   static
47   Double_t fgMassWin;   // window around the Lambda mass
48   static
49   Double_t fgDBachMin;  // min. allowed bachelor impact parameter
50   static
51   Double_t fgDCAmax;    // maximal allowed DCA between the V0 and the track 
52   static
53   Double_t fgCPAmin;    // minimal allowed cosine of the cascade pointing angle
54   static
55   Double_t fgRmin, fgRmax;// max & min radii of the fiducial volume
56     static Double_t fgMaxEta;       // maximum eta value for track pre-selection
57     static Double_t fgMinClusters;  // minimum single-track clusters value (>=)
58   
59   Double_t fChi2max;    // maximal allowed chi2 
60   Double_t fDV0min;     // min. allowed V0 impact parameter
61   Double_t fMassWin;    // window around the Lambda mass
62   Double_t fDBachMin;   // min. allowed bachelor impact parameter
63   Double_t fDCAmax;     // maximal allowed DCA between the V0 and the track 
64   Double_t fCPAmin;     // minimal allowed cosine of the cascade pointing angle
65   Double_t fRmin, fRmax;// max & min radii of the fiducial volume
66     Double_t fMaxEta;       // maximum eta value for track pre-selection
67     Double_t fMinClusters;  // minimum single-track clusters value (>=)
68   
69   ClassDef(AliLightCascadeVertexer,3)  // cascade verterxer 
70 };
71
72 inline AliLightCascadeVertexer::AliLightCascadeVertexer() :
73   TObject(),
74   fChi2max(fgChi2max), 
75   fDV0min(fgDV0min),
76   fMassWin(fgMassWin),
77   fDBachMin(fgDBachMin),
78   fDCAmax(fgDCAmax),
79   fCPAmin(fgCPAmin), 
80   fRmin(fgRmin),
81 fRmax(fgRmax),
82 fMaxEta(fgMaxEta),
83 fMinClusters(fgMinClusters)
84 {
85 }
86
87 inline void AliLightCascadeVertexer::SetCuts(const Double_t cuts[8]) {
88   fChi2max=cuts[0]; 
89   fDV0min=cuts[1];   fMassWin=cuts[2]; fDBachMin=cuts[3];
90   fDCAmax=cuts[4];   fCPAmin=cuts[5];
91   fRmin=cuts[6];     fRmax=cuts[7]; 
92 }
93
94 inline void AliLightCascadeVertexer::SetDefaultCuts(const Double_t cuts[8]) {
95   fgChi2max=cuts[0]; 
96   fgDV0min=cuts[1];   fgMassWin=cuts[2]; fgDBachMin=cuts[3];
97   fgDCAmax=cuts[4];   fgCPAmin=cuts[5];
98   fgRmin=cuts[6];     fgRmax=cuts[7]; 
99 }
100
101 inline void AliLightCascadeVertexer::GetCuts(Double_t cuts[8]) const {
102   cuts[0]=fChi2max; 
103   cuts[1]=fDV0min;   cuts[2]=fMassWin;  cuts[3]=fDBachMin;
104   cuts[4]=fDCAmax;   cuts[5]=fCPAmin;
105   cuts[6]=fRmin;     cuts[7]=fRmax; 
106 }
107
108 inline void AliLightCascadeVertexer::GetDefaultCuts(Double_t cuts[8]) {
109   cuts[0]=fgChi2max; 
110   cuts[1]=fgDV0min;   cuts[2]=fgMassWin;  cuts[3]=fgDBachMin;
111   cuts[4]=fgDCAmax;   cuts[5]=fgCPAmin;
112   cuts[6]=fgRmin;     cuts[7]=fgRmax; 
113 }
114
115 inline void AliLightCascadeVertexer::SetDefaultMaxEta(Double_t lMaxEta) {
116     fgMaxEta = lMaxEta;
117 }
118 inline void AliLightCascadeVertexer::SetDefaultMinClusters(Double_t lMinClusters) {
119     fgMinClusters = lMinClusters;
120 }
121 inline void AliLightCascadeVertexer::SetMaxEta(Double_t lMaxEta) {
122     fMaxEta = lMaxEta;
123 }
124 inline void AliLightCascadeVertexer::SetMinClusters(Double_t lMinClusters) {
125     fMinClusters = lMinClusters;
126 }
127
128 #endif
129