* full copyright notice. *
**************************************************************************/
-TEveGeoShape *gGeomGentle = 0;
+class TEveProjectionManager;
+class TEveGeoShape;
+class TEveUtil;
+
+Bool_t gCenterProjectionsAtPrimaryVertex = kFALSE;
+
void alieve_online_init()
{
- gROOT->LoadMacro("geom_gentle.C");
+ if (gROOT->LoadMacro("MultiView.C++") != 0)
+ {
+ gEnv->SetValue("Root.Stacktrace", "no");
+ Fatal("alieve_online.C", "Failed loading MultiView.C in compiled mode.");
+ }
gROOT->LoadMacro("primary_vertex.C");
gROOT->LoadMacro("esd_tracks.C");
- gROOT->LoadMacro("trd_tracks.C++");
+ // Disabled due to memory leaks
+ // gROOT->LoadMacro("trd_tracks.C++");
gROOT->LoadMacro("trd_detectors.C++");
gROOT->LoadMacro("its_clusters.C++");
gROOT->LoadMacro("tpc_clusters.C++");
+ gROOT->LoadMacro("tof_clusters.C++");
gROOT->LoadMacro("hmpid_clusters.C++");
+ gROOT->LoadMacro("emcal_digits.C++");
gROOT->LoadMacro("acorde_raw.C");
gROOT->LoadMacro("its_raw.C");
gROOT->LoadMacro("tpc_raw.C");
+ gROOT->LoadMacro("tof_raw.C");
+ gROOT->LoadMacro("vzero_raw.C");
TEveUtil::AssertMacro("VizDB_scan.C");
- // Temp fix !!!
- TGeoManager *man = gGeoManager;
- gGeomGentle = geom_gentle();
- // Temp fix !!!
- gGeoManager = man;
-
- gROOT->ProcessLine(".L SplitGLView.C++g"); // !!!! debug-mode
- TEveBrowser* browser = gEve->GetBrowser();
- browser->ExecPlugin("SplitGLView", 0, "new SplitGLView(gClient->GetRoot(), 600, 450, kTRUE)");
-
- if (gRPhiMgr) {
- TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr);
- a->SetNumTickMarks(3);
- a->SetText("R-Phi");
- a->SetFontFile("comicbd");
- a->SetFontSize(10);
- gEve->GetScenes()->FindChild("R-Phi Projection")->AddElement(a);
- }
- if (gRhoZMgr) {
- TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr);
- a->SetNumTickMarks(3);
- a->SetText("Rho-Z");
- a->SetFontFile("comicbd");
- a->SetFontSize(10);
- gEve->GetScenes()->FindChild("Rho-Z Projection")->AddElement(a);
- }
+ TEveBrowser *browser = gEve->GetBrowser();
+ browser->ShowCloseTab(kFALSE);
+
+ // Gentle-geom loading changes gGeoManager.
+ TEveGeoManagerHolder mgrRestore;
+
+ gMultiView = new MultiView;
- TEveBrowser* browser = gEve->GetBrowser();
+ TEveUtil::LoadMacro("geom_gentle.C");
+ gMultiView->InitGeomGentle(geom_gentle(),
+ geom_gentle_rphi(),
+ geom_gentle_rhoz());
+
+ // See visscan_init.C for how to add TRD / MUON geometry.
+
+ browser->GetTabRight()->SetTab(1);
browser->StartEmbedding(TRootBrowser::kBottom);
new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
browser->StopEmbedding("EventCtrl");
- gEve->Redraw3D(kTRUE);
+ browser->MoveResize(0, 0, gClient->GetDisplayWidth(),
+ gClient->GetDisplayHeight() - 32);
+
+ gEve->GetViewers()->SwitchColorSet();
+
+ TString autoRun(gSystem->Getenv("ONLINERECO_AUTORUN"));
+ if (autoRun == "1" || autoRun.CompareTo("true", TString::kIgnoreCase) == 0)
+ {
+ AliEveEventManager::GetMaster()->SetAutoLoad(kTRUE);
+ }
+
+ {
+ TGTab *tab = gEve->GetBrowser()->GetTab(2);
+
+ TGHorizontalFrame *hf = (TGHorizontalFrame*) tab->GetParent();
+ TGVerticalFrame *vf = (TGVerticalFrame*) hf ->GetParent();
+
+ hf->Resize(hf->GetWidth(), hf->GetHeight() + 80);
+ vf->Layout();
+ }
+
+ gEve->FullRedraw3D(kTRUE);
+
+ TGLViewer *glv = gMultiView->f3DView->GetGLViewer();
+ glv->CurrentCamera().RotateRad(-0.4, 1);
+ glv->DoDraw();
}
void alieve_online_on_new_event()
tpc_raw();
tpc_clusters();
+ if (AliEveEventManager::HasRawReader())
+ tof_raw();
+ tof_clusters();
+
hmpid_clusters();
if (AliEveEventManager::HasRawReader())
acorde_raw();
+ if (AliEveEventManager::HasRawReader())
+ vzero_raw();
+
+ emcal_digits();
+
primary_vertex();
esd_tracks();
- if (AliEveEventManager::HasESDfriend()) trd_tracks();
+ // Disabled due to memory leaks
+ // if (AliEveEventManager::HasESDfriend()) trd_tracks();
+ // AliSysInfo::AddStamp("EveTRDTr");
trd_detectors();
AliESDEvent* esd = AliEveEventManager::AssertESD();
TEveElement* top = gEve->GetCurrentEvent();
- if (gRPhiMgr && top) {
- gRPhiMgr->DestroyElements();
- gRPhiMgr->SetCenter(x[0], x[1], x[2]);
- gRPhiMgr->ImportElements(gGeomGentle);
- gRPhiMgr->ImportElements(top);
- }
- if (gRhoZMgr && top) {
- gRhoZMgr->DestroyElements();
- gRhoZMgr->SetCenter(x[0], x[1], x[2]);
- gRhoZMgr->ImportElements(gGeomGentle);
- gRhoZMgr->ImportElements(top);
- }
+ gMultiView->DestroyEventRPhi();
+ if (gCenterProjectionsAtPrimaryVertex)
+ gMultiView->SetCenterRPhi(x[0], x[1], x[2]);
+ gMultiView->ImportEventRPhi(top);
- gROOT->ProcessLine("SplitGLView::UpdateSummary()");
+ gMultiView->DestroyEventRhoZ();
+ if (gCenterProjectionsAtPrimaryVertex)
+ gMultiView->SetCenterRhoZ(x[0], x[1], x[2]);
+ gMultiView->ImportEventRhoZ(top);
}