* full copyright notice. *
**************************************************************************/
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include <TEveManager.h>
+#include <TEveCompound.h>
+#include <TEveStraightLineSet.h>
+
+#include <EveBase/AliEveEventManager.h>
+
+#include <AliESDEvent.h>
+#include <AliESDVertex.h>
+
+#endif
//==============================================================================
// Utilities
// !!! TEveCompound should have viz-db support ... add in root, then fix here,
// that is, remove the color var and pass viz-db tag.
- TEveCompound* parent = dynamic_cast<TEveCompound*>(gAliEveEvent->FindChild(name));
+ TEveCompound* parent = dynamic_cast<TEveCompound*>
+ (AliEveEventManager::GetCurrent()->FindChild(name));
if (parent == 0)
{
parent = new TEveCompound(name);
parent->OpenCompound();
parent->SetMainColor(col);
- gAliEveEvent->AddElement(parent);
+ AliEveEventManager::GetMaster()->AddElement(parent);
}
return parent;
}
//==============================================================================
TEveStraightLineSet*
-make_vertex_cross(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
+make_vertex_cross(const 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);
TEveStraightLineSet* ls = new TEveStraightLineSet("Cross");
+ TString title;
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));
+ title += 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));
+ title += Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz);
}
+ title += Form("\nx=%.5f, y=%.5f, z=%.5f\nsx=%.5f, sy=%.5f, sz=%.5f",
+ x[0], x[1], x[2], e[0], e[1], e[2]);
+ ls->SetTitle(title);
+
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]);
}
TEveStraightLineSet*
-make_vertex_ellipse(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
+make_vertex_ellipse(const 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);
TEveStraightLineSet* ls = new TEveStraightLineSet("Ellipse");
+ TString title;
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));
+ title += 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));
+ title += Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz);
}
+ title += Form("\nx=%.5f, y=%.5f, z=%.5f\nsx=%.5f, sy=%.5f, sz=%.5f",
+ x[0], x[1], x[2], e[0], e[1], e[2]);
+ ls->SetTitle(title);
const Int_t N = 32;
const Float_t S = 2*TMath::Pi()/N;
}
TEveStraightLineSet*
-make_vertex_box(AliESDVertex* v, Bool_t use_sigma, Float_t fx, Float_t fy, Float_t fz)
+make_vertex_box(const 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);
TEveStraightLineSet* ls = new TEveStraightLineSet("Box");
+ TString title;
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));
+ title += 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));
+ title += Form("+- %.1f cm x %.1f cm x %.1f cm", fx, fy, fz);
}
+ title += Form("\nx=%.5f, y=%.5f, z=%.5f\nsx=%.5f, sy=%.5f, sz=%.5f",
+ x[0], x[1], x[2], e[0], e[1], e[2]);
+ ls->SetTitle(title);
+
// 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]);
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();
+ const AliESDVertex *pv = esd->GetPrimaryVertex();
+ if ( ! pv->GetStatus()) {
+ Info("primary_vertex", "Primary vertex not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_cross(pv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX");
+ ls->ApplyVizTag("REC PVTX");
assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+ if ( ! spdv->GetStatus()) {
+ Info("primary_vertex_spd", "Primary vertex SPD not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_cross(spdv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX SPD");
+ ls->ApplyVizTag("REC PVTX SPD");
assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+ if ( ! tpcv->GetStatus()) {
+ Info("primary_vertex_tpc", "Primary vertex TPC not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_cross(tpcv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX TPC");
+ ls->ApplyVizTag("REC PVTX TPC");
assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *pv = esd->GetPrimaryVertex();
+ if ( ! pv->GetStatus()) {
+ Info("primary_vertex_ellipse", "Primary vertex not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_ellipse(pv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Ellipse");
+ ls->ApplyVizTag("REC PVTX Ellipse");
assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+ if ( ! spdv->GetStatus()) {
+ Info("primary_vertex_ellipse_spd", "Primary vertex SPD not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_ellipse(spdv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Ellipse SPD");
+ ls->ApplyVizTag("REC PVTX Ellipse SPD");
assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+ if ( ! tpcv->GetStatus()) {
+ Info("primary_vertex_ellipse_tpc", "Primary vertex TPC not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_ellipse(tpcv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Ellipse TPC");
+ ls->ApplyVizTag("REC PVTX Ellipse TPC");
assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *pv = esd->GetPrimaryVertex();
+ if ( ! pv->GetStatus()) {
+ Info("primary_vertex_box", "Primary vertex not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_box(pv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Box");
+ ls->ApplyVizTag("REC PVTX Box");
assert_vertex_parent("Primary Vertex", 7)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *spdv = esd->GetPrimaryVertexSPD();
+ if ( ! spdv->GetStatus()) {
+ Info("primary_vertex_box_spd", "Primary vertex SPD not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_box(spdv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Box SPD");
+ ls->ApplyVizTag("REC PVTX Box SPD");
assert_vertex_parent("Primary Vertex SPD", 6)->AddElement(ls);
gEve->Redraw3D();
return ls;
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();
+ const AliESDVertex *tpcv = esd->GetPrimaryVertexTPC();
+ if ( ! tpcv->GetStatus()) {
+ Info("primary_vertex_box_tpc", "Primary vertex TPC not available.");
+ return 0;
+ }
TEveStraightLineSet* ls = make_vertex_box(tpcv, use_sigma, fx, fy, fz);
- ls->ApplyVizTag("PVTX Box TPC");
+ ls->ApplyVizTag("REC PVTX Box TPC");
assert_vertex_parent("Primary Vertex TPC", 5)->AddElement(ls);
gEve->Redraw3D();
return ls;