]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveTPCLoaderEditor.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTPCLoaderEditor.cxx
index 05c56b325b4adaab3d1e9f07ccdfd6429d26ce77..48877cc69e42d46cb8b7ed4f5a8bb48958697c86 100644 (file)
@@ -9,11 +9,13 @@
 
 #include "AliEveTPCLoaderEditor.h"
 
-#include <EveDet/AliEveTPCLoader.h>
-#include <EveDet/AliEveTPCData.h>
+#include <AliEveTPCLoader.h>
+#include <AliEveTPCData.h>
 
+#include <TEveScene.h>
 #include <TEveManager.h>
 #include <TEveGValuators.h>
+#include <TGDoubleSlider.h>
 
 #include <TSystem.h>
 #include <TVirtualPad.h>
@@ -53,7 +55,11 @@ AliEveTPCLoaderEditor::AliEveTPCLoaderEditor(const TGWindow *p,
   fUpdateSectors   (0),
   fReloadSectors   (0),
   fCreateSectors3D (0),
-  fDeleteSectors3D (0)
+  fDeleteSectors3D (0),
+
+  gEtaRange(0),
+  gCutOnEta(0)
+  
 {
   // Constructor.
 
@@ -89,7 +95,7 @@ AliEveTPCLoaderEditor::AliEveTPCLoaderEditor(const TGWindow *p,
   fEvent->SetLabelWidth(labelW);
   fEvent->SetNELength(6);
   fEvent->Build();
-  fEvent->SetLimits(0, 1000);
+  fEvent->SetLimits(0, 999999);
   fEvent->SetToolTip("Current event number");
   fEvent->Connect("ValueSet(Double_t)",
                  "AliEveTPCLoaderEditor", this, "DoEvent()");
@@ -163,6 +169,41 @@ AliEveTPCLoaderEditor::AliEveTPCLoaderEditor(const TGWindow *p,
                              "AliEveTPCLoaderEditor", this, "DoDeleteSectors3D()");
     AddFrame(f, new TGLayoutHints(kLHintsExpandX, 8,8,8,0));
   }
+  {
+    TGHorizontalFrame* f = new TGHorizontalFrame(this);
+    fCreateSectors3D = new TGTextButton(f, "Show 2D");
+    f->AddFrame(fCreateSectors3D, new TGLayoutHints(kLHintsExpandX, 0,4,0,0));
+    fCreateSectors3D->Connect("Clicked()",
+                             "AliEveTPCLoaderEditor", this, "DoShowSectors2D()");
+    fDeleteSectors3D = new TGTextButton(f, "Hide 2D");
+    f->AddFrame(fDeleteSectors3D, new TGLayoutHints(kLHintsExpandX, 4,0,0,0));
+    fDeleteSectors3D->Connect("Clicked()",
+                             "AliEveTPCLoaderEditor", this, "DoHideSectors2D()");
+    AddFrame(f, new TGLayoutHints(kLHintsExpandX, 8,8,8,0));
+  }
+
+   // Eta cuts slider
+
+  {
+   TGHorizontalFrame* f = new TGHorizontalFrame(this);
+
+   gEtaRange = new TEveGDoubleValuator(f,"Eta range:", 40, 0);
+   gEtaRange->SetNELength(6);
+   gEtaRange->SetLabelWidth(50);
+   gEtaRange->Build();
+   gEtaRange->GetSlider()->SetWidth(180);
+   gEtaRange->SetLimits(-1.5, 1.5, TGNumberFormat::kNESRealTwo);
+   gEtaRange->SetValues(-1.5, 1.5, TGNumberFormat::kNESRealTwo);
+
+   gCutOnEta = new TGCheckButton(f, "Set", 10);
+   gCutOnEta->SetEnabled(kTRUE);
+
+   f->AddFrame(gEtaRange, new TGLayoutHints(kLHintsExpandX, 10, 10, 10, 10));
+   f->AddFrame(gCutOnEta, new TGLayoutHints(kLHintsNormal, 10, 10, 10, 10));
+
+   AddFrame(f, new TGLayoutHints(kLHintsExpandX, 8,8,8,0));
+  }
+
 }
 
 /******************************************************************************/
@@ -171,7 +212,7 @@ void AliEveTPCLoaderEditor::SetModel(TObject* obj)
 {
   // Set model object.
 
-  fM = dynamic_cast<AliEveTPCLoader*>(obj);
+  fM = static_cast<AliEveTPCLoader*>(obj);
 
   // !!!! order changed, need TGTextEntry::SetText NO BLOODY EMIT.
   fFile->SetText(fM->fFile);
@@ -194,22 +235,20 @@ void AliEveTPCLoaderEditor::SetModel(TObject* obj)
 /******************************************************************************/
 /******************************************************************************/
 
-namespace {
-const char *tpcfiletypes[] = {
+void AliEveTPCLoaderEditor::FileSelect()
+{
+  // Slot for FileSelect.
+
+  static const char *kTPCFileTypes[] = {
    "Root files",  "*.root",
    "All files",   "*.*",
     0,               0
 };
-}
-
-void AliEveTPCLoaderEditor::FileSelect()
-{
-  // Slot for FileSelect.
 
   TGFileInfo fi;
   fi.fIniDir    = StrDup(gSystem->DirName (fM->fFile));
   fi.fFilename  = StrDup(gSystem->BaseName(fM->fFile));
-  fi.fFileTypes = tpcfiletypes;
+  fi.fFileTypes = kTPCFileTypes;
 
   new TGFileDialog(fClient->GetRoot(), gEve->GetMainWindow(), kFDOpen, &fi);
   if (!fi.fFilename)
@@ -284,6 +323,15 @@ void AliEveTPCLoaderEditor::DoUpdateSectors()
 {
   // Slot for UpdateSectors.
 
+  if(gCutOnEta)
+    fM->SetCutOnEta(gCutOnEta->IsOn());
+
+  if(gEtaRange)
+  {
+    fM->SetEtaMin(gEtaRange->GetMin());
+    fM->SetEtaMax(gEtaRange->GetMax());
+  }
+
   fM->UpdateSectors();
 }
 
@@ -291,6 +339,16 @@ void AliEveTPCLoaderEditor::DoReloadSectors()
 {
   // Slot for ReloadSectors.
 
+  if(gCutOnEta)
+    fM->SetCutOnEta(gCutOnEta->IsOn());
+
+  if(gEtaRange)
+  {
+    fM->SetEtaMin(gEtaRange->GetMin());
+    fM->SetEtaMax(gEtaRange->GetMax());
+  }
+
+
   fM->ReloadSectors();
 }
 
@@ -298,6 +356,15 @@ void AliEveTPCLoaderEditor::DoCreateSectors3D()
 {
   // Slot for CreateSectors3D.
 
+  if(gCutOnEta)
+    fM->SetCutOnEta(gCutOnEta->IsOn());
+
+  if(gEtaRange)
+  {
+    fM->SetEtaMin(gEtaRange->GetMin());
+    fM->SetEtaMax(gEtaRange->GetMax());
+  }
+
   fM->CreateSectors3D();
 }
 
@@ -308,3 +375,32 @@ void AliEveTPCLoaderEditor::DoDeleteSectors3D()
 
   fM->DeleteSectors3D();
 }
+
+void AliEveTPCLoaderEditor::DoShowSectors2D()
+{
+
+   for(Int_t i = 0; i< 36; i++)
+   {
+      if(gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i)))
+      {
+         gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i))->SetRnrSelf(kTRUE);
+         gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i))->SetRnrChildren(kTRUE);
+      }
+   }
+
+}
+
+void AliEveTPCLoaderEditor::DoHideSectors2D()
+{
+
+   for(Int_t i = 0; i< 36; i++)
+   {
+      if(gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i)))
+      {
+         gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i))->SetRnrSelf(kFALSE);
+         gEve->GetEventScene()->FirstChild()->FindChild("AliEveTPCLoader")->FindChild(Form("Sector2D %d",i))->SetRnrChildren(kFALSE);
+      }
+   }
+
+}
+