Line data Source code
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 0 : TCanvas *CanvasYX() const { return fYX; }
88 0 : 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
|