Added more functionalities on TOF data visualization via strips
authordecaro <decaro@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 8 Feb 2008 15:09:10 +0000 (15:09 +0000)
committerdecaro <decaro@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 8 Feb 2008 15:09:10 +0000 (15:09 +0000)
EVE/EveDet/AliEveTOFSector.cxx
EVE/EveDet/AliEveTOFSector.h
EVE/EveDet/AliEveTOFStrip.cxx
EVE/EveDet/AliEveTOFStrip.h
EVE/EveDet/AliEveTOFStripEditor.cxx
EVE/EveDet/AliEveTOFStripEditor.h

index 70836c9..2b758eb 100644 (file)
@@ -186,6 +186,7 @@ void AliEveTOFSector::InitStatics()
   //fgTOFsectorPalette->SetLimits(0, 2048); 
   fgTOFsectorPalette  = new TEveRGBAPalette(0, 8192); // TDC
   //fgTOFsectorPalette->SetLimits(0, 8192); 
+  fgTOFsectorPalette->SetOverflowAction(0);
 
   fgStaticInitDone = kTRUE;
 }
index aa931f3..5980b7e 100644 (file)
@@ -55,7 +55,7 @@
     Short_t     fThreshold;
     Int_t       fMaxVal;
     Int_t       fSectorID;
-    Bool_t      *fPlateFlag;
+    Bool_t     *fPlateFlag;
 
     //Bool_t      fPlateFlag0;
     //Bool_t      fPlateFlag1;
index e60df79..3421222 100644 (file)
@@ -29,6 +29,7 @@ AliEveTOFStrip::AliEveTOFStrip(const Text_t* n, const Text_t* t) :
   TEveQuadSet(n, t),
   fTOFgeometry(new AliTOFGeometry()),
   fTOFarray(0),
+  fThreshold (5), fMaxVal (80),
   fSector(-1), fPlate(-1), fStrip(-1),
   fDx(0), fDz(0),
   fGeoManager(0)
@@ -45,6 +46,7 @@ AliEveTOFStrip::AliEveTOFStrip(TGeoManager *localGeoManager,
   TEveQuadSet(Form("Strip%i", nStrip)),
   fTOFgeometry(new AliTOFGeometry()),
   fTOFarray(0),
+  fThreshold (5), fMaxVal (80),
   fSector(nSector), fPlate(nPlate), fStrip(nStrip),
   fDx(0), fDz(0),
   fGeoManager(localGeoManager)
@@ -63,6 +65,7 @@ AliEveTOFStrip::AliEveTOFStrip(TGeoManager *localGeoManager,
   TEveQuadSet(Form("Strip%i", nStrip)),
   fTOFgeometry(new AliTOFGeometry()),
   fTOFarray(tofArray),
+  fThreshold (5), fMaxVal (80),
   fSector(nSector), fPlate(nPlate), fStrip(nStrip),
   fDx(0), fDz(0),
   fGeoManager(localGeoManager)
@@ -108,6 +111,7 @@ void AliEveTOFStrip::InitStatics()
 
   //fgTOFstripPalette  = new TEveRGBAPalette(0, 2048); // TOT
   fgTOFstripPalette  = new TEveRGBAPalette(0, 8192); // TDC
+  fgTOFstripPalette->SetOverflowAction(0);
 
   fgStaticInitDone = kTRUE;
 }
@@ -173,6 +177,7 @@ void AliEveTOFStrip::LoadQuads()
     // can insert the time-of-flight value for each pad
     //QuadValue((Int_t)tot);
     QuadValue((Int_t)tdc);
+    QuadId(tofDigit);
 
     //if (fSector==4 && fPlate==2  && fStrip==0) printf("  %1i   %2i    %f  %f \n", iPadZ, iPadX, x, z);
 
@@ -212,3 +217,41 @@ void AliEveTOFStrip::SetTrans()
   fHMTrans.SetBaseVec(4, tr);
 
 }
+
+/******************************************************************************/
+void AliEveTOFStrip::SetThreshold(Short_t t)
+{
+  fThreshold = TMath::Min(t, (Short_t)(fMaxVal - 1));
+  // ClearColorArray();
+}
+
+/******************************************************************************/
+
+void AliEveTOFStrip::SetMaxVal(Int_t mv)
+{
+  fMaxVal = TMath::Max(mv, (Int_t)(fThreshold + 1));
+  //ClearColorArray();
+}
+
+/******************************************************************************/
+
+void AliEveTOFStrip::DigitSelected(Int_t idx)
+{
+  // Override control-click from TEveQuadSet
+
+  DigitBase_t* qb   = GetDigit(idx);
+  TObject* obj   = qb->fId.GetObject();
+  AliTOFdigit* digs = dynamic_cast<AliTOFdigit*>(obj);
+  // printf("AliEveTOFStrip::QuadSelected "); Print();
+  /*
+  printf("  idx = %5i, value = %5d, obj = 0x%lx, digit = 0x%lx  ",
+        idx, qb->fValue, (ULong_t)obj, (ULong_t)digs);
+  */
+  if (digs)
+    printf("\n Sector = %2i  Plate = %1i  Strip = %2i  PadZ = %1i PadX = %2i  ToT = %3i  Tof = %5i\n",
+          fSector , fPlate, fStrip, digs->GetPadz(), digs->GetPadx(), digs->GetToT(), digs->GetTdc());
+  else printf("\n");
+
+}
+
+/******************************************************************************/
index 2f9a4f7..7819e40 100644 (file)
@@ -30,23 +30,27 @@ private:
   void LoadQuads();
 
 protected:
-  virtual void InitModule();
-  virtual void SetTrans();
 
   AliTOFGeometry *fTOFgeometry;
 
   TClonesArray   *fTOFarray;
 
-  Int_t fSector;
-  Int_t fPlate;
-  Int_t fStrip;
+  Short_t fThreshold;
+  Int_t   fMaxVal;
+  Int_t   fSector;
+  Int_t   fPlate;
+  Int_t   fStrip;
 
-  Float_t  fDx;
-  Float_t  fDz;
+  Float_t fDx;
+  Float_t fDz;
 
   TGeoManager *fGeoManager;
 
 public:
+
+  virtual void InitModule();
+  virtual void SetTrans();
+
   AliEveTOFStrip(const Text_t* n="AliEveTOFStrip", const Text_t* t=0);
   AliEveTOFStrip(TGeoManager *localGeoManager,
                 Int_t nSector, Int_t nPlate, Int_t nStrip);
@@ -59,6 +63,12 @@ public:
   static Bool_t    fgStaticInitDone;
   static void      InitStatics();
 
+  void SetThreshold(Short_t t);
+  void SetMaxVal(Int_t mv);
+  Short_t GetThreshold() const {return fThreshold;};
+  Int_t GetMaxVal() const {return fMaxVal;};
+  virtual void DigitSelected(Int_t idx);
+
   static TEveFrameBox* fgTOFstripFrameBox;
 
   static TEveRGBAPalette* fgTOFstripPalette;
index 60585b6..8e1150c 100644 (file)
@@ -7,17 +7,18 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-
 #include "AliEveTOFStripEditor.h"
 #include <EveDet/AliEveTOFStrip.h>
 
 #include <TVirtualPad.h>
 #include <TColor.h>
+#include <TEveGValuators.h>
 
 #include <TGLabel.h>
 #include <TGButton.h>
 #include <TGNumberEntry.h>
 #include <TGColorSelect.h>
+#include <TGSlider.h>
 #include <TGDoubleSlider.h>
 
 //______________________________________________________________________________
@@ -38,6 +39,27 @@ AliEveTOFStripEditor::AliEveTOFStripEditor(const TGWindow *p, Int_t width, Int_t
   // fXYZZ = new TGSomeWidget(this, ...);
   // AddFrame(fXYZZ, new TGLayoutHints(...));
   // fXYZZ->Connect("SignalName()", "AliEveTOFStripEditor", this, "DoXYZZ()");
+
+  fThreshold = new TEveGValuator(this, "Threshold", 200, 0);
+  fThreshold->SetNELength(4);
+  fThreshold->SetLabelWidth(60);
+  fThreshold->Build();
+  fThreshold->GetSlider()->SetWidth(120);
+  fThreshold->SetLimits(0,250);
+  fThreshold->Connect("ValueSet(Double_t)",
+                     "AliEveTOFSectorEditor", this, "DoThreshold()");
+  AddFrame(fThreshold, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
+
+  fMaxVal = new TEveGValuator(this,"MaxVal", 200, 0);
+  fMaxVal->SetNELength(4);
+  fMaxVal->SetLabelWidth(60);
+  fMaxVal->Build();
+  fMaxVal->GetSlider()->SetWidth(60);
+  fMaxVal->SetLimits(0, 500);
+  fMaxVal->Connect("ValueSet(Double_t)",
+                  "AliEveTOFSectorEditor", this, "DoMaxVal()");
+  AddFrame(fMaxVal, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
+
 }
 
 AliEveTOFStripEditor::~AliEveTOFStripEditor()
@@ -54,6 +76,19 @@ void AliEveTOFStripEditor::SetModel(TObject* obj)
 }
 
 /******************************************************************************/
+void AliEveTOFStripEditor::DoThreshold()
+{
+  fM->SetThreshold((Short_t) fThreshold->GetValue());
+  fThreshold->SetValue(fM->GetThreshold());
+  Update();
+}
+
+void AliEveTOFStripEditor::DoMaxVal()
+{
+  fM->SetMaxVal((Int_t) fMaxVal->GetValue());
+  fMaxVal->SetValue(fM->GetMaxVal());
+  Update();
+}
 
 // Implements callback/slot methods
 
index 418d587..cfd2f4f 100644 (file)
@@ -7,7 +7,6 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-
 #ifndef ALIEVE_TOFStripEditor_H
 #define ALIEVE_TOFStripEditor_H
 
@@ -17,6 +16,10 @@ class TGCheckButton;
 class TGNumberEntry;
 class TGColorSelect;
 
+class TGHSlider;
+
+class TEveGValuator;
+class TEveGDoubleValuator;
  
 
 class AliEveTOFStrip;
@@ -33,11 +36,16 @@ protected:
   // Declare widgets
   // TGSomeWidget*   fXYZZ;
 
+  TEveGValuator*    fThreshold;
+  TEveGValuator*    fMaxVal;
+
 public:
   AliEveTOFStripEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, UInt_t options = kChildFrame, Pixel_t back=GetDefaultFrameBackground());
   virtual ~AliEveTOFStripEditor();
 
   virtual void SetModel(TObject* obj);
+  void DoThreshold();
+  void DoMaxVal();
 
   // Declare callback/slot methods
   // void DoXYZZ();