Logo ROOT  
Reference Guide
geomD0.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_geom
3 /// Script drawing a detector geometry (here D0).
4 ///
5 /// by default the geometry is drawn using the GL viewer
6 /// Using the TBrowser, you can select other components
7 /// if the file containing the geometry is not found in the local
8 /// directory, it is automatically read from the ROOT web site.
9 /// - run with `.x geomD0.C` top level detectors are transparent
10 /// - or `.x geomD0.C(1)` top level detectors are visible
11 ///
12 /// \image html geom_geomD0.png width=800px
13 /// \macro_code
14 ///
15 /// \authors Bertrand Bellenot, Rene Brun
16 
17 void RecursiveInvisible(TGeoVolume *vol);
18 void RecursiveTransparency(TGeoVolume *vol, Int_t transp);
19 
20 void geomD0(Int_t allVisible=0) {
21  TGeoManager::Import("http://root.cern.ch/files/d0.root");
24  //gGeoManager->SetVisLevel(4);
25  if (!allVisible) {
26  RecursiveInvisible(gGeoManager->GetVolume("D0-"));
27  RecursiveInvisible(gGeoManager->GetVolume("D0+"));
28  RecursiveInvisible(gGeoManager->GetVolume("D0WZ"));
29  RecursiveInvisible(gGeoManager->GetVolume("D0WL"));
30  RecursiveTransparency(gGeoManager->GetVolume("MUON"), 90);
31  }
32 
33  gGeoManager->GetVolume("D0")->Draw("ogl");
34 }
35 
36 void RecursiveInvisible(TGeoVolume *vol)
37 {
38  vol->InvisibleAll();
39  Int_t nd = vol->GetNdaughters();
40  for (Int_t i=0; i<nd; i++) {
41  RecursiveInvisible(vol->GetNode(i)->GetVolume());
42  }
43 }
44 
45 void RecursiveTransparency(TGeoVolume *vol, Int_t transp)
46 {
47  vol->SetTransparency(transp);
48  Int_t nd = vol->GetNdaughters();
49  for (Int_t i=0; i<nd; i++) {
50  RecursiveTransparency(vol->GetNode(i)->GetVolume(), transp);
51  }
52 }
TGeoVolume::GetNdaughters
Int_t GetNdaughters() const
Definition: TGeoVolume.h:349
gGeoManager
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:602
TGeoNode::GetVolume
TGeoVolume * GetVolume() const
Definition: TGeoNode.h:97
Int_t
int Int_t
Definition: RtypesCore.h:45
TGeoManager::GetVolume
TGeoVolume * GetVolume(const char *name) const
Search for a named volume. All trailing blanks stripped.
Definition: TGeoManager.cxx:2710
TGeoVolume::Draw
virtual void Draw(Option_t *option="")
draw top volume according to option
Definition: TGeoVolume.cxx:1146
TGeoVolume::SetTransparency
void SetTransparency(Char_t transparency=0)
Definition: TGeoVolume.h:217
TGeoManager::SetMaxVisNodes
void SetMaxVisNodes(Int_t maxnodes=10000)
set the maximum number of visible nodes.
Definition: TGeoManager.cxx:2180
TGeoVolume::GetNode
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
Definition: TGeoVolume.cxx:2060
TGeoManager::Import
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
static function Import a geometry from a gdml or ROOT file
Definition: TGeoManager.cxx:3817
TGeoVolume::InvisibleAll
void InvisibleAll(Bool_t flag=kTRUE)
Make volume and each of it daughters (in)visible.
Definition: TGeoVolume.cxx:764
TGeoVolume
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition: TGeoVolume.h:49
TGeoManager::DefaultColors
void DefaultColors()
Set default volume colors according to A of material.
Definition: TGeoManager.cxx:2077