Logo ROOT   6.07/09
Reference Guide
Namespaces
shapes.py File Reference

Namespaces

 shapes
 

Detailed Description

View in nbviewer Open in SWAN Draw the geometry using the x3d viewver.

Note that this viewver may also be invoked from the "View" menu in the canvas tool bar

once in x3d viewer, type m to see the menu. For example typing r will show a solid model of this geometry.

1 
2 import ROOT
3 
4 c1 = ROOT.TCanvas( 'c1', 'Geometry Shapes', 200, 10, 700, 500 )
5 
6 # delete previous geometry objects in case this script is reexecuted
7 if hasattr(ROOT, 'gGeometry') and ROOT.gGeometry:
8  ROOT.gGeometry.GetListOfNodes().Delete()
9  ROOT.gGeometry.GetListOfShapes().Delete()
10 
11 # Define some volumes
12 brik = ROOT.TBRIK( 'BRIK', 'BRIK', 'void', 200, 150, 150 )
13 trd1 = ROOT.TTRD1( 'TRD1', 'TRD1', 'void', 200, 50, 100, 100 )
14 trd2 = ROOT.TTRD2( 'TRD2', 'TRD2', 'void', 200, 50, 200, 50, 100 )
15 trap = ROOT.TTRAP( 'TRAP', 'TRAP', 'void', 190, 0, 0, 60, 40, 90, 15, 120, 80, 180, 15 )
16 para = ROOT.TPARA( 'PARA', 'PARA', 'void', 100, 200, 200, 15, 30, 30 )
17 gtra = ROOT.TGTRA( 'GTRA', 'GTRA', 'void', 390, 0, 0, 20, 60, 40, 90, 15, 120, 80, 180, 15 )
18 tube = ROOT.TTUBE( 'TUBE', 'TUBE', 'void', 150, 200, 400 )
19 tubs = ROOT.TTUBS( 'TUBS', 'TUBS', 'void', 80, 100, 100, 90, 235 )
20 cone = ROOT.TCONE( 'CONE', 'CONE', 'void', 100, 50, 70, 120, 150 )
21 cons = ROOT.TCONS( 'CONS', 'CONS', 'void', 50, 100, 100, 200, 300, 90, 270 )
22 sphe = ROOT.TSPHE( 'SPHE', 'SPHE', 'void', 25, 340, 45, 135, 0, 270 )
23 sphe1 = ROOT.TSPHE( 'SPHE1', 'SPHE1', 'void', 0, 140, 0, 180, 0, 360 )
24 sphe2 = ROOT.TSPHE( 'SPHE2', 'SPHE2', 'void', 0, 200, 10, 120, 45, 145 )
25 
26 pcon = ROOT.TPCON( 'PCON', 'PCON', 'void', 180, 270, 4 )
27 pcon.DefineSection( 0, -200, 50, 100 )
28 pcon.DefineSection( 1, -50, 50, 80 )
29 pcon.DefineSection( 2, 50, 50, 80 )
30 pcon.DefineSection( 3, 200, 50, 100 )
31 
32 pgon = ROOT.TPGON( 'PGON', 'PGON', 'void', 180, 270, 8, 4 )
33 pgon.DefineSection( 0, -200, 50, 100 )
34 pgon.DefineSection( 1, -50, 50, 80 )
35 pgon.DefineSection( 2, 50, 50, 80 )
36 pgon.DefineSection( 3, 200, 50, 100 )
37 
38 # Set shapes attributes
39 brik.SetLineColor( 1 )
40 trd1.SetLineColor( 2 )
41 trd2.SetLineColor( 3 )
42 trap.SetLineColor( 4 )
43 para.SetLineColor( 5 )
44 gtra.SetLineColor( 7 )
45 tube.SetLineColor( 6 )
46 tubs.SetLineColor( 7 )
47 cone.SetLineColor( 2 )
48 cons.SetLineColor( 3 )
49 pcon.SetLineColor( 6 )
50 pgon.SetLineColor( 2 )
51 sphe.SetLineColor( ROOT.kRed )
52 sphe1.SetLineColor( ROOT.kBlack )
53 sphe2.SetLineColor( ROOT.kBlue )
54 
55 # Build the geometry hierarchy
56 node1 = ROOT.TNode( 'NODE1', 'NODE1', 'BRIK' )
57 node1.cd()
58 
59 node2 = ROOT.TNode( 'NODE2', 'NODE2', 'TRD1', 0, 0, -1000 )
60 node3 = ROOT.TNode( 'NODE3', 'NODE3', 'TRD2', 0, 0, 1000 )
61 node4 = ROOT.TNode( 'NODE4', 'NODE4', 'TRAP', 0, -1000, 0 )
62 node5 = ROOT.TNode( 'NODE5', 'NODE5', 'PARA', 0, 1000, 0 )
63 node6 = ROOT.TNode( 'NODE6', 'NODE6', 'TUBE', -1000, 0, 0 )
64 node7 = ROOT.TNode( 'NODE7', 'NODE7', 'TUBS', 1000, 0, 0 )
65 node8 = ROOT.TNode( 'NODE8', 'NODE8', 'CONE', -300, -300, 0 )
66 node9 = ROOT.TNode( 'NODE9', 'NODE9', 'CONS', 300, 300, 0 )
67 node10 = ROOT.TNode( 'NODE10', 'NODE10', 'PCON', 0, -1000, -1000 )
68 node11 = ROOT.TNode( 'NODE11', 'NODE11', 'PGON', 0, 1000, 1000 )
69 node12 = ROOT.TNode( 'NODE12', 'NODE12', 'GTRA', 0, -400, 700 )
70 node13 = ROOT.TNode( 'NODE13', 'NODE13', 'SPHE', 10, -400, 500 )
71 node14 = ROOT.TNode( 'NODE14', 'NODE14', 'SPHE1', 10, 250, 300 )
72 node15 = ROOT.TNode( 'NODE15', 'NODE15', 'SPHE2', 10, -100, -200 )
73 
74 # for memory management
75 list_of_locals = dict(locals())
76 for l, o in list_of_locals.items():
77  if isinstance( o, ROOT.TShape ) or isinstance( o, ROOT.TNode ):
78  ROOT.SetOwnership( o, False )
79 
80 # Draw this geometry in the current canvas
81 node1.cd()
82 node1.Draw( 'gl' )
83 c1.Update()
Author
Wim Lavrijsen

Definition in file shapes.py.