]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/macros/alieve_online.C
Updated macro for alieve-based reconstruction.
[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 class TEveProjectionManager;
8 class TEveGeoShape;
9 class TEveUtil;
10
11 TEveGeoShape *gGeomGentle = 0;
12
13 TEveScene *gRPhiGeomScene  = 0;
14 TEveScene *gRhoZGeomScene  = 0;
15 TEveScene *gRPhiEventScene = 0;
16 TEveScene *gRhoZEventScene = 0;
17
18 TEveProjectionManager *gRPhiMgr = 0;
19 TEveProjectionManager *gRhoZMgr = 0;
20
21 TEveViewer *g3DView   = 0;
22 TEveViewer *gRPhiView = 0;
23 TEveViewer *gRhoZView = 0;
24
25 Bool_t gCenterProjectionsAtPrimaryVertex = kFALSE;
26
27 void alieve_online_init()
28 {
29   gROOT->LoadMacro("geom_gentle.C");
30
31   gROOT->LoadMacro("primary_vertex.C");
32   gROOT->LoadMacro("esd_tracks.C");
33   gROOT->LoadMacro("trd_tracks.C++");
34   gROOT->LoadMacro("trd_detectors.C++");
35
36   gROOT->LoadMacro("its_clusters.C++");
37   gROOT->LoadMacro("tpc_clusters.C++");
38   gROOT->LoadMacro("hmpid_clusters.C++");
39
40   gROOT->LoadMacro("acorde_raw.C");
41   gROOT->LoadMacro("its_raw.C");
42   gROOT->LoadMacro("tpc_raw.C");
43
44   TEveUtil::AssertMacro("VizDB_scan.C");
45
46   TEveBrowser         *browser = gEve->GetBrowser();
47   browser->ShowCloseTab(kFALSE);
48
49   // Temp fix !!!
50   TGeoManager *man = gGeoManager;
51   gGeomGentle = geom_gentle();
52   gGeomGentleRPhi = geom_gentle_rphi(); gGeomGentleRPhi->IncDenyDestroy();
53   gGeomGentleRhoZ = geom_gentle_rhoz(); gGeomGentleRhoZ->IncDenyDestroy();
54   // Temp fix !!!
55   gGeoManager = man;
56
57   // Scenes
58   gRPhiGeomScene  = gEve->SpawnNewScene("RPhi Geometry",
59                     "Scene holding projected geometry for the RPhi view.");
60   gRhoZGeomScene  = gEve->SpawnNewScene("RhoZ Geometry",
61                     "Scene holding projected geometry for the RhoZ view.");
62   gRPhiEventScene = gEve->SpawnNewScene("RPhi Event Data",
63                     "Scene holding projected geometry for the RPhi view.");
64   gRhoZEventScene = gEve->SpawnNewScene("RhoZ Event Data",
65                     "Scene holding projected geometry for the RhoZ view.");
66
67   gRPhiMgr = new TEveProjectionManager();
68   gRPhiMgr->SetProjection(TEveProjection::kPT_RPhi);
69   gEve->AddToListTree(gRPhiMgr, kFALSE);
70   {
71     TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr);
72     a->SetMainColor(kWhite);
73     a->SetTitle("R-Phi");
74     a->SetTitleSize(0.05);
75     a->SetTitleFont(102);
76     a->SetLabelSize(0.025);
77     a->SetLabelFont(102);
78     gRPhiGeomScene->AddElement(a);
79   }
80   gRPhiMgr->SetCurrentDepth(-10);
81   gRPhiMgr->ImportElements(gGeomGentleRPhi, gRPhiGeomScene);
82   gRPhiMgr->SetCurrentDepth(0);
83
84   gRhoZMgr = new TEveProjectionManager();
85   gRhoZMgr->SetProjection(TEveProjection::kPT_RhoZ);
86   gEve->AddToListTree(gRhoZMgr, kFALSE);
87   {
88     TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr);
89     a->SetMainColor(kWhite);
90     a->SetTitle("Rho-Z");
91     a->SetTitleSize(0.05);
92     a->SetTitleFont(102);
93     a->SetLabelSize(0.025);
94     a->SetLabelFont(102);
95     gRhoZGeomScene->AddElement(a);
96   }
97   gRhoZMgr->SetCurrentDepth(-10);
98   gRhoZMgr->ImportElements(gGeomGentleRhoZ, gRhoZGeomScene);
99   gRhoZMgr->SetCurrentDepth(0);
100
101   // Viewers
102   TEveWindowSlot *slot = 0;
103   TEveWindowPack *pack = 0;
104
105   slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
106   pack = slot->MakePack();
107   pack->SetElementName("Multi View");
108   pack->SetHorizontal();
109   pack->SetShowTitleBar(kFALSE);
110   pack->NewSlot()->MakeCurrent();
111   g3DView = gEve->SpawnNewViewer("3D View", "");
112   g3DView->AddScene(gEve->GetGlobalScene());
113   g3DView->AddScene(gEve->GetEventScene());
114
115   pack = pack->NewSlot()->MakePack();
116   pack->SetShowTitleBar(kFALSE);
117   pack->NewSlot()->MakeCurrent();
118   gRPhiView = gEve->SpawnNewViewer("RPhi View", "");
119   gRPhiView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
120   gRPhiView->AddScene(gRPhiGeomScene);
121   gRPhiView->AddScene(gRPhiEventScene);
122
123   pack->NewSlot()->MakeCurrent();
124   gRhoZView = gEve->SpawnNewViewer("RhoZ View", "");
125   gRhoZView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
126   gRhoZView->AddScene(gRhoZGeomScene);
127   gRhoZView->AddScene(gRhoZEventScene);
128
129
130   browser->StartEmbedding(TRootBrowser::kBottom);
131   new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
132   browser->StopEmbedding("EventCtrl");
133
134   gEve->Redraw3D(kTRUE);
135 }
136
137 void alieve_online_on_new_event()
138 {
139   if (AliEveEventManager::HasRawReader())
140     its_raw();
141   its_clusters();
142
143   if (AliEveEventManager::HasRawReader())
144     tpc_raw();
145   tpc_clusters();
146
147   hmpid_clusters();
148
149   if (AliEveEventManager::HasRawReader())
150     acorde_raw();
151
152   primary_vertex();
153   esd_tracks();
154
155   if (AliEveEventManager::HasESDfriend()) trd_tracks();
156   trd_detectors();
157
158   AliESDEvent* esd = AliEveEventManager::AssertESD();
159   Double_t x[3];
160   esd->GetPrimaryVertex()->GetXYZ(x);
161
162   TEveElement* top = gEve->GetCurrentEvent();
163
164   if (gRPhiMgr && top)
165   {
166     gRPhiEventScene->DestroyElements();
167     if (gCenterProjectionsAtPrimaryVertex)
168       gRPhiMgr->SetCenter(x[0], x[1], x[2]);
169     gRPhiMgr->ImportElements(top, gRPhiEventScene);
170   }
171   if (gRhoZMgr && top)
172   {
173     gRhoZEventScene->DestroyElements();
174     if (gCenterProjectionsAtPrimaryVertex)
175       gRhoZMgr->SetCenter(x[0], x[1], x[2]);
176     gRhoZMgr->ImportElements(top, gRhoZEventScene);
177   }
178 }