]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/macros/reve_quad_test.C
Separate import of standard macros into a special function so that
[u/mrichter/AliRoot.git] / EVE / macros / reve_quad_test.C
index c99cc051d7f531f529e25398c2fd3a8c7db56247..c04247985353d789706acb5197574b25cc51a5aa 100644 (file)
@@ -1,13 +1,16 @@
 // $Header$
 
 Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0,
-                             Int_t num=100)
+                             Int_t num=100, Bool_t register=kTRUE)
 {
   TRandom r(0);
 
   gStyle->SetPalette(1, 0);
 
+  Reve::RGBAPalette* pal = new Reve::RGBAPalette(0, 130);
+
   Reve::QuadSet* q = new Reve::QuadSet("RectangleXY");
+  q->SetPalette(pal);
   q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
   for (Int_t i=0; i<num; ++i) {
     q->AddQuad(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
@@ -19,6 +22,38 @@ Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0,
   Reve::ZTrans& t = q->RefHMTrans();
   t.SetPos(x, y, z);
 
+  if (register)
+  {
+    gReve->AddRenderElement(q);
+    gReve->Redraw3D();
+  }
+
+  return q;
+}
+
+Reve::QuadSet* reve_quad_test_emc(Float_t x=0, Float_t y=0, Float_t z=0,
+                                 Int_t num=100)
+{
+  TRandom r(0);
+
+  gStyle->SetPalette(1, 0);
+
+  Reve::QuadSet* q = new Reve::QuadSet("EMC Supermodule");
+  q->SetOwnIds(kTRUE);
+  q->Reset(Reve::QuadSet::QT_RectangleXZFixedDimY, kFALSE, 32);
+  q->SetDefWidth(8);
+  q->SetDefHeight(8);
+
+  for (Int_t i=0; i<num; ++i) {
+    q->AddQuad(r.Uniform(-100, 100), r.Uniform(-100, 100));
+    q->QuadValue(r.Uniform(0, 130));
+    q->AddId(new TNamed(Form("Cell %d", i)));
+  }
+  q->RefitPlex();
+
+  Reve::ZTrans& t = q->RefHMTrans();
+  t.SetPos(x, y, z);
+
   gReve->AddRenderElement(q);
   gReve->Redraw3D();
 
@@ -53,7 +88,7 @@ Reve::QuadSet* reve_quad_test_circ()
 }
 
 Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
-                                 Int_t num=100)
+                                 Int_t num=100, Bool_t register=kTRUE)
 {
   TRandom r(0);
 
@@ -72,8 +107,11 @@ Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
     Reve::ZTrans& t = q->RefHMTrans();
     t.SetPos(x, y, z);
 
-    gReve->AddRenderElement(q);
-    gReve->Redraw3D();
+    if (register)
+    {
+      gReve->AddRenderElement(q);
+      gReve->Redraw3D();
+    }
   }
 
   {
@@ -89,15 +127,18 @@ Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
     Reve::ZTrans& t = q->RefHMTrans();
     t.SetPos(x, y, z);
 
-    gReve->AddRenderElement(q);
-    gReve->Redraw3D();
+    if (register)
+    {
+      gReve->AddRenderElement(q);
+      gReve->Redraw3D();
+    }
   }
 
   return q;
 }
 
 Reve::QuadSet* reve_quad_test_hexid(Float_t x=0, Float_t y=0, Float_t z=0,
-                                   Int_t num=100)
+                                   Int_t num=100, Bool_t register=kTRUE)
 {
   TRandom r(0);
 
@@ -118,9 +159,42 @@ Reve::QuadSet* reve_quad_test_hexid(Float_t x=0, Float_t y=0, Float_t z=0,
     Reve::ZTrans& t = q->RefHMTrans();
     t.SetPos(x, y, z);
 
-    gReve->AddRenderElement(q);
-    gReve->Redraw3D();
+    if (register)
+    {
+      gReve->AddRenderElement(q);
+      gReve->Redraw3D();
+    }
   }
 
   return q;
 }
+
+void reve_quad_test_hierarchy(Int_t n=4)
+{
+  gStyle->SetPalette(1, 0);
+
+  Reve::RGBAPalette* pal = new Reve::RGBAPalette(20, 100);
+  pal->SetLimits(0, 120);
+
+  Reve::FrameBox*    box = new Reve::FrameBox();
+  box->SetAABox(-10, -10, -10, 20, 20, 20);
+  box->SetFrameColor((Color_t) 33);
+
+  Reve::RenderElementList* l = new Reve::RenderElementList("Parent/Dir");
+  l->SetTitle("Tooltip");
+  //  l->SetMainColor((Color_t)3);
+  gReve->AddRenderElement(l);
+
+  // PMD: obtain digit-tree from run-loader, loop over entries.
+
+  for (Int_t i=0; i<n; ++i)
+  {
+    Reve::QuadSet* qs = reve_quad_test_hexid(0, 0, 50*i, 50, kFALSE);
+    // PMD: loop over clones-array, create hexagons above threshold.
+    qs->SetPalette(pal);
+    qs->SetFrame(box);
+    gReve->AddRenderElement(qs, l);
+  }
+
+  gReve->Redraw3D();
+}