]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDDisplay.h
Useful macros for the shifter
[u/mrichter/AliRoot.git] / FMD / AliFMDDisplay.h
index 937db3ff24d79bdfa26357ef85c6bd6e63543a60..b3801192fc3e3713a112d277c2e51e5163864c21 100644 (file)
@@ -20,6 +20,7 @@
 //
 #include "AliFMDInput.h"
 #include <TObjArray.h>
+#include <TTimer.h>
 class TCanvas;
 class TPad;
 class TButton;
@@ -46,6 +47,10 @@ public:
 
   /** Continue to next event */
   void  Continue() { fWait = kFALSE; }
+  /** Run throug events as fast as possible */ 
+  void Start() { fContinous = kTRUE; fWait = kFALSE; }
+  /** Pause the processing */ 
+  void Pause() { fContinous = kFALSE; fWait = kTRUE; }
   /** Zoom mode */
   void  Zoom() { fZoomMode = kTRUE; }
   /** Pick mode */
@@ -66,11 +71,6 @@ public:
       @param px    where the event happened in pixels along X
       @param py    where the event happened in pixels along Y */
   virtual void  ExecuteEvent(Int_t event, Int_t px, Int_t py);
-  /** Calculate distance from point @f$ (p_x,p_y)@f$ to this object. 
-      @param px Pixel X coordinate 
-      @param py Pixel Y coordinate 
-      @return distance. */
-  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
   /** Paint into canvas 
       @param option Not used */
   virtual void  Paint(Option_t* option="") { (void)option; }
@@ -101,7 +101,11 @@ public:
   /** Visualize a raw digit
       @param digit Raw digit.
       @return @c false on error  */
-  virtual Bool_t ProcessRaw(AliFMDDigit* digit);
+  virtual Bool_t ProcessRawDigit(AliFMDDigit* digit);
+  /** Visualize a raw digit
+      @param digit Raw digit.
+      @return @c false on error  */
+  virtual Bool_t ProcessRawCalibDigit(AliFMDDigit* digit);
   /** Visualize a reconstructed point.
       @param recpoint Reconstructed point
       @return @c false on error  */
@@ -123,6 +127,10 @@ public:
       @param max Maximum (for example 1023 for digits)
       @return @c false on error  */
   virtual Int_t  LookupColor(Float_t x, Float_t min, Float_t max)  const;
+
+  /** Set range of displayed values */
+  virtual void SetCut(Float_t l=0., Float_t h=1.); //*MENU*
+  virtual void SetFactor(Float_t f=1);
 protected:
   /** Copy constructor 
       @param o Object to copy from  */
@@ -150,7 +158,12 @@ protected:
       fSpec(0), 
       fSpecCut(0),
       fAux(0),
-      fReturn(kFALSE)
+      fReturn(kFALSE),
+      fContinous(kFALSE), 
+      fTimeout(), 
+      fInitialMin(0), 
+      fInitialMax(1), 
+      fInitialFactor(3./10)
   { } 
   /** Assignment operator 
       @return Reference to this object */
@@ -185,6 +198,8 @@ protected:
   virtual void AtEnd();
   virtual Bool_t InsideCut(Float_t v, const Float_t& min, 
                         const Float_t& max) const;
+  virtual Double_t GetADCThreshold(UShort_t d, Char_t r, 
+                                  UShort_t s, UShort_t t) const;
   
   static AliFMDDisplay* fgInstance; // Static instance 
   Bool_t                fWait;      // Wait until user presses `Continue'
@@ -210,6 +225,21 @@ protected:
   TH1*                  fSpecCut;   // Cut spectra
   TCanvas*              fAux;       // Aux canvas.
   Bool_t                fReturn;    // Stop 
+  Bool_t                fContinous;
+  TTimer                fTimeout;
+  Float_t               fInitialMin;
+  Float_t               fInitialMax;
+  Float_t               fInitialFactor;
+
+  struct Range_t { 
+    UInt_t  fNbins;
+    Float_t fLow;
+    Float_t fHigh;
+  };
+  static const Range_t fgkEdepRange;
+  static const Range_t fgkAdcRange;
+  static const Range_t fgkMultRange;
+
   ClassDef(AliFMDDisplay,0)  // FMD specialised event display
 };