]>
Commit | Line | Data |
---|---|---|
212b7ec8 | 1 | #ifndef ALITRDTRACKLETOFLHELPER_H |
2 | #define ALITRDTRACKLETOFLHELPER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliTRDtrackletOflHelper.h 45666 2010-11-24 17:00:44Z cblume $ */ | |
7 | ||
8 | //////////////////////////////////////////////////////////////////////////// | |
9 | // // | |
10 | // \class AliTRDtrackletOflHelper // | |
11 | // \brief The TRD offline tracklet helper class // | |
12 | // \author Alexandru Bercuci // | |
13 | // // | |
14 | //////////////////////////////////////////////////////////////////////////// | |
15 | ||
16 | #ifndef ROOT_TObject | |
17 | #include "TObject.h" | |
18 | #endif | |
19 | ||
20 | #ifndef ALITRDTRACKERV1_H | |
21 | #include "AliTRDtrackerV1.h" | |
22 | #endif | |
23 | ||
24 | class TVirtualPad; | |
25 | class TObjArray; | |
26 | class AliTRDpadPlane; | |
27 | class AliTRDtrackletOflHelper:public TObject | |
28 | { | |
29 | public: | |
30 | enum ETRDtrackletOflHelper{ | |
31 | kNcls = 200 | |
32 | ,kNormal = 0 | |
33 | ,kDeltaRay = 1 | |
34 | ,kSecond = 2 | |
35 | ,kElephant = 3 | |
36 | ,kUnknown = 4 | |
37 | }; | |
38 | AliTRDtrackletOflHelper(); | |
39 | AliTRDtrackletOflHelper(const AliTRDtrackletOflHelper &ref); | |
40 | AliTRDtrackletOflHelper& operator=(const AliTRDtrackletOflHelper &rhs); | |
41 | virtual ~AliTRDtrackletOflHelper(); | |
42 | ||
43 | Int_t ClassifyTopology(); | |
44 | Int_t Expand(TObjArray *cls, Int_t *mark=NULL, Int_t groupId=-1); | |
45 | static void FindSolidCls(Bool_t *mark, Int_t *q); | |
46 | static Bool_t Fit(Int_t n, Double_t *dx, Double_t *dy, Double_t *s2, Double_t *par, Double_t sCut=1.5, Double_t *cov=NULL); | |
47 | Bool_t Fit(Double_t *par, Double_t sCut=1.5) const; | |
48 | Bool_t FitPSR(Double_t dy[200], Bool_t useSolid=kFALSE); | |
49 | TObjArray* GetClusters() const {return fClusters;}; | |
50 | void GetColSignals(Int_t col, Int_t adc[32], Bool_t mainRow=kTRUE) const; | |
51 | Int_t GetColSpread() const {return fCol[1]-fCol[0]+1;} | |
52 | Int_t GetColStart() const {return fCol[0];} | |
53 | Int_t GetColStop() const {return fCol[1];} | |
2f4384e6 | 54 | Double_t GetQ() const; |
212b7ec8 | 55 | Int_t GetRow() const {return fRow;} |
2f4384e6 | 56 | Int_t GetRMS(Double_t &r, Double_t &m, Double_t &s, Double_t xm) const; |
212b7ec8 | 57 | Double_t GetSyMean() const; |
58 | Int_t GetTbStart() const {return fTBrange[0];} | |
59 | Int_t GetTbStop() const {return fTBrange[1];} | |
60 | Int_t Init(AliTRDpadPlane *p, TObjArray *cls, Int_t *mark=NULL, Int_t groupId=-1); | |
61 | static Int_t Segmentation(Int_t n, Double_t *x, Double_t *y, Int_t *Index); | |
62 | void SetTbRange(Float_t t0, Float_t vd); | |
63 | void View(TVirtualPad *pad=NULL); | |
64 | ||
65 | protected: | |
66 | private: | |
67 | static AliTRDtrackerV1::AliTRDLeastSquare& Fitter(); | |
68 | ||
69 | Int_t fCol[2]; //! pad col start/stop | |
70 | Int_t fRow; //! main pad row | |
71 | Int_t fTBrange[2]; //! start/stop time bin (t0, vd) | |
72 | TObjArray *fClusters; // cluster array | |
73 | AliTRDpadPlane *fPadPlane; //! pad plane for detector | |
74 | ||
75 | ClassDef(AliTRDtrackletOflHelper, 1) // Offline tracklet helper | |
76 | }; | |
77 | ||
78 | #endif |