changes from fzhou
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackerDebug.h
1 #ifndef ALITRDTRACKERDEBUG_H
2 #define ALITRDTRACKERDEBUG_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliTRDtrackerDebug.h 22646 2007-11-29 18:13:40Z cblume $ */
8
9 ////////////////////////////////////////////////////////////////////////////
10 //                                                                        //
11 //  Reader for the TRD tracker debug streamer                             // 
12 //                                                                        // 
13 //  Authors:                                                              //
14 //                                                                        //
15 //    Alex Bercuci <A.Bercuci@gsi.de>                                     //
16 //    Markus Fasel <M.Fasel@gsi.de>                                       //
17 //                                                                        // 
18 ////////////////////////////////////////////////////////////////////////////
19
20 #include "AliTRDtrackerV1.h"
21
22 class TTree;
23 class TCanvas;
24 class TTreeSRedirector;
25 class AliTRDtrackV1;
26 class AliTRDseedV1;
27
28 class AliTRDtrackerDebug : public AliTRDtrackerV1
29 {
30 public:
31         AliTRDtrackerDebug();
32         ~AliTRDtrackerDebug();
33
34         Bool_t      Init();
35         Bool_t      Open(const char *method);
36         Int_t       Process();
37
38         void        ResidualsClustersTrack(const AliTRDseedV1 *tracklet);
39         void        ResidualsClustersTracklet(const AliTRDseedV1 *tracklet) const;
40         void        ResidualsClustersParametrisation(const AliTRDseedV1 *tracklet) const;
41         void        ResidualsTrackletsTrack() const;
42         
43         void        AnalyseTiltedRiemanFit();
44         void        AnalyseMinMax();
45         void        AnalyseFindable(Char_t *treename);
46
47         TCanvas*    PlotSeedingConfiguration(const Char_t *direction, Int_t event, Int_t Candidate);
48         TCanvas*    PlotFullTrackFit(Int_t event, Int_t candidate, Int_t iteration = -1, const Char_t *direction = "y");
49         
50         static Int_t GetEventNumber(){ return fgEventNumber; }
51         static Int_t GetTrackNumber(){ return fgTrackNumber; }
52         static Int_t GetCandidateNumber(){ return fgCandidateNumber; }
53         
54         static void SetEventNumber(Int_t eventNumber){ fgEventNumber = eventNumber; }
55         static void SetTrackNumber(Int_t trackNumber){ fgTrackNumber = trackNumber; }
56         static void SetCandidateNumber(Int_t candidateNumber){ fgCandidateNumber = candidateNumber; }
57                         
58 private:
59         AliTRDtrackerDebug(const AliTRDtrackerDebug &);
60         AliTRDtrackerDebug& operator=(const AliTRDtrackerDebug &);
61
62         Float_t     GetTrackRadius(Float_t a, Float_t b, Float_t c) const;
63         Float_t     GetTrackCurvature(Float_t a, Float_t b, Float_t c) const;
64         Float_t     GetDCA(Float_t a, Float_t b, Float_t c) const;
65
66         TTreeSRedirector *fOutputStreamer;                 //!Output streamer
67         TTree            *fTree;       // debug tree
68         AliTRDseedV1     *fTracklet;   // current tracklet
69         AliTRDtrackV1    *fTrack;      // current TRD track
70         Int_t            fNClusters;   // N clusters for current track
71         Float_t          fAlpha;       // sector
72         
73         static Int_t fgEventNumber;                             //  Event Number in the tracking code
74         static Int_t fgTrackNumber;       //  Track Number per Event
75         static Int_t fgCandidateNumber;   //  Candidate Number per event (Set in MakeSeeds)
76
77         ClassDef(AliTRDtrackerDebug, 1) // debug suite of the TRD tracker
78 };
79
80 #endif
81