]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/primary_vertex.C
Merge from EVE-dev to HEAD.
[u/mrichter/AliRoot.git] / EVE / alice-macros / primary_vertex.C
1 // $Header$
2
3 TPolyMarker3D* make_vertex_marker(AliESDVertex* v, const Text_t* name)
4 {
5   Double_t x[3], e[3];
6   v->GetTruePos(x);
7   v->GetSigmaXYZ(e);
8
9   printf("%s: %f %f %f   -   %f %f %f\n", name,
10          x[0], x[1], x[2], e[0], e[1], e[2]);
11
12   TPolyMarker3D* m = new TPolyMarker3D(8);
13   m->SetName(name);
14   m->SetPoint(0, x[0], x[1], x[2]);
15
16   return m;
17 }
18
19 void register_vertex_marker(TPolyMarker3D* m)
20 {
21   using namespace Reve;
22   Color_t* colp = FindColorVar(m, "fMarkerColor");
23   RenderElementObjPtr* rnrEl = new RenderElementObjPtr(m, *colp);
24   gReve->AddRenderElement(rnrEl);
25   gReve->Redraw3D();
26 }
27
28 void primary_vertex(Bool_t showSPD=kTRUE)
29 {
30   AliESD* esd = Alieve::Event::AssertESD();
31
32   AliESDVertex*  pv  = esd->GetPrimaryVertex();
33   TPolyMarker3D* pvm = make_vertex_marker(pv, "Primary Vertex");
34   pvm->SetMarkerStyle(5);
35   pvm->SetMarkerColor(3);
36   register_vertex_marker(pvm);
37
38   if(showSPD) {
39     AliESDVertex*  spdv  = esd->GetVertex();
40     TPolyMarker3D* spdvm = make_vertex_marker(spdv, "SPD Vertex");
41     spdvm->SetMarkerStyle(2);
42     spdvm->SetMarkerColor(7);
43     register_vertex_marker(spdvm);
44   }
45 }