]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEV0cuts.h
Added pass1 and pass2 directories
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEV0cuts.h
CommitLineData
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
27class TList;
28
29class AliMCParticle;
30class AliVEvent;
31class AliMCEvent;
32class AliESDtraack;
33class AliESDv0;
34class AliKFVertex;
35class AliKFParticle;
36class AliVTrack;
37
38class 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