anyscan_init.C
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 15 Sep 2008 15:37:04 +0000 (15:37 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 15 Sep 2008 15:37:04 +0000 (15:37 +0000)
--------------
Use specialized geometries for r-phi and rho-z views.
Register macros for primary vertex plotting.
Register macro for spd tracklets.

VizDB_scan.C
------------
Add viz-db entries for primary vertex markup.

alieve_init.C
-------------
Temporarily register viz-db entries for primary vertex markup.

visscan_init.C
--------------
Use new functions for primary vertex.

esd_spd_tracklets.C
-------------------
Show number of tracklets as tooltip.

primary_vertex.C
----------------
Complete rewrite - can show cross / ellipse / box around
combined / spd / tpc vertex. The extent of markers can be in
sigma units or in cm.

esd_tracks.C
------------
Show relevant track-status bits in the tooltip.

AliEveMacro.cxx
---------------
Increase width of macro and function name entries for GUI.

EVE/EveBase/AliEveMacro.cxx
EVE/alice-macros/esd_spd_tracklets.C
EVE/alice-macros/esd_tracks.C
EVE/alice-macros/primary_vertex.C
EVE/macros/VizDB_scan.C
EVE/macros/alieve_init.C
EVE/macros/anyscan_init.C
EVE/macros/visscan_init.C

index 23d8ffc..c15aae3 100644 (file)
@@ -42,6 +42,6 @@ TString AliEveMacro::FormForDisplay() const
   // Return string suitable for display.
 
   return TString::Format
-    (" %c %-20s  %-20s  %-30s  %-s", fActive ? 'x' : ' ',
+    (" %c %-22s  %-30s  %-30s  %-s", fActive ? 'x' : ' ',
      fMacro.Data(), fFunc.Data(), fArgs.Data(), fTags.Data());
 }
index 3238d08..e9c8030 100644 (file)
@@ -40,6 +40,7 @@ TEveStraightLineSet* esd_spd_tracklets(Float_t rad=8)
                pvx[0]+dr[0], pvx[1]+dr[1], pvx[2]+dr[2]);
   }
 
+  ls->SetElementTitle(Form("N=%d", mul->GetNumberOfTracklets()));
   gEve->AddElement(ls);
   gEve->Redraw3D();
 
index 4b4f7f2..1c6e68d 100644 (file)
@@ -7,6 +7,25 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
+TString esd_track_flags(AliESDtrack* t)
+{
+  TString s;
+  Int_t   o;
+  s += "det(in,out,refit,pid):\n";
+  o  = AliESDtrack::kITSin;
+  s += Form("its(%d,%d,%d,%d) ",  t->IsOn(o), t->IsOn(o<<1), t->IsOn(o<<2), t->IsOn(o<<3));
+  o  = AliESDtrack::kTPCin;
+  s += Form("tpc(%d,%d,%d,%d)\n", t->IsOn(o), t->IsOn(o<<1), t->IsOn(o<<2), t->IsOn(o<<3));
+  o  = AliESDtrack::kTRDin;
+  s += Form("trd(%d,%d,%d,%d) ",  t->IsOn(o), t->IsOn(o<<1), t->IsOn(o<<2), t->IsOn(o<<3));
+  o  = AliESDtrack::kTOFin;
+  s += Form("tof(%d,%d,%d,%d)\n", t->IsOn(o), t->IsOn(o<<1), t->IsOn(o<<2), t->IsOn(o<<3));
+  o  = AliESDtrack::kHMPIDout;
+  s += Form("hmpid(out=%d,pid=%d)\n", t->IsOn(o), t->IsOn(o<<1));
+  s += Form("ESD pid=%d", t->IsOn(AliESDtrack::kESDpid));
+  return s;
+}
+
 TEveTrack* esd_make_track(TEveTrackPropagator*   trkProp,
                          Int_t                  index,
                          AliESDtrack*           at,
@@ -41,6 +60,7 @@ TEveTrack* esd_make_track(TEveTrackPropagator*   trkProp,
   sprintf(form,"TEveTrack %d", rt.fIndex);
   track->SetName(form);
   track->SetStdTitle();
+  track->SetElementTitle(Form("%s\n%s", track->GetElementTitle(), esd_track_flags(at).Data()));
   return track;
 }
 
index 381003f..d22a820 100644 (file)
@@ -7,88 +7,49 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-TPolyMarker3D* make_vertex_marker(AliESDVertex* v, const Text_t* name )
-{
-  Double_t x[3], e[3];
-  v->GetXYZ(x);
-  v->GetSigmaXYZ(e);
-
-  printf("%16s: %f %f %f   -   %f %f %f\n", name,
-        x[0], x[1], x[2], e[0], e[1], e[2]);
-
-  TPolyMarker3D* m = new TPolyMarker3D(1);
-  m->SetName(name);
-  m->SetPoint(0, x[0], x[1], x[2]);
-
-  return m;
-}
-
-TEveBoxSet* make_vertex_boxes(AliESDVertex* v)
-{
-  Double_t x[3], e[3];
-  v->GetXYZ(x);
-  v->GetSigmaXYZ(e);
-
-  TEveBoxSet* bs;
-
-  bs = new TEveBoxSet("+- 10 x 10 x 20mm");
-  bs->SetRenderMode(TEveBoxSet::RM_TEveLine);
-  bs->AddBox(Box(-1, x[0], x[1], x[2], 1, 1, 2));
-  bs->SetMainColor(2);
-  gEve->AddElement(bs);
-
-  bs = new TEveBoxSet("+- 30 sigma_r x 10 sigma_z");
-  bs->SetRenderMode(TEveBoxSet::RM_TEveLine);
-  bs->AddBox(Box(-1, x[0], x[1], x[2], 30*e[0], 30*e[1], 10*e[2]));
-  bs->SetMainColor(3);
-  gEve->AddElement(bs);
 
-  gEve->Redraw3D();
-}
+//==============================================================================
+// Utilities
+//==============================================================================
 
-void register_vertex_marker(TPolyMarker3D* m)
+TEveCompound* assert_vertex_parent(const TString& name, Color_t col)
 {
-  Color_t* colp = TEveUtil::FindColorVar(m, "fMarkerColor");
-  TEveElementObjectPtr* rnrEl = new TEveElementObjectPtr(m, *colp);
-  gEve->AddElement(rnrEl);
-  gEve->Redraw3D();
-}
+  // !!! TEveCompound should have viz-db support ... add in root, then fix here,
+  // that is, remove the color var and pass viz-db tag.
 
-void primary_vertex_primitive(Bool_t showSPD=kTRUE, Bool_t showBoxes=kFALSE)
-{
-  AliESDEvent* esd = AliEveEventManager::AssertESD();
-
-  AliESDVertex*  pv  = esd->GetPrimaryVertex();
-  TPolyMarker3D* pvm = make_vertex_marker(pv, "Primary Vertex");
-  pvm->SetMarkerStyle(5);
-  pvm->SetMarkerColor(5);
-  pvm->SetMarkerSize(1.4);
-  register_vertex_marker(pvm);
-
-  if (showSPD) {
-    AliESDVertex*  spdv  = esd->GetPrimaryVertexSPD();
-    TPolyMarker3D* spdvm = make_vertex_marker(spdv, "SPD Vertex");
-    spdvm->SetMarkerStyle(2);
-    spdvm->SetMarkerColor(6);
-    register_vertex_marker(spdvm);
+  TEveCompound* parent = dynamic_cast<TEveCompound*>(gAliEveEvent->FindChild(name));
+  if (parent == 0)
+  {
+    parent = new TEveCompound(name);
+    parent->OpenCompound();
+    parent->SetMainColor(col);
+    gAliEveEvent->AddElement(parent);
   }
-
-  if (showBoxes)
-    make_vertex_boxes(pv);
+  return parent;
 }
 
-/******************************************************************************/
 
-TEveStraightLineSet* make_vertex_lineset(AliESDVertex* v, const Text_t* name)
+//==============================================================================
+// Functions to make a cross / ellipse / box
+//==============================================================================
+
+TEveStraightLineSet*
+make_vertex_cross(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
 {
   Double_t x[3], e[3];
   v->GetXYZ(x); v->GetSigmaXYZ(e);
-  printf("%16s: %f %f %f   -   %f %f %f\n", name,
-        x[0], x[1], x[2], e[0], e[1], e[2]);
 
-  // dimensions
-  TEveStraightLineSet* ls = new TEveStraightLineSet();
-  ls->SetName(name);
+  TEveStraightLineSet* ls = new TEveStraightLineSet("Cross");
+  if (use_sigma)
+  {
+    e[0] *= fx; e[1] *= fy; e[2] *= fz;
+    ls->SetTitle(Form("+- %.1f*sigma_x, %.1f*sigma_y, %.1f*sigma_z", fx, fy, fz));
+  }
+  else
+  {
+    e[0] = fx; e[1] = fy; e[2] = fz;
+    ls->SetTitle(Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz));
+  }
   ls->AddLine(e[0], 0,    0,   -e[0], 0,    0);
   ls->AddLine(0,    e[1], 0,    0,   -e[1], 0);
   ls->AddLine(0,    0,    e[2], 0,    0,   -e[2]);
@@ -97,34 +58,28 @@ TEveStraightLineSet* make_vertex_lineset(AliESDVertex* v, const Text_t* name)
   return ls;
 }
 
-void make_vertex_ellipses(TEveStraightLineSet* ls, AliESDVertex* v, Bool_t ellipseUseSigma)
+TEveStraightLineSet*
+make_vertex_ellipse(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
 {
   Double_t x[3], e[3];
   v->GetXYZ(x); v->GetSigmaXYZ(e);
 
-  if (ellipseUseSigma)
+  TEveStraightLineSet* ls = new TEveStraightLineSet("Ellipse");
+  if (use_sigma)
   {
-    e[0] *= 30; e[1] *= 30; e[2] *= 10;
-    ls->SetMarkerStyle(5);
-    ls->SetMarkerColor(5);
-    ls->SetMarkerSize(1.4);
-    ls->SetLineColor(7);
-    ls->SetTitle("+- 30 sigma_r x 10 sigma_z");
+    e[0] *= fx; e[1] *= fy; e[2] *= fz;
+    ls->SetTitle(Form("+- %.1f*sigma_x, %.1f*sigma_y, %.1f sigma_z", fx, fy, fz));
   }
   else
   {
-    e[0] = 1; e[1] = 1; e[2] = 2;
-    ls->SetMarkerStyle(2);
-    ls->SetMarkerColor(6);
-    ls->SetLineColor(6);
-    ls->SetTitle("+- 10 x 10 x 20mm");
+    e[0] = fx; e[1] = fy; e[2] = fz;
+    ls->SetTitle(Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz));
   }
 
-  Int_t N = 32;
-  Float_t S = 2*TMath::Pi()/N;
-  Float_t b, a, phi;
+  const Int_t   N = 32;
+  const Float_t S = 2*TMath::Pi()/N;
 
-  a = e[0]; b = e[1];
+  Float_t a = e[0], b = e[1];
   for (Int_t i = 0; i<N; i++)
     ls->AddLine(a*TMath::Cos(i*S)  , b*TMath::Sin(i*S)  , 0,
                a*TMath::Cos(i*S+S), b*TMath::Sin(i*S+S), 0);
@@ -138,23 +93,174 @@ void make_vertex_ellipses(TEveStraightLineSet* ls, AliESDVertex* v, Bool_t ellip
   for (Int_t i = 0; i<N; i++)
     ls->AddLine(0, a*TMath::Cos(i*S)  ,  b*TMath::Sin(i*S),
                0, a*TMath::Cos(i*S+S),  b*TMath::Sin(i*S+S));
+
+  ls->RefMainTrans().SetPos(x);
+  return ls;
 }
 
-void primary_vertex(Bool_t showSPD=kTRUE, Bool_t rnrEllipse=kTRUE)
+TEveStraightLineSet*
+make_vertex_box(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
 {
-  AliESDEvent* esd = AliEveEventManager::AssertESD();
-  TEveStraightLineSet* ls;
-
-  AliESDVertex* PV  =  esd->GetPrimaryVertex();
-  ls = make_vertex_lineset(PV, "Primary Vertex");
-  if (rnrEllipse) make_vertex_ellipses(ls, PV, kTRUE);
-  gEve->AddElement(ls);
+  Double_t x[3], e[3];
+  v->GetXYZ(x); v->GetSigmaXYZ(e);
 
-  if (showSPD)
+  TEveStraightLineSet* ls = new TEveStraightLineSet("Box");
+  if (use_sigma)
+  {
+    e[0] *= fx; e[1] *= fy; e[2] *= fz;
+    ls->SetTitle(Form("+- %.1f*sigma_x, %.1f*sigma_y, %.1f*sigma_z", fx, fy, fz));
+  }
+  else
   {
-    AliESDVertex*  SPDV  = esd->GetPrimaryVertexSPD();
-    ls = make_vertex_lineset(SPDV, "SPD Vertex");
-    if (rnrEllipse) make_vertex_ellipses(ls, SPDV, kFALSE);
-    gEve->AddElement(ls);
+    e[0] = fx; e[1] = fy; e[2] = fz;
+    ls->SetTitle(Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz));
   }
+  // pos z
+  ls->AddLine( e[0],  e[1],  e[2],  e[0], -e[1],  e[2]);
+  ls->AddLine( e[0], -e[1],  e[2], -e[0], -e[1],  e[2]);
+  ls->AddLine(-e[0], -e[1],  e[2], -e[0],  e[1],  e[2]);
+  ls->AddLine(-e[0],  e[1],  e[2],  e[0],  e[1],  e[2]);
+  // lines along z
+  ls->AddLine( e[0],  e[1],  e[2],  e[0],  e[1], -e[2]);
+  ls->AddLine( e[0], -e[1],  e[2],  e[0], -e[1], -e[2]);
+  ls->AddLine(-e[0], -e[1],  e[2], -e[0], -e[1], -e[2]);
+  ls->AddLine(-e[0],  e[1],  e[2], -e[0],  e[1], -e[2]);
+  // neg z
+  ls->AddLine( e[0],  e[1], -e[2],  e[0], -e[1], -e[2]);
+  ls->AddLine( e[0], -e[1], -e[2], -e[0], -e[1], -e[2]);
+  ls->AddLine(-e[0], -e[1], -e[2], -e[0],  e[1], -e[2]);
+  ls->AddLine(-e[0],  e[1], -e[2],  e[0],  e[1], -e[2]);
+
+  ls->RefMainTrans().SetPos(x);
+  return ls;
+}
+
+
+//==============================================================================
+// Element making functions
+//==============================================================================
+
+TEveStraightLineSet*
+primary_vertex(Bool_t use_sigma=kTRUE, Float_t fx=1, Float_t fy=1, Float_t fz=1)
+{
+  AliESDEvent  *esd = AliEveEventManager::AssertESD();
+  AliESDVertex *pv  = esd->GetPrimaryVertex();
+
+  TEveStraightLineSet* ls = make_vertex_cross(pv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX");
+  assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_spd(Bool_t use_sigma=kTRUE, Float_t fx=1, Float_t fy=1, Float_t fz=1)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+
+  TEveStraightLineSet* ls = make_vertex_cross(spdv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX SPD");
+  assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_tpc(Bool_t use_sigma=kTRUE, Float_t fx=1, Float_t fy=1, Float_t fz=1)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+
+  TEveStraightLineSet* ls = make_vertex_cross(tpcv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX TPC");
+  assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+//------------------------------------------------------------------------------
+// Ellipse
+//------------------------------------------------------------------------------
+
+TEveStraightLineSet*
+primary_vertex_ellipse(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd = AliEveEventManager::AssertESD();
+  AliESDVertex *pv  = esd->GetPrimaryVertex();
+
+  TEveStraightLineSet* ls = make_vertex_ellipse(pv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Ellipse");
+  assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_ellipse_spd(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+
+  TEveStraightLineSet* ls = make_vertex_ellipse(spdv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Ellipse SPD");
+  assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_ellipse_tpc(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+
+  TEveStraightLineSet* ls = make_vertex_ellipse(tpcv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Ellipse TPC");
+  assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+//------------------------------------------------------------------------------
+// Box
+//------------------------------------------------------------------------------
+
+TEveStraightLineSet*
+primary_vertex_box(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd = AliEveEventManager::AssertESD();
+  AliESDVertex *pv  = esd->GetPrimaryVertex();
+
+  TEveStraightLineSet* ls = make_vertex_box(pv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Box");
+  assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_box_spd(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+
+  TEveStraightLineSet* ls = make_vertex_box(spdv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Box SPD");
+  assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
+}
+
+TEveStraightLineSet*
+primary_vertex_box_tpc(Bool_t use_sigma=kTRUE, Float_t fx=30, Float_t fy=30, Float_t fz=10)
+{
+  AliESDEvent  *esd  = AliEveEventManager::AssertESD();
+  AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+
+  TEveStraightLineSet* ls = make_vertex_box(tpcv, use_sigma, fx, fy, fz);
+  ls->ApplyVizTag("PVTX Box TPC");
+  assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
+  gEve->Redraw3D();
+  return ls;
 }
index 2a31cce..9bfbd66 100644 (file)
@@ -1,8 +1,12 @@
 void VizDB_scan()
 {
-  TEvePointSet* ps;
+  TEvePointSet        *ps = 0;
+  TEveStraightLineSet *ls = 0;
 
+
+  //============================================================================
   // Clusters
+  //============================================================================
 
   ps = new TEvePointSet();
   ps->SetMarkerColor(5);
@@ -27,4 +31,77 @@ void VizDB_scan()
   ps->SetMarkerSize(0.5);
   ps->SetMarkerStyle(4);
   gEve->InsertVizDBEntry("TOF Clusters", ps);
+
+  //============================================================================
+  // Primary vertex
+  //============================================================================
+
+  // Combined vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box", ls);
+
+  // SPD vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX SPD", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse SPD", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box SPD", ls);
+
+  // TPC vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX TPC", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse TPC", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box TPC", ls);
 }
index 1f0bf7a..48f737b 100644 (file)
@@ -25,7 +25,7 @@ void alieve_init(const Text_t* path   = ".", Int_t event=0,
   alieve_init_import_macros();
   gSystem->cd(hack);
 
-  // TEveUtil::AssertMacro("region_marker.C");
+  alieve_init_basic_vizdb();
 
   gSystem->ProcessEvents();
 
@@ -96,3 +96,84 @@ void alieve_init_import_macros()
     }
   }
 }
+
+void alieve_init_basic_vizdb()
+{
+  // For now this is copy from the VizDB_scan ... this should be
+  // reduced when going to a newer root (remove box/ellipse).
+
+  TEveStraightLineSet *ls = 0;
+
+  //============================================================================
+  // Primary vertex
+  //============================================================================
+
+  // Combined vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(7);
+  ls->SetLineColor(7);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box", ls);
+
+  // SPD vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX SPD", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse SPD", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(6);
+  ls->SetLineColor(6);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box SPD", ls);
+
+  // TPC vertex
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(3);
+  gEve->InsertVizDBEntry("PVTX TPC", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Ellipse TPC", ls);
+
+  ls = new TEveStraightLineSet;
+  ls->SetMarkerStyle(2);
+  ls->SetMarkerColor(5);
+  ls->SetLineColor(5);
+  ls->SetLineWidth(1);
+  gEve->InsertVizDBEntry("PVTX Box TPC", ls);
+}
index 9789ff6..35dd9ec 100644 (file)
@@ -16,8 +16,10 @@ class TEveUtil;
 R__EXTERN TEveProjectionManager *gRPhiMgr;
 R__EXTERN TEveProjectionManager *gRhoZMgr;
 
-TEveGeoShape *gGeomGentle    = 0;
-TEveGeoShape *gGeomGentleTRD = 0;
+TEveGeoShape *gGeomGentle     = 0;
+TEveGeoShape *gGeomGentleRPhi = 0;
+TEveGeoShape *gGeomGentleRhoZ = 0;
+TEveGeoShape *gGeomGentleTRD  = 0;
 
 Bool_t gShowTRD = kFALSE;
 
@@ -63,6 +65,8 @@ void anyscan_init()
   // geometry
   TEveUtil::LoadMacro("geom_gentle.C");
   gGeomGentle = geom_gentle();
+  gGeomGentleRPhi = geom_gentle_rphi(); gGeomGentleRPhi->IncDenyDestroy();
+  gGeomGentleRhoZ = geom_gentle_rhoz(); gGeomGentleRhoZ->IncDenyDestroy();
   if (gShowTRD) {
     TEveUtil::LoadMacro("geom_gentle_trd.C");
     gGeomGentleTRD = geom_gentle_trd();
@@ -79,12 +83,23 @@ void anyscan_init()
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "FMD DIGITS",  "fmd_digits.C",  "fmd_digits",  "", kFALSE));
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "FMD Hits",    "fmd_hits.C",    "fmd_hits",    "", kFALSE));
 
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX", "primary_vertex.C", "primary_vertex"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",         "primary_vertex.C", "primary_vertex",             "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse",     "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",     "primary_vertex.C", "primary_vertex_box",         "kFALSE, 3, 3, 3", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",         "primary_vertex.C", "primary_vertex_spd",         "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse_spd", "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",     "primary_vertex.C", "primary_vertex_box_spd",     "kFALSE, 3, 3, 3", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",         "primary_vertex.C", "primary_vertex_tpc",         "",                kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse_tpc", "",                kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",     "primary_vertex.C", "primary_vertex_box_tpc",     "kFALSE, 3, 3, 3", kFALSE));
+
   exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C",  "esd_V0_points"));
   exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0.C",         "esd_V0"));
   // exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "esd_tracks.C",     ""));
   TEveUtil::LoadMacro("esd_tracks.C");
 
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Track", "esd_spd_tracklets.C", "esd_spd_tracklets", "", kFALSE));
+
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clus ITS", "its_clusters.C+", "its_clusters"));
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clus TPC", "tpc_clusters.C+", "tpc_clusters"));
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clus TRD", "trd_clusters.C+", "trd_clusters"));
@@ -159,45 +174,17 @@ void on_new_event()
   if (gRPhiMgr && top) {
     gRPhiMgr->DestroyElements();
     gRPhiMgr->SetCenter(x[0], x[1], x[2]);
-    gRPhiMgr->ImportElements(gGeomGentle);
+    gRPhiMgr->ImportElements(gGeomGentleRPhi);
     if (gShowTRD) gRPhiMgr->ImportElements(gGeomGentleTRD);
     gRPhiMgr->ImportElements(top);
   }
   if (gRhoZMgr && top) {
     gRhoZMgr->DestroyElements();
     gRhoZMgr->SetCenter(x[0], x[1], x[2]);
-    gRhoZMgr->ImportElements(gGeomGentle);
+    gRhoZMgr->ImportElements(gGeomGentleRhoZ);
     if (gShowTRD) gRhoZMgr->ImportElements(gGeomGentleTRD);
     gRhoZMgr->ImportElements(top);
   }
 
   gROOT->ProcessLine("SplitGLView::UpdateSummary()");
 }
-
-/******************************************************************************/
-
-TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
-{
-  AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
-  rl->LoadKinematics();
-  AliStack* stack = rl->Stack();
-
-  printf("Number primaries %d, all particles %d, label %d\n",
-        stack->GetNprimary(), stack->GetNtrack(), label);
-  if (label < 0 || label >= stack->GetNtrack()) {
-    printf("  Label exceeds available range.\n");
-    return 0;
-  }
-
-  TParticle* part = stack->Particle(label);
-  if (part != 0) {
-    part->Print();
-    if (showParents) {
-      while (part->GetMother(0) >= 0) {
-       part = stack->Particle(part->GetMother(0));
-       part->Print();
-      }
-    }
-  }
-  return stack->Particle(label);
-}
index 31cb147..3c8e08c 100644 (file)
@@ -125,7 +125,11 @@ void on_new_event()
     printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
   }
 
-  primary_vertex(1, 1);
+  primary_vertex();
+  primary_vertex_ellipse();
+  primary_vertex_spd();
+  primary_vertex_ellipse_spd();
+
   esd_V0_points();
   esd_V0();
 
@@ -180,31 +184,3 @@ void on_new_event()
 
   gROOT->ProcessLine("SplitGLView::UpdateSummary()");
 }
-
-/******************************************************************************/
-
-TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
-{
-  AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
-  rl->LoadKinematics();
-  AliStack* stack = rl->Stack();
-
-  printf("Number primaries %d, all particles %d, label %d\n",
-        stack->GetNprimary(), stack->GetNtrack(), label);
-  if (label < 0 || label >= stack->GetNtrack()) {
-    printf("  Label exceeds available range.\n");
-    return 0;
-  }
-
-  TParticle* part = stack->Particle(label);
-  if (part != 0) {
-    part->Print();
-    if (showParents) {
-      while (part->GetMother(0) >= 0) {
-       part = stack->Particle(part->GetMother(0));
-       part->Print();
-      }
-    }
-  }
-  return stack->Particle(label);
-}