]>
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 | |
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 | ||
c2690925 | 90 | void InitAnalysis()const; |
91 | void FillHistogramsDca(const AliESDEvent * const esdEvent, const AliESDtrack *const track, AliMCEvent *const mcEvent); | |
92 | void FillHistogramsVtx(const AliESDEvent * const esdEvent, const AliMCEvent *const mcEvent); | |
93 | void FillHistogramsPid(const AliESDtrack *track, const AliMCEvent * const mcEvent); | |
faee3b18 | 94 | |
c2690925 | 95 | void FillHistogramsKfDca(const AliESDEvent * const esdEvent, const AliESDtrack *const track, const AliMCEvent *const mcEvent); |
faee3b18 | 96 | |
c2690925 | 97 | void FillHistogramsDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip); |
98 | void FillHistogramsDataVtx(const AliESDEvent * const esdEvent); | |
99 | void FillHistogramsDataPid(const AliESDtrack * const track); | |
faee3b18 | 100 | |
c2690925 | 101 | void FillHistogramsHfeDca(const AliESDEvent *const esdEvent, const AliESDtrack * const track, const AliMCEvent * const mcEvent); |
102 | void FillHistogramsHfeDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip); | |
faee3b18 | 103 | |
104 | ||
c2690925 | 105 | void ApplyExtraCuts(const AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor); |
faee3b18 | 106 | |
70da6c5a | 107 | void PostAnalysis() const; |
108 | ||
c2690925 | 109 | Int_t GetCombinedPid(const AliESDtrack * const 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 |