]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDDisplay.h
4b87aa44f479ac4ffebe196f0a8afe8cb689677c
[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 ProcessRaw(AliFMDDigit* digit);
43   virtual Bool_t ProcessRecPoint(AliFMDRecPoint* recpoint);
44   virtual Int_t  LookupColor(Float_t x, Float_t max)  const;
45 protected:
46   static AliFMDDisplay* fgInstance; // Static instance 
47   Bool_t                fWait;      // Wait until user presses `Continue'
48   TObjArray*            fMarkers;   // Cache of markers
49   TObjArray*            fHits;      // Cache of `hits'
50   TCanvas*              fCanvas;    // Canvas to draw in 
51   TPad*                 fPad;       // View pad. 
52   TButton*              fButton;    // Continue button
53   TButton*              fZoom;      // Zoom button
54   TButton*              fPick;      // Pick button
55   Bool_t                fZoomMode;  // Whether we're in Zoom mode
56   Float_t               fX0;        // X at lower left corner or range 
57   Float_t               fY0;        // Y at lower left corner or range 
58   Float_t               fX1;        // X at upper right corner or range 
59   Float_t               fY1;        // Y at upper right corner or range 
60   Int_t                 fXPixel;    // X pixel of mark
61   Int_t                 fYPixel;    // Y pixel of mark
62   Int_t                 fOldXPixel; // Old x pixel of mark
63   Int_t                 fOldYPixel; // Old y pixel of mark
64   Bool_t                fLineDrawn; // Whether we're drawing a box
65   ClassDef(AliFMDDisplay,0)  // FMD specialised event display
66 };
67
68 #endif
69 //____________________________________________________________________
70 //
71 // Local Variables:
72 //   mode: C++
73 // End:
74 //
75 // EOF
76 //