Introduction of TRD clusters, tracklets and tracks in the online reconstruction-visua...
[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   TEveBrowser* browser = gEve->GetBrowser();
36   browser->ExecPlugin("SplitGLView", 0, "new SplitGLView(gClient->GetRoot(), 600, 450, kTRUE)");
37
38   if (gRPhiMgr) {
39     TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr);
40     a->SetNumTickMarks(3);
41     a->SetText("R-Phi");
42     a->SetFontFile("comicbd");
43     a->SetFontSize(10);
44     gEve->GetScenes()->FindChild("R-Phi Projection")->AddElement(a);
45   }
46   if (gRhoZMgr) {
47     TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr);
48     a->SetNumTickMarks(3);
49     a->SetText("Rho-Z");
50     a->SetFontFile("comicbd");
51     a->SetFontSize(10);
52     gEve->GetScenes()->FindChild("Rho-Z Projection")->AddElement(a);
53   }
54
55   TEveBrowser* browser = gEve->GetBrowser();
56
57   browser->StartEmbedding(TRootBrowser::kBottom);
58   new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
59   browser->StopEmbedding("EventCtrl");
60
61   gEve->Redraw3D(kTRUE);
62 }
63
64 void alieve_online_on_new_event()
65 {
66   if (AliEveEventManager::HasRawReader())
67     its_raw();
68   its_clusters();
69
70   if (AliEveEventManager::HasRawReader())
71     tpc_raw();
72   tpc_clusters();
73
74   hmpid_clusters();
75
76   if (AliEveEventManager::HasRawReader())
77     acorde_raw();
78
79   primary_vertex();
80   esd_tracks();
81
82   if (AliEveEventManager::HasESDfriend()) trd_tracks();
83   trd_detectors();
84
85   AliESDEvent* esd = AliEveEventManager::AssertESD();
86   Double_t x[3];
87   esd->GetPrimaryVertex()->GetXYZ(x);
88
89   TEveElement* top = gEve->GetCurrentEvent();
90
91   if (gRPhiMgr && top) {
92     gRPhiMgr->DestroyElements();
93     gRPhiMgr->SetCenter(x[0], x[1], x[2]);
94     gRPhiMgr->ImportElements(gGeomGentle);
95     gRPhiMgr->ImportElements(top);
96   }
97   if (gRhoZMgr && top) {
98     gRhoZMgr->DestroyElements();
99     gRhoZMgr->SetCenter(x[0], x[1], x[2]);
100     gRhoZMgr->ImportElements(gGeomGentle);
101     gRhoZMgr->ImportElements(top);
102   }
103
104   gROOT->ProcessLine("SplitGLView::UpdateSummary()");
105 }