]>
Commit | Line | Data |
---|---|---|
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 | ||
30 | class TChain; | |
31 | class TTree; | |
32 | class TFile; | |
33 | ||
34 | class TString; | |
35 | class TList; | |
36 | ||
37 | class TObjArray; | |
38 | class AliStack; | |
39 | class AliMCEvent; | |
faee3b18 | 40 | class AliMCVertex; |
70da6c5a | 41 | |
42 | class AliESDEvent; | |
43 | class AliESDtrack; | |
44 | class AliESDVertex; | |
45 | ||
46 | class 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 |