ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
mp3player.C
Go to the documentation of this file.
1 #include "TCanvas.h"
2 #include "TPaveText.h"
3 #include "TImage.h"
4 #include "TLine.h"
5 #include "TLatex.h"
6 #include "TButton.h"
7 #include "TGeoManager.h"
8 
9 void mp3player()
10 {
11  // Drawing a mp3 type music player, using ROOT geometry class.
12  // Name: mp3player.C
13  // Author: Eun Young Kim, Dept. of Physics, Univ. of Seoul
14  // Reviewed by Sunman Kim (sunman98@hanmail.net)
15  // Supervisor: Prof. Inkyu Park (icpark@physics.uos.ac.kr)
16  //
17  // How to run: .x mp3player.C in ROOT terminal, then use OpenGL
18  //
19  // This macro was created for the evaluation of Computational Physics course in 2006.
20  // We thank to Prof. Inkyu Park for his special lecture on ROOT and to all of ROOT team
21  //
22 
23  TGeoManager *geom=new TGeoManager("geom","My first 3D geometry");
24 
25 
26 
27  //materials
28  TGeoMaterial *vacuum=new TGeoMaterial("vacuum",0,0,0);
29  TGeoMaterial *Fe=new TGeoMaterial("Fe",55.845,26,7.87);
30 
31  //create media
32 
33  TGeoMedium *Iron=new TGeoMedium("Iron",1,Fe);
34  TGeoMedium *Air=new TGeoMedium("Vacuum",0,vacuum);
35 
36 
37  //create volume
38 
39  TGeoVolume *top=geom->MakeBox("top",Air,800,800,800);
40  geom->SetTopVolume(top);
41  geom->SetTopVisible(0);
42  // If you want to see the boundary, please input the number, 1 instead of 0.
43  // Like this, geom->SetTopVisible(1);
44 
45 
46 
47  TGeoVolume *b1=geom->MakeBox("b1",Iron,100,200,600);
48  b1->SetLineColor(2);
49 
50 
51  TGeoVolume *b2=geom->MakeTubs("b2",Iron,0,50,200,0,90);
52  b2->SetLineColor(10);
53 
54 
55  TGeoVolume *b3=geom->MakeTubs("b3",Iron,0,50,200,90,180);
56  b3->SetLineColor(10);
57 
58 
59  TGeoVolume *b4=geom->MakeTubs("b4",Iron,0,50,200,180,270);
60  b4->SetLineColor(10);
61 
62  TGeoVolume *b5=geom->MakeTubs("b5",Iron,0,50,200,270,360);
63  b5->SetLineColor(10);
64 
65 
66  TGeoVolume *b6=geom->MakeTubs("b6",Iron,0,50,600,0,90);
67  b6->SetLineColor(10);
68 
69  TGeoVolume *b7=geom->MakeTubs("b7",Iron,0,50,600,90,180);
70  b7->SetLineColor(10);
71 
72  TGeoVolume *b8=geom->MakeTubs("b8",Iron,0,50,600,180,270);
73  b8->SetLineColor(10);
74 
75  TGeoVolume *b9=geom->MakeTubs("b9",Iron,0,50,600,270,360);
76  b9->SetLineColor(10);
77 
78 
79 
80  TGeoVolume *b10=geom->MakeTubs("b10",Iron,0,50,100,0,90);
81  b10->SetLineColor(10);
82 
83  TGeoVolume *b11=geom->MakeTubs("b11",Iron,0,50,100,90,180);
84  b11->SetLineColor(10);
85 
86  TGeoVolume *b12=geom->MakeTubs("b12",Iron,0,50,100,180,270);
87  b12->SetLineColor(10);
88 
89  TGeoVolume *b13=geom->MakeTubs("b13",Iron,0,50,100,270,360);
90  b13->SetLineColor(10);
91 
92 
93  TGeoVolume *b14=geom->MakeBox("b14",Iron,100,50,450);
94  b14->SetLineColor(10);
95  TGeoVolume *b15=geom->MakeBox("b15",Iron,50,200,600);
96  b15->SetLineColor(10);
97 
98 
99 
100  TGeoVolume *b16=geom->MakeSphere("b16",Iron,0,50,0,90,0,90);
101  b16->SetLineColor(10);
102 
103  TGeoVolume *b17=geom->MakeSphere("b17",Iron,0,50,0,90,270,360);
104  b17->SetLineColor(10);
105 
106  TGeoVolume *b18=geom->MakeSphere("b18",Iron,0,50,0,90,180,270);
107  b18->SetLineColor(10);
108 
109  TGeoVolume *b19=geom->MakeSphere("b19",Iron,0,50,0,90,90,180);
110  b19->SetLineColor(10);
111 
112 
113  TGeoVolume *b20=geom->MakeTube("b20",Iron,50,150,150);
114  b20->SetLineColor(17);
115 
116 
117 
118  TGeoVolume *b21=geom->MakeSphere("b21",Iron,0,50,90,180,0,90);
119  b21->SetLineColor(10);
120 
121  TGeoVolume *b22=geom->MakeSphere("b22",Iron,0,50,90,180,270,360);
122  b22->SetLineColor(10);
123 
124  TGeoVolume *b23=geom->MakeSphere("b23",Iron,0,50,90,180,180,270);
125  b23->SetLineColor(10);
126 
127  TGeoVolume *b24=geom->MakeSphere("b24",Iron,0,50,90,180,90,180);
128  b24->SetLineColor(10);
129 
130 
131 
132  TGeoVolume *b25=geom->MakeTube("b25",Iron,51,54,150);
133  b25->SetLineColor(17);
134  TGeoVolume *b26=geom->MakeTube("b26",Iron,56,59,150);
135  b26->SetLineColor(17);
136  TGeoVolume *b27=geom->MakeTube("b27",Iron,61,64,150);
137  b27->SetLineColor(17);
138  TGeoVolume *b28=geom->MakeTube("b28",Iron,66,69,150);
139  b28->SetLineColor(17);
140  TGeoVolume *b29=geom->MakeTube("b29",Iron,71,74,150);
141  b29->SetLineColor(17);
142 
143  TGeoVolume *b30=geom->MakeTube("b30",Iron,76,79,150);
144  b30->SetLineColor(17);
145  TGeoVolume *b31=geom->MakeTube("b31",Iron,81,84,150);
146  b31->SetLineColor(17);
147  TGeoVolume *b32=geom->MakeTube("b32",Iron,86,89,150);
148  b32->SetLineColor(17);
149  TGeoVolume *b33=geom->MakeTube("b33",Iron,91,94,150);
150  b33->SetLineColor(17);
151  TGeoVolume *b34=geom->MakeTube("b34",Iron,96,99,150);
152  b34->SetLineColor(17);
153  TGeoVolume *b35=geom->MakeTube("b35",Iron,101,104,150);
154  b35->SetLineColor(17);
155  TGeoVolume *b36=geom->MakeTube("b36",Iron,106,109,150);
156  b36->SetLineColor(17);
157  TGeoVolume *b37=geom->MakeTube("b37",Iron,111,114,150);
158  b37->SetLineColor(17);
159  TGeoVolume *b38=geom->MakeTube("b38",Iron,116,119,150);
160  b38->SetLineColor(17);
161  TGeoVolume *b39=geom->MakeTube("b39",Iron,121,124,150);
162  b39->SetLineColor(17);
163  TGeoVolume *b40=geom->MakeTube("b40",Iron,126,129,150);
164  b40->SetLineColor(17);
165  TGeoVolume *b41=geom->MakeTube("b41",Iron,131,134,150);
166  b41->SetLineColor(17);
167  TGeoVolume *b42=geom->MakeTube("b42",Iron,136,139,150);
168  b42->SetLineColor(17);
169  TGeoVolume *b43=geom->MakeTube("b43",Iron,141,144,150);
170  b43->SetLineColor(17);
171  TGeoVolume *b44=geom->MakeTube("b44",Iron,146,149,150);
172  b44->SetLineColor(17);
173 
174 
175  TGeoVolume *b45=geom->MakeTube("b45",Iron,0,25,150);
176  b45->SetLineColor(10);
177 
178  TGeoVolume *b46=geom->MakeTube("b46",Iron,25,30,150);
179  b46->SetLineColor(17);
180 
181 
182 
183  TGeoVolume *b47=geom->MakeBox("b47",Iron,140,194,504);
184  b47->SetLineColor(32);
185 
186 
187  TGeoVolume *b48=geom->MakeBox("b48",Iron,150,176,236);
188  b48->SetLineColor(37);
189 
190 
191  TGeoVolume *b49=geom->MakeBox("b49",Iron,150,2,236);
192  b49->SetLineColor(20);
193  top->AddNodeOverlap(b49,49,new TGeoTranslation(-2,179,-150));
194 
195  TGeoVolume *b50=geom->MakeBox("b50",Iron,150,2,236);
196  b50->SetLineColor(20);
197  top->AddNodeOverlap(b50,50,new TGeoTranslation(-2,-179,-150));
198 
199  TGeoVolume *b51=geom->MakeBox("b51",Iron,150,176,2);
200  b51->SetLineColor(20);
201  top->AddNodeOverlap(b51,51,new TGeoTranslation(-2,0,89));
202 
203  TGeoVolume *b52=geom->MakeBox("b52",Iron,150,176,2);
204  b52->SetLineColor(20);
205  top->AddNodeOverlap(b52,52,new TGeoTranslation(-2,0,-389));
206 
207 
208  TGeoVolume *b53=geom->MakeBox("b53",Iron,150,200,90);
209  b53->SetLineColor(10);
210  top->AddNodeOverlap(b53,53,new TGeoTranslation(0,0,-510));
211 
212 
213 
214 
215 
216  TGeoVolume *b54=geom->MakeBox("b54",Iron,15,254,600);
217  b54->SetLineColor(37);
218  top->AddNodeOverlap(b54,54,new TGeoTranslation(25,0,0));
219 
220  TGeoVolume *b55=geom->MakeTubs("b55",Iron,0,54,15,270,360);
221  b55->SetLineColor(37);
222  top->AddNodeOverlap(b55,55,new TGeoCombiTrans(25,200,-600,new TGeoRotation("r1",90,90,0)));
223 
224 
225  TGeoVolume *b56=geom->MakeTubs("b56",Iron,0,54,15,180,270);
226  b56->SetLineColor(37);
227  top->AddNodeOverlap(b56,56,new TGeoCombiTrans(25,-200,-600,new TGeoRotation("r1",90,90,0)));
228 
229 
230  TGeoVolume *b57=geom->MakeTubs("b57",Iron,0,54,15,0,90);
231  b57->SetLineColor(37);
232  top->AddNodeOverlap(b57,57,new TGeoCombiTrans(25,200,600,new TGeoRotation("r1",90,90,0)));
233 
234  TGeoVolume *b58=geom->MakeTubs("b58",Iron,0,54,15,90,180);
235  b58->SetLineColor(37);
236  top->AddNodeOverlap(b58,58,new TGeoCombiTrans(25,-200,600,new TGeoRotation("r1",90,90,0)));
237 
238  //TGeoVolume *b59=geom->MakePgon("b59",Iron,100,100,100,100);
239  //b59->SetLineColor(37);
240  //top->AddNodeOverlap(b59,59,new TGeoCombiTrans(200,200,100,new TGeoRotation("r1",90,90,0)));
241 
242 
243 
244 //IAudid
245 
246 
247 
248  TGeoVolume *b61=geom->MakeBox("b61",Iron,5,19,150);
249  b61->SetLineColor(38);
250  top->AddNodeOverlap(b61,61,new TGeoCombiTrans(-4,-87,-495,new TGeoRotation("r1",90,90,30)));
251 
252  TGeoVolume *b62=geom->MakeBox("b62",Iron,5,19,150);
253  b62->SetLineColor(38);
254  top->AddNodeOverlap(b62,62,new TGeoCombiTrans(-4,-65,-495,new TGeoRotation("r1",90,90,330)));
255 //u
256  TGeoVolume *b63=geom->MakeBox("b63",Iron,5,15,150);
257  b63->SetLineColor(38);
258  top->AddNodeOverlap(b63,63,new TGeoCombiTrans(-4,-40,-497,new TGeoRotation("r1",90,90,0)));
259 
260  TGeoVolume *b64=geom->MakeBox("b64",Iron,5,15,150);
261  b64->SetLineColor(38);
262  top->AddNodeOverlap(b64,64,new TGeoCombiTrans(-4,-10,-497,new TGeoRotation("r1",90,90,0)));
263 
264  TGeoVolume *b65=geom->MakeTubs("b65",Iron,7,17,150,0,180);
265  b65->SetLineColor(38);
266  top->AddNodeOverlap(b65,65,new TGeoCombiTrans(-4,-25,-490,new TGeoRotation("r1",90,90,0)));
267 
268 
269 //D
270 
271  TGeoVolume *b66=geom->MakeBox("b66",Iron,5,19,150);
272  b66->SetLineColor(38);
273  top->AddNodeOverlap(b66,66,new TGeoCombiTrans(-4,10,-495,new TGeoRotation("r1",90,90,0)));
274 
275 
276  TGeoVolume *b67=geom->MakeTubs("b67",Iron,10,20,150,230,480);
277  b67->SetLineColor(38);
278  top->AddNodeOverlap(b67,67,new TGeoCombiTrans(-4,23,-495,new TGeoRotation("r1",90,90,0)));
279 
280 //I
281 
282  TGeoVolume *b68=geom->MakeBox("b68",Iron,5,20,150);
283  b68->SetLineColor(38);
284  top->AddNodeOverlap(b68,68,new TGeoCombiTrans(-4,53,-495,new TGeoRotation("r1",90,90,0)));
285 
286 //O
287 
288  TGeoVolume *b69=geom->MakeTubs("b69",Iron,10,22,150,0,360);
289  b69->SetLineColor(38);
290  top->AddNodeOverlap(b69,69,new TGeoCombiTrans(-4,85,-495,new TGeoRotation("r1",90,90,0)));
291 
292 
293 // I
294  TGeoVolume *b60=geom->MakeTube("b60",Iron,0,10,150);
295  b60->SetLineColor(38);
296  top->AddNodeOverlap(b60,60,new TGeoCombiTrans(-4,-120,-550,new TGeoRotation("r1",90,90,0)));
297 
298 
299  TGeoVolume *b70=geom->MakeBox("b70",Iron,2,19,150);
300  b70->SetLineColor(38);
301  top->AddNodeOverlap(b70,70,new TGeoCombiTrans(-4,-114,-495,new TGeoRotation("r1",90,90,0)));
302 
303  TGeoVolume *b71=geom->MakeBox("b71",Iron,2,19,150);
304  b71->SetLineColor(38);
305  top->AddNodeOverlap(b71,71,new TGeoCombiTrans(-4,-126,-495,new TGeoRotation("r1",90,90,0)));
306 
307 
308  TGeoVolume *b72=geom->MakeBox("b72",Iron,8,2,150);
309  b72->SetLineColor(38);
310  top->AddNodeOverlap(b72,72,new TGeoCombiTrans(-4,-120,-515,new TGeoRotation("r1",90,90,0)));
311 
312 
313  TGeoVolume *b73=geom->MakeBox("b73",Iron,8,2,150);
314  b73->SetLineColor(38);
315  top->AddNodeOverlap(b73,73,new TGeoCombiTrans(-4,-120,-475,new TGeoRotation("r1",90,90,0)));
316 
317 
318 // button
319 
320 
321  TGeoVolume *b74=geom->MakeBox("b74",Iron,35,250,70);
322  b74->SetLineColor(38);
323  top->AddNodeOverlap(b74,74,new TGeoCombiTrans(-25,10,-60,new TGeoRotation("r1",0,0,0)));
324 
325  TGeoVolume *b75=geom->MakeBox("b75",Iron,35,250,35);
326  b75->SetLineColor(38);
327  top->AddNodeOverlap(b75,75,new TGeoCombiTrans(-25,10,-175,new TGeoRotation("r1",0,0,0)));
328 
329 
330  TGeoVolume *b76=geom->MakeBox("b76",Iron,35,250,35);
331  b76->SetLineColor(38);
332  top->AddNodeOverlap(b76,76,new TGeoCombiTrans(-25,10,55,new TGeoRotation("r1",0,0,0)));
333 
334 
335  TGeoVolume *b77=geom->MakeTubs("b77",Iron,0,70,250,180,270);
336  b77->SetLineColor(38);
337  top->AddNodeOverlap(b77,77,new TGeoCombiTrans(10,10,-210,new TGeoRotation("r1",0,90,0)));
338 
339 
340  TGeoVolume *b78=geom->MakeTubs("b78",Iron,0,70,250,90,180);
341  b78->SetLineColor(38);
342  top->AddNodeOverlap(b78,78,new TGeoCombiTrans(10,10,90,new TGeoRotation("r1",0,90,0)));
343 
344 
345 
346 //Hold
347 
348  TGeoVolume *b79=geom->MakeBox("b79",Iron,40,250,150);
349  b79->SetLineColor(10);
350  top->AddNodeOverlap(b79,79,new TGeoCombiTrans(60,0,450,new TGeoRotation("r1",0,0,0)));
351 
352  TGeoVolume *b80=geom->MakeTubs("b80",Iron,50,100,250,180,270);
353  b80->SetLineColor(10);
354  top->AddNodeOverlap(b80,80,new TGeoCombiTrans(10,0,350,new TGeoRotation("r1",0,90,0)));
355 
356 
357  TGeoVolume *b81=geom->MakeTubs("b81",Iron,50,100,250,90,180);
358  b81->SetLineColor(10);
359  top->AddNodeOverlap(b81,81,new TGeoCombiTrans(10,0,400,new TGeoRotation("r1",0,90,0)));
360 
361 
362  TGeoVolume *b82=geom->MakeBox("b82",Iron,30,250,150);
363  b82->SetLineColor(10);
364  top->AddNodeOverlap(b82,82,new TGeoCombiTrans(-70,0,450,new TGeoRotation("r1",0,0,0)));
365 
366 
367  TGeoVolume *b83=geom->MakeBox("b83",Iron,30,250,60);
368  b83->SetLineColor(10);
369  top->AddNodeOverlap(b83,83,new TGeoCombiTrans(-20,0,540,new TGeoRotation("r1",0,0,0)));
370 
371 
372 
373 
374  TGeoVolume *b85=geom->MakeTubs("b85",Iron,0,40,240,180,270);
375  b85->SetLineColor(38);
376  top->AddNodeOverlap(b85,85,new TGeoCombiTrans(10,10,370,new TGeoRotation("r1",0,90,0)));
377 
378 
379 
380 
381  TGeoVolume *b84=geom->MakeTubs("b84",Iron,0,40,240,90,180);
382  b84->SetLineColor(38);
383  top->AddNodeOverlap(b84,84,new TGeoCombiTrans(10,10,400,new TGeoRotation("r1",0,90,0)));
384 
385 
386  TGeoVolume *b86=geom->MakeBox("b86",Iron,20,240,20);
387  b86->SetLineColor(38);
388  top->AddNodeOverlap(b86,86,new TGeoCombiTrans(-10,10,380,new TGeoRotation("r1",0,0,0)));
389 
390 
391  TGeoVolume *b87=geom->MakeBox("b87",Iron,20,250,10);
392  b87->SetLineColor(35);
393  top->AddNodeOverlap(b87,87,new TGeoCombiTrans(-10,20,385,new TGeoRotation("r1",0,0,0)));
394 
395 
396  TGeoVolume *b88=geom->MakeBox("b88",Iron,100,220,600);
397  b88->SetLineColor(10);
398  top->AddNodeOverlap(b88,88,new TGeoCombiTrans(0,-30,0,new TGeoRotation("r1",0,0,0)));
399 
400 
401  TGeoVolume *b89=geom->MakeTube("b89",Iron,25,95,650);
402  b89->SetLineColor(10);
403  top->AddNodeOverlap(b89,89,new TGeoCombiTrans(0,-60,0,new TGeoRotation("r1",0,0,0)));
404 
405  TGeoVolume *b90=geom->MakeTube("b90",Iron,25,95,650);
406  b90->SetLineColor(10);
407  top->AddNodeOverlap(b90,90,new TGeoCombiTrans(0,60,0,new TGeoRotation("r1",0,0,0)));
408 
409 
410  TGeoVolume *b91=geom->MakeBox("b91",Iron,40,200,650);
411  b91->SetLineColor(10);
412  top->AddNodeOverlap(b91,91,new TGeoCombiTrans(70,0,0,new TGeoRotation("r1",0,0,0)));
413 
414  TGeoVolume *b92=geom->MakeBox("b92",Iron,100,50,650);
415  b92->SetLineColor(10);
416  top->AddNodeOverlap(b92,92,new TGeoCombiTrans(0,150,0,new TGeoRotation("r1",0,0,0)));
417 
418  TGeoVolume *b93=geom->MakeBox("b93",Iron,100,50,650);
419  b93->SetLineColor(10);
420  top->AddNodeOverlap(b93,93,new TGeoCombiTrans(0,-150,0,new TGeoRotation("r1",0,0,0)));
421 
422 
423  TGeoVolume *b94=geom->MakeBox("b94",Iron,40,200,650);
424  b94->SetLineColor(10);
425  top->AddNodeOverlap(b94,94,new TGeoCombiTrans(-70,0,0,new TGeoRotation("r1",0,0,0)));
426 
427 
428  TGeoVolume *b95=geom->MakeTube("b95",Iron,25,35,650);
429  b95->SetLineColor(1);
430  top->AddNodeOverlap(b95,95,new TGeoCombiTrans(0,-60,-10,new TGeoRotation("r1",0,0,0)));
431 
432  TGeoVolume *b96=geom->MakeTube("b96",Iron,25,35,650);
433  b96->SetLineColor(1);
434  top->AddNodeOverlap(b96,96,new TGeoCombiTrans(0,60,-10,new TGeoRotation("r1",0,0,0)));
435 //usb
436 
437  TGeoVolume *b97=geom->MakeBox("b97",Iron,70,70,600);
438  b97->SetLineColor(17);
439  top->AddNodeOverlap(b97,97,new TGeoCombiTrans(0,0,57,new TGeoRotation("r1",0,0,0)));
440 
441 
442  TGeoVolume *b98=geom->MakeTubs("b98",Iron,0,50,600,0,90);
443  b98->SetLineColor(17);
444  top->AddNodeOverlap(b98,98,new TGeoCombiTrans(20,60,57,new TGeoRotation("r1",0,0,0)));
445 
446  TGeoVolume *b99=geom->MakeTubs("b99",Iron,0,50,600,180,270);
447  b99->SetLineColor(17);
448  top->AddNodeOverlap(b99,99,new TGeoCombiTrans(-20,-60,57,new TGeoRotation("r1",0,0,0)));
449 
450 
451  TGeoVolume *b100=geom->MakeTubs("b100",Iron,0,50,600,90,180);
452  b100->SetLineColor(17);
453  top->AddNodeOverlap(b100,100,new TGeoCombiTrans(-20,60,57,new TGeoRotation("r1",0,0,0)));
454 
455 
456  TGeoVolume *b101=geom->MakeTubs("b101",Iron,0,50,600,270,360);
457  b101->SetLineColor(17);
458  top->AddNodeOverlap(b101,101,new TGeoCombiTrans(20,-60,57,new TGeoRotation("r1",0,0,0)));
459 
460  TGeoVolume *b102=geom->MakeBox("b102",Iron,20,110,600);
461  b102->SetLineColor(17);
462  top->AddNodeOverlap(b102,102,new TGeoCombiTrans(0,0,57,new TGeoRotation("r1",0,0,0)));
463 
464 
465  TGeoVolume *b103=geom->MakeBox("b103",Iron,15,200,600);
466  b103->SetLineColor(37);
467  top->AddNodeOverlap(b103,103,new TGeoCombiTrans(25,0,57,new TGeoRotation("r1",0,0,0)));
468 //AddNode
469  top->AddNodeOverlap(b1,1,new TGeoTranslation(0,0,0));
470  top->AddNodeOverlap(b2,2,new TGeoCombiTrans(100,0,600,new TGeoRotation("r1",0,90,0)));
471  top->AddNodeOverlap(b3,3,new TGeoCombiTrans(-100,0,600,new TGeoRotation("r1",0,90,0)));
472  top->AddNodeOverlap(b4,4,new TGeoCombiTrans(-100,0,-600,new TGeoRotation("r1",0,90,0)));
473  top->AddNodeOverlap(b5,5,new TGeoCombiTrans(100,0,-600,new TGeoRotation("r1",0,90,0)));
474  top->AddNodeOverlap(b6,6,new TGeoCombiTrans(100,200,0,new TGeoRotation("r1",0,0,0)));
475  top->AddNodeOverlap(b7,7,new TGeoCombiTrans(-100,200,0,new TGeoRotation("r1",0,0,0)));
476  top->AddNodeOverlap(b8,8,new TGeoCombiTrans(-100,-200,0,new TGeoRotation("r1",0,0,0)));
477  top->AddNodeOverlap(b9,9,new TGeoCombiTrans(100,-200,0,new TGeoRotation("r1",0,0,0)));
478 
479  top->AddNodeOverlap(b10,10,new TGeoCombiTrans(0,200,600,new TGeoRotation("r2",90,90,0)));
480  top->AddNodeOverlap(b11,11,new TGeoCombiTrans(0,-200,600,new TGeoRotation("r2",90,90,0)));
481  top->AddNodeOverlap(b12,12,new TGeoCombiTrans(0,-200,-600, new TGeoRotation("r2",90,90,0)));
482  top->AddNodeOverlap(b13,13,new TGeoCombiTrans(0,200,-600,new TGeoRotation("r2",90,90,0)));
483  top->AddNodeOverlap(b14,14,new TGeoTranslation(0,200,-150));
484  top->AddNodeOverlap(b15,15,new TGeoTranslation(100,0,0));
485 
486  top->AddNodeOverlap(b16,16,new TGeoCombiTrans(100,200,600,new TGeoRotation("r2",0,0,0)));
487  top->AddNodeOverlap(b17,17,new TGeoCombiTrans(100,-200,600,new TGeoRotation("r2",0,0,0)));
488  top->AddNodeOverlap(b18,18,new TGeoCombiTrans(-100,-200,600,new TGeoRotation("r2",0,0,0)));
489  top->AddNodeOverlap(b19,19,new TGeoCombiTrans(-100,200,600,new TGeoRotation("r2",0,0,0)));
490  top->AddNodeOverlap(b20,20,new TGeoCombiTrans(-3,0,350,new TGeoRotation("r2",90,90,0)));
491  top->AddNodeOverlap(b21,21,new TGeoCombiTrans(100,200,-600,new TGeoRotation("r2",0,0,0)));
492  top->AddNodeOverlap(b22,22,new TGeoCombiTrans(100,-200,-600,new TGeoRotation("r2",0,0,0)));
493  top->AddNodeOverlap(b23,23,new TGeoCombiTrans(-100,-200,-600,new TGeoRotation("r2",0,0,0)));
494  top->AddNodeOverlap(b24,24,new TGeoCombiTrans(-100,200,-600,new TGeoRotation("r2",0,0,0)));
495 
496 
497 
498  top->AddNodeOverlap(b25,25,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
499  top->AddNodeOverlap(b26,26,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
500  top->AddNodeOverlap(b27,27,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
501  top->AddNodeOverlap(b28,28,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
502  top->AddNodeOverlap(b29,29,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
503  top->AddNodeOverlap(b30,30,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
504  top->AddNodeOverlap(b31,31,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
505  top->AddNodeOverlap(b32,32,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
506  top->AddNodeOverlap(b33,33,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
507  top->AddNodeOverlap(b34,34,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
508  top->AddNodeOverlap(b35,35,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
509  top->AddNodeOverlap(b36,36,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
510  top->AddNodeOverlap(b37,37,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
511  top->AddNodeOverlap(b38,38,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
512  top->AddNodeOverlap(b39,39,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
513  top->AddNodeOverlap(b40,40,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
514  top->AddNodeOverlap(b41,41,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
515  top->AddNodeOverlap(b42,42,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
516  top->AddNodeOverlap(b43,43,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
517  top->AddNodeOverlap(b44,44,new TGeoCombiTrans(-9,0,350,new TGeoRotation("r2",90,90,0)));
518 
519 
520  top->AddNodeOverlap(b45,45,new TGeoCombiTrans(-20,0,350,new TGeoRotation("r2",90,90,0)));
521  top->AddNodeOverlap(b46,46,new TGeoCombiTrans(-25,0,350,new TGeoRotation("r2",90,90,0)));
522 
523  top->AddNodeOverlap(b47,47,new TGeoTranslation(5,0,85));
524  top->AddNodeOverlap(b48,48,new TGeoTranslation(-2,0,-150));
525  geom->CloseGeometry();
526 
527 
528 
529  TCanvas *can=new TCanvas("can","My virtual laboratory",800,800);
530 
531 
532 //Mp3
533  TPad *pad=new TPad("pad","Pad",0,0.5,0.5,1);
534  pad->SetFillColor(1);
535  pad->Draw();
536  pad->cd();
537  top->Draw();
538 //Sound
539  can->cd();
540  TPad *pad2=new TPad("pad2","Pad2",0.5,0.5,1,1);
541  pad2->SetFillColor(10);
542  pad2->Draw();
543  pad2->cd();
544 
545 
546  TPaveText *pt = new TPaveText(0.4,0.90,0.6,0.95,"br");
547  pt->SetFillColor(30);
548  pt->AddText(0.5,0.5,"Musics");
549  pt->Draw();
550 
551  TLatex Tex;
552 
553  Tex.SetTextSize(0.04);
554  Tex.SetTextColor(31);
555  Tex.DrawLatex(0.3,0.81,"Mariah Carey - Shake it off");
556 
557  Tex.SetTextSize(0.04);
558  Tex.SetTextColor(31);
559  Tex.DrawLatex(0.3,0.71,"Alicia keys - If I ain't got you");
560 
561  Tex.SetTextSize(0.04);
562  Tex.SetTextColor(31);
563  Tex.DrawLatex(0.3,0.61,"Michael Jackson - Billie Jean");
564 
565  Tex.SetTextSize(0.04);
566  Tex.SetTextColor(31);
567  Tex.DrawLatex(0.3,0.51,"Christina Milian - Am to Pm");
568 
569  Tex.SetTextSize(0.04);
570  Tex.SetTextColor(31);
571  Tex.DrawLatex(0.3,0.41,"Zapp&Roger - Slow and Easy");
572 
573  Tex.SetTextSize(0.04);
574  Tex.SetTextColor(31);
575  Tex.DrawLatex(0.3,0.31,"Black Eyes Peas - Let's get retarded");
576 
577  Tex.SetTextSize(0.04);
578  Tex.SetTextColor(31);
579  Tex.DrawLatex(0.3,0.21,"Bosson - One in a Millin");
580 
581  Tex.SetTextSize(0.04);
582  Tex.SetTextColor(15);
583  Tex.DrawLatex(0.2,0.11,"Click Button!! You Can Listen to Musics");
584  TButton *but1=new TButton("","Sound(1)",0.2,0.8,0.25,0.85);
585  but1->Draw();
586  but1->SetFillColor(29);
587  TButton *but2=new TButton("","Sound(2)",0.2,0.7,0.25,.75);
588  but2->Draw();
589  but2->SetFillColor(29);
590  TButton *but3=new TButton("","Sound(3)",0.2,0.6,0.25,0.65);
591  but3->Draw();
592  but3->SetFillColor(29);
593  TButton *but4=new TButton("","Sound(4)",0.2,0.5,0.25,0.55);
594  but4->Draw();
595  but4->SetFillColor(29);
596  TButton *but5=new TButton("","Sound(5)",0.2,0.4,0.25,0.45);
597  but5->Draw();
598  but5->SetFillColor(29);
599  TButton *but6=new TButton("","Sound(6)",0.2,0.3,0.25,0.35);
600  but6->Draw();
601  but6->SetFillColor(29);
602  TButton *but7=new TButton("","Sound(7)",0.2,0.2,0.25,0.25);
603  but7->Draw();
604  but7->SetFillColor(29);
605 
606  pad->cd();
607 
608 //introduction
609  can->cd();
610 
611  TPad *pad3=new TPad("pad3","Pad3",0,0,1,0.5);
612  pad3->SetFillColor(10);
613  pad3->Draw();
614  pad3->cd();
615 
616  //TImage *image=TImage::Open("mp3.jpg");
617  //image->Draw();
618 
619 
620 
621  TPad *pad4=new TPad("pad4","Pad4",0.6,0.1,0.9,0.9);
622  pad4->SetFillColor(1);
623  pad4->Draw();
624  pad4->cd();
625 
626 
627  TLine L;
628 
629  Tex.SetTextSize(0.08);
630  Tex.SetTextColor(10);
631  Tex.DrawLatex(0.06,0.85,"IAudio U3 Mp3 Player");
632 
633 
634  L.SetLineColor(10);
635  L.SetLineWidth(3);
636  L.DrawLine(0.05, 0.83,0.90, 0.83);
637 
638  Tex.SetTextSize(0.06);
639  Tex.SetTextColor(10);
640  Tex.DrawLatex(0.06,0.75,"+ Color LCD");
641 
642  Tex.SetTextSize(0.06);
643  Tex.SetTextColor(10);
644  Tex.DrawLatex(0.06,0.65,"+ 60mW High Generating Power");
645 
646  Tex.SetTextSize(0.06);
647  Tex.SetTextColor(10);
648  Tex.DrawLatex(0.06,0.55,"+ GUI Theme Skin");
649 
650  Tex.SetTextSize(0.06);
651  Tex.SetTextColor(10);
652  Tex.DrawLatex(0.06,0.45,"+ Noble White&Black");
653 
654  Tex.SetTextSize(0.06);
655  Tex.SetTextColor(10);
656  Tex.DrawLatex(0.06,0.35,"+ Text Viewer+Image Viewer");
657 
658  Tex.SetTextSize(0.06);
659  Tex.SetTextColor(10);
660  Tex.DrawLatex(0.06,0.25,"+ 20 Hours Playing");
661 
662  Tex.SetTextSize(0.06);
663  Tex.SetTextColor(10);
664  Tex.DrawLatex(0.06,0.15,"+ The Best Quality of Sound");
665 
666 
667  pad->cd();
668 
669 
670 
671 }
672 
673 void Sound(int i)
674 {
675  char sound[128];
676  sprintf(sound,"cat sound%d.wav > /dev/audio",i);
677  gSystem->Exec(sound);
678 }
void SetTopVisible(Bool_t vis=kTRUE)
make top volume visible on screen
virtual void SetLineWidth(Width_t lwidth)
Definition: TAttLine.h:57
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
Definition: TPaveText.cxx:211
RooArgList L(const RooAbsArg &v1)
virtual void AddNodeOverlap(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
Add a TGeoNode to the list of nodes.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Definition: TCanvas.cxx:659
virtual void Draw(Option_t *option="")
draw top volume according to option
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
Definition: TPaveText.cxx:160
virtual TLine * DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
Definition: TLine.cxx:93
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
TPad * pad3
Definition: hcons.C:13
void mp3player()
Definition: mp3player.C:9
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
virtual void Draw(Option_t *option="")
Draw this button with its current attributes.
Definition: TButton.cxx:139
TVirtualPad * cd(Int_t subpadnumber=0)
Set Current pad.
Definition: TPad.cxx:514
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
Make in one step a volume pointing to a box shape with given medium.
To draw Mathematical Formula.
Definition: TLatex.h:33
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
Make a copy of this object with the new parameters And copy object attributes.
Definition: TLatex.cxx:1901
virtual void Draw(Option_t *option="")
Draw Pad in Current pad (re-parent pad if necessary).
Definition: TPad.cxx:1192
virtual void SetLineColor(Color_t lcolor)
Definition: TAttLine.h:54
tuple pad4
Definition: ntuple1.py:21
TPaveText * pt
R__EXTERN TSystem * gSystem
Definition: TSystem.h:545
virtual void SetFillColor(Color_t fcolor)
Definition: TAttFill.h:50
The most important graphics class in the ROOT system.
Definition: TPad.h:46
A simple line.
Definition: TLine.h:41
A TButton object is a user interface object.
Definition: TButton.h:32
virtual Int_t Exec(const char *shellcmd)
Execute a command.
Definition: TSystem.cxx:657
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
tuple pad
Definition: first.py:38
void Sound(int i)
Definition: mp3player.C:673
The Canvas class.
Definition: TCanvas.h:48
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a tube segment shape with given medium.
A Pave (see TPave) with text, lines or/and boxes inside.
Definition: TPaveText.h:35
TPad * pad2
Definition: hcons.C:13
virtual void SetLineColor(Color_t lcolor)
Set the line color.
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
virtual void SetTextColor(Color_t tcolor=1)
Definition: TAttText.h:57
virtual void SetTextSize(Float_t tsize=1)
Definition: TAttText.h:60