]>
Commit | Line | Data |
---|---|---|
326c2d4b | 1 | //-*- Mode: C++ -*- |
2 | // @(#) $Id$ | |
ce565086 | 3 | // ************************************************************************* |
fbb9b71b | 4 | // This file is property of and copyright by the ALICE HLT Project * |
ce565086 | 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 | //*************************************************************************** | |
326c2d4b | 12 | |
13 | #ifndef ALIHLTTPCCADISPLAY_H | |
14 | #define ALIHLTTPCCADISPLAY_H | |
15 | ||
00d07bcd | 16 | |
326c2d4b | 17 | class AliHLTTPCCATracker; |
326c2d4b | 18 | class AliHLTTPCCATrack; |
d54804bf | 19 | class AliHLTTPCCATrackParam; |
693d2443 | 20 | class AliHLTTPCCAPerformance; |
6de2bc40 | 21 | |
dc4788ec | 22 | class TCanvas; |
326c2d4b | 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" | |
326c2d4b | 30 | |
ce565086 | 31 | |
e1f2d1c3 | 32 | |
326c2d4b | 33 | /** |
34 | * @class AliHLTTPCCADisplay | |
35 | */ | |
00d07bcd | 36 | class AliHLTTPCCADisplay |
326c2d4b | 37 | { |
693d2443 | 38 | |
fbb9b71b | 39 | public: |
40 | ||
41 | class AliHLTTPCCADisplayTmpHit; | |
42 | ||
43 | static AliHLTTPCCADisplay &Instance(); | |
44 | ||
45 | AliHLTTPCCADisplay(); | |
46 | AliHLTTPCCADisplay( const AliHLTTPCCADisplay& ); | |
47 | const AliHLTTPCCADisplay& operator=( const AliHLTTPCCADisplay& ) const ; | |
48 | ||
49 | virtual ~AliHLTTPCCADisplay(); | |
50 | ||
51 | void Init(); | |
52 | void Update(); | |
53 | void ClearView(); | |
54 | void Ask(); | |
55 | void SetSliceView(); | |
56 | void SetTPCView(); | |
6de2bc40 | 57 | void SetCurrentSlice( AliHLTTPCCATracker *slice ); |
fbb9b71b | 58 | void Set2Slices( AliHLTTPCCATracker * const slice ); |
59 | ||
60 | int GetColor( int i ) const; | |
61 | int GetColorZ( double z ) const ; | |
62 | int GetColorY( double y ) const ; | |
63 | int GetColorK( double k ) const ; | |
64 | void Global2View( double x, double y, double *xv, double *yv ) const ; | |
65 | void Slice2View( double x, double y, double *xv, double *yv ) const ; | |
66 | int GetTrackMC( const AliHLTTPCCADisplayTmpHit *vHits, int NHits ); | |
67 | ||
68 | void DrawTPC(); | |
69 | void DrawSlice( AliHLTTPCCATracker *slice, bool DrawRows = 0 ); | |
70 | void DrawSliceOutTrack( int itr, int color = -1, int width = -1 ); | |
71 | void DrawSliceOutTrack( AliHLTTPCCATrackParam &t, double Alpha, int itr, int color = -1, int width = -1 ); | |
72 | void DrawSliceTrack( int itr, int color = -1 ); | |
73 | bool DrawTrack( AliHLTTPCCATrackParam t, double Alpha, const AliHLTTPCCADisplayTmpHit *vHits, | |
4acc2401 | 74 | int NHits, int color = -1, int width = -1, bool pPoint = 0 ); |
fbb9b71b | 75 | |
fbb9b71b | 76 | bool DrawTracklet( AliHLTTPCCATrackParam &track, const int *hitstore, int color = -1, int width = -1, bool pPoint = 0 ); |
77 | ||
fbb9b71b | 78 | void DrawSliceHit( int iRow, int iHit, int color = -1, Size_t width = -1 ); |
79 | void DrawSliceHits( int color = -1, Size_t width = -1 ); | |
80 | void DrawSliceLinks( int colorUp = -1, int colorDn = -1, int width = -1 ); | |
81 | void DrawSliceLink( int iRow, int iHit, int colorUp = -1, int colorDn = -1, int width = -1 ); | |
d54804bf | 82 | |
d54804bf | 83 | |
fbb9b71b | 84 | void SetSliceTransform( double alpha ); |
d54804bf | 85 | |
fbb9b71b | 86 | void SetSliceTransform( AliHLTTPCCATracker *slice ); |
d54804bf | 87 | |
fbb9b71b | 88 | TCanvas *CanvasYX() const { return fYX; } |
89 | TCanvas *CanvasZX() const { return fZX; } | |
326c2d4b | 90 | |
fbb9b71b | 91 | protected: |
326c2d4b | 92 | |
fbb9b71b | 93 | TCanvas *fYX, *fZX; // two views |
94 | bool fAsk; // flag to ask for the pressing key | |
95 | bool fSliceView; // switch between slice/TPC zoom | |
6de2bc40 | 96 | AliHLTTPCCATracker *fSlice; // current CA tracker, includes slice geometry |
fbb9b71b | 97 | AliHLTTPCCAPerformance *fPerf; // Performance class (mc labels etc) |
98 | double fCos, fSin, fZMin, fZMax, fYMin, fYMax;// view parameters | |
99 | double fSliceCos, fSliceSin; // current slice angle | |
100 | double fRInnerMin, fRInnerMax, fROuterMin, fROuterMax, fTPCZMin, fTPCZMax; // view parameters | |
326c2d4b | 101 | |
fbb9b71b | 102 | TArc fArc; // parameters of drawing objects are copied from this members |
103 | TLine fLine; //! | |
104 | TPolyLine fPLine;//! | |
105 | TMarker fMarker; //! | |
106 | TBox fBox; //! | |
107 | TCrown fCrown; //! | |
108 | TLatex fLatex; //! | |
326c2d4b | 109 | |
fbb9b71b | 110 | bool fDrawOnlyRef; // draw only clusters from ref. mc tracks |
326c2d4b | 111 | |
112 | }; | |
113 | ||
114 | #endif |