Fix Coverity
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackletOflHelper.h
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];}
54   Double_t      GetQ() const;
55   Int_t         GetRow() const {return fRow;}
56   Int_t         GetRMS(Double_t &r, Double_t &m, Double_t &s, Double_t xm) const;
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