]>
Commit | Line | Data |
---|---|---|
27de2dfb | 1 | #ifndef ALIHFEV0CUTS_H |
2 | #define ALIHFEV0CUTS_H | |
3 | ||
c04c80e6 | 4 | /************************************************************************** |
5 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
6 | * * | |
7 | * Author: The ALICE Off-line Project. * | |
8 | * Contributors are mentioned in the code where appropriate. * | |
9 | * * | |
10 | * Permission to use, copy, modify and distribute this software and its * | |
11 | * documentation strictly for non-commercial purposes is hereby granted * | |
12 | * without fee, provided that the above copyright notice appears in all * | |
13 | * copies and that both the copyright notice and this permission notice * | |
14 | * appear in the supporting documentation. The authors make no claims * | |
15 | * about the suitability of this software for any purpose. It is * | |
16 | * provided "as is" without express or implied warranty. * | |
17 | **************************************************************************/ | |
27de2dfb | 18 | |
19 | /* $Id$ */ | |
20 | ||
c04c80e6 | 21 | // |
22 | // Class for the V0 cuts - tuned to obtain clean eletron, pion and proton samples. | |
23 | // NOT suitable for V0 analysis | |
24 | // | |
c04c80e6 | 25 | #include "AliHFEcollection.h" |
26 | ||
27 | class TList; | |
28 | ||
29 | class AliMCParticle; | |
30 | class AliVEvent; | |
31 | class AliMCEvent; | |
32 | class AliESDtraack; | |
33 | class AliESDv0; | |
34 | class AliKFVertex; | |
35 | class AliKFParticle; | |
36 | class AliVTrack; | |
37 | ||
38 | class AliHFEV0cuts : public TObject { | |
39 | public: | |
3a72645a | 40 | enum{ // Reconstructed V0 |
41 | kUndef = 0, | |
42 | kRecoGamma = 1, | |
43 | kRecoK0 = 2, | |
44 | kRecoPhi = 3, | |
45 | kRecoLambda = 4, | |
46 | kRecoALambda = -4 | |
47 | ||
48 | }; | |
49 | enum{ // Identified Daughter particles | |
50 | kRecoElectron = 0, | |
51 | kRecoPionK0 = 1, | |
52 | kRecoPionL = 2, | |
53 | kRecoKaon = 3, | |
54 | kRecoProton = 4 | |
55 | }; | |
c04c80e6 | 56 | AliHFEV0cuts(); |
57 | ~AliHFEV0cuts(); | |
58 | AliHFEV0cuts(const AliHFEV0cuts &ref); | |
59 | AliHFEV0cuts &operator=(const AliHFEV0cuts &ref); | |
60 | ||
61 | void Init(const char* name); | |
62 | ||
63 | void RunQA(); | |
c04c80e6 | 64 | void SetMCEvent(AliMCEvent* const mce) { fMCEvent = mce; }; |
65 | void SetInputEvent(AliVEvent* const e) { fInputEvent = e; }; | |
66 | void SetPrimaryVertex(AliKFVertex* const v) { fPrimaryVertex = v; }; | |
67 | ||
3a72645a | 68 | TList* GetList() { return fQA->GetList(); }; |
69 | TList* GetListMC() { return fQAmc->GetList(); }; | |
c04c80e6 | 70 | |
71 | Bool_t TrackCutsCommon(AliESDtrack* track); | |
72 | Bool_t V0CutsCommon(AliESDv0 *v0); | |
73 | Bool_t GammaCuts(AliESDv0 *v0); | |
74 | Bool_t K0Cuts(AliESDv0 *v0); | |
75 | Bool_t LambdaCuts(AliESDv0 *v0, Bool_t &isLambda); | |
76 | ||
77 | Bool_t LooseRejectK0(AliESDv0 * const v0) const; | |
78 | Bool_t LooseRejectLambda(AliESDv0 * const v0) const; | |
79 | Bool_t LooseRejectGamma(AliESDv0 * const v0) const; | |
80 | ||
81 | void Armenteros(AliESDv0 *v0, Float_t val[2]); | |
82 | ||
83 | Double_t OpenAngle(AliESDv0 *v0) const;//opening angle between V0 daughters; close to zero for conversions | |
84 | Double_t PsiPair(AliESDv0 *v0); | |
85 | ||
86 | Bool_t CheckSigns(AliESDv0* const v0); | |
3a72645a | 87 | Bool_t GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]); |
88 | Bool_t GetHelixCenter(AliESDtrack * const track, Double_t b,Int_t charge, Double_t center[2]); | |
89 | ||
90 | ||
91 | // MC stuff | |
92 | void SetCurrentV0id(Int_t id) { fCurrentV0id = id; }; | |
93 | void SetDaughtersID(Int_t d[2]) {fPdaughterPDG = d[0]; fNdaughterPDG = d[1]; }; | |
c04c80e6 | 94 | |
95 | AliKFParticle *CreateMotherParticle(AliVTrack* const pdaughter, AliVTrack* const ndaughter, Int_t pspec, Int_t nspec); | |
96 | ||
97 | private: | |
98 | void Copy(TObject &ref) const; | |
99 | ||
100 | private: | |
101 | ||
102 | AliHFEcollection *fQA; // store QA cut histograms | |
3a72645a | 103 | AliHFEcollection *fQAmc; // store |
c04c80e6 | 104 | AliMCEvent *fMCEvent; // MC event |
105 | AliVEvent *fInputEvent; // Input Event | |
106 | AliKFVertex *fPrimaryVertex; // primary vertex | |
107 | ||
3a72645a | 108 | Int_t fCurrentV0id; // MC flagged V0 |
109 | Int_t fPdaughterPDG; // MC id of the positive daugeter | |
110 | Int_t fNdaughterPDG; // MC id of the negative daugeter | |
111 | ||
c04c80e6 | 112 | |
113 | ClassDef(AliHFEV0cuts, 1) | |
114 | }; | |
115 | ||
116 | ||
117 | #endif |