primary Z coord. vertex finder. Possibly a better and faster solution for pp. Efficie...
[u/mrichter/AliRoot.git] / ITS / AliITSVertexerZ.h
CommitLineData
0c6af5c9 1#ifndef ALIITSVERTEXERZ_H
2#define ALIITSVERTEXERZ_H
3
4#include<AliITSVertexer.h>
5
6///////////////////////////////////////////////////////////////////
7// //
8// Class for primary vertex finding //
9// //
10///////////////////////////////////////////////////////////////////
11
12class TFile;
13class TString;
14class AliITSVertex;
15class AliITS;
16class TH1F;
17
18class AliITSVertexerZ : public AliITSVertexer {
19
20 public:
21
22 AliITSVertexerZ();
23 AliITSVertexerZ(TString filename,Float_t x0=0., Float_t y0=0.);
24 virtual ~AliITSVertexerZ();
25 virtual AliITSVertex* FindVertexForCurrentEvent(Int_t evnumb);
26 virtual void FindVertices();
27 virtual void PrintStatus() const;
28 void SetDiffPhiMax(Float_t pm = 0.01){fDiffPhiMax = pm;}
29 void SetFirstLayerModules(Int_t m1 = 0, Int_t m2 = 79){fFirstL1 = m1; fLastL1 = m2;}
30 void SetSecondLayerModules(Int_t m1 = 80, Int_t m2 = 239){fFirstL2 = m1; fLastL2 = m2;}
31 void SetLowLimit(Float_t lim=-10.){fLowLim = lim;}
32 void SetHighLimit(Float_t lim=10.){fHighLim = lim;}
33 Float_t GetLowLimit() const {return fLowLim;}
34 Float_t GetHighLimit() const {return fHighLim;}
35 void SetBinWidthCoarse(Float_t bw=0.01){fStepCoarse = bw;}
36 void SetBinWidthFine(Float_t bw=0.0005){fStepFine = bw;}
37 Float_t GetBinWidthCoarse() const {return fStepCoarse;}
38 Float_t GetBinWidthFine() const {return fStepFine;}
39 void SetTolerance(Float_t tol = 20./10000.){fTolerance = tol;}
40 Float_t GetTolerance() const {return fTolerance;}
41
42 protected:
43 AliITSVertexerZ(const AliITSVertexerZ& vtxr);
44 AliITSVertexerZ& operator=(const AliITSVertexerZ& /* vtxr */);
45 void ResetHistograms();
46
47 Int_t fFirstL1; // first module of the first pixel layer used
48 Int_t fLastL1; // last module of the first pixel layer used
49 Int_t fFirstL2; // first module of the second pixel layer used
50 Int_t fLastL2; // last module of the second pixel layer used
51 Float_t fDiffPhiMax; // Maximum delta phi allowed among corr. pixels
52 Float_t fX0; // Nominal x coordinate of the vertex
53 Float_t fY0; // Nominal y coordinate of the vertex
54 AliITS *fITS; //! pointer to the AliITS object
55 Float_t fZFound; //! found value for the current event
56 Float_t fZsig; //! RMS of Z
57 TH1F *fZCombc; //! histogram with coarse z distribution
58 TH1F *fZCombf; //! histogram with fine z distribution
59 Float_t fLowLim; // low limit for fZComb histograms
60 Float_t fHighLim; // high limit for fZComb histograms
61 Float_t fStepCoarse; // bin width for fZCombc
62 Float_t fStepFine; // bin width for fZCombf
63 Float_t fTolerance; // tolerance on the symmetry of the Z interval
64
65 ClassDef(AliITSVertexerZ,1);
66};
67
68#endif