]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCADisplay.h
bug fix: reconstruction crash when the output buffer size exceed
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCADisplay.h
CommitLineData
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 17class AliHLTTPCCATracker;
326c2d4b 18class AliHLTTPCCATrack;
d54804bf 19class AliHLTTPCCATrackParam;
693d2443 20class AliHLTTPCCAPerformance;
6de2bc40 21
dc4788ec 22class 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 36class 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();
b8139972 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 );
f0fb467d 82 void SliceHitXYZ(int iRow, int iHit, double &x, double &y, double &z );
d54804bf 83
d54804bf 84
fbb9b71b 85 void SetSliceTransform( double alpha );
d54804bf 86
fbb9b71b 87 void SetSliceTransform( AliHLTTPCCATracker *slice );
d54804bf 88
fbb9b71b 89 TCanvas *CanvasYX() const { return fYX; }
90 TCanvas *CanvasZX() const { return fZX; }
326c2d4b 91
fbb9b71b 92 protected:
326c2d4b 93
fbb9b71b 94 TCanvas *fYX, *fZX; // two views
95 bool fAsk; // flag to ask for the pressing key
96 bool fSliceView; // switch between slice/TPC zoom
b8139972 97 AliHLTTPCCATracker *fSlice; // current CA tracker, includes slice geometry
fbb9b71b 98 AliHLTTPCCAPerformance *fPerf; // Performance class (mc labels etc)
99 double fCos, fSin, fZMin, fZMax, fYMin, fYMax;// view parameters
100 double fSliceCos, fSliceSin; // current slice angle
101 double fRInnerMin, fRInnerMax, fROuterMin, fROuterMax, fTPCZMin, fTPCZMax; // view parameters
326c2d4b 102
fbb9b71b 103 TArc fArc; // parameters of drawing objects are copied from this members
104 TLine fLine; //!
105 TPolyLine fPLine;//!
106 TMarker fMarker; //!
107 TBox fBox; //!
108 TCrown fCrown; //!
109 TLatex fLatex; //!
326c2d4b 110
fbb9b71b 111 bool fDrawOnlyRef; // draw only clusters from ref. mc tracks
326c2d4b 112
113};
114
31649d4b 115#endif //ALIHLTTPCCADISPLAY_H