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 *
8 // AliHLTTPCCADisplay class is a debug utility. *
9 // It is not used in the normal data processing. *
11 //***************************************************************************
13 #ifndef ALIHLTTPCCADISPLAY_H
14 #define ALIHLTTPCCADISPLAY_H
17 class AliHLTTPCCATracker;
18 class AliHLTTPCCATrack;
19 class AliHLTTPCCATrackParam;
20 class AliHLTTPCCAPerformance;
25 #include "TPolyLine.h"
34 * @class AliHLTTPCCADisplay
36 class AliHLTTPCCADisplay
41 class AliHLTTPCCADisplayTmpHit;
43 static AliHLTTPCCADisplay &Instance();
46 AliHLTTPCCADisplay( const AliHLTTPCCADisplay& );
47 const AliHLTTPCCADisplay& operator=( const AliHLTTPCCADisplay& ) const ;
49 virtual ~AliHLTTPCCADisplay();
57 void SetCurrentSlice( AliHLTTPCCATracker *slice );
58 void Set2Slices( AliHLTTPCCATracker * const slice );
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 );
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,
74 int NHits, int color = -1, int width = -1, bool pPoint = 0 );
76 bool DrawTracklet( AliHLTTPCCATrackParam &track, const int *hitstore, int color = -1, int width = -1, bool pPoint = 0 );
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 );
84 void SetSliceTransform( double alpha );
86 void SetSliceTransform( AliHLTTPCCATracker *slice );
88 TCanvas *CanvasYX() const { return fYX; }
89 TCanvas *CanvasZX() const { return fZX; }
93 TCanvas *fYX, *fZX; // two views
94 bool fAsk; // flag to ask for the pressing key
95 bool fSliceView; // switch between slice/TPC zoom
96 AliHLTTPCCATracker *fSlice; // current CA tracker, includes slice geometry
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
102 TArc fArc; // parameters of drawing objects are copied from this members
110 bool fDrawOnlyRef; // draw only clusters from ref. mc tracks