Geometry for MFT (Brigitte)
[u/mrichter/AliRoot.git] / EVE / alice-macros / geom_gentle_tpc.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include <TFile.h>
3 #include <TGLViewer.h>
4 #include <TEveManager.h>
5 #include <TEveElement.h>
6 #include <TEveGeoShape.h>
7 #include <TEveGeoShapeExtract.h>
8
9 #include <AliEveEventManager.h>
10 #include <AliEveMultiView.h>
11 #endif
12
13 void geom_gentle_tpc(Bool_t register_as_global=kTRUE)
14 {
15   TEveGeoShape* gsre1;
16   TEveGeoShape* gsre2;
17   TEveGeoShape* gsre3;
18   
19 {
20   TFile f("$ALICE_ROOT/EVE/alice-data/gentle_geo.root");
21   TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
22   gsre1 = TEveGeoShape::ImportShapeExtract(gse);
23   f.Close();
24
25   if (register_as_global)
26   {
27     gEve->AddGlobalElement(gsre1);
28
29   }
30
31   // Fix visibility, color and transparency
32
33   gsre1->SetRnrSelf(kFALSE);
34   TEveElement::List_i i = gsre1->BeginChildren();
35
36 //ITS
37   {
38     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
39     lvl1->SetRnrSelf(kFALSE);
40     TEveElement::List_i j = lvl1->BeginChildren();
41
42     TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
43     lvl2->SetRnrSelf(kFALSE);
44     TEveElement::List_i k = lvl2->BeginChildren();
45
46     TEveGeoShape* its1 = (TEveGeoShape*) *k;
47     its1->SetRnrSelf(kTRUE);
48     its1->SetMainColor(kRed);
49     k++;
50
51     TEveGeoShape* its2 = (TEveGeoShape*) *k;
52     its2->SetRnrSelf(kTRUE);
53     its2->SetMainColor(kRed+2);
54     k++;
55
56     TEveGeoShape* its3 = (TEveGeoShape*) *k;
57     its3->SetRnrSelf(kTRUE);
58     its3->SetMainColor(kRed+4);
59   }
60 //TPC
61
62   i++;
63   {
64     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
65     lvl1->SetRnrSelf(kFALSE);
66     TEveElement::List_i j = lvl1->BeginChildren();
67
68     TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
69     lvl2->SetRnrSelf(kFALSE);
70     TEveElement::List_i k = lvl2->BeginChildren();
71
72     TEveGeoShape* lvl3 = (TEveGeoShape*) *k;
73     lvl3->SetRnrSelf(kTRUE);
74     lvl3->SetMainColor(kBlue);
75     TEveElement::List_i l = lvl3->BeginChildren();
76
77     TEveGeoShape* lvl4 = (TEveGeoShape*) *l;
78     lvl4->SetRnrSelf(kFALSE);
79     TEveElement::List_i m = lvl4->BeginChildren();
80
81     TEveGeoShape* tpc1 = (TEveGeoShape*) *m;
82     tpc1->SetRnrSelf(kTRUE);
83     tpc1->SetMainColor(kGray);
84     m++;
85
86     TEveGeoShape* tpc2 = (TEveGeoShape*) *m;
87     tpc2->SetRnrSelf(kTRUE);
88     tpc2->SetMainColor(kGray);
89     m++;
90
91     TEveGeoShape* tpc3 = (TEveGeoShape*) *m;
92     tpc3->SetRnrSelf(kTRUE);
93     tpc3->SetMainColor(kGray);
94     m++;
95   }
96 //TRD+TOF
97
98   i++;
99   {
100     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
101     lvl1->SetRnrSelf(kFALSE);
102
103     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
104       {
105         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
106         lvl2->SetRnrSelf(kFALSE);
107
108       }
109   }
110 //PHOS
111
112   i++;
113   {
114     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
115     lvl1->SetRnrSelf(kFALSE);
116
117     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
118       {
119         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
120         lvl2->SetRnrSelf(kFALSE);
121       }
122   }
123 //HMPID
124
125   i++;
126   {
127     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
128     lvl1->SetRnrSelf(kFALSE);
129
130     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
131       {
132         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
133         lvl2->SetRnrSelf(kFALSE);
134       }
135   }
136 }
137
138 {
139   TFile f("$ALICE_ROOT/EVE/alice-data/gentle_rphi_geo.root");
140   TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
141   gsre2 = TEveGeoShape::ImportShapeExtract(gse);
142   f.Close();
143
144   // Fix visibility, color and transparency
145
146   gsre2->SetRnrSelf(kFALSE);
147   TEveElement::List_i i = gsre2->BeginChildren();
148
149 //ITS
150   {
151     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
152     lvl1->SetRnrSelf(kFALSE);
153     TEveElement::List_i j = lvl1->BeginChildren();
154
155     TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
156     lvl2->SetRnrSelf(kFALSE);
157     TEveElement::List_i k = lvl2->BeginChildren();
158
159     TEveGeoShape* its1 = (TEveGeoShape*) *k;
160     its1->SetRnrSelf(kTRUE);
161     its1->SetMainColor(kRed);
162     k++;
163
164     TEveGeoShape* its2 = (TEveGeoShape*) *k;
165     its2->SetRnrSelf(kTRUE);
166     its2->SetMainColor(kRed+2);
167     k++;
168
169     TEveGeoShape* its3 = (TEveGeoShape*) *k;
170     its3->SetRnrSelf(kTRUE);
171     its3->SetMainColor(kRed+4);
172   }
173 //TPC
174
175   i++;
176   i++;
177   {
178     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
179     lvl1->SetRnrSelf(kFALSE);
180
181     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
182       {
183         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
184         lvl2->SetRnrSelf(kFALSE);
185
186       }
187   }
188 //PHOS
189
190   i++;
191   {
192     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
193     lvl1->SetRnrSelf(kFALSE);
194
195     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
196       {
197         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
198         lvl2->SetRnrSelf(kFALSE);
199       }
200   }
201 //HMPID
202
203   i++;
204   {
205     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
206     lvl1->SetRnrSelf(kFALSE);
207
208     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
209       {
210         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
211         lvl2->SetRnrSelf(kFALSE);
212       }
213   }
214   
215 }
216
217 {
218   TFile f("$ALICE_ROOT/EVE/alice-data/gentle_rhoz_geo.root");
219   TEveGeoShapeExtract* gse = (TEveGeoShapeExtract*) f.Get("Gentle");
220   gsre3 = TEveGeoShape::ImportShapeExtract(gse);
221   f.Close();
222
223   // Fix visibility, color and transparency
224
225   gsre3->SetRnrSelf(kFALSE);
226   TEveElement::List_i i = gsre3->BeginChildren();
227
228 //ITS
229   {
230     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
231     lvl1->SetRnrSelf(kFALSE);
232     TEveElement::List_i j = lvl1->BeginChildren();
233
234     TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
235     lvl2->SetRnrSelf(kFALSE);
236     TEveElement::List_i k = lvl2->BeginChildren();
237
238     TEveGeoShape* its1 = (TEveGeoShape*) *k;
239     its1->SetRnrSelf(kTRUE);
240     its1->SetMainColor(kRed);
241     k++;
242
243     TEveGeoShape* its2 = (TEveGeoShape*) *k;
244     its2->SetRnrSelf(kTRUE);
245     its2->SetMainColor(kRed+2);
246     k++;
247
248     TEveGeoShape* its3 = (TEveGeoShape*) *k;
249     its3->SetRnrSelf(kTRUE);
250     its3->SetMainColor(kRed+4);
251   }
252 //TPC
253
254   i++;
255   i++;
256   {
257     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
258     lvl1->SetRnrSelf(kFALSE);
259
260     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
261       {
262         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
263         lvl2->SetRnrSelf(kFALSE);
264
265       }
266   }
267
268 //PHOS
269
270   i++;
271   {
272     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
273     lvl1->SetRnrSelf(kFALSE);
274
275     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
276       {
277         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
278         lvl2->SetRnrSelf(kFALSE);
279       }
280   }
281 //HMPID
282
283   i++;
284   {
285     TEveGeoShape* lvl1 = (TEveGeoShape*) *i;
286     lvl1->SetRnrSelf(kFALSE);
287
288     for (TEveElement::List_i j = lvl1->BeginChildren(); j != lvl1->EndChildren(); j++)
289       {
290         TEveGeoShape* lvl2 = (TEveGeoShape*) *j;
291         lvl2->SetRnrSelf(kFALSE);
292       }
293   }
294 }
295
296   TEveElement* top = gEve->GetCurrentEvent();
297
298   AliEveMultiView *mv = AliEveMultiView::Instance();
299
300   mv->InitGeomGentle(gsre1, gsre2, gsre3, 0);
301
302   gEve->FullRedraw3D(kTRUE, kTRUE);   
303
304 }