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();
47 virtual ~AliHLTTPCCADisplay();
55 void SetCurrentSlice( AliHLTTPCCATracker *slice );
56 void Set2Slices( AliHLTTPCCATracker * const slice );
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 );
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 );
74 bool DrawTracklet( AliHLTTPCCATrackParam &track, const int *hitstore, int color = -1, int width = -1, bool pPoint = 0 );
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 );
83 void SetSliceTransform( double alpha );
85 void SetSliceTransform( AliHLTTPCCATracker *slice );
87 TCanvas *CanvasYX() const { return fYX; }
88 TCanvas *CanvasZX() const { return fZX; }
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
101 TArc fArc; // parameters of drawing objects are copied from this members
109 bool fDrawOnlyRef; // draw only clusters from ref. mc tracks
112 /// copy constructor prohibited
113 AliHLTTPCCADisplay( const AliHLTTPCCADisplay& );
114 /// assignment operator prohibited
115 AliHLTTPCCADisplay& operator=( const AliHLTTPCCADisplay& ) const ;
119 #endif //ALIHLTTPCCADISPLAY_H