4 /**************************************************************************
5 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
22 // Class for checking impact parameter (DCA) study
23 // + study DCA in rphi (xy) and z
24 // + resolution and pull
25 // + handle both MC and data
26 // + add plugin for primary vertex
49 class AliHFEdca : public TObject{
68 AliHFEdca(); // default constructor
69 AliHFEdca(const AliHFEdca &ref); // copy constructor
70 AliHFEdca &operator=(const AliHFEdca &ref); // assignment operator
71 virtual ~AliHFEdca(); // destructor
74 void CreateHistogramsPull(TList *pullList);
75 void CreateHistogramsResidual(TList *residualList);
76 void CreateHistogramsDca(TList *dcaList);
78 void CreateHistogramsKfDca(TList *kfDcaList);
80 void CreateHistogramsDataDca(TList *dataDcaList);
81 void CreateHistogramsDataPull(TList *dataPullList);
83 void CreateHistogramsVertex(TList *vertexList);
84 void CreateHistogramsDataVertex(TList *vertexList);
86 void CreateHistogramsPid(TList *pidList);
87 void CreateHistogramsDataPid(TList *pidList);
89 void CreateHistogramsHfeDca(TList *hfeDcaList);
90 void CreateHistogramsHfeDataDca(TList *hfeDataDcaList);
94 void FillHistogramsDca(AliESDEvent *esdEvent, AliESDtrack *track, AliMCEvent *mcEvent);
95 void FillHistogramsVtx(AliESDEvent *esdEvent, AliMCEvent *mcEvent);
96 void FillHistogramsPid(AliESDtrack *track, const AliMCEvent *mcEvent);
98 void FillHistogramsKfDca(AliESDEvent *esdEvent, AliESDtrack *track, const AliMCEvent *mcEvent);
100 void FillHistogramsDataDca(AliESDEvent *esdEvent, AliESDtrack *track, AliESDVertex *vtxESDSkip);
101 void FillHistogramsDataVtx(AliESDEvent *esdEvent);
102 void FillHistogramsDataPid(AliESDtrack *track);
104 void FillHistogramsHfeDca(AliESDEvent *esdEvent, AliESDtrack *track, AliMCEvent *mcEvent);
105 void FillHistogramsHfeDataDca(AliESDEvent *esdEvent,AliESDtrack *track,AliESDVertex *vtxESDSkip);
108 void ApplyExtraCuts(AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor);
110 void PostAnalysis() const;
112 Int_t GetCombinedPid(AliESDtrack *track);
117 static const Char_t* fgkParticles[kNParticles]; // particle names
118 static const Int_t fgkPdgParticle[kNParticles-2]; // identified particle's name
119 static const Int_t fgkColorPart[kNParticles]; // colors for particles
121 static const Float_t fgkPtIntv[kNPtBins+1]; // pt intervals
123 static const Char_t* fgkDcaVar[kNDcaVar]; // dca variables
124 static const Char_t* fgkDcaVarTitle[kNDcaVar]; // titles for dca variables
126 static const Char_t* fgkVertexVar[kNVertexVar]; // dca variables
127 static const Char_t* fgkVertexVarTitle[kNVertexVar]; // titles for dca variables
129 static const Char_t* fgkResDcaVar[kNDcaVar]; // dca variables
130 static const Char_t* fgkResDcaVarTitle[kNDcaVar]; // titles for dca variables
132 static const Char_t* fgkPullDcaVar[kNPullVar]; // pull variables
133 static const Char_t* fgkPullDcaVarTitle[kNPullVar]; // titles for pull variables
134 static const Char_t* fgkPullDataDcaVarTitle[kNPullVar]; // titles for pull variables
136 TH1F* fHistDcaXYRes[kNParticles][kNPtBins]; //! residuals in XY
137 TH1F* fHistDcaZRes[kNParticles][kNPtBins]; //! residuals in Z
139 TH1F* fHistDcaXYPull[kNParticles][kNPtBins]; //! pulls XY
140 TH1F* fHistDcaZPull[kNParticles][kNPtBins]; //! pulls Z
142 TH1F* fHistDcaXY[kNParticles][kNPtBins]; //! dca XY
143 TH1F* fHistDcaZ[kNParticles][kNPtBins]; //! dca Z
145 TH1F* fHistEPDcaXYRes[kNParticles-2][kNPtBins]; //! residuals in XY with esd pid
146 TH1F* fHistEPDcaZRes[kNParticles-2][kNPtBins]; //! residuals in Z with esd pid
148 TH1F* fHistEPDcaXYPull[kNParticles-2][kNPtBins]; //! pulls XY with esd pid
149 TH1F* fHistEPDcaZPull[kNParticles-2][kNPtBins]; //! pulls Z with esd pid
151 TH1F* fHistEPDcaXY[kNParticles-2][kNPtBins]; //! dca XY with esd pid
152 TH1F* fHistEPDcaZ[kNParticles-2][kNPtBins]; //! dca Z with esd pid
154 TH1F* fHistKFDcaXY[kNParticles][kNPtBins]; //! KF dca XY
155 TH1F* fHistKFDcaZ[kNParticles][kNPtBins]; //! KF dca Z
157 TH1F* fHistDataDcaXY[kNParticles][kNPtBins]; //! data dca XY
158 TH1F* fHistDataDcaZ[kNParticles][kNPtBins]; //! data dca Z
159 TH1F* fHistDataWoDcaXY[kNParticles][kNPtBins]; //! data dca XY w/o current trk
160 TH1F* fHistDataWoDcaZ[kNParticles][kNPtBins]; //! data dca Z w/o current trk
162 TH1F* fHistDataDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY
163 TH1F* fHistDataDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z
164 TH1F* fHistDataWoDcaXYPull[kNParticles][kNPtBins]; //! data pull dca XY w/o current trk
165 TH1F* fHistDataWoDcaZPull[kNParticles][kNPtBins]; //! data pull dca Z w/o current trk
167 TH1F* fHistMCvertex[kNVertexVar]; //! vertex MC
168 TH1F* fHistESDvertex[kNVertexVar]; //! vertex ESD
169 TH1F* fHistDatavertex[kNVertexVar]; //! vertex Data
171 TH1F* fHistMcPid[kNParticles]; //! MC pid pt spectra
172 TH1F* fHistEsdPid[kNParticles]; //! ESD pid pt spectra
174 TH1F *fHistDataEsdPid[kNParticles]; //! Data ESD pid
178 TH1F* fHistHPDcaXYRes[2][kNPtBins]; //! residuals in XY
179 TH1F* fHistHPDcaZRes[2][kNPtBins]; //! residuals in Z
180 TH1F* fHistHPDcaXYPull[2][kNPtBins]; //! pulls XY
181 TH1F* fHistHPDcaZPull[2][kNPtBins]; //! pulls Z
182 TH1F* fHistHPDcaXY[2][kNPtBins]; //! dca XY
183 TH1F* fHistHPDcaZ[2][kNPtBins]; //! dca Z
185 TH1F* fHistHfePid[2][2]; // ! HFE pid pt spectra only for electrons
188 TH1F* fHistHPDataDcaXY[2][kNPtBins]; //! data dca XY with HFE pid
189 TH1F* fHistHPDataDcaZ[2][kNPtBins]; //! data dca Z with HFE pid
190 TH1F* fHistHPDataDcaXYPull[2][kNPtBins]; //! data pull dca XY
191 TH1F* fHistHPDataDcaZPull[2][kNPtBins]; //! data pull dca Z
193 TH1F *fHistDataHfePid[2]; //! Data HFE pid
195 TH1I* fStat; //! counting diff of dca calculated from HF particle and ESD
196 ClassDef(AliHFEdca, 1);