]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/hfe/AliESDv0KineCuts.h
Commit modifications done to take care of the problems
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliESDv0KineCuts.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3 /*
4  * plesae see source file for more details
5  */
6 #ifndef ALIESDV0KINECUTS_H
7 #define ALIESDV0KINECUTS_H
8
9 #include <TObject.h>
10
11 class AliESDv0;
12 class AliESDEvent;
13 class AliVEvent;
14 class AliESDtrack;
15 class AliVTrack;
16 class AliKFParticle;
17 class AliKFVertex;
18
19 class AliESDv0KineCuts : public TObject{
20  public:
21   enum{ // Reconstructed V0
22     kUndef = -1,
23       kGamma = 0,
24       kK0 = 1,
25       kLambda = 2,
26       kALambda = 3
27       };
28   
29   AliESDv0KineCuts();
30   virtual ~AliESDv0KineCuts();
31
32   AliESDv0KineCuts(const AliESDv0KineCuts &ref);
33   AliESDv0KineCuts &operator=(const AliESDv0KineCuts &ref);
34
35   Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);
36   Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgP, Int_t &pdgN);
37
38   Int_t  PreselectV0(AliESDv0* const v0);
39
40   Bool_t CaseGamma(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);
41   Bool_t CaseK0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);
42   Bool_t CaseLambda(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN, Int_t id);
43
44   Bool_t V0CutsCommon(const AliESDv0 * const v0);
45   Bool_t SingleTrackCuts(AliESDv0 * const v0);
46   void   Armenteros(AliESDv0* const v0, Float_t val[2]);
47   Bool_t CheckSigns(AliESDv0* const v0);
48
49   void   SetEvent(AliESDEvent* const event);
50   void   SetEvent(AliVEvent* const event);
51   void   SetPrimaryVertex(AliKFVertex* const v) { fPrimaryVertex = v; };
52
53   // setter functions for cut values
54   void   SetGammaCutChi2NDF(Float_t val)  { fGcutChi2NDF = val; };
55   void   SetGammaCutCosPoint(Float_t *val) { 
56     fGcutCosPoint[0] = val[0];
57     fGcutCosPoint[1] = val[1];
58   };
59   void   SetGammaCutDCA(Float_t *val){
60     fGcutDCA[0] = val[0];
61     fGcutDCA[1] = val[1];
62   };
63   void   SetGammaCutVertexR(Float_t *val){
64     fGcutVertexR[0] = val[0];
65     fGcutVertexR[1] = val[1];
66   };
67   void   SetGammaCutPsiPair(Float_t *val){
68     fGcutPsiPair[0] = val[0];
69     fGcutPsiPair[1] = val[1];
70   };
71   void   SetGammaCutInvMass(Float_t val){
72     fGcutInvMass = val;
73   };
74
75   Double_t PsiPair(AliESDv0* const v0);
76
77   Bool_t GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]);
78   Bool_t GetHelixCenter(AliESDtrack * const track, Double_t b, Int_t charge, Double_t center[2]);
79
80  protected:
81   void Copy(TObject &ref) const;
82
83  private:
84
85   AliKFParticle *CreateMotherParticle(const AliVTrack* const pdaughter, const AliVTrack* const ndaughter, Int_t pspec, Int_t nspec);
86
87  private:
88   AliESDv0              *fV0;             // current V0 candidate
89   AliESDEvent           *fEvent;          // current event
90   AliKFVertex           *fPrimaryVertex;  // primary vertex
91
92   // gamma cut values
93   Float_t               fGcutChi2NDF;      // Chi2NF cut value for the AliKFparticle gamma
94   Float_t               fGcutCosPoint[2];  // cos of the pointing angle [min, max]
95   Float_t               fGcutDCA[2];       // DCA between the daughter tracks [min, max]
96   Float_t               fGcutVertexR[2];   // radius of the conversion point [min, max]
97   Float_t               fGcutPsiPair[2];   // value of the psi pair cut [min, max]
98   Float_t               fGcutInvMass;      // upper value on the gamma invariant mass
99   // K0 cut values
100   Float_t               fK0cutChi2NDF;     // Chi2NF cut value for the AliKFparticle K0
101   Float_t               fK0cutCosPoint[2]; // cos of the pointing angle [min, max]
102   Float_t               fK0cutDCA[2];      // DCA between the daughter tracks [min, max]
103   Float_t               fK0cutVertexR[2];  // radius of the decay point [min, max]
104   Float_t               fK0cutInvMass[2];  // invariant mass window
105   // Lambda & anti-Lambda cut values
106   Float_t               fLcutChi2NDF;      // Chi2NF cut value for the AliKFparticle K0
107   Float_t               fLcutCosPoint[2];  // cos of the pointing angle [min, max]
108   Float_t               fLcutDCA[2];       // DCA between the daughter tracks [min, max]
109   Float_t               fLcutVertexR[2];   // radius of the decay point [min, max]
110   Float_t               fLcutInvMass[2];   // invariant mass window
111   
112   
113   ClassDef(AliESDv0KineCuts, 0);
114
115 };
116
117 #endif