New RAW I/O. I rolled my own, because I wasn't happy with the old
[u/mrichter/AliRoot.git] / FMD / AliFMDDisplay.h
1 #ifndef AliFMDDISPLAY_H
2 #define AliFMDDISPLAY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * See cxx source for full Copyright notice                               
7  */
8 //___________________________________________________________________
9 //
10 // The classes defined here, are utility classes for reading in data
11 // for the FMD.  They are  put in a seperate library to not polute the
12 // normal libraries.  The classes are intended to be used as base
13 // classes for customized class that do some sort of analysis on the
14 // various types of data produced by the FMD. 
15 //
16 #include "AliFMDInput.h"
17 class TObjArray;
18 class TCanvas;
19 class TPad;
20 class TButton;
21
22 //___________________________________________________________________
23 class AliFMDDisplay : public AliFMDInput
24 {
25 public:
26   AliFMDDisplay(const char* gAliceFile="galice.root");
27   virtual ~AliFMDDisplay() {}
28   static AliFMDDisplay* Instance();
29
30   void  Continue() { fWait = kFALSE; }
31   void  Zoom() { fZoomMode = kTRUE; }
32   void  Pick() { fZoomMode = kFALSE; }
33   void  ExecuteEvent(Int_t event, Int_t px, Int_t py);
34   Int_t DistancetoPrimitive(Int_t px, Int_t py);
35   void  Paint(Option_t* option="") { (void)option; }
36
37   virtual Bool_t Init();
38   virtual Bool_t Begin(Int_t event);
39   virtual Bool_t End();
40   virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle* p);
41   virtual Bool_t ProcessDigit(AliFMDDigit* digit);
42   virtual Bool_t ProcessRecPoint(AliFMDRecPoint* recpoint);
43   virtual Int_t  LookupColor(Float_t x, Float_t max)  const;
44 protected:
45   static AliFMDDisplay* fgInstance; // Static instance 
46   Bool_t                fWait;      // Wait until user presses `Continue'
47   TObjArray*            fMarkers;   // Cache of markers
48   TObjArray*            fHits;      // Cache of `hits'
49   TCanvas*              fCanvas;    // Canvas to draw in 
50   TPad*                 fPad;       // View pad. 
51   TButton*              fButton;    // Continue button
52   TButton*              fZoom;      // Zoom button
53   TButton*              fPick;      // Pick button
54   Bool_t                fZoomMode;  // Whether we're in Zoom mode
55   Float_t               fX0;        // X at lower left corner or range 
56   Float_t               fY0;        // Y at lower left corner or range 
57   Float_t               fX1;        // X at upper right corner or range 
58   Float_t               fY1;        // Y at upper right corner or range 
59   Int_t                 fXPixel;    // X pixel of mark
60   Int_t                 fYPixel;    // Y pixel of mark
61   Int_t                 fOldXPixel; // Old x pixel of mark
62   Int_t                 fOldYPixel; // Old y pixel of mark
63   Bool_t                fLineDrawn; // Whether we're drawing a box
64   ClassDef(AliFMDDisplay,0)  // FMD specialised event display
65 };
66
67 #endif
68 //____________________________________________________________________
69 //
70 // Local Variables:
71 //   mode: C++
72 // End:
73 //
74 // EOF
75 //