]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSVertexerZ.h
modifications to satisfy the coding conventions
[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;
d681bb2d 14class AliESDVertex;
0c6af5c9 15class TH1F;
16
17class AliITSVertexerZ : public AliITSVertexer {
18
19 public:
20
21 AliITSVertexerZ();
308c2f7c 22 AliITSVertexerZ(Float_t x0, Float_t y0);
0c6af5c9 23 virtual ~AliITSVertexerZ();
6fd990e3 24 // The number of contributors set in the AliESDVertex object is the
25 // number of tracklets used to determine the vertex position
26 // If this number is <1, the procedure could not find a vertex position
27 // and by default the Z coordinate is set to 0
28 // Number of contributors = -1 --> No tracklets
29 // Number of contributors = -2 --> No SPD recpoints
308c2f7c 30 virtual AliESDVertex* FindVertexForCurrentEvent(TTree *itsClusterTree);
0c6af5c9 31 virtual void PrintStatus() const;
32 void SetDiffPhiMax(Float_t pm = 0.01){fDiffPhiMax = pm;}
6fd990e3 33 void ConfigIterations(Int_t noiter=3,Float_t *ptr=0);
0c6af5c9 34 void SetFirstLayerModules(Int_t m1 = 0, Int_t m2 = 79){fFirstL1 = m1; fLastL1 = m2;}
35 void SetSecondLayerModules(Int_t m1 = 80, Int_t m2 = 239){fFirstL2 = m1; fLastL2 = m2;}
14bcd755 36 void SetLowLimit(Float_t lim=-40.){fLowLim = lim;}
37 void SetHighLimit(Float_t lim=40.){fHighLim = lim;}
0c6af5c9 38 Float_t GetLowLimit() const {return fLowLim;}
39 Float_t GetHighLimit() const {return fHighLim;}
40 void SetBinWidthCoarse(Float_t bw=0.01){fStepCoarse = bw;}
ecc64c3f 41 void SetPPsetting(Float_t cl2=250., Float_t coarsebin=0.02){fPPsetting[0]=cl2; fPPsetting[1]=coarsebin;}
debb3dde 42 Int_t GetPeakRegion(TH1F*h, Int_t &binmin, Int_t &binmax) const;
0c6af5c9 43 Float_t GetBinWidthCoarse() const {return fStepCoarse;}
0c6af5c9 44 void SetTolerance(Float_t tol = 20./10000.){fTolerance = tol;}
7299b7a8 45 void SetWindowWidth(Float_t ww=0.2){fWindowWidth=ww;}
0c6af5c9 46 Float_t GetTolerance() const {return fTolerance;}
c61c02f4 47 // virtual void MakeTracklet(Double_t * /* pA */, Double_t * /*pB */, Int_t & /* nolines */) {} // implemented in a derived class
0c6af5c9 48 protected:
0c6af5c9 49 void ResetHistograms();
308c2f7c 50 void VertexZFinder(TTree *itsClusterTree);
6fd990e3 51 Float_t GetPhiMaxIter(Int_t i) const {return fPhiDiffIter[i];}
0c6af5c9 52
32e449be 53
0c6af5c9 54 Int_t fFirstL1; // first module of the first pixel layer used
55 Int_t fLastL1; // last module of the first pixel layer used
56 Int_t fFirstL2; // first module of the second pixel layer used
57 Int_t fLastL2; // last module of the second pixel layer used
58 Float_t fDiffPhiMax; // Maximum delta phi allowed among corr. pixels
0c6af5c9 59 Float_t fZFound; //! found value for the current event
60 Float_t fZsig; //! RMS of Z
61 TH1F *fZCombc; //! histogram with coarse z distribution
0c6af5c9 62 Float_t fLowLim; // low limit for fZComb histograms
63 Float_t fHighLim; // high limit for fZComb histograms
64 Float_t fStepCoarse; // bin width for fZCombc
0c6af5c9 65 Float_t fTolerance; // tolerance on the symmetry of the Z interval
ecc64c3f 66 Float_t fPPsetting[2]; // [0] is the max. number of clusters on L2 to use [1] as fStepCoarse
6fd990e3 67 Int_t fMaxIter; // Maximum number of iterations (<=5)
68 Float_t fPhiDiffIter[5]; // Delta phi used in iterations
7299b7a8 69 Float_t fWindowWidth; // Z window width for symmetrization
308c2f7c 70 private:
71 AliITSVertexerZ(const AliITSVertexerZ& vtxr);
72 AliITSVertexerZ& operator=(const AliITSVertexerZ& vtxr );
0c6af5c9 73
308c2f7c 74 ClassDef(AliITSVertexerZ,10);
0c6af5c9 75};
76
77#endif