00001 #ifndef AliFMDDISPLAY_H 00002 #define AliFMDDISPLAY_H 00003 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights 00004 * reserved. 00005 * 00006 * See cxx source for full Copyright notice 00007 */ 00008 //___________________________________________________________________ 00009 // 00010 // The classes defined here, are utility classes for reading in data 00011 // for the FMD. They are put in a seperate library to not polute the 00012 // normal libraries. The classes are intended to be used as base 00013 // classes for customized class that do some sort of analysis on the 00014 // various types of data produced by the FMD. 00015 // 00016 #include "AliFMDInput.h" 00017 class TObjArray; 00018 class TCanvas; 00019 class TPad; 00020 class TButton; 00021 00022 //___________________________________________________________________ 00027 class AliFMDDisplay : public AliFMDInput 00028 { 00029 public: 00032 AliFMDDisplay(const char* gAliceFile="galice.root"); 00034 virtual ~AliFMDDisplay() {} 00037 static AliFMDDisplay* Instance(); 00038 00040 void Continue() { fWait = kFALSE; } 00042 void Zoom() { fZoomMode = kTRUE; } 00044 void Pick() { fZoomMode = kFALSE; } 00049 void ExecuteEvent(Int_t event, Int_t px, Int_t py); 00054 Int_t DistancetoPrimitive(Int_t px, Int_t py); 00057 void Paint(Option_t* option="") { (void)option; } 00058 00061 virtual Bool_t Init(); 00065 virtual Bool_t Begin(Int_t event); 00068 virtual Bool_t End(); 00073 virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle* p); 00077 virtual Bool_t ProcessDigit(AliFMDDigit* digit); 00081 virtual Bool_t ProcessRaw(AliFMDDigit* digit); 00085 virtual Bool_t ProcessRecPoint(AliFMDRecPoint* recpoint); 00091 virtual Int_t LookupColor(Float_t x, Float_t max) const; 00092 protected: 00093 static AliFMDDisplay* fgInstance; // Static instance 00094 Bool_t fWait; // Wait until user presses `Continue' 00095 TObjArray* fMarkers; // Cache of markers 00096 TObjArray* fHits; // Cache of `hits' 00097 TCanvas* fCanvas; // Canvas to draw in 00098 TPad* fPad; // View pad. 00099 TButton* fButton; // Continue button 00100 TButton* fZoom; // Zoom button 00101 TButton* fPick; // Pick button 00102 Bool_t fZoomMode; // Whether we're in Zoom mode 00103 Float_t fX0; // X at lower left corner or range 00104 Float_t fY0; // Y at lower left corner or range 00105 Float_t fX1; // X at upper right corner or range 00106 Float_t fY1; // Y at upper right corner or range 00107 Int_t fXPixel; // X pixel of mark 00108 Int_t fYPixel; // Y pixel of mark 00109 Int_t fOldXPixel; // Old x pixel of mark 00110 Int_t fOldYPixel; // Old y pixel of mark 00111 Bool_t fLineDrawn; // Whether we're drawing a box 00112 ClassDef(AliFMDDisplay,0) // FMD specialised event display 00113 }; 00114 00115 #endif 00116 //____________________________________________________________________ 00117 // 00118 // Local Variables: 00119 // mode: C++ 00120 // End: 00121 // 00122 // EOF 00123 //