]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/AliHFEdca.h
add jet trigger
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEdca.h
CommitLineData
70da6c5a 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15//
16// Class for checking impact parameter (DCA) study
faee3b18 17// + study DCA in rphi (xy) and z
18// + resolution and pull
19// + handle both MC and data
20// + add plugin for primary vertex
21//
70da6c5a 22
c2690925 23#ifndef ALIHFEDCA_H
24#define ALIHFEDCA_H
25
70da6c5a 26#ifndef ROOT_TObject
27#include <TObject.h>
28#endif
29
30class TChain;
31class TTree;
32class TFile;
33
34class TString;
35class TList;
36
37class TObjArray;
38class AliStack;
39class AliMCEvent;
faee3b18 40class AliMCVertex;
70da6c5a 41
42class AliESDEvent;
43class AliESDtrack;
44class AliESDVertex;
45
46class AliHFEdca : public TObject{
47
48 public:
49 enum{
50 kPDGelectron = 11,
51 kPDGmuon = 13,
52 kPDGpion = 211,
53 kPDGkaon = 321,
54 kPDGproton = 2212
55 };
56
57 enum{
58 kNParticles = 12,
faee3b18 59 kNPtBins = 50,
70da6c5a 60 kNDcaVar = 2,
faee3b18 61 kNVertexVar = 3,
70da6c5a 62 kNPullVar = 2
63 };
64
faee3b18 65 AliHFEdca(); // default constructor
66 AliHFEdca(const AliHFEdca &ref); // copy constructor
67 AliHFEdca &operator=(const AliHFEdca &ref); // assignment operator
68 virtual ~AliHFEdca(); // destructor
70da6c5a 69
70da6c5a 70 void CreateHistogramsPull(TList *pullList);
71 void CreateHistogramsResidual(TList *residualList);
faee3b18 72 void CreateHistogramsDca(TList *dcaList);
73
74 void CreateHistogramsKfDca(TList *kfDcaList);
75
76 void CreateHistogramsDataDca(TList *dataDcaList);
77 void CreateHistogramsDataPull(TList *dataPullList);
78
79 void CreateHistogramsVertex(TList *vertexList);
80 void CreateHistogramsDataVertex(TList *vertexList);
81
82 void CreateHistogramsPid(TList *pidList);
83 void CreateHistogramsDataPid(TList *pidList);
84
85 void CreateHistogramsHfeDca(TList *hfeDcaList);
86 void CreateHistogramsHfeDataDca(TList *hfeDataDcaList);
87
88
c2690925 89 void InitAnalysis()const;
90 void FillHistogramsDca(const AliESDEvent * const esdEvent, const AliESDtrack *const track, AliMCEvent *const mcEvent);
91 void FillHistogramsVtx(const AliESDEvent * const esdEvent, const AliMCEvent *const mcEvent);
92 void FillHistogramsPid(const AliESDtrack *track, const AliMCEvent * const mcEvent);
faee3b18 93
c2690925 94 void FillHistogramsKfDca(const AliESDEvent * const esdEvent, const AliESDtrack *const track, const AliMCEvent *const mcEvent);
faee3b18 95
c2690925 96 void FillHistogramsDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip);
97 void FillHistogramsDataVtx(const AliESDEvent * const esdEvent);
98 void FillHistogramsDataPid(const AliESDtrack * const track);
faee3b18 99
c2690925 100 void FillHistogramsHfeDca(const AliESDEvent *const esdEvent, const AliESDtrack * const track, const AliMCEvent * const mcEvent);
101 void FillHistogramsHfeDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip);
faee3b18 102
103
c2690925 104 void ApplyExtraCuts(const AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor);
faee3b18 105
70da6c5a 106 void PostAnalysis() const;
107
c2690925 108 Int_t GetCombinedPid(const AliESDtrack * const track);
70da6c5a 109
110 private:
faee3b18 111
112
113 static const Char_t* fgkParticles[kNParticles]; // particle names
114 static const Int_t fgkPdgParticle[kNParticles-2]; // identified particle's name
70da6c5a 115 static const Int_t fgkColorPart[kNParticles]; // colors for particles
116
117 static const Float_t fgkPtIntv[kNPtBins+1]; // pt intervals
118
119 static const Char_t* fgkDcaVar[kNDcaVar]; // dca variables
120 static const Char_t* fgkDcaVarTitle[kNDcaVar]; // titles for dca variables
121
faee3b18 122 static const Char_t* fgkVertexVar[kNVertexVar]; // dca variables
123 static const Char_t* fgkVertexVarTitle[kNVertexVar]; // titles for dca variables
124
125 static const Char_t* fgkResDcaVar[kNDcaVar]; // dca variables
126 static const Char_t* fgkResDcaVarTitle[kNDcaVar]; // titles for dca variables
127
70da6c5a 128 static const Char_t* fgkPullDcaVar[kNPullVar]; // pull variables
129 static const Char_t* fgkPullDcaVarTitle[kNPullVar]; // titles for pull variables
faee3b18 130 static const Char_t* fgkPullDataDcaVarTitle[kNPullVar]; // titles for pull variables
70da6c5a 131
132 TH1F* fHistDcaXYRes[kNParticles][kNPtBins]; //! residuals in XY
133 TH1F* fHistDcaZRes[kNParticles][kNPtBins]; //! residuals in Z
faee3b18 134
70da6c5a 135 TH1F* fHistDcaXYPull[kNParticles][kNPtBins]; //! pulls XY
136 TH1F* fHistDcaZPull[kNParticles][kNPtBins]; //! pulls Z
137
faee3b18 138 TH1F* fHistDcaXY[kNParticles][kNPtBins]; //! dca XY
139 TH1F* fHistDcaZ[kNParticles][kNPtBins]; //! dca Z
140
141 TH1F* fHistEPDcaXYRes[kNParticles-2][kNPtBins]; //! residuals in XY with esd pid
142 TH1F* fHistEPDcaZRes[kNParticles-2][kNPtBins]; //! residuals in Z with esd pid
143
144 TH1F* fHistEPDcaXYPull[kNParticles-2][kNPtBins]; //! pulls XY with esd pid
145 TH1F* fHistEPDcaZPull[kNParticles-2][kNPtBins]; //! pulls Z with esd pid
146
147 TH1F* fHistEPDcaXY[kNParticles-2][kNPtBins]; //! dca XY with esd pid
148 TH1F* fHistEPDcaZ[kNParticles-2][kNPtBins]; //! dca Z with esd pid
149
150 TH1F* fHistKFDcaXY[kNParticles][kNPtBins]; //! KF dca XY
151 TH1F* fHistKFDcaZ[kNParticles][kNPtBins]; //! KF dca Z
70da6c5a 152
faee3b18 153 TH1F* fHistDataDcaXY[kNParticles][kNPtBins]; //! data dca XY
154 TH1F* fHistDataDcaZ[kNParticles][kNPtBins]; //! data dca Z
155 TH1F* fHistDataWoDcaXY[kNParticles][kNPtBins]; //! data dca XY w/o current trk
156 TH1F* fHistDataWoDcaZ[kNParticles][kNPtBins]; //! data dca Z w/o current trk
157
158 TH1F* fHistDataDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY
159 TH1F* fHistDataDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z
160 TH1F* fHistDataWoDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY w/o current trk
161 TH1F* fHistDataWoDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z w/o current trk
162
163 TH1F* fHistMCvertex[kNVertexVar]; //! vertex MC
164 TH1F* fHistESDvertex[kNVertexVar]; //! vertex ESD
165 TH1F* fHistDatavertex[kNVertexVar]; //! vertex Data
166
167 TH1F* fHistMcPid[kNParticles]; //! MC pid pt spectra
168 TH1F* fHistEsdPid[kNParticles]; //! ESD pid pt spectra
169
170 TH1F *fHistDataEsdPid[kNParticles]; //! Data ESD pid
171
172 // HFE pid part
173 // MC
174 TH1F* fHistHPDcaXYRes[2][kNPtBins]; //! residuals in XY
175 TH1F* fHistHPDcaZRes[2][kNPtBins]; //! residuals in Z
176 TH1F* fHistHPDcaXYPull[2][kNPtBins]; //! pulls XY
177 TH1F* fHistHPDcaZPull[2][kNPtBins]; //! pulls Z
178 TH1F* fHistHPDcaXY[2][kNPtBins]; //! dca XY
179 TH1F* fHistHPDcaZ[2][kNPtBins]; //! dca Z
180
181 TH1F* fHistHfePid[2][2]; // ! HFE pid pt spectra only for electrons
182
183 // Data
184 TH1F* fHistHPDataDcaXY[2][kNPtBins]; //! data dca XY with HFE pid
185 TH1F* fHistHPDataDcaZ[2][kNPtBins]; //! data dca Z with HFE pid
186 TH1F* fHistHPDataDcaXYPull[2][kNPtBins]; //! data pull dca XY
187 TH1F* fHistHPDataDcaZPull[2][kNPtBins]; //! data pull dca Z
188
189 TH1F *fHistDataHfePid[2]; //! Data HFE pid
190
191 TH1I* fStat; //! counting diff of dca calculated from HF particle and ESD
70da6c5a 192 ClassDef(AliHFEdca, 1);
193};
194
195#endif