Logo ROOT   6.10/09
Reference Guide
shapes.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_geom
3 /// The old geometry shapes (see script geodemo.C)
4 ///
5 /// \macro_image
6 /// \macro_code
7 ///
8 /// \author Rene Brun
9 
10 #include "TGeometry.h"
11 #include "TGeoManager.h"
12 
13 void shapes() {
14  TCanvas *c1 = new TCanvas("glc1","Geometry Shapes",200,10,700,500);
15 
16  gSystem->Load("libGeom");
17  //delete previous geometry objects in case this script is re-executed
18  if (gGeoManager) {
21  }
22 
23  // Define some volumes
24  TBRIK *brik = new TBRIK("BRIK","BRIK","void",200,150,150);
25  TTRD1 *trd1 = new TTRD1("TRD1","TRD1","void",200,50,100,100);
26  TTRD2 *trd2 = new TTRD2("TRD2","TRD2","void",200,50,200,50,100);
27  TTRAP *trap = new TTRAP("TRAP","TRAP","void",190,0,0,60,40,90,15,120,80,180,15);
28  TPARA *para = new TPARA("PARA","PARA","void",100,200,200,15,30,30);
29  TGTRA *gtra = new TGTRA("GTRA","GTRA","void",390,0,0,20,60,40,90,15,120,80,180,15);
30  TTUBE *tube = new TTUBE("TUBE","TUBE","void",150,200,400);
31  TTUBS *tubs = new TTUBS("TUBS","TUBS","void",80,100,100,90,235);
32  TCONE *cone = new TCONE("CONE","CONE","void",100,50,70,120,150);
33  TCONS *cons = new TCONS("CONS","CONS","void",50,100,100,200,300,90,270);
34  TSPHE *sphe = new TSPHE("SPHE","SPHE","void",25,340, 45,135, 0,270);
35  TSPHE *sphe1 = new TSPHE("SPHE1","SPHE1","void",0,140, 0,180, 0,360);
36  TSPHE *sphe2 = new TSPHE("SPHE2","SPHE2","void",0,200, 10,120, 45,145);
37 
38  TPCON *pcon = new TPCON("PCON","PCON","void",180,270,4);
39  pcon->DefineSection(0,-200,50,100);
40  pcon->DefineSection(1,-50,50,80);
41  pcon->DefineSection(2,50,50,80);
42  pcon->DefineSection(3,200,50,100);
43 
44  TPGON *pgon = new TPGON("PGON","PGON","void",180,270,8,4);
45  pgon->DefineSection(0,-200,50,100);
46  pgon->DefineSection(1,-50,50,80);
47  pgon->DefineSection(2,50,50,80);
48  pgon->DefineSection(3,200,50,100);
49 
50  // Set shapes attributes
51  brik->SetLineColor(1);
52  trd1->SetLineColor(2);
53  trd2->SetLineColor(3);
54  trap->SetLineColor(4);
55  para->SetLineColor(5);
56  gtra->SetLineColor(7);
57  tube->SetLineColor(6);
58  tubs->SetLineColor(7);
59  cone->SetLineColor(2);
60  cons->SetLineColor(3);
61  pcon->SetLineColor(6);
62  pgon->SetLineColor(2);
63  sphe->SetLineColor(kRed);
64  sphe1->SetLineColor(kBlack);
65  sphe2->SetLineColor(kBlue);
66 
67 
68  // Build the geometry hierarchy
69  TNode *node1 = new TNode("NODE1","NODE1","BRIK");
70  node1->cd();
71 
72  TNode *node2 = new TNode("NODE2","NODE2","TRD1",0,0,-1000);
73  TNode *node3 = new TNode("NODE3","NODE3","TRD2",0,0,1000);
74  TNode *node4 = new TNode("NODE4","NODE4","TRAP",0,-1000,0);
75  TNode *node5 = new TNode("NODE5","NODE5","PARA",0,1000,0);
76  TNode *node6 = new TNode("NODE6","NODE6","TUBE",-1000,0,0);
77  TNode *node7 = new TNode("NODE7","NODE7","TUBS",1000,0,0);
78  TNode *node8 = new TNode("NODE8","NODE8","CONE",-300,-300,0);
79  TNode *node9 = new TNode("NODE9","NODE9","CONS",300,300,0);
80  TNode *node10 = new TNode("NODE10","NODE10","PCON",0,-1000,-1000);
81  TNode *node11 = new TNode("NODE11","NODE11","PGON",0,1000,1000);
82  TNode *node12 = new TNode("NODE12","NODE12","GTRA",0,-400,700);
83  TNode *node13 = new TNode("NODE13","NODE13","SPHE",10,-400,500);
84  TNode *node14 = new TNode("NODE14","NODE14","SPHE1",10, 250,300);
85  TNode *node15 = new TNode("NODE15","NODE15","SPHE2",10,-100,-200);
86 
87 
88  // Draw this geometry in the current canvas
89  node1->cd();
90  node1->Draw("gl");
91  c1->Update();
92  //
93  // Draw the geometry using the OpenGL viewer.
94  // Note that this viewer may also be invoked from the "View" menu in
95  // the canvas tool bar
96  //
97  // once in the viewer, select the Help button
98  // For example typing r will show a solid model of this geometry.
99 }
Definition: shapes.py:1
virtual void Draw(Option_t *option="")
Draw Referenced node with current parameters.
Definition: TNode.cxx:323
A segment of a conical tube.
Definition: TCONS.h:27
virtual void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax)
Defines section secNum of the polycone.
Definition: TPCON.cxx:176
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
Definition: TObjArray.cxx:329
return c1
Definition: legend1.C:41
Definition: Rtypes.h:56
A parallelepiped.
Definition: TPARA.h:30
Definition: Rtypes.h:55
virtual void cd(const char *path=0)
Change Current Reference node to this.
Definition: TNode.cxx:250
TNode description.
Definition: TNode.h:33
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
Definition: TSystem.cxx:1825
A Sphere.
Definition: TSPHE.h:28
TObjArray * GetListOfNodes()
Definition: TGeoManager.h:456
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition: TAttLine.h:40
R__EXTERN TSystem * gSystem
Definition: TSystem.h:539
TObjArray * GetListOfShapes() const
Definition: TGeoManager.h:464
A trapezoid with both x and y dimensions varying along z.
Definition: TTRD2.h:29
A general trapezoid.
Definition: TTRAP.h:33
A box with faces perpendicular to the axes.
Definition: TBRIK.h:26
The Canvas class.
Definition: TCanvas.h:31
A polycone.
Definition: TPCON.h:33
A polygon.
Definition: TPGON.h:30
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:553
A general twisted trapezoid.
Definition: TGTRA.h:27
A trapezoid with the x dimension varying along z.
Definition: TTRD1.h:28
A tube.
Definition: TTUBE.h:32
Definition: Rtypes.h:56
virtual void Update()
Update canvas pad buffers.
Definition: TCanvas.cxx:2208
A conical tube.
Definition: TCONE.h:28
A segment of a tube.
Definition: TTUBS.h:29