]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliESDv0KineCuts.h
Commit modifications done to take care of the problems
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliESDv0KineCuts.h
CommitLineData
3a72645a 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
11class AliESDv0;
12class AliESDEvent;
13class AliVEvent;
14class AliESDtrack;
15class AliVTrack;
16class AliKFParticle;
17class AliKFVertex;
18
19class 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
bf892a6a 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
3a72645a 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
bf892a6a 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
3a72645a 113 ClassDef(AliESDv0KineCuts, 0);
114
115};
116
117#endif