]>
Commit | Line | Data |
---|---|---|
f4f84117 | 1 | #ifndef ALIITSVERTEXERZD_H |
2 | #define ALIITSVERTEXERZD_H | |
3 | ||
4 | #include<AliITSVertexer.h> | |
5 | ||
6 | /////////////////////////////////////////////////////////////////// | |
7 | // // | |
8 | // Class for primary vertex finding with SDD // | |
9 | // // | |
10 | /////////////////////////////////////////////////////////////////// | |
11 | ||
12 | class TFile; | |
13 | class TString; | |
14 | class AliESDVertex; | |
15 | class TH1F; | |
16 | ||
17 | class AliITSVertexerZD : public AliITSVertexer { | |
18 | ||
19 | public: | |
20 | ||
21 | AliITSVertexerZD(); | |
22 | AliITSVertexerZD(Float_t x0, Float_t y0); | |
23 | virtual ~AliITSVertexerZD(); | |
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 SDD recpoints | |
30 | virtual AliESDVertex* FindVertexForCurrentEvent(TTree *itsClusterTree); | |
31 | virtual void PrintStatus() const; | |
32 | void SetDiffPhiMax(Float_t pm = 0.1){fDiffPhiMax = pm;} | |
33 | void ConfigIterations(Int_t noiter=4,Float_t *ptr=0); | |
34 | void SetFirstLayerModules(Int_t m1 = 240, Int_t m2 = 323){fFirstL1 = m1; fLastL1 = m2;} | |
35 | void SetSecondLayerModules(Int_t m1 = 324, Int_t m2 = 499){fFirstL2 = m1; fLastL2 = m2;} | |
36 | void SetLowLimit(Float_t lim=-70.){fLowLim = lim;} | |
37 | void SetHighLimit(Float_t lim=70.){fHighLim = lim;} | |
38 | Float_t GetLowLimit() const {return fLowLim;} | |
39 | Float_t GetHighLimit() const {return fHighLim;} | |
40 | void SetBinWidthCoarse(Float_t bw=0.01){fStepCoarse = bw;} | |
41 | void SetPPsetting(Float_t cl2=250., Float_t coarsebin=0.02){fPPsetting[0]=cl2; fPPsetting[1]=coarsebin;} | |
42 | static Int_t GetPeakRegion(TH1F* h, Int_t &binmin, Int_t &binmax); | |
43 | static Int_t FindSecondPeak(TH1F* h, Int_t binmin,Int_t binmax, Float_t& secPeakPos); | |
44 | Float_t GetBinWidthCoarse() const {return fStepCoarse;} | |
45 | void SetTolerance(Float_t tol = 20./10000.){fTolerance = tol;} | |
46 | void SetWindowWidth(Float_t ww=0.2){fWindowWidth=ww;} | |
47 | Float_t GetTolerance() const {return fTolerance;} | |
48 | // virtual void MakeTracklet(Double_t * /* pA */, Double_t * /*pB */, Int_t & /* nolines */) {} // implemented in a derived class | |
49 | ||
50 | void SetSearchForPileup(Bool_t opt){fSearchForPileup=opt;} | |
51 | Bool_t IsSearchForPileupActive() const { return fSearchForPileup;} | |
52 | ||
53 | protected: | |
54 | void ResetHistograms(); | |
55 | void VertexZFinder(TTree *itsClusterTree); | |
56 | Float_t GetPhiMaxIter(Int_t i) const {return fPhiDiffIter[i];} | |
57 | ||
58 | ||
59 | Int_t fFirstL1; // first module of the first pixel layer used | |
60 | Int_t fLastL1; // last module of the first pixel layer used | |
61 | Int_t fFirstL2; // first module of the second pixel layer used | |
62 | Int_t fLastL2; // last module of the second pixel layer used | |
63 | Float_t fDiffPhiMax; // Maximum delta phi allowed among corr. pixels | |
64 | Float_t fZFound; //! found value for the current event | |
65 | Float_t fZsig; //! RMS of Z | |
66 | TH1F *fZCombc; //! histogram with coarse z distribution | |
67 | Float_t fLowLim; // low limit for fZComb histograms | |
68 | Float_t fHighLim; // high limit for fZComb histograms | |
69 | Float_t fStepCoarse; // bin width for fZCombc | |
70 | Float_t fTolerance; // tolerance on the symmetry of the Z interval | |
71 | Float_t fPPsetting[2]; // [0] is the max. number of clusters on L2 to use [1] as fStepCoarse | |
72 | Int_t fMaxIter; // Maximum number of iterations (<=5) | |
73 | Float_t fPhiDiffIter[5]; // Delta phi used in iterations | |
74 | Float_t fWindowWidth; // Z window width for symmetrization | |
75 | Bool_t fSearchForPileup; // flag to switch pileup off/on | |
76 | ||
77 | private: | |
78 | AliITSVertexerZD(const AliITSVertexerZD& vtxr); | |
79 | AliITSVertexerZD& operator=(const AliITSVertexerZD& vtxr ); | |
80 | ||
81 | ClassDef(AliITSVertexerZD,1); | |
82 | }; | |
83 | ||
84 | #endif |