* init-macros
[u/mrichter/AliRoot.git] / EVE / macros / alieve_online.C
1 /**************************************************************************
2  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
3  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
4  * full copyright notice.                                                 *
5  **************************************************************************/
6
7 TEveGeoShape *gGeomGentle = 0;
8
9 void alieve_online_init()
10 {
11   gROOT->LoadMacro("geom_gentle.C");
12
13   gROOT->LoadMacro("primary_vertex.C");
14   gROOT->LoadMacro("esd_tracks.C");
15   gROOT->LoadMacro("trd_tracks.C++");
16   gROOT->LoadMacro("trd_detectors.C++");
17
18   gROOT->LoadMacro("its_clusters.C++");
19   gROOT->LoadMacro("tpc_clusters.C++");
20   gROOT->LoadMacro("hmpid_clusters.C++");
21
22   gROOT->LoadMacro("acorde_raw.C");
23   gROOT->LoadMacro("its_raw.C");
24   gROOT->LoadMacro("tpc_raw.C");
25
26   TEveUtil::AssertMacro("VizDB_scan.C");
27
28   // Temp fix !!!
29   TGeoManager *man = gGeoManager;
30   gGeomGentle = geom_gentle();
31   // Temp fix !!!
32   gGeoManager = man;
33
34   gROOT->ProcessLine(".L SplitGLView.C++g"); // !!!! debug-mode
35
36   TEveBrowser* browser = gEve->GetBrowser();
37   browser->ShowCloseTab(kFALSE);
38
39   browser->ExecPlugin("SplitGLView", 0, "new SplitGLView(gClient->GetRoot(), 600, 450, kTRUE)");
40
41   if (gRPhiMgr) {
42     TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr);
43     a->SetMainColor(kWhite);
44     a->SetTitle("R-Phi");
45     a->SetTitleSize(0.05);
46     a->SetTitleFont();
47     a->SetLabelSize(0.025);
48     a->SetLabelFont();
49     gEve->GetScenes()->FindChild("R-Phi Projection")->AddElement(a);
50   }
51   if (gRhoZMgr) {
52     TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr);
53     a->SetMainColor(kWhite);
54     a->SetTitle("Rho-Phi");
55     a->SetTitleSize(0.05);
56     a->SetTitleFont();
57     a->SetLabelSize(0.025);
58     a->SetLabelFont();
59     gEve->GetScenes()->FindChild("Rho-Z Projection")->AddElement(a);
60   }
61
62   browser->StartEmbedding(TRootBrowser::kBottom);
63   new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
64   browser->StopEmbedding("EventCtrl");
65
66   browser->ShowCloseTab(kTRUE);
67
68   gEve->Redraw3D(kTRUE);
69 }
70
71 void alieve_online_on_new_event()
72 {
73   if (AliEveEventManager::HasRawReader())
74     its_raw();
75   its_clusters();
76
77   if (AliEveEventManager::HasRawReader())
78     tpc_raw();
79   tpc_clusters();
80
81   hmpid_clusters();
82
83   if (AliEveEventManager::HasRawReader())
84     acorde_raw();
85
86   primary_vertex();
87   esd_tracks();
88
89   if (AliEveEventManager::HasESDfriend()) trd_tracks();
90   trd_detectors();
91
92   AliESDEvent* esd = AliEveEventManager::AssertESD();
93   Double_t x[3];
94   esd->GetPrimaryVertex()->GetXYZ(x);
95
96   TEveElement* top = gEve->GetCurrentEvent();
97
98   if (gRPhiMgr && top) {
99     gRPhiMgr->DestroyElements();
100     gRPhiMgr->SetCenter(x[0], x[1], x[2]);
101     gRPhiMgr->ImportElements(gGeomGentle);
102     gRPhiMgr->ImportElements(top);
103   }
104   if (gRhoZMgr && top) {
105     gRhoZMgr->DestroyElements();
106     gRhoZMgr->SetCenter(x[0], x[1], x[2]);
107     gRhoZMgr->ImportElements(gGeomGentle);
108     gRhoZMgr->ImportElements(top);
109   }
110
111   gROOT->ProcessLine("SplitGLView::UpdateSummary()");
112 }