]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCADisplay.h
coverity 17739 fix
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCADisplay.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
3 //  *************************************************************************
4 //  This file is property of and copyright by the ALICE HLT Project         *
5 //  ALICE Experiment at CERN, All rights reserved.                          *
6 //  See cxx source for full Copyright notice                                *
7 //                                                                          *
8 //  AliHLTTPCCADisplay class is a debug utility.                            *
9 //  It is not used in the normal data processing.                           *
10 //                                                                          *
11 //***************************************************************************
12
13 #ifndef ALIHLTTPCCADISPLAY_H
14 #define ALIHLTTPCCADISPLAY_H
15
16
17 class AliHLTTPCCATracker;
18 class AliHLTTPCCATrack;
19 class AliHLTTPCCATrackParam;
20 class AliHLTTPCCAPerformance;
21
22 class TCanvas;
23 #include "TArc.h"
24 #include "TLine.h"
25 #include "TPolyLine.h"
26 #include "TBox.h"
27 #include "TCrown.h"
28 #include "TMarker.h"
29 #include "TLatex.h"
30
31
32
33 /**
34  * @class AliHLTTPCCADisplay
35  */
36 class AliHLTTPCCADisplay
37 {
38
39   public:
40
41     class AliHLTTPCCADisplayTmpHit;
42
43     static AliHLTTPCCADisplay &Instance();
44
45     AliHLTTPCCADisplay();
46
47     virtual ~AliHLTTPCCADisplay();
48
49     void Init();
50     void Update();
51     void ClearView();
52     void Ask();
53     void SetSliceView();
54     void SetTPCView();
55     void SetCurrentSlice( AliHLTTPCCATracker *slice );
56     void Set2Slices( AliHLTTPCCATracker * const slice );
57
58     int GetColor( int i ) const;
59     int GetColorZ( double z ) const ;
60     int GetColorY( double y ) const ;
61     int GetColorK( double k ) const ;
62     void Global2View( double x, double y, double *xv, double *yv ) const ;
63     void Slice2View( double x, double y, double *xv, double *yv ) const ;
64     int GetTrackMC( const AliHLTTPCCADisplayTmpHit *vHits, int NHits );
65
66     void DrawTPC();
67     void DrawSlice( AliHLTTPCCATracker *slice, bool DrawRows = 0 );
68     void DrawSliceOutTrack( int itr, int color = -1, int width = -1  );
69     void DrawSliceOutTrack( AliHLTTPCCATrackParam &t, double Alpha, int itr, int color = -1, int width = -1  );
70     void DrawSliceTrack( int itr, int color = -1 );
71     bool DrawTrack( AliHLTTPCCATrackParam t, double Alpha, const AliHLTTPCCADisplayTmpHit *vHits,
72                     int NHits, int color = -1, int width = -1, bool pPoint = 0 );
73
74     bool DrawTracklet( AliHLTTPCCATrackParam &track, const int *hitstore, int color = -1, int width = -1, bool pPoint = 0 );
75
76     void DrawSliceHit( int iRow, int iHit, int color = -1, Size_t width = -1 );
77     void DrawSliceHits( int color = -1, Size_t width = -1 );
78     void DrawSliceLinks( int colorUp = -1, int colorDn = -1, int width = -1 );
79     void DrawSliceLink( int iRow, int iHit, int colorUp = -1, int colorDn = -1, int width = -1 );
80     void SliceHitXYZ(int iRow, int iHit, double &x, double &y, double &z );
81
82
83     void SetSliceTransform( double alpha );
84
85     void SetSliceTransform( AliHLTTPCCATracker *slice );
86
87     TCanvas *CanvasYX() const { return fYX; }
88     TCanvas *CanvasZX() const { return fZX; }
89
90   protected:
91
92     TCanvas *fYX, *fZX;               // two views
93     bool fAsk;                      // flag to ask for the pressing key
94     bool fSliceView;               // switch between slice/TPC zoom
95     AliHLTTPCCATracker *fSlice;      // current CA tracker, includes slice geometry
96     AliHLTTPCCAPerformance *fPerf; // Performance class (mc labels etc)
97     double fCos, fSin, fZMin, fZMax, fYMin, fYMax;// view parameters
98     double fSliceCos, fSliceSin;        // current slice angle
99     double fRInnerMin, fRInnerMax, fROuterMin, fROuterMax, fTPCZMin, fTPCZMax; // view parameters
100
101     TArc fArc;       // parameters of drawing objects are copied from this members
102     TLine fLine;     //!
103     TPolyLine fPLine;//!
104     TMarker fMarker; //!
105     TBox fBox;       //!
106     TCrown fCrown;   //!
107     TLatex fLatex;   //!
108
109     bool fDrawOnlyRef; // draw only clusters from ref. mc tracks
110
111 private:
112   /// copy constructor prohibited
113   AliHLTTPCCADisplay( const AliHLTTPCCADisplay& );
114   /// assignment operator prohibited
115   AliHLTTPCCADisplay& operator=( const AliHLTTPCCADisplay& );
116
117 };
118
119 #endif //ALIHLTTPCCADISPLAY_H