Line data Source code
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 456 : TObjArray* GetClusters() const {return fClusters;};
50 : void GetColSignals(Int_t col, Int_t adc[32], Bool_t mainRow=kTRUE) const;
51 0 : Int_t GetColSpread() const {return fCol[1]-fCol[0]+1;}
52 0 : Int_t GetColStart() const {return fCol[0];}
53 0 : Int_t GetColStop() const {return fCol[1];}
54 : Double_t GetQ() const;
55 10206 : 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 0 : Int_t GetTbStart() const {return fTBrange[0];}
59 0 : 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 1646 : ClassDef(AliTRDtrackletOflHelper, 1) // Offline tracklet helper
76 : };
77 :
78 : #endif
|