]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtrackerFitter.h
Bug fix (selection of RawReaderDate from Yuri was not correct)
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackerFitter.h
1 #ifndef ALITRDTRACKERFITTER_H
2 #define ALITRDTRACKERFITTER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  Track fitter                                                             //
11 //                                                                           //
12 //  Authors:                                                                 //
13 //    Alex Bercuci <A.Bercuci@gsi.de>                                        //
14 //    Markus Fasel <M.Fasel@gsi.de>                                          //
15 //                                                                           //
16 ///////////////////////////////////////////////////////////////////////////////
17
18 #ifndef AliRIEMAN_H
19 #include <AliRieman.h>
20 #endif
21
22 #ifndef ROOT_Rtypes
23 #include "Rtypes.h"
24 #endif
25
26 // implementations in the future
27 class TObject;
28 class TLinearFitter;
29 class TTreeSRedirector;
30
31 class AliTRDcluster;
32 class AliTRDseedV1;
33
34 class AliTRDtrackerFitter : public TObject {
35  
36  public:
37
38         AliTRDtrackerFitter();
39         AliTRDtrackerFitter(const AliTRDtrackerFitter &f);
40         AliTRDtrackerFitter& operator=(const AliTRDtrackerFitter &f);
41         virtual ~AliTRDtrackerFitter();
42
43         void            Copy(TObject &f) const;
44         AliRieman      *GetRiemanFitter() const { return fRieman1; }
45         void            GetHyperplaneFitChi2(Double_t *chisquares) const;
46         void            GetHyperplaneFitResults(Double_t *params) const;
47         Double_t        GetRiemanCurvature() const { return fRieman1->GetC(); }
48
49         void            FitRieman(AliTRDcluster **cl, Int_t nLayers);
50         void            FitRieman(AliTRDseedV1 *cseed, Int_t *planes=0x0);
51         Double_t        FitHyperplane(AliTRDseedV1 *cseed, Double_t chi2ZF, Double_t zval);
52         void            Reset();
53         void            SetDebugStream(TTreeSRedirector *debug){fDebugStream = debug;}
54         void            SetLayers(const Int_t nlayers) {fNlayers = nlayers;}
55
56  private:
57
58         // Linear fitters in planes
59         TLinearFitter    *fFitterTC;       // Fitting with tilting pads - kz fixed - kz= Z/x, + vertex const
60         TLinearFitter    *fFitterT2;       // Fitting with tilting pads - kz not fixed
61         AliRieman        *fRieman1;        // Rieman fitter
62         AliRieman        *fRieman2;        // Rieman fitter
63         // Linear Fitter chisquares
64         Double_t          fChi2TR;         // Chisquared
65         Double_t          fChi2TC;         // Chisquared
66         // Hyperplane Fit results
67         Double_t          fCR;             // Track radius
68         Double_t          fCC;             // Track curvature
69         Double_t          fDca;            // DCA       
70         // Helping Parameters
71         Double_t          fDzmf;           // Something
72         Double_t          fZmf;            // Something else
73         Int_t             fNlayers;        // Some layers
74
75         // Debug
76         TTreeSRedirector *fDebugStream;    //! debugger
77
78         ClassDef(AliTRDtrackerFitter,1)    // TRD track fitter
79 };
80 #endif // ALITRDTRACKERFITTER_H