Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGeoManager Class Reference

The manager class for any TGeo geometry.

Provides user interface for geometry creation, navigation, state querying, visualization, IO, geometry checking and other utilities.

General architecture

The ROOT geometry package is a tool designed for building, browsing, tracking and visualizing a detector geometry. The code is independent from other external MC for simulation, therefore it does not contain any constraints related to physics. However, the package defines a number of hooks for tracking, such as media, materials, magnetic field or track state flags, in order to allow interfacing to tracking MC's. The final goal is to be able to use the same geometry for several purposes, such as tracking, reconstruction or visualization, taking advantage of the ROOT features related to bookkeeping, I/O, histogramming, browsing and GUI's.

The geometrical modeler is the most important component of the package and it provides answers to the basic questions like "Where am I ?" or "How far from the next boundary ?", but also to more complex ones like "How far from the closest surface ?" or "Which is the next crossing along a helix ?".

The architecture of the modeler is a combination between a GEANT-like containment scheme and a normal CSG binary tree at the level of shapes. An important common feature of all detector geometry descriptions is the mother-daughter concept. This is the most natural approach when tracking is concerned and imposes a set of constraints to the way geometry is defined. Constructive solid geometry composition is used only in order to create more complex shapes from an existing set of primitives through boolean operations. This feature is not implemented yet but in future full definition of boolean expressions will be supported.

Practically every geometry defined in GEANT style can be mapped by the modeler. The basic components used for building the logical hierarchy of the geometry are called "volumes" and "nodes". Volumes (sometimes called "solids") are fully defined geometrical objects having a given shape and medium and possibly containing a list of nodes. Nodes represent just positioned instances of volumes inside a container volume and they are not directly defined by user. They are automatically created as a result of adding one volume inside other or dividing a volume. The geometrical transformation hold by nodes is always defined with respect to their mother (relative positioning). Reflection matrices are allowed. All volumes have to be fully aware of their containees when the geometry is closed. They will build additional structures (voxels) in order to fasten-up the search algorithms. Finally, nodes can be regarded as bidirectional links between containers and containees objects.

The structure defined in this way is a graph structure since volumes are replicable (same volume can become daughter node of several other volumes), every volume becoming a branch in this graph. Any volume in the logical graph can become the actual top volume at run time (see TGeoManager::SetTopVolume()). All functionalities of the modeler will behave in this case as if only the corresponding branch starting from this volume is the registered geometry.

A given volume can be positioned several times in the geometry. A volume can be divided according default or user-defined patterns, creating automatically the list of division nodes inside. The elementary volumes created during the dividing process follow the same scheme as usual volumes, therefore it is possible to position further geometrical structures inside or to divide them further more (see TGeoVolume::Divide()).

The primitive shapes supported by the package are basically the GEANT3 shapes (see class TGeoShape), arbitrary wedges with eight vertices on two parallel planes. All basic primitives inherits from class TGeoBBox since the bounding box of a solid is essential for the tracking algorithms. They also implement the virtual methods defined in the virtual class TGeoShape (point and segment classification). User-defined primitives can be directly plugged into the modeler provided that they override these methods. Composite shapes will be soon supported by the modeler. In order to build a TGeoCompositeShape, one will have to define first the primitive components. The object that handle boolean operations among components is called TGeoBoolCombinator and it has to be constructed providing a string boolean expression between the components names.

Example for building a simple geometry

void rootgeom(bool vis = true)
{
// gStyle->SetCanvasPreferGL(true);
TGeoManager *geom = new TGeoManager("simple1", "Simple geometry");
//--- define some materials
TGeoMaterial *matVacuum = new TGeoMaterial("Vacuum", 0,0,0);
TGeoMaterial *matAl = new TGeoMaterial("Al", 26.98,13,2.7);
// //--- define some media
TGeoMedium *Vacuum = new TGeoMedium("Vacuum",1, matVacuum);
TGeoMedium *Al = new TGeoMedium("Root Material",2, matAl);
//--- define the transformations
TGeoTranslation *tr1 = new TGeoTranslation(20., 0, 0.);
TGeoTranslation *tr2 = new TGeoTranslation(10., 0., 0.);
TGeoTranslation *tr3 = new TGeoTranslation(10., 20., 0.);
TGeoTranslation *tr4 = new TGeoTranslation(5., 10., 0.);
TGeoTranslation *tr5 = new TGeoTranslation(20., 0., 0.);
TGeoTranslation *tr6 = new TGeoTranslation(-5., 0., 0.);
TGeoTranslation *tr7 = new TGeoTranslation(7.5, 7.5, 0.);
TGeoRotation *rot1 = new TGeoRotation("rot1", 90., 0., 90., 270., 0., 0.);
TGeoCombiTrans *combi1 = new TGeoCombiTrans(7.5, -7.5, 0., rot1);
TGeoTranslation *tr8 = new TGeoTranslation(7.5, -5., 0.);
TGeoTranslation *tr9 = new TGeoTranslation(7.5, 20., 0.);
TGeoTranslation *tr10 = new TGeoTranslation(85., 0., 0.);
TGeoTranslation *tr11 = new TGeoTranslation(35., 0., 0.);
TGeoTranslation *tr12 = new TGeoTranslation(-15., 0., 0.);
TGeoTranslation *tr13 = new TGeoTranslation(-65., 0., 0.);
TGeoTranslation *tr14 = new TGeoTranslation(0,0,-100);
TGeoCombiTrans *combi2 = new TGeoCombiTrans(0,0,100,
new TGeoRotation("rot2",90,180,90,90,180,0));
TGeoCombiTrans *combi3 = new TGeoCombiTrans(100,0,0,
new TGeoRotation("rot3",90,270,0,0,90,180));
TGeoCombiTrans *combi4 = new TGeoCombiTrans(-100,0,0,
new TGeoRotation("rot4",90,90,0,0,90,0));
TGeoCombiTrans *combi5 = new TGeoCombiTrans(0,100,0,
new TGeoRotation("rot5",0,0,90,180,90,270));
TGeoCombiTrans *combi6 = new TGeoCombiTrans(0,-100,0,
new TGeoRotation("rot6",180,0,90,180,90,90));
//--- make the top container volume
Double_t worldx = 110.;
Double_t worldy = 50.;
Double_t worldz = 5.;
TGeoVolume *top = geom->MakeBox("TOP", Vacuum, 270., 270., 120.);
geom->SetTopVolume(top);
TGeoVolume *replica = geom->MakeBox("REPLICA", Vacuum,120,120,120);
replica->SetVisibility(kFALSE);
TGeoVolume *rootbox = geom->MakeBox("ROOT", Vacuum, 110., 50., 5.);
rootbox->SetVisibility(kFALSE);
//--- make letter 'R'
TGeoVolume *R = geom->MakeBox("R", Vacuum, 25., 25., 5.);
R->SetVisibility(kFALSE);
TGeoVolume *bar1 = geom->MakeBox("bar1", Al, 5., 25, 5.);
R->AddNode(bar1, 1, tr1);
TGeoVolume *bar2 = geom->MakeBox("bar2", Al, 5., 5., 5.);
R->AddNode(bar2, 1, tr2);
R->AddNode(bar2, 2, tr3);
TGeoVolume *tub1 = geom->MakeTubs("tub1", Al, 5., 15., 5., 90., 270.);
R->AddNode(tub1, 1, tr4);
TGeoVolume *bar3 = geom->MakeArb8("bar3", Al, 5.);
TGeoArb8 *arb = (TGeoArb8*)bar3->GetShape();
arb->SetVertex(0, 15., -5.);
arb->SetVertex(1, 0., -25.);
arb->SetVertex(2, -10., -25.);
arb->SetVertex(3, 5., -5.);
arb->SetVertex(4, 15., -5.);
arb->SetVertex(5, 0., -25.);
arb->SetVertex(6, -10., -25.);
arb->SetVertex(7, 5., -5.);
R->AddNode(bar3, 1, gGeoIdentity);
//--- make letter 'O'
TGeoVolume *O = geom->MakeBox("O", Vacuum, 25., 25., 5.);
TGeoVolume *bar4 = geom->MakeBox("bar4", Al, 5., 7.5, 5.);
O->AddNode(bar4, 1, tr5);
O->AddNode(bar4, 2, tr6);
TGeoVolume *tub2 = geom->MakeTubs("tub1", Al, 7.5, 17.5, 5., 0., 180.);
O->AddNode(tub2, 1, tr7);
O->AddNode(tub2, 2, combi1);
//--- make letter 'T'
TGeoVolume *T = geom->MakeBox("T", Vacuum, 25., 25., 5.);
T->SetVisibility(kFALSE);
TGeoVolume *bar5 = geom->MakeBox("bar5", Al, 5., 20., 5.);
T->AddNode(bar5, 1, tr8);
TGeoVolume *bar6 = geom->MakeBox("bar6", Al, 17.5, 5., 5.);
T->AddNode(bar6, 1, tr9);
rootbox->AddNode(R, 1, tr10);
rootbox->AddNode(O, 1, tr11);
rootbox->AddNode(O, 2, tr12);
rootbox->AddNode(T, 1, tr13);
replica->AddNode(rootbox, 1, tr14);
replica->AddNode(rootbox, 2, combi2);
replica->AddNode(rootbox, 3, combi3);
replica->AddNode(rootbox, 4, combi4);
replica->AddNode(rootbox, 5, combi5);
replica->AddNode(rootbox, 6, combi6);
top->AddNode(replica, 1, new TGeoTranslation(-150, -150, 0));
top->AddNode(replica, 2, new TGeoTranslation(150, -150, 0));
top->AddNode(replica, 3, new TGeoTranslation(150, 150, 0));
top->AddNode(replica, 4, new TGeoTranslation(-150, 150, 0));
//--- close the geometry
geom->CloseGeometry();
//--- draw the ROOT box.
// by default the picture will appear in the standard ROOT TPad.
//if you have activated the following line in system.rootrc,
//it will appear in the GL viewer
//#Viewer3D.DefaultDrawOption: ogl
geom->SetVisLevel(4);
if (vis) top->Draw("ogle");
}
const Bool_t kFALSE
Definition RtypesCore.h:101
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
@ kYellow
Definition Rtypes.h:66
R__EXTERN TGeoIdentity * gGeoIdentity
Definition TGeoMatrix.h:478
An arbitrary trapezoid with less than 8 vertices standing on two parallel planes perpendicular to Z a...
Definition TGeoArb8.h:18
virtual void SetVertex(Int_t vnum, Double_t x, Double_t y)
Set values for a given vertex.
Class describing rotation + translation.
Definition TGeoMatrix.h:292
The manager class for any TGeo geometry.
Definition TGeoManager.h:45
TGeoVolume * MakeArb8(const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=0)
Make an TGeoArb8 volume.
TGeoManager()
Default constructor.
void SetVisLevel(Int_t level=3)
set default level down to which visualization is performed
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
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.
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
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.
Base class describing materials.
Media are used to store properties related to tracking and which are useful only when using geometry ...
Definition TGeoMedium.h:24
Class describing rotations.
Definition TGeoMatrix.h:175
Class describing translations.
Definition TGeoMatrix.h:122
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition TGeoVolume.h:49
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
Add a TGeoNode to the list of nodes.
virtual void SetVisibility(Bool_t vis=kTRUE)
set visibility of this volume
TGeoShape * GetShape() const
Definition TGeoVolume.h:189
virtual void Draw(Option_t *option="")
draw top volume according to option
virtual void SetLineColor(Color_t lcolor)
Set the line color.

TGeoManager - the manager class for the geometry package.

TGeoManager class is embedding all the API needed for building and tracking a geometry. It defines a global pointer (gGeoManager) in order to be fully accessible from external code. The mechanism of handling multiple geometries at the same time will be soon implemented.

TGeoManager is the owner of all geometry objects defined in a session, therefore users must not try to control their deletion. It contains lists of media, materials, transformations, shapes and volumes. Logical nodes (positioned volumes) are created and destroyed by the TGeoVolume class. Physical nodes and their global transformations are subjected to a caching mechanism due to the sometimes very large memory requirements of logical graph expansion. The caching mechanism is triggered by the total number of physical instances of volumes and the cache manager is a client of TGeoManager. The manager class also controls the painter client. This is linked with ROOT graphical libraries loaded on demand in order to control visualization actions.

Rules for building a valid geometry

A given geometry can be built in various ways, but there are mandatory steps that have to be followed in order to be validated by the modeler. There are general rules : volumes needs media and shapes in order to be created, both container and containee volumes must be created before linking them together, and the relative transformation matrix must be provided. All branches must have an upper link point otherwise they will not be considered as part of the geometry. Visibility or tracking properties of volumes can be provided both at build time or after geometry is closed, but global visualization settings (see TGeoPainter class) should not be provided at build time, otherwise the drawing package will be loaded. There is also a list of specific rules : positioned daughters should not extrude their mother or intersect with sisters unless this is specified (see TGeoVolume::AddNodeOverlap()), the top volume (containing all geometry tree) must be specified before closing the geometry and must not be positioned - it represents the global reference frame. After building the full geometry tree, the geometry must be closed (see TGeoManager::CloseGeometry()). Voxelization can be redone per volume after this process.

Below is the general scheme of the manager class.

An interactive session

Provided that a geometry was successfully built and closed (for instance the previous example $ROOTSYS/tutorials/geom/rootgeom.C ), the manager class will register itself to ROOT and the logical/physical structures will become immediately browsable. The ROOT browser will display starting from the geometry folder : the list of transformations and media, the top volume and the top logical node. These last two can be fully expanded, any intermediate volume/node in the browser being subject of direct access context menu operations (right mouse button click). All user utilities of classes TGeoManager, TGeoVolume and TGeoNode can be called via the context menu.

Drawing the geometry

Any logical volume can be drawn via TGeoVolume::Draw() member function. This can be directly accessed from the context menu of the volume object directly from the browser. There are several drawing options that can be set with TGeoManager::SetVisOption(Int_t opt) method :

opt=0

only the content of the volume is drawn, N levels down (default N=3). This is the default behavior. The number of levels to be drawn can be changed via TGeoManager::SetVisLevel(Int_t level) method.

opt=1

the final leaves (e.g. daughters with no containment) of the branch starting from volume are drawn down to the current number of levels. WARNING : This mode is memory consuming depending of the size of geometry, so drawing from top level within this mode should be handled with care for expensive geometries. In future there will be a limitation on the maximum number of nodes to be visualized.

opt=2

only the clicked volume is visualized. This is automatically set by TGeoVolume::DrawOnly() method

opt=3 - only a given path is visualized. This is automatically set by

TGeoVolume::DrawPath(const char *path) method

The current view can be exploded in cartesian, cylindrical or spherical coordinates : TGeoManager::SetExplodedView(Int_t opt). Options may be :

  • 0 - default (no bombing)
  • 1 - cartesian coordinates. The bomb factor on each axis can be set with TGeoManager::SetBombX(Double_t bomb) and corresponding Y and Z.
  • 2 - bomb in cylindrical coordinates. Only the bomb factors on Z and R are considered
  • 3 - bomb in radial spherical coordinate : TGeoManager::SetBombR()

Volumes themselves support different visualization settings :

Checking the geometry

Several checking methods are accessible from the volume context menu. They generally apply only to the visible parts of the drawn geometry in order to ease geometry checking, and their implementation is in the TGeoChecker class from the painting package.

Checking a given point.

Can be called from TGeoManager::CheckPoint(Double_t x, Double_t y, Double_t z). This method is drawing the daughters of the volume containing the point one level down, printing the path to the deepest physical node holding this point. It also computes the closest distance to any boundary. The point will be drawn in red.

Shooting random points.

Can be called from TGeoVolume::RandomPoints() (context menu function) and it will draw this volume with current visualization settings. Random points are generated in the bounding box of the top drawn volume. The points are classified and drawn with the color of their deepest container. Only points in visible nodes will be drawn.

Raytracing.

Can be called from TGeoVolume::RandomRays() (context menu of volumes) and will shoot rays from a given point in the local reference frame with random directions. The intersections with displayed nodes will appear as segments having the color of the touched node. Drawn geometry will be then made invisible in order to enhance rays.

Definition at line 44 of file TGeoManager.h.

Public Types

enum  EDefaultUnits { kG4Units = 0 , kRootUnits = 1 }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 

Public Member Functions

 TGeoManager ()
 Default constructor.
 
 TGeoManager (const char *name, const char *title)
 Constructor.
 
virtual ~TGeoManager ()
 Destructor.
 
void AddBorderSurface (TGeoBorderSurface *surf)
 Add border surface;.
 
void AddGDMLMatrix (TGDMLMatrix *mat)
 Add GDML matrix;.
 
Int_t AddMaterial (const TGeoMaterial *material)
 Add a material to the list. Returns index of the material in list.
 
TGeoNavigatorAddNavigator ()
 Add a navigator in the list of navigators.
 
void AddOpticalSurface (TGeoOpticalSurface *optsurf)
 Add optical surface;.
 
Int_t AddOverlap (const TNamed *ovlp)
 Add an illegal overlap/extrusion to the list.
 
Bool_t AddProperty (const char *property, Double_t value)
 Add a user-defined property. Returns true if added, false if existing.
 
Int_t AddRegion (TGeoRegion *region)
 Add a new region of volumes.
 
Int_t AddShape (const TGeoShape *shape)
 Add a shape to the list. Returns index of the shape in list.
 
void AddSkinSurface (TGeoSkinSurface *surf)
 Add skin surface;.
 
Int_t AddTrack (Int_t id, Int_t pdgcode, TObject *particle=0)
 Add a track to the list of tracks.
 
Int_t AddTrack (TVirtualGeoTrack *track)
 Add a track to the list of tracks.
 
Int_t AddTransformation (const TGeoMatrix *matrix)
 Add a matrix to the list. Returns index of the matrix in list.
 
Int_t AddVolume (TGeoVolume *volume)
 Add a volume to the list. Returns index of the volume in list.
 
void AnimateTracks (Double_t tmin=0, Double_t tmax=5E-8, Int_t nframes=200, Option_t *option="/*")
 Draw animation of tracks.
 
void BombTranslation (const Double_t *tr, Double_t *bombtr)
 Get the new 'bombed' translation vector according current exploded view mode.
 
void Browse (TBrowser *b)
 Describe how to browse this object.
 
void BuildDefaultMaterials ()
 Now just a shortcut for GetElementTable.
 
virtual Bool_t cd (const char *path="")
 Browse the tree of nodes starting from fTopNode according to pathname.
 
void CdDown (Int_t index)
 Make a daughter of current node current.
 
void CdNext ()
 Do a cd to the node found next by FindNextBoundary.
 
void CdNode (Int_t nodeid)
 Change current path to point to the node having this id.
 
void CdTop ()
 Make top level node the current node.
 
void CdUp ()
 Go one level up in geometry.
 
void CheckBoundaryErrors (Int_t ntracks=1000000, Double_t radius=-1.)
 Check pushes and pulls needed to cross the next boundary with respect to the position given by FindNextBoundary.
 
void CheckBoundaryReference (Int_t icheck=-1)
 Check the boundary errors reference file created by CheckBoundaryErrors method.
 
void CheckGeometry (Option_t *option="")
 Perform last checks on the geometry.
 
void CheckGeometryFull (Int_t ntracks=1000000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
 Geometry checking.
 
void CheckOverlaps (Double_t ovlp=0.1, Option_t *option="")
 Check all geometry for illegal overlaps within a limit OVLP.
 
Bool_t CheckPath (const char *path) const
 Check if a geometry path is valid without changing the state of the current navigator.
 
void CheckPoint (Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
 Classify a given point. See TGeoChecker::CheckPoint().
 
void CheckShape (TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
 Test for shape navigation methods.
 
void CleanGarbage ()
 Clean temporary volumes and shapes from garbage collection.
 
void ClearAttributes ()
 Reset all attributes to default ones.
 
void ClearNavigators ()
 Clear all navigators.
 
void ClearOverlaps ()
 Clear the list of overlaps.
 
void ClearPhysicalNodes (Bool_t mustdelete=kFALSE)
 Clear the current list of physical nodes, so that we can start over with a new list.
 
void ClearShape (const TGeoShape *shape)
 Remove a shape from the list of shapes.
 
void ClearThreadData () const
 
void ClearTracks ()
 
void CloseGeometry (Option_t *option="d")
 Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-time shapes)building the cache manager, voxelizing all volumes, counting the total number of physical nodes and registering the manager class to the browser.
 
void ConvertReflections ()
 Convert all reflections in geometry to normal rotations + reflected shapes.
 
void CountLevels ()
 Count maximum number of nodes per volume, maximum depth and maximum number of xtru vertices.
 
Int_t CountNodes (const TGeoVolume *vol=0, Int_t nlevels=10000, Int_t option=0)
 Count the total number of nodes starting from a volume, nlevels down.
 
TGeoParallelWorldCreateParallelWorld (const char *name)
 Create a parallel world for prioritised navigation.
 
void CreateThreadData () const
 Create thread private data for all geometry objects.
 
TGeoNodeCrossBoundaryAndLocate (Bool_t downwards, TGeoNode *skipnode)
 Cross next boundary and locate within current node The current point must be on the boundary of fCurrentNode.
 
void DefaultAngles ()
 Set default angles for a given view.
 
void DefaultColors ()
 Set default volume colors according to A of material.
 
void DisableInactiveVolumes ()
 
TGeoVolumeDivision (const char *name, const char *mother, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step, Int_t numed=0, Option_t *option="")
 Create a new volume by dividing an existing one (GEANT3 like)
 
void DoBackupState ()
 Backup the current state without affecting the cache stack.
 
void DoRestoreState ()
 Restore a backed-up state without affecting the cache stack.
 
void DrawCurrentPoint (Int_t color=2)
 Draw current point in the same view.
 
void DrawPath (const char *path, Option_t *option="")
 Draw current path.
 
void DrawTracks (Option_t *option="")
 Draw tracks over the geometry, according to option.
 
virtual void Edit (Option_t *option="")
 Append a pad for this geometry.
 
void EnableInactiveVolumes ()
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute mouse actions on this manager.
 
virtual Int_t Export (const char *filename, const char *name="", Option_t *option="vg")
 Export this geometry to a file.
 
TGeoMaterialFindDuplicateMaterial (const TGeoMaterial *mat) const
 Find if a given material duplicates an existing one.
 
TGeoNodeFindNextBoundary (Double_t stepmax=TGeoShape::Big(), const char *path="", Bool_t frombdr=kFALSE)
 Find distance to next boundary and store it in fStep.
 
TGeoNodeFindNextBoundaryAndStep (Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
 Compute distance to next boundary within STEPMAX.
 
TGeoNodeFindNextDaughterBoundary (Double_t *point, Double_t *dir, Int_t &idaughter, Bool_t compmatrix=kFALSE)
 Computes as fStep the distance to next daughter of the current volume.
 
TGeoNodeFindNode (Bool_t safe_start=kTRUE)
 Returns deepest node containing current point.
 
TGeoNodeFindNode (Double_t x, Double_t y, Double_t z)
 Returns deepest node containing current point.
 
Double_tFindNormal (Bool_t forward=kTRUE)
 Computes normal vector to the next surface that will be or was already crossed when propagating on a straight line from a given point/direction.
 
Double_tFindNormalFast ()
 Computes fast normal to next crossed boundary, assuming that the current point is close enough to the boundary.
 
TVirtualGeoTrackFindTrackWithId (Int_t id) const
 Search the track hierarchy to find the track with the given id.
 
TGeoVolumeFindVolumeFast (const char *name, Bool_t multi=kFALSE)
 Fast search for a named volume. All trailing blanks stripped.
 
TGeoPNEntryGetAlignableEntry (const char *name) const
 Retrieves an existing alignable object.
 
TGeoPNEntryGetAlignableEntry (Int_t index) const
 Retrieves an existing alignable object at a given index.
 
TGeoPNEntryGetAlignableEntryByUID (Int_t uid) const
 Retrieves an existing alignable object having a preset UID.
 
UChar_tGetBits ()
 
void GetBombFactors (Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
 Retrieve cartesian and radial bomb factors.
 
Int_t GetBombMode () const
 
TGeoBorderSurfaceGetBorderSurface (const char *name) const
 Get border surface with a given name;.
 
void GetBranchNames (Int_t *names) const
 Fill volume names of current branch into an array.
 
void GetBranchNumbers (Int_t *copyNumbers, Int_t *volumeNumbers) const
 Fill node copy numbers of current branch into an array.
 
void GetBranchOnlys (Int_t *isonly) const
 Fill node copy numbers of current branch into an array.
 
virtual Int_t GetByteCount (Option_t *option=0)
 Get total size of geometry in bytes.
 
TGeoNodeCacheGetCache () const
 
const Double_tGetCldir () const
 
const Double_tGetCldirChecked () const
 
TGeoShapeGetClippingShape () const
 
const Double_tGetCurrentDirection () const
 
TGeoHMatrixGetCurrentMatrix () const
 
TGeoNavigatorGetCurrentNavigator () const
 Returns current navigator for the calling thread.
 
TGeoNodeGetCurrentNode () const
 
Int_t GetCurrentNodeId () const
 Get the unique ID of the current node.
 
const Double_tGetCurrentPoint () const
 
TVirtualGeoTrackGetCurrentTrack ()
 
TGeoVolumeGetCurrentVolume () const
 
TGeoElementTableGetElementTable ()
 Returns material table. Creates it if not existing.
 
TGDMLMatrixGetGDMLMatrix (const char *name) const
 Get GDML matrix with a given name;.
 
TVirtualGeoPainterGetGeomPainter ()
 Make a default painter if none present. Returns pointer to it.
 
TGeoHMatrixGetGLMatrix () const
 
TGeoHMatrixGetHMatrix ()
 Return stored current matrix (global matrix of the next touched node).
 
const Double_tGetLastPoint () const
 
Double_t GetLastSafety () const
 
TVirtualGeoTrackGetLastTrack ()
 
Int_t GetLevel () const
 
TObjArrayGetListOfBorderSurfaces () const
 
TObjArrayGetListOfGDMLMatrices () const
 
TObjArrayGetListOfGShapes () const
 
TObjArrayGetListOfGVolumes () const
 
TListGetListOfMaterials () const
 
TObjArrayGetListOfMatrices () const
 
TListGetListOfMedia () const
 
TGeoNavigatorArrayGetListOfNavigators () const
 Get list of navigators for the calling thread.
 
TObjArrayGetListOfNodes ()
 
TObjArrayGetListOfOpticalSurfaces () const
 
TObjArrayGetListOfOverlaps ()
 
TObjArrayGetListOfPhysicalNodes ()
 
TObjArrayGetListOfRegions () const
 
TObjArrayGetListOfShapes () const
 
TObjArrayGetListOfSkinSurfaces () const
 
TObjArrayGetListOfTracks () const
 
TObjArrayGetListOfUVolumes () const
 
TObjArrayGetListOfVolumes () const
 
TGeoVolumeGetMasterVolume () const
 
TGeoMaterialGetMaterial (const char *matname) const
 Search for a named material. All trailing blanks stripped.
 
TGeoMaterialGetMaterial (Int_t id) const
 Return material at position id.
 
Int_t GetMaterialIndex (const char *matname) const
 Return index of named material.
 
Int_t GetMaxLevel () const
 
Int_t GetMaxThreads () const
 
Int_t GetMaxVisNodes () const
 
TGeoMediumGetMedium (const char *medium) const
 Search for a named tracking medium. All trailing blanks stripped.
 
TGeoMediumGetMedium (Int_t numed) const
 Search for a tracking medium with a given ID.
 
TGeoNodeGetMother (Int_t up=1) const
 
TGeoHMatrixGetMotherMatrix (Int_t up=1) const
 
Int_t GetNAlignable (Bool_t with_uid=kFALSE) const
 Retrieves number of PN entries with or without UID.
 
TGeoNodeGetNextNode () const
 
Int_t GetNmany () const
 
Int_t GetNNodes ()
 
TGeoNodeGetNode (Int_t level) const
 
Int_t GetNodeId () const
 
const Double_tGetNormal () const
 
Int_t GetNproperties () const
 
int GetNregions () const
 
Int_t GetNsegments () const
 Get number of segments approximating circles.
 
Int_t GetNtracks () const
 
TGeoOpticalSurfaceGetOpticalSurface (const char *name) const
 Get optical surface with a given name;.
 
TVirtualGeoPainterGetPainter () const
 
TGeoVolumeGetPaintVolume () const
 
TGeoParallelWorldGetParallelWorld () const
 
TVirtualGeoTrackGetParentTrackOfId (Int_t id) const
 Get parent track with a given ID.
 
const char * GetParticleName () const
 
const char * GetPath () const
 Get path to the current node in the form /node0/node1/...
 
const char * GetPdgName (Int_t pdg) const
 Get name for given pdg code;.
 
TGeoPhysicalNodeGetPhysicalNode (Int_t i) const
 
Double_t GetProperty (const char *name, Bool_t *error=nullptr) const
 Get a user-defined property.
 
Double_t GetProperty (size_t i, TString &name, Bool_t *error=nullptr) const
 Get a user-defined property from a given index.
 
TGeoRegionGetRegion (int i)
 
Int_t GetRTmode () const
 
Double_t GetSafeDistance () const
 
Int_t GetSafeLevel () const
 Go upwards the tree until a non-overlapping node.
 
TGeoSkinSurfaceGetSkinSurface (const char *name) const
 Get skin surface with a given name;.
 
Int_t GetStackLevel () const
 
Double_t GetStep () const
 
Double_t GetTmax () const
 
Bool_t GetTminTmax (Double_t &tmin, Double_t &tmax) const
 Get time cut for drawing tracks.
 
TGeoNodeGetTopNode () const
 
TGeoVolumeGetTopVolume () const
 
TVirtualGeoTrackGetTrack (Int_t index)
 
Int_t GetTrackIndex (Int_t id) const
 Get index for track id, -1 if not found.
 
TVirtualGeoTrackGetTrackOfId (Int_t id) const
 Get track with a given ID.
 
Int_t GetUID (const char *volname) const
 Retrieve unique id for a volume name. Return -1 if name not found.
 
TGeoVolumeGetUserPaintVolume () const
 
Int_t GetVirtualLevel ()
 Find level of virtuality of current overlapping node (number of levels up having the same tracking media.
 
Double_t GetVisDensity () const
 
Int_t GetVisLevel () const
 Returns current depth to which geometry is drawn.
 
Int_t GetVisOption () const
 Returns current depth to which geometry is drawn.
 
TGeoVolumeGetVolume (const char *name) const
 Search for a named volume. All trailing blanks stripped.
 
TGeoVolumeGetVolume (Int_t uid) const
 
Bool_t GotoSafeLevel ()
 Go upwards the tree until a non-overlapping node.
 
TGeoNodeInitTrack (const Double_t *point, const Double_t *dir)
 Initialize current point and current direction vector (normalized) in MARS.
 
TGeoNodeInitTrack (Double_t x, Double_t y, Double_t z, Double_t nx, Double_t ny, Double_t nz)
 Initialize current point and current direction vector (normalized) in MARS.
 
void InspectState () const
 Inspects path and all flags for the current state.
 
Bool_t IsActivityEnabled () const
 
Bool_t IsAnimatingTracks () const
 
Bool_t IsCheckingOverlaps () const
 
Bool_t IsCleaning () const
 
Bool_t IsClosed () const
 
Bool_t IsCurrentOverlapping () const
 
Bool_t IsDrawingExtra () const
 
Bool_t IsEntering () const
 
Bool_t IsExiting () const
 
Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
Bool_t IsInPhiRange () const
 True if current node is in phi range.
 
Bool_t IsMatrixReflection () const
 
Bool_t IsMatrixTransform () const
 
Bool_t IsMultiThread () const
 
Bool_t IsNodeSelectable () const
 
Bool_t IsNullStep () const
 
Bool_t IsOnBoundary () const
 
Bool_t IsOutside () const
 
Bool_t IsParallelWorldNav () const
 
Bool_t IsSameLocation () const
 
Bool_t IsSameLocation (Double_t x, Double_t y, Double_t z, Bool_t change=kFALSE)
 Checks if point (x,y,z) is still in the current node.
 
Bool_t IsSamePoint (Double_t x, Double_t y, Double_t z) const
 Check if a new point with given coordinates is the same as the last located one.
 
Bool_t IsStartSafe () const
 
Bool_t IsStepEntering () const
 
Bool_t IsStepExiting () const
 
Bool_t IsStreamingVoxels () const
 
Bool_t IsVisLeaves () const
 
void LocalToMaster (const Double_t *local, Double_t *master) const
 
void LocalToMasterBomb (const Double_t *local, Double_t *master) const
 
void LocalToMasterVect (const Double_t *local, Double_t *master) const
 
TGeoPhysicalNodeMakeAlignablePN (const char *name)
 Make a physical node from the path pointed by an alignable object with a given name.
 
TGeoPhysicalNodeMakeAlignablePN (TGeoPNEntry *entry)
 Make a physical node from the path pointed by a given alignable object.
 
TGeoVolumeMakeArb8 (const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=0)
 Make an TGeoArb8 volume.
 
TGeoVolumeMakeBox (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.
 
TGeoVolumeMakeCone (const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
 Make in one step a volume pointing to a cone shape with given medium.
 
TGeoVolumeMakeCons (const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2, Double_t phi1, Double_t phi2)
 Make in one step a volume pointing to a cone segment shape with given medium.
 
TGeoVolumeMakeCtub (const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2, Double_t lx, Double_t ly, Double_t lz, Double_t tx, Double_t ty, Double_t tz)
 Make in one step a volume pointing to a tube segment shape with given medium.
 
TGeoVolumeMakeEltu (const char *name, TGeoMedium *medium, Double_t a, Double_t b, Double_t dz)
 Make in one step a volume pointing to a tube shape with given medium.
 
TGeoVolumeMakeGtra (const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
 Make in one step a volume pointing to a twisted trapezoid shape with given medium.
 
TGeoVolumeMakeHype (const char *name, TGeoMedium *medium, Double_t rin, Double_t stin, Double_t rout, Double_t stout, Double_t dz)
 Make in one step a volume pointing to a tube shape with given medium.
 
TGeoVolumeMakePara (const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz, Double_t alpha, Double_t theta, Double_t phi)
 Make in one step a volume pointing to a parallelepiped shape with given medium.
 
TGeoVolumeMakeParaboloid (const char *name, TGeoMedium *medium, Double_t rlo, Double_t rhi, Double_t dz)
 Make in one step a volume pointing to a tube shape with given medium.
 
TGeoVolumeMakePcon (const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nz)
 Make in one step a volume pointing to a polycone shape with given medium.
 
TGeoVolumeMakePgon (const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nedges, Int_t nz)
 Make in one step a volume pointing to a polygone shape with given medium.
 
TGeoPhysicalNodeMakePhysicalNode (const char *path=0)
 Makes a physical node corresponding to a path.
 
TGeoVolumeMakeSphere (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.
 
TGeoVolumeMakeTorus (const char *name, TGeoMedium *medium, Double_t r, Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360)
 Make in one step a volume pointing to a torus shape with given medium.
 
TVirtualGeoTrackMakeTrack (Int_t id, Int_t pdgcode, TObject *particle)
 Makes a primary track but do not attach it to the list of tracks.
 
TGeoVolumeMakeTrap (const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
 Make in one step a volume pointing to a trapezoid shape with given medium.
 
TGeoVolumeMakeTrd1 (const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy, Double_t dz)
 Make in one step a volume pointing to a TGeoTrd1 shape with given medium.
 
TGeoVolumeMakeTrd2 (const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2, Double_t dz)
 Make in one step a volume pointing to a TGeoTrd2 shape with given medium.
 
TGeoVolumeMakeTube (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.
 
TGeoVolumeMakeTubs (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.
 
TGeoVolumeAssemblyMakeVolumeAssembly (const char *name)
 Make an assembly of volumes.
 
TGeoVolumeMultiMakeVolumeMulti (const char *name, TGeoMedium *medium)
 Make a TGeoVolumeMulti handling a list of volumes.
 
TGeoVolumeMakeXtru (const char *name, TGeoMedium *medium, Int_t nz)
 Make a TGeoXtru-shaped volume with nz planes.
 
void MasterToLocal (const Double_t *master, Double_t *local) const
 
void MasterToLocalBomb (const Double_t *master, Double_t *local) const
 
void MasterToLocalVect (const Double_t *master, Double_t *local) const
 
void MasterToTop (const Double_t *master, Double_t *top) const
 Convert coordinates from master volume frame to top.
 
TGeoMaterialMaterial (const char *name, Double_t a, Double_t z, Double_t dens, Int_t uid, Double_t radlen=0, Double_t intlen=0)
 Create material with given A, Z and density, having an unique id.
 
void Matrix (Int_t index, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3)
 Create rotation matrix named 'mat<index>'.
 
TGeoMediumMedium (const char *name, Int_t numed, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin)
 Create tracking medium.
 
TGeoMaterialMixture (const char *name, Double_t *a, Double_t *z, Double_t dens, Int_t nelem, Double_t *wmat, Int_t uid)
 Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A,Z and WMAT, having an unique id.
 
TGeoMaterialMixture (const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nelem, Float_t *wmat, Int_t uid)
 Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A,Z and WMAT, having an unique id.
 
void ModifiedPad () const
 Send "Modified" signal to painter.
 
void Node (const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, Bool_t isOnly, Double_t *upar, Int_t npar=0)
 Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called <mother> (gspos).
 
void Node (const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, Bool_t isOnly, Float_t *upar, Int_t npar=0)
 Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called <mother> (gspos).
 
void OptimizeVoxels (const char *filename="tgeovox.C")
 Optimize voxelization type for all volumes. Save best choice in a macro.
 
void PopDummy (Int_t ipop=9999)
 
Bool_t PopPath ()
 
Bool_t PopPath (Int_t index)
 
Bool_t PopPoint ()
 
Bool_t PopPoint (Int_t index)
 
void PrintOverlaps () const
 Prints the current list of overlaps.
 
Int_t PushPath (Int_t startlevel=0)
 
Int_t PushPoint (Int_t startlevel=0)
 
void RandomPoints (const TGeoVolume *vol, Int_t npoints=10000, Option_t *option="")
 Draw random points in the bounding box of a volume.
 
void RandomRays (Int_t nrays=1000, Double_t startx=0, Double_t starty=0, Double_t startz=0, const char *target_vol=0, Bool_t check_norm=kFALSE)
 Randomly shoot nrays and plot intersections with surfaces for current top node.
 
void RefreshPhysicalNodes (Bool_t lock=kTRUE)
 Refresh physical nodes to reflect the actual geometry paths after alignment was applied.
 
void RegisterMatrix (const TGeoMatrix *matrix)
 Register a matrix to the list of matrices.
 
void RemoveMaterial (Int_t index)
 Remove material at given index.
 
void RemoveNavigator (const TGeoNavigator *nav)
 Clear a single navigator.
 
Int_t ReplaceVolume (TGeoVolume *vorig, TGeoVolume *vnew)
 Replaces all occurrences of VORIG with VNEW in the geometry tree.
 
void ResetState ()
 Reset current state flags.
 
void ResetUserData ()
 Sets all pointers TGeoVolume::fField to NULL.
 
void RestoreMasterVolume ()
 Restore the master volume of the geometry.
 
Double_t Safety (Bool_t inside=kFALSE)
 Compute safe distance from the current point.
 
TGeoNodeSamplePoints (Int_t npoints, Double_t &dist, Double_t epsil=1E-5, const char *g3path="")
 shoot npoints randomly in a box of 1E-5 around current point.
 
void SaveAttributes (const char *filename="tgeoatt.C")
 Save current attributes in a macro.
 
TGeoNodeSearchNode (Bool_t downwards=kFALSE, const TGeoNode *skipnode=0)
 Returns the deepest node containing fPoint, which must be set a priori.
 
void SelectTrackingMedia ()
 Define different tracking media.
 
TGeoPNEntrySetAlignableEntry (const char *unique_name, const char *path, Int_t uid=-1)
 Creates an alignable object with unique name corresponding to a path and adds it to the list of alignables.
 
void SetAllIndex ()
 Assigns uid's for all materials,media and matrices.
 
void SetAnimateTracks (Bool_t flag=kTRUE)
 
void SetBombFactors (Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3)
 Set factors that will "bomb" all translations in cartesian and cylindrical coordinates.
 
void SetCheckedNode (TGeoNode *node)
 Assign a given node to be checked for overlaps. Any other overlaps will be ignored.
 
void SetCheckingOverlaps (Bool_t flag=kTRUE)
 
void SetCldirChecked (Double_t *dir)
 
void SetClipping (Bool_t flag=kTRUE)
 
void SetClippingShape (TGeoShape *clip)
 Set a user-defined shape as clipping for ray tracing.
 
void SetCurrentDirection (Double_t *dir)
 
void SetCurrentDirection (Double_t nx, Double_t ny, Double_t nz)
 
Bool_t SetCurrentNavigator (Int_t index)
 Switch to another existing navigator for the calling thread.
 
void SetCurrentPoint (Double_t *point)
 
void SetCurrentPoint (Double_t x, Double_t y, Double_t z)
 
void SetCurrentTrack (Int_t i)
 
void SetCurrentTrack (TVirtualGeoTrack *track)
 
void SetDrawExtraPaths (Bool_t flag=kTRUE)
 
void SetExplodedView (Int_t iopt=0)
 Set type of exploding view (see TGeoPainter::SetExplodedView())
 
void SetLastPoint (Double_t x, Double_t y, Double_t z)
 
void SetMatrixReflection (Bool_t flag=kTRUE)
 
void SetMatrixTransform (Bool_t on=kTRUE)
 
void SetMaxThreads (Int_t nthreads)
 Set maximum number of threads for navigation.
 
void SetMaxVisNodes (Int_t maxnodes=10000)
 set the maximum number of visible nodes.
 
void SetNmeshPoints (Int_t npoints=1000)
 Set the number of points to be generated on the shape outline when checking for overlaps.
 
void SetNodeSelectable (Bool_t flag=kTRUE)
 
void SetNsegments (Int_t nseg)
 Set number of segments for approximating circles in drawing.
 
void SetOutside (Bool_t flag=kTRUE)
 
void SetPaintVolume (TGeoVolume *vol)
 
void SetParticleName (const char *pname)
 
void SetPdgName (Int_t pdg, const char *name)
 Set a name for a particle having a given pdg.
 
void SetPhiRange (Double_t phimin=0., Double_t phimax=360.)
 Set cut phi range.
 
void SetRTmode (Int_t mode)
 Change raytracing mode.
 
void SetStartSafe (Bool_t flag=kTRUE)
 
void SetStep (Double_t step)
 
void SetTminTmax (Double_t tmin=0, Double_t tmax=999)
 Set time cut interval for drawing tracks.
 
void SetTopVisible (Bool_t vis=kTRUE)
 make top volume visible on screen
 
void SetTopVolume (TGeoVolume *vol)
 Set the top volume and corresponding node as starting point of the geometry.
 
void SetUseParallelWorldNav (Bool_t flag)
 Activate/deactivate usage of parallel world navigation.
 
void SetUserPaintVolume (TGeoVolume *vol)
 
void SetVisDensity (Double_t dens=0.01)
 Set density threshold.
 
void SetVisibility (TObject *obj, Bool_t vis)
 Set visibility for a volume.
 
void SetVisLevel (Int_t level=3)
 set default level down to which visualization is performed
 
void SetVisOption (Int_t option=0)
 set drawing mode :
 
void SetVolumeAttribute (const char *name, const char *att, Int_t val)
 Set volume attributes in G3 style.
 
virtual ULong_t SizeOf (const TGeoNode *node, Option_t *option)
 computes the total size in bytes of the branch starting with node.
 
void SortOverlaps ()
 Sort overlaps by decreasing overlap distance. Extrusions comes first.
 
TGeoNodeStep (Bool_t is_geom=kTRUE, Bool_t cross=kTRUE)
 Make a rectilinear step of length fStep from current point (fPoint) on current direction (fDirection).
 
void Test (Int_t npoints=1000000, Option_t *option="")
 Check time of finding "Where am I" for n points.
 
void TestOverlaps (const char *path="")
 Geometry overlap checker based on sampling.
 
void TopToMaster (const Double_t *top, Double_t *master) const
 Convert coordinates from top volume frame to master.
 
Int_t TransformVolumeToAssembly (const char *vname)
 Transform all volumes named VNAME to assemblies. The volumes must be virtual.
 
void UnbombTranslation (const Double_t *tr, Double_t *bombtr)
 Get the new 'unbombed' translation vector according current exploded view mode.
 
void ViewLeaves (Bool_t flag=kTRUE)
 Set visualization option (leaves only OR all volumes)
 
TGeoVolumeVolume (const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t npar=0)
 Create a volume in GEANT3 style.
 
TGeoVolumeVolume (const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t npar=0)
 Create a volume in GEANT3 style.
 
Double_t Weight (Double_t precision=0.01, Option_t *option="va")
 Estimate weight of volume VOL with a precision SIGMA(W)/W better than PRECISION.
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings ("").
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects.
 
virtual void Copy (TObject &named) const
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title.
 
virtual void SetName (const char *name)
 Set the name of the TNamed.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification.
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 

Static Public Member Functions

static void ClearThreadsMap ()
 Clear the current map of threads.
 
static EDefaultUnits GetDefaultUnits ()
 
static UInt_t GetExportPrecision ()
 
static Int_t GetMaxDaughters ()
 Return maximum number of daughters of a volume used in the geometry.
 
static Int_t GetMaxLevels ()
 Return maximum number of levels used in the geometry.
 
static Int_t GetMaxXtruVert ()
 Return maximum number of vertices for an xtru shape used.
 
static Int_t GetNumThreads ()
 Returns number of threads that were set to use geometry.
 
static Int_t GetVerboseLevel ()
 Set verbosity level (static function).
 
static TGeoManagerImport (const char *filename, const char *name="", Option_t *option="")
 static function Import a geometry from a gdml or ROOT file
 
static Bool_t IsLocked ()
 Check lock state.
 
static Bool_t LockDefaultUnits (Bool_t new_value)
 
static void LockGeometry ()
 Lock current geometry so that no other geometry can be imported.
 
static Int_t Parse (const char *expr, TString &expr1, TString &expr2, TString &expr3)
 Parse a string boolean expression and do a syntax check.
 
static void SetDefaultUnits (EDefaultUnits new_value)
 
static void SetExportPrecision (UInt_t prec)
 
static void SetNavigatorsLock (Bool_t flag)
 Set the lock for navigators.
 
static void SetVerboseLevel (Int_t vl)
 Return current verbosity level (static function).
 
static Int_t ThreadId ()
 Translates the current thread id to an ordinal number.
 
static void UnlockGeometry ()
 Unlock current geometry.
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Protected Member Functions

 TGeoManager (const TGeoManager &)=delete
 Default units in GDML if not explicit in some tags.
 
TGeoManageroperator= (const TGeoManager &)=delete
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

Static Protected Attributes

static EDefaultUnits fgDefaultUnits = TGeoManager::kRootUnits
 Precision to be used in ASCII exports.
 
static UInt_t fgExportPrecision = 17
 Maximum number of Xtru vertices.
 
static Bool_t fgLock = kFALSE
 mutex for navigator booking in MT mode
 
static Int_t fgMaxDaughters = 1
 Maximum level in geometry.
 
static Int_t fgMaxLevel = 1
 Verbosity level for Info messages (no IO).
 
static Int_t fgMaxXtruVert = 1
 Maximum number of daughters.
 
static std::mutex fgMutex
 
static Int_t fgVerboseLevel = 1
 Lock preventing a second geometry to be loaded.
 

Private Types

typedef std::map< std::string, Double_tConstPropMap_t
 
typedef std::map< std::thread::id, TGeoNavigatorArray * > NavigatorsMap_t
 bits used for voxelization
 
typedef NavigatorsMap_t::iterator NavigatorsMapIt_t
 
typedef std::map< std::thread::id, Int_tThreadsMap_t
 
typedef ThreadsMap_t::const_iterator ThreadsMapIt_t
 

Private Member Functions

void Init ()
 Initialize manager class.
 
Bool_t InitArrayPNE () const
 Initialize PNE array for fast access via index and unique-id.
 
Bool_t InsertPNEId (Int_t uid, Int_t ientry)
 Insert a PN entry in the sorted array of indexes.
 
Bool_t IsLoopingVolumes () const
 
void SetLoopVolumes (Bool_t flag=kTRUE)
 
void UpdateElements ()
 Update element flags when geometry is loaded from a file.
 
void Voxelize (Option_t *option=0)
 Voxelize all non-divided volumes.
 

Private Attributes

Bool_t fActivity
 flag for GL reflections
 
TObjArrayfArrayPNE
 
UChar_tfBits
 
TObjArrayfBorderSurfaces
 
TGeoShapefClippingShape
 
Bool_t fClosed
 
TGeoNavigatorfCurrentNavigator
 Lock existing navigators.
 
TVirtualGeoTrackfCurrentTrack
 
TGeoVolumefCurrentVolume
 current navigator
 
Bool_t fDrawExtra
 
TGeoElementTablefElementTable
 clipping shape for raytracing
 
Int_t fExplodedView
 
TObjArrayfGDMLMatrices
 
TGeoHMatrixfGLMatrix
 
TObjArrayfGShapes
 
TObjArrayfGVolumes
 list of runtime shapes
 
THashListfHashGVolumes
 hash list of volumes providing fast search
 
THashListfHashPNE
 hash list of group volumes providing fast search
 
THashListfHashVolumes
 
Bool_t fIsGeomCleaning
 flag set when reading geometry
 
Bool_t fIsGeomReading
 
Bool_t fIsNodeSelectable
 switch ON/OFF volume activity (default OFF - all volumes active))
 
Int_tfKeyPNEId
 
Bool_t fLoopVolumes
 flag that geometry is closed
 
TGeoVolumefMasterVolume
 top physical node
 
TListfMaterials
 
TObjArrayfMatrices
 current painter
 
Bool_t fMatrixReflection
 flag for using GL matrix
 
Bool_t fMatrixTransform
 flag that the list of physical nodes has to be drawn
 
Int_t fMaxThreads
 
Int_t fMaxVisNodes
 
TListfMedia
 
Bool_t fMultiThread
 Max number of threads.
 
NavigatorsMap_t fNavigators
 
Int_t fNLevel
 table of elements
 
Int_t fNNodes
 upper time limit for tracks drawing
 
TObjArrayfNodes
 
Int_t fNpdg
 current track
 
Int_t fNPNEId
 
Int_t fNsegments
 
Int_t fNtracks
 
TObjArrayfOpticalSurfaces
 
TObjArrayfOverlaps
 
TVirtualGeoPainterfPainter
 flag that nodes are the selected objects in pad rather than volumes
 
TGeoVolumefPaintVolume
 
TGeoParallelWorldfParallelWorld
 
TString fParticleName
 path to current node
 
TString fPath
 
Int_t fPdgId [1024]
 
TObjArrayfPdgNames
 
Bool_t fPhiCut
 flag to notify that the manager is being destructed
 
Double_t fPhimax
 lowest range for phi cut
 
Double_t fPhimin
 
TObjArrayfPhysicalNodes
 
ConstPropMap_t fProperties
 
Int_t fRaytraceMode
 Flag for multi-threading.
 
TObjArrayfRegions
 
TObjArrayfShapes
 
Int_t fSizePNEId
 array of physical node entries
 
TObjArrayfSkinSurfaces
 
Bool_t fStreamVoxels
 flag volume lists loop
 
Bool_t fTimeCut
 
Double_t fTmax
 lower time limit for tracks drawing
 
Double_t fTmin
 highest range for phi cut
 
TGeoNodefTopNode
 top level volume in geometry
 
TGeoVolumefTopVolume
 current volume
 
TObjArrayfTracks
 list of runtime volumes
 
TObjArrayfUniqueVolumes
 
Bool_t fUsePWNav
 Raytrace mode: 0=normal, 1=pass through, 2=transparent.
 
TGeoVolumefUserPaintVolume
 volume currently painted
 
Int_tfValuePNEId
 
Double_t fVisDensity
 particles to be drawn
 
Int_t fVisLevel
 
Int_t fVisOption
 
TObjArrayfVolumes
 

Static Private Attributes

static Bool_t fgLockNavigators = kFALSE
 Number of registered threads.
 
static Int_t fgNumThreads = 0
 Thread id's map.
 
static ThreadsMap_tfgThreadId = 0
 Map between thread id's and navigator arrays.
 

Additional Inherited Members

- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

#include <TGeoManager.h>

Inheritance diagram for TGeoManager:
[legend]

Member Typedef Documentation

◆ ConstPropMap_t

typedef std::map<std::string, Double_t> TGeoManager::ConstPropMap_t
private

Definition at line 121 of file TGeoManager.h.

◆ NavigatorsMap_t

typedef std::map<std::thread::id, TGeoNavigatorArray *> TGeoManager::NavigatorsMap_t
private

bits used for voxelization

Definition at line 116 of file TGeoManager.h.

◆ NavigatorsMapIt_t

typedef NavigatorsMap_t::iterator TGeoManager::NavigatorsMapIt_t
private

Definition at line 117 of file TGeoManager.h.

◆ ThreadsMap_t

typedef std::map<std::thread::id, Int_t> TGeoManager::ThreadsMap_t
private

Definition at line 118 of file TGeoManager.h.

◆ ThreadsMapIt_t

typedef ThreadsMap_t::const_iterator TGeoManager::ThreadsMapIt_t
private

Definition at line 119 of file TGeoManager.h.

Member Enumeration Documentation

◆ EDefaultUnits

Enumerator
kG4Units 
kRootUnits 

Definition at line 47 of file TGeoManager.h.

Constructor & Destructor Documentation

◆ TGeoManager() [1/3]

TGeoManager::TGeoManager ( const TGeoManager )
protecteddelete

Default units in GDML if not explicit in some tags.

◆ TGeoManager() [2/3]

TGeoManager::TGeoManager ( )

Default constructor.

Definition at line 309 of file TGeoManager.cxx.

◆ TGeoManager() [3/3]

TGeoManager::TGeoManager ( const char *  name,
const char *  title 
)

Constructor.

Definition at line 396 of file TGeoManager.cxx.

◆ ~TGeoManager()

TGeoManager::~TGeoManager ( )
virtual

Destructor.

Definition at line 497 of file TGeoManager.cxx.

Member Function Documentation

◆ AddBorderSurface()

void TGeoManager::AddBorderSurface ( TGeoBorderSurface surf)

Add border surface;.

Definition at line 1903 of file TGeoManager.cxx.

◆ AddGDMLMatrix()

void TGeoManager::AddGDMLMatrix ( TGDMLMatrix mat)

Add GDML matrix;.

Definition at line 1846 of file TGeoManager.cxx.

◆ AddMaterial()

Int_t TGeoManager::AddMaterial ( const TGeoMaterial material)

Add a material to the list. Returns index of the material in list.

Definition at line 553 of file TGeoManager.cxx.

◆ AddNavigator()

TGeoNavigator * TGeoManager::AddNavigator ( )

Add a navigator in the list of navigators.

If it is the first one make it current navigator.

Definition at line 718 of file TGeoManager.cxx.

◆ AddOpticalSurface()

void TGeoManager::AddOpticalSurface ( TGeoOpticalSurface optsurf)

Add optical surface;.

Definition at line 1865 of file TGeoManager.cxx.

◆ AddOverlap()

Int_t TGeoManager::AddOverlap ( const TNamed ovlp)

Add an illegal overlap/extrusion to the list.

Definition at line 561 of file TGeoManager.cxx.

◆ AddProperty()

Bool_t TGeoManager::AddProperty ( const char *  property,
Double_t  value 
)

Add a user-defined property. Returns true if added, false if existing.

Definition at line 580 of file TGeoManager.cxx.

◆ AddRegion()

Int_t TGeoManager::AddRegion ( TGeoRegion region)

Add a new region of volumes.

Definition at line 570 of file TGeoManager.cxx.

◆ AddShape()

Int_t TGeoManager::AddShape ( const TGeoShape shape)

Add a shape to the list. Returns index of the shape in list.

Definition at line 633 of file TGeoManager.cxx.

◆ AddSkinSurface()

void TGeoManager::AddSkinSurface ( TGeoSkinSurface surf)

Add skin surface;.

Definition at line 1884 of file TGeoManager.cxx.

◆ AddTrack() [1/2]

Int_t TGeoManager::AddTrack ( Int_t  id,
Int_t  pdgcode,
TObject particle = 0 
)

Add a track to the list of tracks.

Use this for primaries only. For secondaries, add them to the parent track. The method create objects that are registered to the analysis manager but have to be cleaned-up by the user via ClearTracks().

Definition at line 643 of file TGeoManager.cxx.

◆ AddTrack() [2/2]

Int_t TGeoManager::AddTrack ( TVirtualGeoTrack track)

Add a track to the list of tracks.

Definition at line 653 of file TGeoManager.cxx.

◆ AddTransformation()

Int_t TGeoManager::AddTransformation ( const TGeoMatrix matrix)

Add a matrix to the list. Returns index of the matrix in list.

Definition at line 625 of file TGeoManager.cxx.

◆ AddVolume()

Int_t TGeoManager::AddVolume ( TGeoVolume volume)

Add a volume to the list. Returns index of the volume in list.

Definition at line 673 of file TGeoManager.cxx.

◆ AnimateTracks()

void TGeoManager::AnimateTracks ( Double_t  tmin = 0,
Double_t  tmax = 5E-8,
Int_t  nframes = 200,
Option_t option = "/*" 
)

Draw animation of tracks.

Definition at line 1684 of file TGeoManager.cxx.

◆ BombTranslation()

void TGeoManager::BombTranslation ( const Double_t tr,
Double_t bombtr 
)

Get the new 'bombed' translation vector according current exploded view mode.

Definition at line 970 of file TGeoManager.cxx.

◆ Browse()

void TGeoManager::Browse ( TBrowser b)
virtual

Describe how to browse this object.

Reimplemented from TObject.

Definition at line 926 of file TGeoManager.cxx.

◆ BuildDefaultMaterials()

void TGeoManager::BuildDefaultMaterials ( )

Now just a shortcut for GetElementTable.

Definition at line 3369 of file TGeoManager.cxx.

◆ cd()

Bool_t TGeoManager::cd ( const char *  path = "")
virtual

Browse the tree of nodes starting from fTopNode according to pathname.

Changes the path accordingly.

Definition at line 1565 of file TGeoManager.cxx.

◆ CdDown()

void TGeoManager::CdDown ( Int_t  index)

Make a daughter of current node current.

Can be called only with a valid daughter index (no check). Updates cache accordingly.

Definition at line 1548 of file TGeoManager.cxx.

◆ CdNext()

void TGeoManager::CdNext ( )

Do a cd to the node found next by FindNextBoundary.

Definition at line 1556 of file TGeoManager.cxx.

◆ CdNode()

void TGeoManager::CdNode ( Int_t  nodeid)

Change current path to point to the node having this id.

Node id has to be in range : 0 to fNNodes-1 (no check for performance reasons)

Definition at line 1513 of file TGeoManager.cxx.

◆ CdTop()

void TGeoManager::CdTop ( )

Make top level node the current node.

Updates the cache accordingly. Determine the overlapping state of current node.

Definition at line 1530 of file TGeoManager.cxx.

◆ CdUp()

void TGeoManager::CdUp ( )

Go one level up in geometry.

Updates cache accordingly. Determine the overlapping state of current node.

Definition at line 1539 of file TGeoManager.cxx.

◆ CheckBoundaryErrors()

void TGeoManager::CheckBoundaryErrors ( Int_t  ntracks = 1000000,
Double_t  radius = -1. 
)

Check pushes and pulls needed to cross the next boundary with respect to the position given by FindNextBoundary.

If radius is not mentioned the full bounding box will be sampled.

Definition at line 3501 of file TGeoManager.cxx.

◆ CheckBoundaryReference()

void TGeoManager::CheckBoundaryReference ( Int_t  icheck = -1)

Check the boundary errors reference file created by CheckBoundaryErrors method.

The shape for which the crossing failed is drawn with the starting point in red and the extrapolated point to boundary (+/- failing push/pull) in yellow.

Definition at line 3511 of file TGeoManager.cxx.

◆ CheckGeometry()

void TGeoManager::CheckGeometry ( Option_t option = "")

Perform last checks on the geometry.

Definition at line 3580 of file TGeoManager.cxx.

◆ CheckGeometryFull()

void TGeoManager::CheckGeometryFull ( Int_t  ntracks = 1000000,
Double_t  vx = 0.,
Double_t  vy = 0.,
Double_t  vz = 0.,
Option_t option = "ob" 
)

Geometry checking.

  • if option contains 'o': Optional overlap checkings (by sampling and by mesh).
  • if option contains 'b': Optional boundary crossing check + timing per volume.

STAGE 1: extensive overlap checking by sampling per volume. Stdout need to be checked by user to get report, then TGeoVolume::CheckOverlaps(0.01, "s") can be called for the suspicious volumes.

STAGE 2: normal overlap checking using the shapes mesh - fills the list of overlaps.

STAGE 3: shooting NRAYS rays from VERTEX and counting the total number of crossings per volume (rays propagated from boundary to boundary until geometry exit). Timing computed and results stored in a histo.

STAGE 4: shooting 1 mil. random rays inside EACH volume and calling FindNextBoundary() + Safety() for each call. The timing is normalized by the number of crossings computed at stage 2 and presented as percentage. One can get a picture on which are the most "burned" volumes during transportation from geometry point of view. Another plot of the timing per volume vs. number of daughters is produced.

Definition at line 3560 of file TGeoManager.cxx.

◆ CheckOverlaps()

void TGeoManager::CheckOverlaps ( Double_t  ovlp = 0.1,
Option_t option = "" 
)

Check all geometry for illegal overlaps within a limit OVLP.

Definition at line 3612 of file TGeoManager.cxx.

◆ CheckPath()

Bool_t TGeoManager::CheckPath ( const char *  path) const

Check if a geometry path is valid without changing the state of the current navigator.

Definition at line 1573 of file TGeoManager.cxx.

◆ CheckPoint()

void TGeoManager::CheckPoint ( Double_t  x = 0,
Double_t  y = 0,
Double_t  z = 0,
Option_t option = "" 
)

Classify a given point. See TGeoChecker::CheckPoint().

Definition at line 3519 of file TGeoManager.cxx.

◆ CheckShape()

void TGeoManager::CheckShape ( TGeoShape shape,
Int_t  testNo,
Int_t  nsamples,
Option_t option 
)

Test for shape navigation methods.

Summary for test numbers:

  • 1: DistFromInside/Outside. Sample points inside the shape. Generate directions randomly in cos(theta). Compute DistFromInside and move the point with bigger distance. Compute DistFromOutside back from new point. Plot d-(d1+d2)

Definition at line 3532 of file TGeoManager.cxx.

◆ CleanGarbage()

void TGeoManager::CleanGarbage ( )

Clean temporary volumes and shapes from garbage collection.

Definition at line 1487 of file TGeoManager.cxx.

◆ ClearAttributes()

void TGeoManager::ClearAttributes ( )

Reset all attributes to default ones.

Default attributes for visualization are those defined before closing the geometry.

Definition at line 1338 of file TGeoManager.cxx.

◆ ClearNavigators()

void TGeoManager::ClearNavigators ( )

Clear all navigators.

Definition at line 799 of file TGeoManager.cxx.

◆ ClearOverlaps()

void TGeoManager::ClearOverlaps ( )

Clear the list of overlaps.

Definition at line 1466 of file TGeoManager.cxx.

◆ ClearPhysicalNodes()

void TGeoManager::ClearPhysicalNodes ( Bool_t  mustdelete = kFALSE)

Clear the current list of physical nodes, so that we can start over with a new list.

If MUSTDELETE is true, delete previous nodes.

Definition at line 3303 of file TGeoManager.cxx.

◆ ClearShape()

void TGeoManager::ClearShape ( const TGeoShape shape)

Remove a shape from the list of shapes.

Definition at line 1478 of file TGeoManager.cxx.

◆ ClearThreadData()

void TGeoManager::ClearThreadData ( ) const

Definition at line 865 of file TGeoManager.cxx.

◆ ClearThreadsMap()

void TGeoManager::ClearThreadsMap ( )
static

Clear the current map of threads.

This will be filled again by the calling threads via ThreadId calls.

Definition at line 892 of file TGeoManager.cxx.

◆ ClearTracks()

void TGeoManager::ClearTracks ( )
inline

Definition at line 438 of file TGeoManager.h.

◆ CloseGeometry()

void TGeoManager::CloseGeometry ( Option_t option = "d")

Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-time shapes)building the cache manager, voxelizing all volumes, counting the total number of physical nodes and registering the manager class to the browser.

Definition at line 1360 of file TGeoManager.cxx.

◆ ConvertReflections()

void TGeoManager::ConvertReflections ( )

Convert all reflections in geometry to normal rotations + reflected shapes.

Definition at line 1581 of file TGeoManager.cxx.

◆ CountLevels()

void TGeoManager::CountLevels ( )

Count maximum number of nodes per volume, maximum depth and maximum number of xtru vertices.

Definition at line 1614 of file TGeoManager.cxx.

◆ CountNodes()

Int_t TGeoManager::CountNodes ( const TGeoVolume vol = 0,
Int_t  nlevels = 10000,
Int_t  option = 0 
)

Count the total number of nodes starting from a volume, nlevels down.

Definition at line 1653 of file TGeoManager.cxx.

◆ CreateParallelWorld()

TGeoParallelWorld * TGeoManager::CreateParallelWorld ( const char *  name)

Create a parallel world for prioritised navigation.

This can be populated with physical nodes and can be navigated independently using its API. In case the flag SetUseParallelWorldNav is set, any navigation query in the main geometry is checked against the parallel geometry, which gets priority in case of overlaps with the main geometry volumes.

Definition at line 3992 of file TGeoManager.cxx.

◆ CreateThreadData()

void TGeoManager::CreateThreadData ( ) const

Create thread private data for all geometry objects.

Definition at line 878 of file TGeoManager.cxx.

◆ CrossBoundaryAndLocate()

TGeoNode * TGeoManager::CrossBoundaryAndLocate ( Bool_t  downwards,
TGeoNode skipnode 
)

Cross next boundary and locate within current node The current point must be on the boundary of fCurrentNode.

Definition at line 2515 of file TGeoManager.cxx.

◆ DefaultAngles()

void TGeoManager::DefaultAngles ( )

Set default angles for a given view.

Definition at line 1668 of file TGeoManager.cxx.

◆ DefaultColors()

void TGeoManager::DefaultColors ( )

Set default volume colors according to A of material.

Definition at line 2089 of file TGeoManager.cxx.

◆ DisableInactiveVolumes()

void TGeoManager::DisableInactiveVolumes ( )
inline

Definition at line 390 of file TGeoManager.h.

◆ Division()

TGeoVolume * TGeoManager::Division ( const char *  name,
const char *  mother,
Int_t  iaxis,
Int_t  ndiv,
Double_t  start,
Double_t  step,
Int_t  numed = 0,
Option_t option = "" 
)

Create a new volume by dividing an existing one (GEANT3 like)

Divides MOTHER into NDIV divisions called NAME along axis IAXIS starting at coordinate value START and having size STEP. The created volumes will have tracking media ID=NUMED (if NUMED=0 -> same media as MOTHER) The behavior of the division operation can be triggered using OPTION :

OPTION (case insensitive) :

  • N - divide all range in NDIV cells (same effect as STEP<=0) (GSDVN in G3)
  • NX - divide range starting with START in NDIV cells (GSDVN2 in G3)
  • S - divide all range with given STEP. NDIV is computed and divisions will be centered in full range (same effect as NDIV<=0) (GSDVS, GSDVT in G3)
  • SX - same as DVS, but from START position. (GSDVS2, GSDVT2 in G3)

Definition at line 1136 of file TGeoManager.cxx.

◆ DoBackupState()

void TGeoManager::DoBackupState ( )

Backup the current state without affecting the cache stack.

Definition at line 988 of file TGeoManager.cxx.

◆ DoRestoreState()

void TGeoManager::DoRestoreState ( )

Restore a backed-up state without affecting the cache stack.

Definition at line 996 of file TGeoManager.cxx.

◆ DrawCurrentPoint()

void TGeoManager::DrawCurrentPoint ( Int_t  color = 2)

Draw current point in the same view.

Definition at line 1676 of file TGeoManager.cxx.

◆ DrawPath()

void TGeoManager::DrawPath ( const char *  path,
Option_t option = "" 
)

Draw current path.

Definition at line 1764 of file TGeoManager.cxx.

◆ DrawTracks()

void TGeoManager::DrawTracks ( Option_t option = "")

Draw tracks over the geometry, according to option.

By default, only primaries are drawn. See TGeoTrack::Draw() for additional options.

Definition at line 1747 of file TGeoManager.cxx.

◆ Edit()

void TGeoManager::Edit ( Option_t option = "")
virtual

Append a pad for this geometry.

Definition at line 945 of file TGeoManager.cxx.

◆ EnableInactiveVolumes()

void TGeoManager::EnableInactiveVolumes ( )
inline

Definition at line 391 of file TGeoManager.h.

◆ ExecuteEvent()

void TGeoManager::ExecuteEvent ( Int_t  event,
Int_t  px,
Int_t  py 
)
virtual

Execute mouse actions on this manager.

Reimplemented from TObject.

Definition at line 3689 of file TGeoManager.cxx.

◆ Export()

Int_t TGeoManager::Export ( const char *  filename,
const char *  name = "",
Option_t option = "vg" 
)
virtual

Export this geometry to a file.

  • Case 1: root file or root/xml file if filename end with ".root". The key will be named name By default the geometry is saved without the voxelisation info. Use option 'v" to save the voxelisation info. if filename end with ".xml" a root/xml file is produced. - Case 2: C++ script if filename end with ".C" - Case 3: gdml file if filename end with ".gdml" NOTE that to use this option, the PYTHONPATH must be defined like export PYTHONPATH=$ROOTSYS/lib:$ROOTSYS/geom/gdml

Definition at line 3713 of file TGeoManager.cxx.

◆ FindDuplicateMaterial()

TGeoMaterial * TGeoManager::FindDuplicateMaterial ( const TGeoMaterial mat) const

Find if a given material duplicates an existing one.

Definition at line 2767 of file TGeoManager.cxx.

◆ FindNextBoundary()

TGeoNode * TGeoManager::FindNextBoundary ( Double_t  stepmax = TGeoShape::Big(),
const char *  path = "",
Bool_t  frombdr = kFALSE 
)

Find distance to next boundary and store it in fStep.

Returns node to which this boundary belongs. If PATH is specified, compute only distance to the node to which PATH points. If STEPMAX is specified, compute distance only in case fSafety is smaller than this value. STEPMAX represent the step to be made imposed by other reasons than geometry (usually physics processes). Therefore in this case this method provides the answer to the question : "Is STEPMAX a safe step ?" returning a NULL node and filling fStep with a big number. In case frombdr=kTRUE, the isotropic safety is set to zero.

Note : safety distance for the current point is computed ONLY in case STEPMAX is specified, otherwise users have to call explicitly TGeoManager::Safety() if they want this computed for the current point.

Definition at line 2545 of file TGeoManager.cxx.

◆ FindNextBoundaryAndStep()

TGeoNode * TGeoManager::FindNextBoundaryAndStep ( Double_t  stepmax = TGeoShape::Big(),
Bool_t  compsafe = kFALSE 
)

Compute distance to next boundary within STEPMAX.

If no boundary is found, propagate current point along current direction with fStep=STEPMAX. Otherwise propagate with fStep=SNEXT (distance to boundary) and locate/return the next node.

Definition at line 2526 of file TGeoManager.cxx.

◆ FindNextDaughterBoundary()

TGeoNode * TGeoManager::FindNextDaughterBoundary ( Double_t point,
Double_t dir,
Int_t idaughter,
Bool_t  compmatrix = kFALSE 
)

Computes as fStep the distance to next daughter of the current volume.

The point and direction must be converted in the coordinate system of the current volume. The proposed step limit is fStep.

Definition at line 2556 of file TGeoManager.cxx.

◆ FindNode() [1/2]

TGeoNode * TGeoManager::FindNode ( Bool_t  safe_start = kTRUE)

Returns deepest node containing current point.

Definition at line 2572 of file TGeoManager.cxx.

◆ FindNode() [2/2]

TGeoNode * TGeoManager::FindNode ( Double_t  x,
Double_t  y,
Double_t  z 
)

Returns deepest node containing current point.

Definition at line 2580 of file TGeoManager.cxx.

◆ FindNormal()

Double_t * TGeoManager::FindNormal ( Bool_t  forward = kTRUE)

Computes normal vector to the next surface that will be or was already crossed when propagating on a straight line from a given point/direction.

Returns the normal vector cosines in the MASTER coordinate system. The dot product of the normal and the current direction is positive defined.

Definition at line 2600 of file TGeoManager.cxx.

◆ FindNormalFast()

Double_t * TGeoManager::FindNormalFast ( )

Computes fast normal to next crossed boundary, assuming that the current point is close enough to the boundary.

Works only after calling FindNextBoundary.

Definition at line 2589 of file TGeoManager.cxx.

◆ FindTrackWithId()

TVirtualGeoTrack * TGeoManager::FindTrackWithId ( Int_t  id) const

Search the track hierarchy to find the track with the given id.

if 'primsFirst' is true, then: first tries TGeoManager::GetTrackOfId, then does a recursive search if that fails. this would be faster if the track is somehow known to be a primary

Definition at line 2015 of file TGeoManager.cxx.

◆ FindVolumeFast()

TGeoVolume * TGeoManager::FindVolumeFast ( const char *  name,
Bool_t  multi = kFALSE 
)

Fast search for a named volume. All trailing blanks stripped.

Definition at line 2733 of file TGeoManager.cxx.

◆ GetAlignableEntry() [1/2]

TGeoPNEntry * TGeoManager::GetAlignableEntry ( const char *  name) const

Retrieves an existing alignable object.

Definition at line 3140 of file TGeoManager.cxx.

◆ GetAlignableEntry() [2/2]

TGeoPNEntry * TGeoManager::GetAlignableEntry ( Int_t  index) const

Retrieves an existing alignable object at a given index.

Definition at line 3149 of file TGeoManager.cxx.

◆ GetAlignableEntryByUID()

TGeoPNEntry * TGeoManager::GetAlignableEntryByUID ( Int_t  uid) const

Retrieves an existing alignable object having a preset UID.

Definition at line 3158 of file TGeoManager.cxx.

◆ GetBits()

UChar_t * TGeoManager::GetBits ( )
inline

Definition at line 452 of file TGeoManager.h.

◆ GetBombFactors()

void TGeoManager::GetBombFactors ( Double_t bombx,
Double_t bomby,
Double_t bombz,
Double_t bombr 
) const

Retrieve cartesian and radial bomb factors.

Definition at line 1931 of file TGeoManager.cxx.

◆ GetBombMode()

Int_t TGeoManager::GetBombMode ( ) const
inline

Definition at line 214 of file TGeoManager.h.

◆ GetBorderSurface()

TGeoBorderSurface * TGeoManager::GetBorderSurface ( const char *  name) const

Get border surface with a given name;.

Definition at line 1896 of file TGeoManager.cxx.

◆ GetBranchNames()

void TGeoManager::GetBranchNames ( Int_t names) const

Fill volume names of current branch into an array.

Definition at line 1798 of file TGeoManager.cxx.

◆ GetBranchNumbers()

void TGeoManager::GetBranchNumbers ( Int_t copyNumbers,
Int_t volumeNumbers 
) const

Fill node copy numbers of current branch into an array.

Definition at line 1915 of file TGeoManager.cxx.

◆ GetBranchOnlys()

void TGeoManager::GetBranchOnlys ( Int_t isonly) const

Fill node copy numbers of current branch into an array.

Definition at line 1923 of file TGeoManager.cxx.

◆ GetByteCount()

Int_t TGeoManager::GetByteCount ( Option_t option = 0)
virtual

Get total size of geometry in bytes.

Definition at line 2675 of file TGeoManager.cxx.

◆ GetCache()

TGeoNodeCache * TGeoManager::GetCache ( ) const
inline

Definition at line 578 of file TGeoManager.h.

◆ GetCldir()

const Double_t * TGeoManager::GetCldir ( ) const
inline

Definition at line 525 of file TGeoManager.h.

◆ GetCldirChecked()

const Double_t * TGeoManager::GetCldirChecked ( ) const
inline

Definition at line 524 of file TGeoManager.h.

◆ GetClippingShape()

TGeoShape * TGeoManager::GetClippingShape ( ) const
inline

Definition at line 210 of file TGeoManager.h.

◆ GetCurrentDirection()

const Double_t * TGeoManager::GetCurrentDirection ( ) const
inline

Definition at line 522 of file TGeoManager.h.

◆ GetCurrentMatrix()

TGeoHMatrix * TGeoManager::GetCurrentMatrix ( ) const
inline

Definition at line 516 of file TGeoManager.h.

◆ GetCurrentNavigator()

TGeoNavigator * TGeoManager::GetCurrentNavigator ( ) const

Returns current navigator for the calling thread.

Definition at line 738 of file TGeoManager.cxx.

◆ GetCurrentNode()

TGeoNode * TGeoManager::GetCurrentNode ( ) const
inline

Definition at line 519 of file TGeoManager.h.

◆ GetCurrentNodeId()

Int_t TGeoManager::GetCurrentNodeId ( ) const

Get the unique ID of the current node.

Definition at line 1521 of file TGeoManager.cxx.

◆ GetCurrentPoint()

const Double_t * TGeoManager::GetCurrentPoint ( ) const
inline

Definition at line 521 of file TGeoManager.h.

◆ GetCurrentTrack()

TVirtualGeoTrack * TGeoManager::GetCurrentTrack ( )
inline

Definition at line 395 of file TGeoManager.h.

◆ GetCurrentVolume()

TGeoVolume * TGeoManager::GetCurrentVolume ( ) const
inline

Definition at line 523 of file TGeoManager.h.

◆ GetDefaultUnits()

TGeoManager::EDefaultUnits TGeoManager::GetDefaultUnits ( )
static

Definition at line 4027 of file TGeoManager.cxx.

◆ GetElementTable()

TGeoElementTable * TGeoManager::GetElementTable ( )

Returns material table. Creates it if not existing.

Definition at line 3378 of file TGeoManager.cxx.

◆ GetExportPrecision()

static UInt_t TGeoManager::GetExportPrecision ( )
inlinestatic

Definition at line 479 of file TGeoManager.h.

◆ GetGDMLMatrix()

TGDMLMatrix * TGeoManager::GetGDMLMatrix ( const char *  name) const

Get GDML matrix with a given name;.

Definition at line 1839 of file TGeoManager.cxx.

◆ GetGeomPainter()

TVirtualGeoPainter * TGeoManager::GetGeomPainter ( )

Make a default painter if none present. Returns pointer to it.

Definition at line 2697 of file TGeoManager.cxx.

◆ GetGLMatrix()

TGeoHMatrix * TGeoManager::GetGLMatrix ( ) const
inline

Definition at line 517 of file TGeoManager.h.

◆ GetHMatrix()

TGeoHMatrix * TGeoManager::GetHMatrix ( )

Return stored current matrix (global matrix of the next touched node).

Definition at line 1975 of file TGeoManager.cxx.

◆ GetLastPoint()

const Double_t * TGeoManager::GetLastPoint ( ) const
inline

Definition at line 397 of file TGeoManager.h.

◆ GetLastSafety()

Double_t TGeoManager::GetLastSafety ( ) const
inline

Definition at line 407 of file TGeoManager.h.

◆ GetLastTrack()

TVirtualGeoTrack * TGeoManager::GetLastTrack ( )
inline

Definition at line 396 of file TGeoManager.h.

◆ GetLevel()

Int_t TGeoManager::GetLevel ( ) const
inline

Definition at line 527 of file TGeoManager.h.

◆ GetListOfBorderSurfaces()

TObjArray * TGeoManager::GetListOfBorderSurfaces ( ) const
inline

Definition at line 502 of file TGeoManager.h.

◆ GetListOfGDMLMatrices()

TObjArray * TGeoManager::GetListOfGDMLMatrices ( ) const
inline

Definition at line 499 of file TGeoManager.h.

◆ GetListOfGShapes()

TObjArray * TGeoManager::GetListOfGShapes ( ) const
inline

Definition at line 496 of file TGeoManager.h.

◆ GetListOfGVolumes()

TObjArray * TGeoManager::GetListOfGVolumes ( ) const
inline

Definition at line 494 of file TGeoManager.h.

◆ GetListOfMaterials()

TList * TGeoManager::GetListOfMaterials ( ) const
inline

Definition at line 491 of file TGeoManager.h.

◆ GetListOfMatrices()

TObjArray * TGeoManager::GetListOfMatrices ( ) const
inline

Definition at line 490 of file TGeoManager.h.

◆ GetListOfMedia()

TList * TGeoManager::GetListOfMedia ( ) const
inline

Definition at line 492 of file TGeoManager.h.

◆ GetListOfNavigators()

TGeoNavigatorArray * TGeoManager::GetListOfNavigators ( ) const

Get list of navigators for the calling thread.

Definition at line 756 of file TGeoManager.cxx.

◆ GetListOfNodes()

TObjArray * TGeoManager::GetListOfNodes ( )
inline

Definition at line 487 of file TGeoManager.h.

◆ GetListOfOpticalSurfaces()

TObjArray * TGeoManager::GetListOfOpticalSurfaces ( ) const
inline

Definition at line 500 of file TGeoManager.h.

◆ GetListOfOverlaps()

TObjArray * TGeoManager::GetListOfOverlaps ( )
inline

Definition at line 489 of file TGeoManager.h.

◆ GetListOfPhysicalNodes()

TObjArray * TGeoManager::GetListOfPhysicalNodes ( )
inline

Definition at line 488 of file TGeoManager.h.

◆ GetListOfRegions()

TObjArray * TGeoManager::GetListOfRegions ( ) const
inline

Definition at line 503 of file TGeoManager.h.

◆ GetListOfShapes()

TObjArray * TGeoManager::GetListOfShapes ( ) const
inline

Definition at line 495 of file TGeoManager.h.

◆ GetListOfSkinSurfaces()

TObjArray * TGeoManager::GetListOfSkinSurfaces ( ) const
inline

Definition at line 501 of file TGeoManager.h.

◆ GetListOfTracks()

TObjArray * TGeoManager::GetListOfTracks ( ) const
inline

Definition at line 498 of file TGeoManager.h.

◆ GetListOfUVolumes()

TObjArray * TGeoManager::GetListOfUVolumes ( ) const
inline

Definition at line 497 of file TGeoManager.h.

◆ GetListOfVolumes()

TObjArray * TGeoManager::GetListOfVolumes ( ) const
inline

Definition at line 493 of file TGeoManager.h.

◆ GetMasterVolume()

TGeoVolume * TGeoManager::GetMasterVolume ( ) const
inline

Definition at line 531 of file TGeoManager.h.

◆ GetMaterial() [1/2]

TGeoMaterial * TGeoManager::GetMaterial ( const char *  matname) const

Search for a named material. All trailing blanks stripped.

Definition at line 2783 of file TGeoManager.cxx.

◆ GetMaterial() [2/2]

TGeoMaterial * TGeoManager::GetMaterial ( Int_t  id) const

Return material at position id.

Definition at line 2818 of file TGeoManager.cxx.

◆ GetMaterialIndex()

Int_t TGeoManager::GetMaterialIndex ( const char *  matname) const

Return index of named material.

Definition at line 2828 of file TGeoManager.cxx.

◆ GetMaxDaughters()

Int_t TGeoManager::GetMaxDaughters ( )
static

Return maximum number of daughters of a volume used in the geometry.

Definition at line 1943 of file TGeoManager.cxx.

◆ GetMaxLevel()

Int_t TGeoManager::GetMaxLevel ( ) const
inline

Definition at line 528 of file TGeoManager.h.

◆ GetMaxLevels()

Int_t TGeoManager::GetMaxLevels ( )
static

Return maximum number of levels used in the geometry.

Definition at line 1951 of file TGeoManager.cxx.

◆ GetMaxThreads()

Int_t TGeoManager::GetMaxThreads ( ) const
inline

Definition at line 458 of file TGeoManager.h.

◆ GetMaxVisNodes()

Int_t TGeoManager::GetMaxVisNodes ( ) const
inline

Definition at line 216 of file TGeoManager.h.

◆ GetMaxXtruVert()

Int_t TGeoManager::GetMaxXtruVert ( )
static

Return maximum number of vertices for an xtru shape used.

Definition at line 1959 of file TGeoManager.cxx.

◆ GetMedium() [1/2]

TGeoMedium * TGeoManager::GetMedium ( const char *  medium) const

Search for a named tracking medium. All trailing blanks stripped.

Definition at line 2794 of file TGeoManager.cxx.

◆ GetMedium() [2/2]

TGeoMedium * TGeoManager::GetMedium ( Int_t  numed) const

Search for a tracking medium with a given ID.

Definition at line 2805 of file TGeoManager.cxx.

◆ GetMother()

TGeoNode * TGeoManager::GetMother ( Int_t  up = 1) const
inline

Definition at line 513 of file TGeoManager.h.

◆ GetMotherMatrix()

TGeoHMatrix * TGeoManager::GetMotherMatrix ( Int_t  up = 1) const
inline

Definition at line 514 of file TGeoManager.h.

◆ GetNAlignable()

Int_t TGeoManager::GetNAlignable ( Bool_t  with_uid = kFALSE) const

Retrieves number of PN entries with or without UID.

Definition at line 3169 of file TGeoManager.cxx.

◆ GetNextNode()

TGeoNode * TGeoManager::GetNextNode ( ) const
inline

Definition at line 512 of file TGeoManager.h.

◆ GetNmany()

Int_t TGeoManager::GetNmany ( ) const
inline

Definition at line 199 of file TGeoManager.h.

◆ GetNNodes()

Int_t TGeoManager::GetNNodes ( )
inline

Definition at line 577 of file TGeoManager.h.

◆ GetNode()

TGeoNode * TGeoManager::GetNode ( Int_t  level) const
inline

Definition at line 510 of file TGeoManager.h.

◆ GetNodeId()

Int_t TGeoManager::GetNodeId ( ) const
inline

Definition at line 511 of file TGeoManager.h.

◆ GetNormal()

const Double_t * TGeoManager::GetNormal ( ) const
inline

Definition at line 526 of file TGeoManager.h.

◆ GetNproperties()

Int_t TGeoManager::GetNproperties ( ) const
inline

Definition at line 182 of file TGeoManager.h.

◆ GetNregions()

int TGeoManager::GetNregions ( ) const
inline

Definition at line 574 of file TGeoManager.h.

◆ GetNsegments()

Int_t TGeoManager::GetNsegments ( ) const

Get number of segments approximating circles.

Definition at line 3361 of file TGeoManager.cxx.

◆ GetNtracks()

Int_t TGeoManager::GetNtracks ( ) const
inline

Definition at line 394 of file TGeoManager.h.

◆ GetNumThreads()

Int_t TGeoManager::GetNumThreads ( )
static

Returns number of threads that were set to use geometry.

Definition at line 1967 of file TGeoManager.cxx.

◆ GetOpticalSurface()

TGeoOpticalSurface * TGeoManager::GetOpticalSurface ( const char *  name) const

Get optical surface with a given name;.

Definition at line 1858 of file TGeoManager.cxx.

◆ GetPainter()

TVirtualGeoPainter * TGeoManager::GetPainter ( ) const
inline

Definition at line 213 of file TGeoManager.h.

◆ GetPaintVolume()

TGeoVolume * TGeoManager::GetPaintVolume ( ) const
inline

Definition at line 219 of file TGeoManager.h.

◆ GetParallelWorld()

TGeoParallelWorld * TGeoManager::GetParallelWorld ( ) const
inline

Definition at line 595 of file TGeoManager.h.

◆ GetParentTrackOfId()

TVirtualGeoTrack * TGeoManager::GetParentTrackOfId ( Int_t  id) const

Get parent track with a given ID.

Definition at line 2047 of file TGeoManager.cxx.

◆ GetParticleName()

const char * TGeoManager::GetParticleName ( ) const
inline

Definition at line 263 of file TGeoManager.h.

◆ GetPath()

const char * TGeoManager::GetPath ( ) const

Get path to the current node in the form /node0/node1/...

Definition at line 2667 of file TGeoManager.cxx.

◆ GetPdgName()

const char * TGeoManager::GetPdgName ( Int_t  pdg) const

Get name for given pdg code;.

Definition at line 1806 of file TGeoManager.cxx.

◆ GetPhysicalNode()

TGeoPhysicalNode * TGeoManager::GetPhysicalNode ( Int_t  i) const
inline

Definition at line 534 of file TGeoManager.h.

◆ GetProperty() [1/2]

Double_t TGeoManager::GetProperty ( const char *  name,
Bool_t error = nullptr 
) const

Get a user-defined property.

Definition at line 593 of file TGeoManager.cxx.

◆ GetProperty() [2/2]

Double_t TGeoManager::GetProperty ( size_t  i,
TString name,
Bool_t error = nullptr 
) const

Get a user-defined property from a given index.

Definition at line 607 of file TGeoManager.cxx.

◆ GetRegion()

TGeoRegion * TGeoManager::GetRegion ( int  i)
inline

Definition at line 575 of file TGeoManager.h.

◆ GetRTmode()

Int_t TGeoManager::GetRTmode ( ) const
inline

Definition at line 460 of file TGeoManager.h.

◆ GetSafeDistance()

Double_t TGeoManager::GetSafeDistance ( ) const
inline

Definition at line 406 of file TGeoManager.h.

◆ GetSafeLevel()

Int_t TGeoManager::GetSafeLevel ( ) const

Go upwards the tree until a non-overlapping node.

Definition at line 2081 of file TGeoManager.cxx.

◆ GetSkinSurface()

TGeoSkinSurface * TGeoManager::GetSkinSurface ( const char *  name) const

Get skin surface with a given name;.

Definition at line 1877 of file TGeoManager.cxx.

◆ GetStackLevel()

Int_t TGeoManager::GetStackLevel ( ) const
inline

Definition at line 530 of file TGeoManager.h.

◆ GetStep()

Double_t TGeoManager::GetStep ( ) const
inline

Definition at line 408 of file TGeoManager.h.

◆ GetTmax()

Double_t TGeoManager::GetTmax ( ) const
inline

Definition at line 218 of file TGeoManager.h.

◆ GetTminTmax()

Bool_t TGeoManager::GetTminTmax ( Double_t tmin,
Double_t tmax 
) const

Get time cut for drawing tracks.

Definition at line 3949 of file TGeoManager.cxx.

◆ GetTopNode()

TGeoNode * TGeoManager::GetTopNode ( ) const
inline

Definition at line 533 of file TGeoManager.h.

◆ GetTopVolume()

TGeoVolume * TGeoManager::GetTopVolume ( ) const
inline

Definition at line 532 of file TGeoManager.h.

◆ GetTrack()

TVirtualGeoTrack * TGeoManager::GetTrack ( Int_t  index)
inline

Definition at line 398 of file TGeoManager.h.

◆ GetTrackIndex()

Int_t TGeoManager::GetTrackIndex ( Int_t  id) const

Get index for track id, -1 if not found.

Definition at line 2059 of file TGeoManager.cxx.

◆ GetTrackOfId()

TVirtualGeoTrack * TGeoManager::GetTrackOfId ( Int_t  id) const

Get track with a given ID.

Definition at line 2033 of file TGeoManager.cxx.

◆ GetUID()

Int_t TGeoManager::GetUID ( const char *  volname) const

Retrieve unique id for a volume name. Return -1 if name not found.

Definition at line 2755 of file TGeoManager.cxx.

◆ GetUserPaintVolume()

TGeoVolume * TGeoManager::GetUserPaintVolume ( ) const
inline

Definition at line 220 of file TGeoManager.h.

◆ GetVerboseLevel()

Int_t TGeoManager::GetVerboseLevel ( )
static

Set verbosity level (static function).

  • 0 - suppress messages related to geom-painter visibility level
  • 1 - default value

Definition at line 3799 of file TGeoManager.cxx.

◆ GetVirtualLevel()

Int_t TGeoManager::GetVirtualLevel ( )

Find level of virtuality of current overlapping node (number of levels up having the same tracking media.

Definition at line 2001 of file TGeoManager.cxx.

◆ GetVisDensity()

Double_t TGeoManager::GetVisDensity ( ) const
inline

Definition at line 221 of file TGeoManager.h.

◆ GetVisLevel()

Int_t TGeoManager::GetVisLevel ( ) const

Returns current depth to which geometry is drawn.

Definition at line 1984 of file TGeoManager.cxx.

◆ GetVisOption()

Int_t TGeoManager::GetVisOption ( ) const

Returns current depth to which geometry is drawn.

Definition at line 1992 of file TGeoManager.cxx.

◆ GetVolume() [1/2]

TGeoVolume * TGeoManager::GetVolume ( const char *  name) const

Search for a named volume. All trailing blanks stripped.

Definition at line 2722 of file TGeoManager.cxx.

◆ GetVolume() [2/2]

TGeoVolume * TGeoManager::GetVolume ( Int_t  uid) const
inline

Definition at line 573 of file TGeoManager.h.

◆ GotoSafeLevel()

Bool_t TGeoManager::GotoSafeLevel ( )

Go upwards the tree until a non-overlapping node.

Definition at line 2073 of file TGeoManager.cxx.

◆ Import()

TGeoManager * TGeoManager::Import ( const char *  filename,
const char *  name = "",
Option_t option = "" 
)
static

static function Import a geometry from a gdml or ROOT file

  • Case 1: gdml if filename ends with ".gdml" the foreign geometry described with gdml is imported executing some python scripts in $ROOTSYS/gdml. NOTE that to use this option, the PYTHONPATH must be defined like export PYTHONPATH=$ROOTSYS/lib:$ROOTSYS/gdml
  • Case 2: root file (.root) or root/xml file (.xml) Import in memory from filename the geometry with key=name. if name="" (default), the first TGeoManager object in the file is returned.

Note that this function deletes the current gGeoManager (if one) before importing the new object.

Definition at line 3829 of file TGeoManager.cxx.

◆ Init()

void TGeoManager::Init ( )
private

Initialize manager class.

Definition at line 410 of file TGeoManager.cxx.

◆ InitArrayPNE()

Bool_t TGeoManager::InitArrayPNE ( ) const
private

Initialize PNE array for fast access via index and unique-id.

Definition at line 3932 of file TGeoManager.cxx.

◆ InitTrack() [1/2]

TGeoNode * TGeoManager::InitTrack ( const Double_t point,
const Double_t dir 
)

Initialize current point and current direction vector (normalized) in MARS.

Return corresponding node.

Definition at line 2642 of file TGeoManager.cxx.

◆ InitTrack() [2/2]

TGeoNode * TGeoManager::InitTrack ( Double_t  x,
Double_t  y,
Double_t  z,
Double_t  nx,
Double_t  ny,
Double_t  nz 
)

Initialize current point and current direction vector (normalized) in MARS.

Return corresponding node.

Definition at line 2651 of file TGeoManager.cxx.

◆ InsertPNEId()

Bool_t TGeoManager::InsertPNEId ( Int_t  uid,
Int_t  ientry 
)
private

Insert a PN entry in the sorted array of indexes.

Definition at line 3179 of file TGeoManager.cxx.

◆ InspectState()

void TGeoManager::InspectState ( ) const

Inspects path and all flags for the current state.

Definition at line 2659 of file TGeoManager.cxx.

◆ IsActivityEnabled()

Bool_t TGeoManager::IsActivityEnabled ( ) const
inline

Definition at line 431 of file TGeoManager.h.

◆ IsAnimatingTracks()

Bool_t TGeoManager::IsAnimatingTracks ( ) const
inline

Definition at line 410 of file TGeoManager.h.

◆ IsCheckingOverlaps()

Bool_t TGeoManager::IsCheckingOverlaps ( ) const
inline

Definition at line 411 of file TGeoManager.h.

◆ IsCleaning()

Bool_t TGeoManager::IsCleaning ( ) const
inline

Definition at line 484 of file TGeoManager.h.

◆ IsClosed()

Bool_t TGeoManager::IsClosed ( ) const
inline

Definition at line 305 of file TGeoManager.h.

◆ IsCurrentOverlapping()

Bool_t TGeoManager::IsCurrentOverlapping ( ) const
inline

Definition at line 423 of file TGeoManager.h.

◆ IsDrawingExtra()

Bool_t TGeoManager::IsDrawingExtra ( ) const
inline

Definition at line 225 of file TGeoManager.h.

◆ IsEntering()

Bool_t TGeoManager::IsEntering ( ) const
inline

Definition at line 424 of file TGeoManager.h.

◆ IsExiting()

Bool_t TGeoManager::IsExiting ( ) const
inline

Definition at line 425 of file TGeoManager.h.

◆ IsFolder()

Bool_t TGeoManager::IsFolder ( ) const
inlinevirtual

Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).

Reimplemented from TObject.

Definition at line 202 of file TGeoManager.h.

◆ IsInPhiRange()

Bool_t TGeoManager::IsInPhiRange ( ) const

True if current node is in phi range.

Definition at line 2624 of file TGeoManager.cxx.

◆ IsLocked()

Bool_t TGeoManager::IsLocked ( )
static

Check lock state.

Definition at line 3789 of file TGeoManager.cxx.

◆ IsLoopingVolumes()

Bool_t TGeoManager::IsLoopingVolumes ( ) const
inlineprivate

Definition at line 155 of file TGeoManager.h.

◆ IsMatrixReflection()

Bool_t TGeoManager::IsMatrixReflection ( ) const
inline

Definition at line 413 of file TGeoManager.h.

◆ IsMatrixTransform()

Bool_t TGeoManager::IsMatrixTransform ( ) const
inline

Definition at line 412 of file TGeoManager.h.

◆ IsMultiThread()

Bool_t TGeoManager::IsMultiThread ( ) const
inline

Definition at line 462 of file TGeoManager.h.

◆ IsNodeSelectable()

Bool_t TGeoManager::IsNodeSelectable ( ) const
inline

Definition at line 226 of file TGeoManager.h.

◆ IsNullStep()

Bool_t TGeoManager::IsNullStep ( ) const
inline

Definition at line 430 of file TGeoManager.h.

◆ IsOnBoundary()

Bool_t TGeoManager::IsOnBoundary ( ) const
inline

Definition at line 429 of file TGeoManager.h.

◆ IsOutside()

Bool_t TGeoManager::IsOutside ( ) const
inline

Definition at line 428 of file TGeoManager.h.

◆ IsParallelWorldNav()

Bool_t TGeoManager::IsParallelWorldNav ( ) const
inline

Definition at line 597 of file TGeoManager.h.

◆ IsSameLocation() [1/2]

Bool_t TGeoManager::IsSameLocation ( ) const
inline

Definition at line 415 of file TGeoManager.h.

◆ IsSameLocation() [2/2]

Bool_t TGeoManager::IsSameLocation ( Double_t  x,
Double_t  y,
Double_t  z,
Bool_t  change = kFALSE 
)

Checks if point (x,y,z) is still in the current node.

Definition at line 2608 of file TGeoManager.cxx.

◆ IsSamePoint()

Bool_t TGeoManager::IsSamePoint ( Double_t  x,
Double_t  y,
Double_t  z 
) const

Check if a new point with given coordinates is the same as the last located one.

Definition at line 2616 of file TGeoManager.cxx.

◆ IsStartSafe()

Bool_t TGeoManager::IsStartSafe ( ) const
inline

Definition at line 417 of file TGeoManager.h.

◆ IsStepEntering()

Bool_t TGeoManager::IsStepEntering ( ) const
inline

Definition at line 426 of file TGeoManager.h.

◆ IsStepExiting()

Bool_t TGeoManager::IsStepExiting ( ) const
inline

Definition at line 427 of file TGeoManager.h.

◆ IsStreamingVoxels()

Bool_t TGeoManager::IsStreamingVoxels ( ) const
inline

Definition at line 483 of file TGeoManager.h.

◆ IsVisLeaves()

Bool_t TGeoManager::IsVisLeaves ( ) const
inline

Definition at line 227 of file TGeoManager.h.

◆ LocalToMaster()

void TGeoManager::LocalToMaster ( const Double_t local,
Double_t master 
) const
inline

Definition at line 543 of file TGeoManager.h.

◆ LocalToMasterBomb()

void TGeoManager::LocalToMasterBomb ( const Double_t local,
Double_t master 
) const
inline

Definition at line 545 of file TGeoManager.h.

◆ LocalToMasterVect()

void TGeoManager::LocalToMasterVect ( const Double_t local,
Double_t master 
) const
inline

Definition at line 544 of file TGeoManager.h.

◆ LockDefaultUnits()

Bool_t TGeoManager::LockDefaultUnits ( Bool_t  new_value)
static

Definition at line 4021 of file TGeoManager.cxx.

◆ LockGeometry()

void TGeoManager::LockGeometry ( )
static

Lock current geometry so that no other geometry can be imported.

Definition at line 3773 of file TGeoManager.cxx.

◆ MakeAlignablePN() [1/2]

TGeoPhysicalNode * TGeoManager::MakeAlignablePN ( const char *  name)

Make a physical node from the path pointed by an alignable object with a given name.

Definition at line 3236 of file TGeoManager.cxx.

◆ MakeAlignablePN() [2/2]

TGeoPhysicalNode * TGeoManager::MakeAlignablePN ( TGeoPNEntry entry)

Make a physical node from the path pointed by a given alignable object.

Definition at line 3249 of file TGeoManager.cxx.

◆ MakeArb8()

TGeoVolume * TGeoManager::MakeArb8 ( const char *  name,
TGeoMedium medium,
Double_t  dz,
Double_t vertices = 0 
)

Make an TGeoArb8 volume.

Definition at line 2921 of file TGeoManager.cxx.

◆ MakeBox()

TGeoVolume * TGeoManager::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.

Definition at line 2930 of file TGeoManager.cxx.

◆ MakeCone()

TGeoVolume * TGeoManager::MakeCone ( const char *  name,
TGeoMedium medium,
Double_t  dz,
Double_t  rmin1,
Double_t  rmax1,
Double_t  rmin2,
Double_t  rmax2 
)

Make in one step a volume pointing to a cone shape with given medium.

Definition at line 3025 of file TGeoManager.cxx.

◆ MakeCons()

TGeoVolume * TGeoManager::MakeCons ( const char *  name,
TGeoMedium medium,
Double_t  dz,
Double_t  rmin1,
Double_t  rmax1,
Double_t  rmin2,
Double_t  rmax2,
Double_t  phi1,
Double_t  phi2 
)

Make in one step a volume pointing to a cone segment shape with given medium.

Definition at line 3035 of file TGeoManager.cxx.

◆ MakeCtub()

TGeoVolume * TGeoManager::MakeCtub ( const char *  name,
TGeoMedium medium,
Double_t  rmin,
Double_t  rmax,
Double_t  dz,
Double_t  phi1,
Double_t  phi2,
Double_t  lx,
Double_t  ly,
Double_t  lz,
Double_t  tx,
Double_t  ty,
Double_t  tz 
)

Make in one step a volume pointing to a tube segment shape with given medium.

Definition at line 3015 of file TGeoManager.cxx.

◆ MakeEltu()

TGeoVolume * TGeoManager::MakeEltu ( const char *  name,
TGeoMedium medium,
Double_t  a,
Double_t  b,
Double_t  dz 
)

Make in one step a volume pointing to a tube shape with given medium.

Definition at line 2988 of file TGeoManager.cxx.

◆ MakeGtra()

TGeoVolume * TGeoManager::MakeGtra ( const char *  name,
TGeoMedium medium,
Double_t  dz,
Double_t  theta,
Double_t  phi,
Double_t  twist,
Double_t  h1,
Double_t  bl1,
Double_t  tl1,
Double_t  alpha1,
Double_t  h2,
Double_t  bl2,
Double_t  tl2,
Double_t  alpha2 
)

Make in one step a volume pointing to a twisted trapezoid shape with given medium.

Definition at line 3094 of file TGeoManager.cxx.

◆ MakeHype()

TGeoVolume * TGeoManager::MakeHype ( const char *  name,
TGeoMedium medium,
Double_t  rin,
Double_t  stin,
Double_t  rout,
Double_t  stout,
Double_t  dz 
)

Make in one step a volume pointing to a tube shape with given medium.

Definition at line 2997 of file TGeoManager.cxx.

◆ MakePara()

TGeoVolume * TGeoManager::MakePara ( const char *  name,
TGeoMedium medium,
Double_t  dx,
Double_t  dy,
Double_t  dz,
Double_t  alpha,
Double_t  theta,
Double_t  phi 
)

Make in one step a volume pointing to a parallelepiped shape with given medium.

Definition at line 2939 of file TGeoManager.cxx.

◆ MakeParaboloid()

TGeoVolume * TGeoManager::MakeParaboloid ( const char *  name,
TGeoMedium medium,
Double_t  rlo,
Double_t  rhi,
Double_t  dz 
)

Make in one step a volume pointing to a tube shape with given medium.

Definition at line 3006 of file TGeoManager.cxx.

◆ MakePcon()

TGeoVolume * TGeoManager::MakePcon ( const char *  name,
TGeoMedium medium,
Double_t  phi,
Double_t  dphi,
Int_t  nz 
)

Make in one step a volume pointing to a polycone shape with given medium.

Definition at line 3046 of file TGeoManager.cxx.

◆ MakePgon()

TGeoVolume * TGeoManager::MakePgon ( const char *  name,
TGeoMedium medium,
Double_t  phi,
Double_t  dphi,
Int_t  nedges,
Int_t  nz 
)

Make in one step a volume pointing to a polygone shape with given medium.

Definition at line 3055 of file TGeoManager.cxx.

◆ MakePhysicalNode()

TGeoPhysicalNode * TGeoManager::MakePhysicalNode ( const char *  path = 0)

Makes a physical node corresponding to a path.

If PATH is not specified, makes physical node matching current modeller state.

Definition at line 3270 of file TGeoManager.cxx.

◆ MakeSphere()

TGeoVolume * TGeoManager::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.

Definition at line 2949 of file TGeoManager.cxx.

◆ MakeTorus()

TGeoVolume * TGeoManager::MakeTorus ( const char *  name,
TGeoMedium medium,
Double_t  r,
Double_t  rmin,
Double_t  rmax,
Double_t  phi1 = 0,
Double_t  dphi = 360 
)

Make in one step a volume pointing to a torus shape with given medium.

Definition at line 2959 of file TGeoManager.cxx.

◆ MakeTrack()

TVirtualGeoTrack * TGeoManager::MakeTrack ( Int_t  id,
Int_t  pdgcode,
TObject particle 
)

Makes a primary track but do not attach it to the list of tracks.

The track can be attached as daughter to another one with TVirtualGeoTrack::AddTrack

Definition at line 664 of file TGeoManager.cxx.

◆ MakeTrap()

TGeoVolume * TGeoManager::MakeTrap ( const char *  name,
TGeoMedium medium,
Double_t  dz,
Double_t  theta,
Double_t  phi,
Double_t  h1,
Double_t  bl1,
Double_t  tl1,
Double_t  alpha1,
Double_t  h2,
Double_t  bl2,
Double_t  tl2,
Double_t  alpha2 
)

Make in one step a volume pointing to a trapezoid shape with given medium.

Definition at line 3083 of file TGeoManager.cxx.

◆ MakeTrd1()

TGeoVolume * TGeoManager::MakeTrd1 ( const char *  name,
TGeoMedium medium,
Double_t  dx1,
Double_t  dx2,
Double_t  dy,
Double_t  dz 
)

Make in one step a volume pointing to a TGeoTrd1 shape with given medium.

Definition at line 3064 of file TGeoManager.cxx.

◆ MakeTrd2()

TGeoVolume * TGeoManager::MakeTrd2 ( const char *  name,
TGeoMedium medium,
Double_t  dx1,
Double_t  dx2,
Double_t  dy1,
Double_t  dy2,
Double_t  dz 
)

Make in one step a volume pointing to a TGeoTrd2 shape with given medium.

Definition at line 3073 of file TGeoManager.cxx.

◆ MakeTube()

TGeoVolume * TGeoManager::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.

Definition at line 2968 of file TGeoManager.cxx.

◆ MakeTubs()

TGeoVolume * TGeoManager::MakeTubs ( const char *  name,
TGeoMedium medium,
Double_t  rmin,
Double_t  rmax,
Double_t  dz,
Double_t  phiStart,
Double_t  phiEnd 
)

Make in one step a volume pointing to a tube segment shape with given medium.

The segment will be from phiStart to phiEnd, the angles are expressed in degree

Definition at line 2978 of file TGeoManager.cxx.

◆ MakeVolumeAssembly()

TGeoVolumeAssembly * TGeoManager::MakeVolumeAssembly ( const char *  name)

Make an assembly of volumes.

Definition at line 3312 of file TGeoManager.cxx.

◆ MakeVolumeMulti()

TGeoVolumeMulti * TGeoManager::MakeVolumeMulti ( const char *  name,
TGeoMedium medium 
)

Make a TGeoVolumeMulti handling a list of volumes.

Definition at line 3320 of file TGeoManager.cxx.

◆ MakeXtru()

TGeoVolume * TGeoManager::MakeXtru ( const char *  name,
TGeoMedium medium,
Int_t  nz 
)

Make a TGeoXtru-shaped volume with nz planes.

Definition at line 3105 of file TGeoManager.cxx.

◆ MasterToLocal()

void TGeoManager::MasterToLocal ( const Double_t master,
Double_t local 
) const
inline

Definition at line 546 of file TGeoManager.h.

◆ MasterToLocalBomb()

void TGeoManager::MasterToLocalBomb ( const Double_t master,
Double_t local 
) const
inline

Definition at line 548 of file TGeoManager.h.

◆ MasterToLocalVect()

void TGeoManager::MasterToLocalVect ( const Double_t master,
Double_t local 
) const
inline

Definition at line 547 of file TGeoManager.h.

◆ MasterToTop()

void TGeoManager::MasterToTop ( const Double_t master,
Double_t top 
) const

Convert coordinates from master volume frame to top.

Definition at line 3972 of file TGeoManager.cxx.

◆ Material()

TGeoMaterial * TGeoManager::Material ( const char *  name,
Double_t  a,
Double_t  z,
Double_t  dens,
Int_t  uid,
Double_t  radlen = 0,
Double_t  intlen = 0 
)

Create material with given A, Z and density, having an unique id.

Definition at line 1164 of file TGeoManager.cxx.

◆ Matrix()

void TGeoManager::Matrix ( Int_t  index,
Double_t  theta1,
Double_t  phi1,
Double_t  theta2,
Double_t  phi2,
Double_t  theta3,
Double_t  phi3 
)

Create rotation matrix named 'mat<index>'.

  • index rotation matrix number
  • theta1 polar angle for axis X
  • phi1 azimuthal angle for axis X
  • theta2 polar angle for axis Y
  • phi2 azimuthal angle for axis Y
  • theta3 polar angle for axis Z
  • phi3 azimuthal angle for axis Z

Definition at line 1154 of file TGeoManager.cxx.

◆ Medium()

TGeoMedium * TGeoManager::Medium ( const char *  name,
Int_t  numed,
Int_t  nmat,
Int_t  isvol,
Int_t  ifield,
Double_t  fieldm,
Double_t  tmaxfd,
Double_t  stemax,
Double_t  deemax,
Double_t  epsil,
Double_t  stmin 
)

Create tracking medium.

  • numed tracking medium number assigned
  • name tracking medium name
  • nmat material number
  • isvol sensitive volume flag
  • ifield magnetic field
  • fieldm max. field value (kilogauss)
  • tmaxfd max. angle due to field (deg/step)
  • stemax max. step allowed
  • deemax max. fraction of energy lost in a step
  • epsil tracking precision (cm)
  • stmin min. step due to continuous processes (cm)
  • ifield = 0 if no magnetic field; ifield = -1 if user decision in guswim;
  • ifield = 1 if tracking performed with g3rkuta; ifield = 2 if tracking performed with g3helix; ifield = 3 if tracking performed with g3helx3.

Definition at line 1210 of file TGeoManager.cxx.

◆ Mixture() [1/2]

TGeoMaterial * TGeoManager::Mixture ( const char *  name,
Double_t a,
Double_t z,
Double_t  dens,
Int_t  nelem,
Double_t wmat,
Int_t  uid 
)

Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A,Z and WMAT, having an unique id.

Definition at line 1184 of file TGeoManager.cxx.

◆ Mixture() [2/2]

TGeoMaterial * TGeoManager::Mixture ( const char *  name,
Float_t a,
Float_t z,
Double_t  dens,
Int_t  nelem,
Float_t wmat,
Int_t  uid 
)

Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A,Z and WMAT, having an unique id.

Definition at line 1174 of file TGeoManager.cxx.

◆ ModifiedPad()

void TGeoManager::ModifiedPad ( ) const

Send "Modified" signal to painter.

Definition at line 2912 of file TGeoManager.cxx.

◆ Node() [1/2]

void TGeoManager::Node ( const char *  name,
Int_t  nr,
const char *  mother,
Double_t  x,
Double_t  y,
Double_t  z,
Int_t  irot,
Bool_t  isOnly,
Double_t upar,
Int_t  npar = 0 
)

Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called <mother> (gspos).

The relative matrix is made of : a translation (x,y,z) and a rotation matrix named <matIROT>. In case npar>0, create the volume to be positioned in mother, according its actual parameters (gsposp).

  • NAME Volume name
  • NUMBER Copy number of the volume
  • MOTHER Mother volume name
  • X X coord. of the volume in mother ref. sys.
  • Y Y coord. of the volume in mother ref. sys.
  • Z Z coord. of the volume in mother ref. sys.
  • IROT Rotation matrix number w.r.t. mother ref. sys.
  • ISONLY ONLY/MANY flag

Definition at line 1255 of file TGeoManager.cxx.

◆ Node() [2/2]

void TGeoManager::Node ( const char *  name,
Int_t  nr,
const char *  mother,
Double_t  x,
Double_t  y,
Double_t  z,
Int_t  irot,
Bool_t  isOnly,
Float_t upar,
Int_t  npar = 0 
)

Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called <mother> (gspos).

The relative matrix is made of : a translation (x,y,z) and a rotation matrix named <matIROT>. In case npar>0, create the volume to be positioned in mother, according its actual parameters (gsposp).

  • NAME Volume name
  • NUMBER Copy number of the volume
  • MOTHER Mother volume name
  • X X coord. of the volume in mother ref. sys.
  • Y Y coord. of the volume in mother ref. sys.
  • Z Z coord. of the volume in mother ref. sys.
  • IROT Rotation matrix number w.r.t. mother ref. sys.
  • ISONLY ONLY/MANY flag

Definition at line 1233 of file TGeoManager.cxx.

◆ operator=()

TGeoManager & TGeoManager::operator= ( const TGeoManager )
protecteddelete

◆ OptimizeVoxels()

void TGeoManager::OptimizeVoxels ( const char *  filename = "tgeovox.C")

Optimize voxelization type for all volumes. Save best choice in a macro.

Definition at line 2283 of file TGeoManager.cxx.

◆ Parse()

Int_t TGeoManager::Parse ( const char *  expr,
TString expr1,
TString expr2,
TString expr3 
)
static

Parse a string boolean expression and do a syntax check.

Find top level boolean operator and returns its type. Fill the two substrings to which this operator applies. The returned integer is :

  • -1 : parse error
  • 0 : no boolean operator
  • 1 : union - represented as '+' in expression
  • 2 : difference (subtraction) - represented as '-' in expression
  • 3 : intersection - represented as '*' in expression. Parentheses should be used to avoid ambiguities. For instance :
  • A+B-C will be interpreted as (A+B)-C which is not the same as A+(B-C) eliminate not needed parentheses

Definition at line 2337 of file TGeoManager.cxx.

◆ PopDummy()

void TGeoManager::PopDummy ( Int_t  ipop = 9999)
inline

Definition at line 591 of file TGeoManager.h.

◆ PopPath() [1/2]

Bool_t TGeoManager::PopPath ( )
inline

Definition at line 586 of file TGeoManager.h.

◆ PopPath() [2/2]

Bool_t TGeoManager::PopPath ( Int_t  index)
inline

Definition at line 587 of file TGeoManager.h.

◆ PopPoint() [1/2]

Bool_t TGeoManager::PopPoint ( )
inline

Definition at line 589 of file TGeoManager.h.

◆ PopPoint() [2/2]

Bool_t TGeoManager::PopPoint ( Int_t  index)
inline

Definition at line 590 of file TGeoManager.h.

◆ PrintOverlaps()

void TGeoManager::PrintOverlaps ( ) const

Prints the current list of overlaps.

Definition at line 3624 of file TGeoManager.cxx.

◆ PushPath()

Int_t TGeoManager::PushPath ( Int_t  startlevel = 0)
inline

Definition at line 585 of file TGeoManager.h.

◆ PushPoint()

Int_t TGeoManager::PushPoint ( Int_t  startlevel = 0)
inline

Definition at line 588 of file TGeoManager.h.

◆ RandomPoints()

void TGeoManager::RandomPoints ( const TGeoVolume vol,
Int_t  npoints = 10000,
Option_t option = "" 
)

Draw random points in the bounding box of a volume.

Definition at line 1774 of file TGeoManager.cxx.

◆ RandomRays()

void TGeoManager::RandomRays ( Int_t  nrays = 1000,
Double_t  startx = 0,
Double_t  starty = 0,
Double_t  startz = 0,
const char *  target_vol = 0,
Bool_t  check_norm = kFALSE 
)

Randomly shoot nrays and plot intersections with surfaces for current top node.

Definition at line 2847 of file TGeoManager.cxx.

◆ RefreshPhysicalNodes()

void TGeoManager::RefreshPhysicalNodes ( Bool_t  lock = kTRUE)

Refresh physical nodes to reflect the actual geometry paths after alignment was applied.

Optionally locks physical nodes (default).

Definition at line 3290 of file TGeoManager.cxx.

◆ RegisterMatrix()

void TGeoManager::RegisterMatrix ( const TGeoMatrix matrix)

Register a matrix to the list of matrices.

It will be cleaned-up at the destruction TGeoManager.

Definition at line 1005 of file TGeoManager.cxx.

◆ RemoveMaterial()

void TGeoManager::RemoveMaterial ( Int_t  index)

Remove material at given index.

Definition at line 2855 of file TGeoManager.cxx.

◆ RemoveNavigator()

void TGeoManager::RemoveNavigator ( const TGeoNavigator nav)

Clear a single navigator.

Definition at line 815 of file TGeoManager.cxx.

◆ ReplaceVolume()

Int_t TGeoManager::ReplaceVolume ( TGeoVolume vorig,
TGeoVolume vnew 
)

Replaces all occurrences of VORIG with VNEW in the geometry tree.

The volume VORIG is not replaced from the list of volumes, but all node referencing it will reference VNEW instead. Returns number of occurrences changed.

Definition at line 1015 of file TGeoManager.cxx.

◆ ResetState()

void TGeoManager::ResetState ( )

Reset current state flags.

Definition at line 2564 of file TGeoManager.cxx.

◆ ResetUserData()

void TGeoManager::ResetUserData ( )

Sets all pointers TGeoVolume::fField to NULL.

User data becomes decoupled from geometry. Deletion has to be managed by users.

Definition at line 2865 of file TGeoManager.cxx.

◆ RestoreMasterVolume()

void TGeoManager::RestoreMasterVolume ( )

Restore the master volume of the geometry.

Definition at line 2884 of file TGeoManager.cxx.

◆ Safety()

Double_t TGeoManager::Safety ( Bool_t  inside = kFALSE)

Compute safe distance from the current point.

This represent the distance from POINT to the closest boundary.

Definition at line 2127 of file TGeoManager.cxx.

◆ SamplePoints()

TGeoNode * TGeoManager::SamplePoints ( Int_t  npoints,
Double_t dist,
Double_t  epsil = 1E-5,
const char *  g3path = "" 
)

shoot npoints randomly in a box of 1E-5 around current point.

return minimum distance to points outside

Definition at line 3400 of file TGeoManager.cxx.

◆ SaveAttributes()

void TGeoManager::SaveAttributes ( const char *  filename = "tgeoatt.C")

Save current attributes in a macro.

Definition at line 2450 of file TGeoManager.cxx.

◆ SearchNode()

TGeoNode * TGeoManager::SearchNode ( Bool_t  downwards = kFALSE,
const TGeoNode skipnode = 0 
)

Returns the deepest node containing fPoint, which must be set a priori.

Definition at line 2506 of file TGeoManager.cxx.

◆ SelectTrackingMedia()

void TGeoManager::SelectTrackingMedia ( )

Define different tracking media.

Definition at line 3457 of file TGeoManager.cxx.

◆ SetAlignableEntry()

TGeoPNEntry * TGeoManager::SetAlignableEntry ( const char *  unique_name,
const char *  path,
Int_t  uid = -1 
)

Creates an alignable object with unique name corresponding to a path and adds it to the list of alignables.

An optional unique ID can be provided, in which case PN entries can be searched fast by uid.

Definition at line 3115 of file TGeoManager.cxx.

◆ SetAllIndex()

void TGeoManager::SetAllIndex ( )

Assigns uid's for all materials,media and matrices.

Definition at line 1294 of file TGeoManager.cxx.

◆ SetAnimateTracks()

void TGeoManager::SetAnimateTracks ( Bool_t  flag = kTRUE)
inline

Definition at line 580 of file TGeoManager.h.

◆ SetBombFactors()

void TGeoManager::SetBombFactors ( Double_t  bombx = 1.3,
Double_t  bomby = 1.3,
Double_t  bombz = 1.3,
Double_t  bombr = 1.3 
)

Set factors that will "bomb" all translations in cartesian and cylindrical coordinates.

Definition at line 2171 of file TGeoManager.cxx.

◆ SetCheckedNode()

void TGeoManager::SetCheckedNode ( TGeoNode node)

Assign a given node to be checked for overlaps. Any other overlaps will be ignored.

Definition at line 2213 of file TGeoManager.cxx.

◆ SetCheckingOverlaps()

void TGeoManager::SetCheckingOverlaps ( Bool_t  flag = kTRUE)
inline

Definition at line 418 of file TGeoManager.h.

◆ SetCldirChecked()

void TGeoManager::SetCldirChecked ( Double_t dir)
inline

Definition at line 540 of file TGeoManager.h.

◆ SetClipping()

void TGeoManager::SetClipping ( Bool_t  flag = kTRUE)
inline

Definition at line 230 of file TGeoManager.h.

◆ SetClippingShape()

void TGeoManager::SetClippingShape ( TGeoShape clip)

Set a user-defined shape as clipping for ray tracing.

Definition at line 2179 of file TGeoManager.cxx.

◆ SetCurrentDirection() [1/2]

void TGeoManager::SetCurrentDirection ( Double_t dir)
inline

Definition at line 538 of file TGeoManager.h.

◆ SetCurrentDirection() [2/2]

void TGeoManager::SetCurrentDirection ( Double_t  nx,
Double_t  ny,
Double_t  nz 
)
inline

Definition at line 539 of file TGeoManager.h.

◆ SetCurrentNavigator()

Bool_t TGeoManager::SetCurrentNavigator ( Int_t  index)

Switch to another existing navigator for the calling thread.

Definition at line 768 of file TGeoManager.cxx.

◆ SetCurrentPoint() [1/2]

void TGeoManager::SetCurrentPoint ( Double_t point)
inline

Definition at line 535 of file TGeoManager.h.

◆ SetCurrentPoint() [2/2]

void TGeoManager::SetCurrentPoint ( Double_t  x,
Double_t  y,
Double_t  z 
)
inline

Definition at line 536 of file TGeoManager.h.

◆ SetCurrentTrack() [1/2]

void TGeoManager::SetCurrentTrack ( Int_t  i)
inline

Definition at line 392 of file TGeoManager.h.

◆ SetCurrentTrack() [2/2]

void TGeoManager::SetCurrentTrack ( TVirtualGeoTrack track)
inline

Definition at line 393 of file TGeoManager.h.

◆ SetDefaultUnits()

void TGeoManager::SetDefaultUnits ( EDefaultUnits  new_value)
static

Definition at line 4032 of file TGeoManager.cxx.

◆ SetDrawExtraPaths()

void TGeoManager::SetDrawExtraPaths ( Bool_t  flag = kTRUE)
inline

Definition at line 241 of file TGeoManager.h.

◆ SetExplodedView()

void TGeoManager::SetExplodedView ( Int_t  iopt = 0)

Set type of exploding view (see TGeoPainter::SetExplodedView())

Definition at line 3328 of file TGeoManager.cxx.

◆ SetExportPrecision()

static void TGeoManager::SetExportPrecision ( UInt_t  prec)
inlinestatic

Definition at line 478 of file TGeoManager.h.

◆ SetLastPoint()

void TGeoManager::SetLastPoint ( Double_t  x,
Double_t  y,
Double_t  z 
)
inline

Definition at line 537 of file TGeoManager.h.

◆ SetLoopVolumes()

void TGeoManager::SetLoopVolumes ( Bool_t  flag = kTRUE)
inlineprivate

Definition at line 159 of file TGeoManager.h.

◆ SetMatrixReflection()

void TGeoManager::SetMatrixReflection ( Bool_t  flag = kTRUE)
inline

Definition at line 421 of file TGeoManager.h.

◆ SetMatrixTransform()

void TGeoManager::SetMatrixTransform ( Bool_t  on = kTRUE)
inline

Definition at line 420 of file TGeoManager.h.

◆ SetMaxThreads()

void TGeoManager::SetMaxThreads ( Int_t  nthreads)

Set maximum number of threads for navigation.

Definition at line 836 of file TGeoManager.cxx.

◆ SetMaxVisNodes()

void TGeoManager::SetMaxVisNodes ( Int_t  maxnodes = 10000)

set the maximum number of visible nodes.

Definition at line 2192 of file TGeoManager.cxx.

◆ SetNavigatorsLock()

void TGeoManager::SetNavigatorsLock ( Bool_t  flag)
static

Set the lock for navigators.

Definition at line 791 of file TGeoManager.cxx.

◆ SetNmeshPoints()

void TGeoManager::SetNmeshPoints ( Int_t  npoints = 1000)

Set the number of points to be generated on the shape outline when checking for overlaps.

Definition at line 2221 of file TGeoManager.cxx.

◆ SetNodeSelectable()

void TGeoManager::SetNodeSelectable ( Bool_t  flag = kTRUE)
inline

Definition at line 242 of file TGeoManager.h.

◆ SetNsegments()

void TGeoManager::SetNsegments ( Int_t  nseg)

Set number of segments for approximating circles in drawing.

Definition at line 3351 of file TGeoManager.cxx.

◆ SetOutside()

void TGeoManager::SetOutside ( Bool_t  flag = kTRUE)
inline

Definition at line 432 of file TGeoManager.h.

◆ SetPaintVolume()

void TGeoManager::SetPaintVolume ( TGeoVolume vol)
inline

Definition at line 237 of file TGeoManager.h.

◆ SetParticleName()

void TGeoManager::SetParticleName ( const char *  pname)
inline

Definition at line 262 of file TGeoManager.h.

◆ SetPdgName()

void TGeoManager::SetPdgName ( Int_t  pdg,
const char *  name 
)

Set a name for a particle having a given pdg.

Definition at line 1819 of file TGeoManager.cxx.

◆ SetPhiRange()

void TGeoManager::SetPhiRange ( Double_t  phimin = 0.,
Double_t  phimax = 360. 
)

Set cut phi range.

Definition at line 3337 of file TGeoManager.cxx.

◆ SetRTmode()

void TGeoManager::SetRTmode ( Int_t  mode)

Change raytracing mode.

Definition at line 2875 of file TGeoManager.cxx.

◆ SetStartSafe()

void TGeoManager::SetStartSafe ( Bool_t  flag = kTRUE)
inline

Definition at line 419 of file TGeoManager.h.

◆ SetStep()

void TGeoManager::SetStep ( Double_t  step)
inline

Definition at line 422 of file TGeoManager.h.

◆ SetTminTmax()

void TGeoManager::SetTminTmax ( Double_t  tmin = 0,
Double_t  tmax = 999 
)

Set time cut interval for drawing tracks.

If called with no arguments, time cut will be disabled.

Definition at line 3960 of file TGeoManager.cxx.

◆ SetTopVisible()

void TGeoManager::SetTopVisible ( Bool_t  vis = kTRUE)

make top volume visible on screen

Definition at line 2205 of file TGeoManager.cxx.

◆ SetTopVolume()

void TGeoManager::SetTopVolume ( TGeoVolume vol)

Set the top volume and corresponding node as starting point of the geometry.

Definition at line 3409 of file TGeoManager.cxx.

◆ SetUseParallelWorldNav()

void TGeoManager::SetUseParallelWorldNav ( Bool_t  flag)

Activate/deactivate usage of parallel world navigation.

Can only be done if there is a parallel world. Activating navigation will automatically close the parallel geometry.

Definition at line 4003 of file TGeoManager.cxx.

◆ SetUserPaintVolume()

void TGeoManager::SetUserPaintVolume ( TGeoVolume vol)
inline

Definition at line 238 of file TGeoManager.h.

◆ SetVerboseLevel()

void TGeoManager::SetVerboseLevel ( Int_t  vl)
static

Return current verbosity level (static function).

Definition at line 3807 of file TGeoManager.cxx.

◆ SetVisDensity()

void TGeoManager::SetVisDensity ( Double_t  density = 0.01)

Set density threshold.

Volumes with densities lower than this become transparent.

Definition at line 2251 of file TGeoManager.cxx.

◆ SetVisibility()

void TGeoManager::SetVisibility ( TObject obj,
Bool_t  vis 
)

Set visibility for a volume.

Definition at line 953 of file TGeoManager.cxx.

◆ SetVisLevel()

void TGeoManager::SetVisLevel ( Int_t  level = 3)

set default level down to which visualization is performed

Definition at line 2260 of file TGeoManager.cxx.

◆ SetVisOption()

void TGeoManager::SetVisOption ( Int_t  option = 0)

set drawing mode :

  • option=0 (default) all nodes drawn down to vislevel
  • option=1 leaves and nodes at vislevel drawn
  • option=2 path is drawn
  • option=4 visibility changed

Definition at line 2233 of file TGeoManager.cxx.

◆ SetVolumeAttribute()

void TGeoManager::SetVolumeAttribute ( const char *  name,
const char *  att,
Int_t  val 
)

Set volume attributes in G3 style.

Definition at line 2135 of file TGeoManager.cxx.

◆ SizeOf()

ULong_t TGeoManager::SizeOf ( const TGeoNode node,
Option_t option 
)
virtual

computes the total size in bytes of the branch starting with node.

The option can specify if all the branch has to be parsed or only the node

Definition at line 3665 of file TGeoManager.cxx.

◆ SortOverlaps()

void TGeoManager::SortOverlaps ( )

Sort overlaps by decreasing overlap distance. Extrusions comes first.

Definition at line 2275 of file TGeoManager.cxx.

◆ Step()

TGeoNode * TGeoManager::Step ( Bool_t  is_geom = kTRUE,
Bool_t  cross = kTRUE 
)

Make a rectilinear step of length fStep from current point (fPoint) on current direction (fDirection).

If the step is imposed by geometry, is_geom flag must be true (default). The cross flag specifies if the boundary should be crossed in case of a geometry step (default true). Returns new node after step. Set also on boundary condition.

Definition at line 3391 of file TGeoManager.cxx.

◆ Test()

void TGeoManager::Test ( Int_t  npoints = 1000000,
Option_t option = "" 
)

Check time of finding "Where am I" for n points.

Definition at line 1782 of file TGeoManager.cxx.

◆ TestOverlaps()

void TGeoManager::TestOverlaps ( const char *  path = "")

Geometry overlap checker based on sampling.

Definition at line 1790 of file TGeoManager.cxx.

◆ ThreadId()

Int_t TGeoManager::ThreadId ( )
static

Translates the current thread id to an ordinal number.

This can be used to manage data which is specific for a given thread.

Definition at line 905 of file TGeoManager.cxx.

◆ TopToMaster()

void TGeoManager::TopToMaster ( const Double_t top,
Double_t master 
) const

Convert coordinates from top volume frame to master.

Definition at line 3980 of file TGeoManager.cxx.

◆ TransformVolumeToAssembly()

Int_t TGeoManager::TransformVolumeToAssembly ( const char *  vname)

Transform all volumes named VNAME to assemblies. The volumes must be virtual.

Definition at line 1084 of file TGeoManager.cxx.

◆ UnbombTranslation()

void TGeoManager::UnbombTranslation ( const Double_t tr,
Double_t bombtr 
)

Get the new 'unbombed' translation vector according current exploded view mode.

Definition at line 979 of file TGeoManager.cxx.

◆ UnlockGeometry()

void TGeoManager::UnlockGeometry ( )
static

Unlock current geometry.

Definition at line 3781 of file TGeoManager.cxx.

◆ UpdateElements()

void TGeoManager::UpdateElements ( )
private

Update element flags when geometry is loaded from a file.

Definition at line 3890 of file TGeoManager.cxx.

◆ ViewLeaves()

void TGeoManager::ViewLeaves ( Bool_t  flag = kTRUE)

Set visualization option (leaves only OR all volumes)

Definition at line 2241 of file TGeoManager.cxx.

◆ Volume() [1/2]

TGeoVolume * TGeoManager::Volume ( const char *  name,
const char *  shape,
Int_t  nmed,
Double_t upar,
Int_t  npar = 0 
)

Create a volume in GEANT3 style.

  • NAME Volume name
  • SHAPE Volume type
  • NMED Tracking medium number
  • NPAR Number of shape parameters
  • UPAR Vector containing shape parameters

Definition at line 1285 of file TGeoManager.cxx.

◆ Volume() [2/2]

TGeoVolume * TGeoManager::Volume ( const char *  name,
const char *  shape,
Int_t  nmed,
Float_t upar,
Int_t  npar = 0 
)

Create a volume in GEANT3 style.

  • NAME Volume name
  • SHAPE Volume type
  • NMED Tracking medium number
  • NPAR Number of shape parameters
  • UPAR Vector containing shape parameters

Definition at line 1271 of file TGeoManager.cxx.

◆ Voxelize()

void TGeoManager::Voxelize ( Option_t option = 0)
private

Voxelize all non-divided volumes.

Definition at line 2893 of file TGeoManager.cxx.

◆ Weight()

Double_t TGeoManager::Weight ( Double_t  precision = 0.01,
Option_t option = "va" 
)

Estimate weight of volume VOL with a precision SIGMA(W)/W better than PRECISION.

Option can be "v" - verbose (default)

Definition at line 3637 of file TGeoManager.cxx.

Member Data Documentation

◆ fActivity

Bool_t TGeoManager::fActivity
private

flag for GL reflections

Definition at line 93 of file TGeoManager.h.

◆ fArrayPNE

TObjArray* TGeoManager::fArrayPNE
mutableprivate

Definition at line 143 of file TGeoManager.h.

◆ fBits

UChar_t* TGeoManager::fBits
private

Definition at line 114 of file TGeoManager.h.

◆ fBorderSurfaces

TObjArray* TGeoManager::fBorderSurfaces
private

Definition at line 108 of file TGeoManager.h.

◆ fClippingShape

TGeoShape* TGeoManager::fClippingShape
private

Definition at line 134 of file TGeoManager.h.

◆ fClosed

Bool_t TGeoManager::fClosed
private

Definition at line 83 of file TGeoManager.h.

◆ fCurrentNavigator

TGeoNavigator* TGeoManager::fCurrentNavigator
private

Lock existing navigators.

Definition at line 127 of file TGeoManager.h.

◆ fCurrentTrack

TVirtualGeoTrack* TGeoManager::fCurrentTrack
private

Definition at line 80 of file TGeoManager.h.

◆ fCurrentVolume

TGeoVolume* TGeoManager::fCurrentVolume
private

current navigator

Definition at line 128 of file TGeoManager.h.

◆ fDrawExtra

Bool_t TGeoManager::fDrawExtra
private

Definition at line 90 of file TGeoManager.h.

◆ fElementTable

TGeoElementTable* TGeoManager::fElementTable
private

clipping shape for raytracing

Definition at line 135 of file TGeoManager.h.

◆ fExplodedView

Int_t TGeoManager::fExplodedView
private

Definition at line 74 of file TGeoManager.h.

◆ fgDefaultUnits

TGeoManager::EDefaultUnits TGeoManager::fgDefaultUnits = TGeoManager::kRootUnits
staticprotected

Precision to be used in ASCII exports.

Definition at line 60 of file TGeoManager.h.

◆ fGDMLMatrices

TObjArray* TGeoManager::fGDMLMatrices
private

Definition at line 105 of file TGeoManager.h.

◆ fgExportPrecision

UInt_t TGeoManager::fgExportPrecision = 17
staticprotected

Maximum number of Xtru vertices.

Definition at line 59 of file TGeoManager.h.

◆ fGLMatrix

TGeoHMatrix* TGeoManager::fGLMatrix
private

Definition at line 132 of file TGeoManager.h.

◆ fgLock

Bool_t TGeoManager::fgLock = kFALSE
staticprotected

mutex for navigator booking in MT mode

Definition at line 54 of file TGeoManager.h.

◆ fgLockNavigators

Bool_t TGeoManager::fgLockNavigators = kFALSE
staticprivate

Number of registered threads.

Definition at line 126 of file TGeoManager.h.

◆ fgMaxDaughters

Int_t TGeoManager::fgMaxDaughters = 1
staticprotected

Maximum level in geometry.

Definition at line 57 of file TGeoManager.h.

◆ fgMaxLevel

Int_t TGeoManager::fgMaxLevel = 1
staticprotected

Verbosity level for Info messages (no IO).

Definition at line 56 of file TGeoManager.h.

◆ fgMaxXtruVert

Int_t TGeoManager::fgMaxXtruVert = 1
staticprotected

Maximum number of daughters.

Definition at line 58 of file TGeoManager.h.

◆ fgMutex

std::mutex TGeoManager::fgMutex
staticprotected

Definition at line 53 of file TGeoManager.h.

◆ fgNumThreads

Int_t TGeoManager::fgNumThreads = 0
staticprivate

Thread id's map.

Definition at line 125 of file TGeoManager.h.

◆ fGShapes

TObjArray* TGeoManager::fGShapes
private

Definition at line 101 of file TGeoManager.h.

◆ fgThreadId

TGeoManager::ThreadsMap_t * TGeoManager::fgThreadId = 0
staticprivate

Map between thread id's and navigator arrays.

Definition at line 124 of file TGeoManager.h.

◆ fgVerboseLevel

Int_t TGeoManager::fgVerboseLevel = 1
staticprotected

Lock preventing a second geometry to be loaded.

Definition at line 55 of file TGeoManager.h.

◆ fGVolumes

TObjArray* TGeoManager::fGVolumes
private

list of runtime shapes

Definition at line 102 of file TGeoManager.h.

◆ fHashGVolumes

THashList* TGeoManager::fHashGVolumes
private

hash list of volumes providing fast search

Definition at line 141 of file TGeoManager.h.

◆ fHashPNE

THashList* TGeoManager::fHashPNE
private

hash list of group volumes providing fast search

Definition at line 142 of file TGeoManager.h.

◆ fHashVolumes

THashList* TGeoManager::fHashVolumes
private

Definition at line 140 of file TGeoManager.h.

◆ fIsGeomCleaning

Bool_t TGeoManager::fIsGeomCleaning
private

flag set when reading geometry

Definition at line 87 of file TGeoManager.h.

◆ fIsGeomReading

Bool_t TGeoManager::fIsGeomReading
private

Definition at line 86 of file TGeoManager.h.

◆ fIsNodeSelectable

Bool_t TGeoManager::fIsNodeSelectable
private

switch ON/OFF volume activity (default OFF - all volumes active))

Definition at line 94 of file TGeoManager.h.

◆ fKeyPNEId

Int_t* TGeoManager::fKeyPNEId
private

Definition at line 146 of file TGeoManager.h.

◆ fLoopVolumes

Bool_t TGeoManager::fLoopVolumes
private

flag that geometry is closed

Definition at line 84 of file TGeoManager.h.

◆ fMasterVolume

TGeoVolume* TGeoManager::fMasterVolume
private

top physical node

Definition at line 131 of file TGeoManager.h.

◆ fMaterials

TList* TGeoManager::fMaterials
private

Definition at line 109 of file TGeoManager.h.

◆ fMatrices

TObjArray* TGeoManager::fMatrices
private

current painter

Definition at line 97 of file TGeoManager.h.

◆ fMatrixReflection

Bool_t TGeoManager::fMatrixReflection
private

flag for using GL matrix

Definition at line 92 of file TGeoManager.h.

◆ fMatrixTransform

Bool_t TGeoManager::fMatrixTransform
private

flag that the list of physical nodes has to be drawn

Definition at line 91 of file TGeoManager.h.

◆ fMaxThreads

Int_t TGeoManager::fMaxThreads
private

Definition at line 148 of file TGeoManager.h.

◆ fMaxVisNodes

Int_t TGeoManager::fMaxVisNodes
private

Definition at line 79 of file TGeoManager.h.

◆ fMedia

TList* TGeoManager::fMedia
private

Definition at line 110 of file TGeoManager.h.

◆ fMultiThread

Bool_t TGeoManager::fMultiThread
private

Max number of threads.

Definition at line 149 of file TGeoManager.h.

◆ fNavigators

NavigatorsMap_t TGeoManager::fNavigators
private

Definition at line 123 of file TGeoManager.h.

◆ fNLevel

Int_t TGeoManager::fNLevel
private

table of elements

Definition at line 137 of file TGeoManager.h.

◆ fNNodes

Int_t TGeoManager::fNNodes
private

upper time limit for tracks drawing

Definition at line 70 of file TGeoManager.h.

◆ fNodes

TObjArray* TGeoManager::fNodes
private

Definition at line 111 of file TGeoManager.h.

◆ fNpdg

Int_t TGeoManager::fNpdg
private

current track

Definition at line 81 of file TGeoManager.h.

◆ fNPNEId

Int_t TGeoManager::fNPNEId
private

Definition at line 145 of file TGeoManager.h.

◆ fNsegments

Int_t TGeoManager::fNsegments
private

Definition at line 77 of file TGeoManager.h.

◆ fNtracks

Int_t TGeoManager::fNtracks
private

Definition at line 78 of file TGeoManager.h.

◆ fOpticalSurfaces

TObjArray* TGeoManager::fOpticalSurfaces
private

Definition at line 106 of file TGeoManager.h.

◆ fOverlaps

TObjArray* TGeoManager::fOverlaps
private

Definition at line 112 of file TGeoManager.h.

◆ fPainter

TVirtualGeoPainter* TGeoManager::fPainter
private

flag that nodes are the selected objects in pad rather than volumes

Definition at line 95 of file TGeoManager.h.

◆ fPaintVolume

TGeoVolume* TGeoManager::fPaintVolume
private

Definition at line 138 of file TGeoManager.h.

◆ fParallelWorld

TGeoParallelWorld* TGeoManager::fParallelWorld
private

Definition at line 152 of file TGeoManager.h.

◆ fParticleName

TString TGeoManager::fParticleName
private

path to current node

Definition at line 72 of file TGeoManager.h.

◆ fPath

TString TGeoManager::fPath
private

Definition at line 71 of file TGeoManager.h.

◆ fPdgId

Int_t TGeoManager::fPdgId[1024]
private

Definition at line 82 of file TGeoManager.h.

◆ fPdgNames

TObjArray* TGeoManager::fPdgNames
private

Definition at line 104 of file TGeoManager.h.

◆ fPhiCut

Bool_t TGeoManager::fPhiCut
private

flag to notify that the manager is being destructed

Definition at line 88 of file TGeoManager.h.

◆ fPhimax

Double_t TGeoManager::fPhimax
private

lowest range for phi cut

Definition at line 67 of file TGeoManager.h.

◆ fPhimin

Double_t TGeoManager::fPhimin
private

Definition at line 66 of file TGeoManager.h.

◆ fPhysicalNodes

TObjArray* TGeoManager::fPhysicalNodes
private

Definition at line 100 of file TGeoManager.h.

◆ fProperties

ConstPropMap_t TGeoManager::fProperties
private

Definition at line 153 of file TGeoManager.h.

◆ fRaytraceMode

Int_t TGeoManager::fRaytraceMode
private

Flag for multi-threading.

Definition at line 150 of file TGeoManager.h.

◆ fRegions

TObjArray* TGeoManager::fRegions
private

Definition at line 113 of file TGeoManager.h.

◆ fShapes

TObjArray* TGeoManager::fShapes
private

Definition at line 98 of file TGeoManager.h.

◆ fSizePNEId

Int_t TGeoManager::fSizePNEId
private

array of physical node entries

Definition at line 144 of file TGeoManager.h.

◆ fSkinSurfaces

TObjArray* TGeoManager::fSkinSurfaces
private

Definition at line 107 of file TGeoManager.h.

◆ fStreamVoxels

Bool_t TGeoManager::fStreamVoxels
private

flag volume lists loop

Definition at line 85 of file TGeoManager.h.

◆ fTimeCut

Bool_t TGeoManager::fTimeCut
private

Definition at line 89 of file TGeoManager.h.

◆ fTmax

Double_t TGeoManager::fTmax
private

lower time limit for tracks drawing

Definition at line 69 of file TGeoManager.h.

◆ fTmin

Double_t TGeoManager::fTmin
private

highest range for phi cut

Definition at line 68 of file TGeoManager.h.

◆ fTopNode

TGeoNode* TGeoManager::fTopNode
private

top level volume in geometry

Definition at line 130 of file TGeoManager.h.

◆ fTopVolume

TGeoVolume* TGeoManager::fTopVolume
private

current volume

Definition at line 129 of file TGeoManager.h.

◆ fTracks

TObjArray* TGeoManager::fTracks
private

list of runtime volumes

Definition at line 103 of file TGeoManager.h.

◆ fUniqueVolumes

TObjArray* TGeoManager::fUniqueVolumes
private

Definition at line 133 of file TGeoManager.h.

◆ fUsePWNav

Bool_t TGeoManager::fUsePWNav
private

Raytrace mode: 0=normal, 1=pass through, 2=transparent.

Definition at line 151 of file TGeoManager.h.

◆ fUserPaintVolume

TGeoVolume* TGeoManager::fUserPaintVolume
private

volume currently painted

Definition at line 139 of file TGeoManager.h.

◆ fValuePNEId

Int_t* TGeoManager::fValuePNEId
private

Definition at line 147 of file TGeoManager.h.

◆ fVisDensity

Double_t TGeoManager::fVisDensity
private

particles to be drawn

Definition at line 73 of file TGeoManager.h.

◆ fVisLevel

Int_t TGeoManager::fVisLevel
private

Definition at line 76 of file TGeoManager.h.

◆ fVisOption

Int_t TGeoManager::fVisOption
private

Definition at line 75 of file TGeoManager.h.

◆ fVolumes

TObjArray* TGeoManager::fVolumes
private

Definition at line 99 of file TGeoManager.h.

Libraries for TGeoManager:

The documentation for this class was generated from the following files: