]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEdca.h
Minor fix for software triggers.
[u/mrichter/AliRoot.git] / PWG3 / 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
23#ifndef ALIHFEDCA_H
24#define ALIHFEDCA_H
25
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
70 void Initialize();
71 void CreateHistogramsPull(TList *pullList);
72 void CreateHistogramsResidual(TList *residualList);
faee3b18 73 void CreateHistogramsDca(TList *dcaList);
74
75 void CreateHistogramsKfDca(TList *kfDcaList);
76
77 void CreateHistogramsDataDca(TList *dataDcaList);
78 void CreateHistogramsDataPull(TList *dataPullList);
79
80 void CreateHistogramsVertex(TList *vertexList);
81 void CreateHistogramsDataVertex(TList *vertexList);
82
83 void CreateHistogramsPid(TList *pidList);
84 void CreateHistogramsDataPid(TList *pidList);
85
86 void CreateHistogramsHfeDca(TList *hfeDcaList);
87 void CreateHistogramsHfeDataDca(TList *hfeDataDcaList);
88
89
70da6c5a 90 void InitAnalysis();
faee3b18 91 void FillHistogramsDca(AliESDEvent *esdEvent, AliESDtrack *track, AliMCEvent *mcEvent);
92 void FillHistogramsVtx(AliESDEvent *esdEvent, AliMCEvent *mcEvent);
93 void FillHistogramsPid(AliESDtrack *track, AliMCEvent *mcEvent);
94
95 void FillHistogramsKfDca(AliESDEvent *esdEvent, AliESDtrack *track, AliMCEvent *mcEvent);
96
97 void FillHistogramsDataDca(AliESDEvent *esdEvent, AliESDtrack *track, AliESDVertex *vtxESDSkip);
98 void FillHistogramsDataVtx(AliESDEvent *esdEvent);
99 void FillHistogramsDataPid(AliESDtrack *track);
100
101 void FillHistogramsHfeDca(AliESDEvent *esdEvent, AliESDtrack *track, AliMCEvent *mcEvent);
102 void FillHistogramsHfeDataDca(AliESDEvent *esdEvent, AliESDtrack *track);
103
104
105 void ApplyExtraCuts(AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor);
106
70da6c5a 107 void PostAnalysis() const;
108
faee3b18 109 Int_t GetCombinedPid(AliESDtrack *track);
70da6c5a 110
111 private:
faee3b18 112
113
114 static const Char_t* fgkParticles[kNParticles]; // particle names
115 static const Int_t fgkPdgParticle[kNParticles-2]; // identified particle's name
70da6c5a 116 static const Int_t fgkColorPart[kNParticles]; // colors for particles
117
118 static const Float_t fgkPtIntv[kNPtBins+1]; // pt intervals
119
120 static const Char_t* fgkDcaVar[kNDcaVar]; // dca variables
121 static const Char_t* fgkDcaVarTitle[kNDcaVar]; // titles for dca variables
122
faee3b18 123 static const Char_t* fgkVertexVar[kNVertexVar]; // dca variables
124 static const Char_t* fgkVertexVarTitle[kNVertexVar]; // titles for dca variables
125
126 static const Char_t* fgkResDcaVar[kNDcaVar]; // dca variables
127 static const Char_t* fgkResDcaVarTitle[kNDcaVar]; // titles for dca variables
128
70da6c5a 129 static const Char_t* fgkPullDcaVar[kNPullVar]; // pull variables
130 static const Char_t* fgkPullDcaVarTitle[kNPullVar]; // titles for pull variables
faee3b18 131 static const Char_t* fgkPullDataDcaVarTitle[kNPullVar]; // titles for pull variables
70da6c5a 132
133 TH1F* fHistDcaXYRes[kNParticles][kNPtBins]; //! residuals in XY
134 TH1F* fHistDcaZRes[kNParticles][kNPtBins]; //! residuals in Z
faee3b18 135
70da6c5a 136 TH1F* fHistDcaXYPull[kNParticles][kNPtBins]; //! pulls XY
137 TH1F* fHistDcaZPull[kNParticles][kNPtBins]; //! pulls Z
138
faee3b18 139 TH1F* fHistDcaXY[kNParticles][kNPtBins]; //! dca XY
140 TH1F* fHistDcaZ[kNParticles][kNPtBins]; //! dca Z
141
142 TH1F* fHistEPDcaXYRes[kNParticles-2][kNPtBins]; //! residuals in XY with esd pid
143 TH1F* fHistEPDcaZRes[kNParticles-2][kNPtBins]; //! residuals in Z with esd pid
144
145 TH1F* fHistEPDcaXYPull[kNParticles-2][kNPtBins]; //! pulls XY with esd pid
146 TH1F* fHistEPDcaZPull[kNParticles-2][kNPtBins]; //! pulls Z with esd pid
147
148 TH1F* fHistEPDcaXY[kNParticles-2][kNPtBins]; //! dca XY with esd pid
149 TH1F* fHistEPDcaZ[kNParticles-2][kNPtBins]; //! dca Z with esd pid
150
151 TH1F* fHistKFDcaXY[kNParticles][kNPtBins]; //! KF dca XY
152 TH1F* fHistKFDcaZ[kNParticles][kNPtBins]; //! KF dca Z
70da6c5a 153
faee3b18 154 TH1F* fHistDataDcaXY[kNParticles][kNPtBins]; //! data dca XY
155 TH1F* fHistDataDcaZ[kNParticles][kNPtBins]; //! data dca Z
156 TH1F* fHistDataWoDcaXY[kNParticles][kNPtBins]; //! data dca XY w/o current trk
157 TH1F* fHistDataWoDcaZ[kNParticles][kNPtBins]; //! data dca Z w/o current trk
158
159 TH1F* fHistDataDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY
160 TH1F* fHistDataDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z
161 TH1F* fHistDataWoDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY w/o current trk
162 TH1F* fHistDataWoDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z w/o current trk
163
164 TH1F* fHistMCvertex[kNVertexVar]; //! vertex MC
165 TH1F* fHistESDvertex[kNVertexVar]; //! vertex ESD
166 TH1F* fHistDatavertex[kNVertexVar]; //! vertex Data
167
168 TH1F* fHistMcPid[kNParticles]; //! MC pid pt spectra
169 TH1F* fHistEsdPid[kNParticles]; //! ESD pid pt spectra
170
171 TH1F *fHistDataEsdPid[kNParticles]; //! Data ESD pid
172
173 // HFE pid part
174 // MC
175 TH1F* fHistHPDcaXYRes[2][kNPtBins]; //! residuals in XY
176 TH1F* fHistHPDcaZRes[2][kNPtBins]; //! residuals in Z
177 TH1F* fHistHPDcaXYPull[2][kNPtBins]; //! pulls XY
178 TH1F* fHistHPDcaZPull[2][kNPtBins]; //! pulls Z
179 TH1F* fHistHPDcaXY[2][kNPtBins]; //! dca XY
180 TH1F* fHistHPDcaZ[2][kNPtBins]; //! dca Z
181
182 TH1F* fHistHfePid[2][2]; // ! HFE pid pt spectra only for electrons
183
184 // Data
185 TH1F* fHistHPDataDcaXY[2][kNPtBins]; //! data dca XY with HFE pid
186 TH1F* fHistHPDataDcaZ[2][kNPtBins]; //! data dca Z with HFE pid
187 TH1F* fHistHPDataDcaXYPull[2][kNPtBins]; //! data pull dca XY
188 TH1F* fHistHPDataDcaZPull[2][kNPtBins]; //! data pull dca Z
189
190 TH1F *fHistDataHfePid[2]; //! Data HFE pid
191
192 TH1I* fStat; //! counting diff of dca calculated from HF particle and ESD
70da6c5a 193 ClassDef(AliHFEdca, 1);
194};
195
196#endif