X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSVertexerZ.h;h=b2ab7b6b999f4da8eb7c7f18e47086905e4eed23;hb=891efa0008e3246e2f7ebc6a5bf8cebccffae8ef;hp=ea8218af3ba8d5975758fa706f5c188695c9d300;hpb=8b40a6b84b6d4ab20a20287bf6d755ac01e27392;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSVertexerZ.h b/ITS/AliITSVertexerZ.h index ea8218af3ba..b2ab7b6b999 100644 --- a/ITS/AliITSVertexerZ.h +++ b/ITS/AliITSVertexerZ.h @@ -19,7 +19,7 @@ class AliITSVertexerZ : public AliITSVertexer { public: AliITSVertexerZ(); - AliITSVertexerZ(TString filename,Float_t x0=0., Float_t y0=0.); + AliITSVertexerZ(Float_t x0, Float_t y0); virtual ~AliITSVertexerZ(); // The number of contributors set in the AliESDVertex object is the // number of tracklets used to determine the vertex position @@ -27,33 +27,32 @@ class AliITSVertexerZ : public AliITSVertexer { // and by default the Z coordinate is set to 0 // Number of contributors = -1 --> No tracklets // Number of contributors = -2 --> No SPD recpoints - virtual AliESDVertex* FindVertexForCurrentEvent(Int_t evnumb); - virtual void FindVertices(); + virtual AliESDVertex* FindVertexForCurrentEvent(TTree *itsClusterTree); virtual void PrintStatus() const; void SetDiffPhiMax(Float_t pm = 0.01){fDiffPhiMax = pm;} - void SetVtxStart(Float_t x, Float_t y){ - fX0=x; fY0=y; - } - void ConfigIterations(Int_t noiter=3,Float_t *ptr=0); + void ConfigIterations(Int_t noiter=4,Float_t *ptr=0); void SetFirstLayerModules(Int_t m1 = 0, Int_t m2 = 79){fFirstL1 = m1; fLastL1 = m2;} void SetSecondLayerModules(Int_t m1 = 80, Int_t m2 = 239){fFirstL2 = m1; fLastL2 = m2;} - void SetLowLimit(Float_t lim=-20.){fLowLim = lim;} - void SetHighLimit(Float_t lim=20.){fHighLim = lim;} + void SetLowLimit(Float_t lim=-40.){fLowLim = lim;} + void SetHighLimit(Float_t lim=40.){fHighLim = lim;} Float_t GetLowLimit() const {return fLowLim;} Float_t GetHighLimit() const {return fHighLim;} void SetBinWidthCoarse(Float_t bw=0.01){fStepCoarse = bw;} void SetPPsetting(Float_t cl2=250., Float_t coarsebin=0.02){fPPsetting[0]=cl2; fPPsetting[1]=coarsebin;} - Int_t GetPeakRegion(TH1F*h, Int_t &binmin, Int_t &binmax) const; + static Int_t GetPeakRegion(TH1F* h, Int_t &binmin, Int_t &binmax); + static Int_t FindSecondPeak(TH1F* h, Int_t binmin,Int_t binmax, Float_t& secPeakPos); Float_t GetBinWidthCoarse() const {return fStepCoarse;} void SetTolerance(Float_t tol = 20./10000.){fTolerance = tol;} void SetWindowWidth(Float_t ww=0.2){fWindowWidth=ww;} Float_t GetTolerance() const {return fTolerance;} // virtual void MakeTracklet(Double_t * /* pA */, Double_t * /*pB */, Int_t & /* nolines */) {} // implemented in a derived class + + void SetSearchForPileup(Bool_t opt){fSearchForPileup=opt;} + Bool_t IsSearchForPileupActive() const { return fSearchForPileup;} + protected: - AliITSVertexerZ(const AliITSVertexerZ& vtxr); - AliITSVertexerZ& operator=(const AliITSVertexerZ& vtxr ); void ResetHistograms(); - void VertexZFinder(Int_t evnumber); + void VertexZFinder(TTree *itsClusterTree); Float_t GetPhiMaxIter(Int_t i) const {return fPhiDiffIter[i];} @@ -62,8 +61,6 @@ class AliITSVertexerZ : public AliITSVertexer { Int_t fFirstL2; // first module of the second pixel layer used Int_t fLastL2; // last module of the second pixel layer used Float_t fDiffPhiMax; // Maximum delta phi allowed among corr. pixels - Float_t fX0; // Nominal x coordinate of the vertex - Float_t fY0; // Nominal y coordinate of the vertex Float_t fZFound; //! found value for the current event Float_t fZsig; //! RMS of Z TH1F *fZCombc; //! histogram with coarse z distribution @@ -75,8 +72,13 @@ class AliITSVertexerZ : public AliITSVertexer { Int_t fMaxIter; // Maximum number of iterations (<=5) Float_t fPhiDiffIter[5]; // Delta phi used in iterations Float_t fWindowWidth; // Z window width for symmetrization + Bool_t fSearchForPileup; // flag to switch pileup off/on + + private: + AliITSVertexerZ(const AliITSVertexerZ& vtxr); + AliITSVertexerZ& operator=(const AliITSVertexerZ& vtxr ); - ClassDef(AliITSVertexerZ,6); + ClassDef(AliITSVertexerZ,11); }; #endif