]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | ||
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 |