12 #ifndef ROOT_TGeoManager
13 #define ROOT_TGeoManager
15 #ifndef ROOT_TObjArray
18 #ifndef ROOT_TGeoNavigator
169 virtual Bool_t cd(
const char *path=
"");
247 const char *g3path=
"");
void SetTopVisible(Bool_t vis=kTRUE)
make top volume visible on screen
TGeoVolumeMulti * MakeVolumeMulti(const char *name, TGeoMedium *medium)
Make a TGeoVolumeMulti handling a list of volumes.
void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
Classify a given point. See TGeoChecker::CheckPoint().
const Double_t * GetLastPoint() const
void SetLastPoint(Double_t x, Double_t y, Double_t z)
TVirtualGeoTrack * GetCurrentTrack()
const Double_t * GetNormal() const
std::map< Long_t, TGeoNavigatorArray * > NavigatorsMap_t
bits used for voxelization
void MasterToLocalVect(const Double_t *master, Double_t *local) const
TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil=1E-5, const char *g3path="")
shoot npoints randomly in a box of 1E-5 arround current point.
void CheckGeometryFull(Int_t ntracks=1000000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
Geometry checking.
double dist(Rotation3D const &r1, Rotation3D const &r2)
void SetCurrentDirection(Double_t nx, Double_t ny, Double_t nz)
TGeoPhysicalNode * MakePhysicalNode(const char *path=0)
Makes a physical node corresponding to a path.
TGeoNode * InitTrack(const Double_t *point, const Double_t *dir)
Initialize current point and current direction vector (normalized) in MARS.
void DoRestoreState()
Restore a backed-up state without affecting the cache stack.
void CheckGeometry(Option_t *option="")
Perform last checks on the geometry.
void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
TGeoVolume * 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.
TList * GetListOfMaterials() const
TGeoVolume * 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.
Int_t GetNsegments() const
Get number of segments approximating circles.
Bool_t IsStartSafe() const
Bool_t fActivity
flag for GL reflections
void ClearAttributes()
Reset all attributes to default ones.
TGeoVolume * GetMasterVolume() const
TGeoVolume * 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.
void SetCurrentDirection(Double_t *dir)
void SetAllIndex()
Assigns uid's for all materials,media and matrices.
TGeoNavigatorArray * GetListOfNavigators() const
Get list of navigators for the calling thread.
Bool_t fMatrixTransform
flag that the list of physical nodes has to be drawn
Bool_t IsNullStep() const
void SetCldirChecked(Double_t *dir)
TVector3 cross(const TVector3 &v1, const TVector3 &v2)
void SetOutside(Bool_t flag=kTRUE)
void GetBranchNumbers(Int_t *copyNumbers, Int_t *volumeNumbers) const
Fill node copy numbers of current branch into an array.
Int_t GetStackLevel() const
void BombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'bombed' translation vector according current exploded view mode.
TGeoNode * GetNode(Int_t level) const
Double_t Safety(Bool_t inside=kFALSE)
Compute safe distance from the current point.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
Int_t ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew)
Replaces all occurences of VORIG with VNEW in the geometry tree.
TGeoMaterial * 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...
TGeoNode * SearchNode(Bool_t downwards=kFALSE, const TGeoNode *skipnode=0)
Returns the deepest node containing fPoint, which must be set a priori.
void SetParticleName(const char *pname)
void Test(Int_t npoints=1000000, Option_t *option="")
Check time of finding "Where am I" for n points.
void CdUp()
Go one level up in geometry.
TGeoNode * GetNextNode() const
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check all geometry for illegal overlaps within a limit OVLP.
THashList * fHashVolumes
volume currently painted
Double_t GetLastSafety() const
TVirtualGeoTrack * GetTrack(Int_t index)
void Init()
Initialize manager class.
static Int_t fgMaxDaughters
Maximum level in geometry.
void SetCldirChecked(Double_t *dir)
TGeoElementTable * GetElementTable()
Returns material table. Creates it if not existing.
NavigatorsMap_t::iterator NavigatorsMapIt_t
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
Bool_t IsCurrentOverlapping() const
const Double_t * GetCldirChecked() const
const Double_t * GetCurrentDirection() const
Bool_t fMatrixReflection
flag for using GL matrix
TVirtualGeoTrack * fCurrentTrack
static const char * filename()
Int_t fNNodes
upper time limit for tracks drawing
static Int_t GetVerboseLevel()
Set verbosity level (static function).
static void SetVerboseLevel(Int_t vl)
Return current verbosity level (static function).
TGeoHMatrix * GetCurrentMatrix() const
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
TGeoVolume * 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.
std::map< Long_t, Int_t > ThreadsMap_t
Bool_t IsActivityEnabled() const
void ResetUserData()
Sets all pointers TGeoVolume::fField to NULL.
TGeoVolume * Volume(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t npar=0)
Create a volume in GEANT3 style.
void ViewLeaves(Bool_t flag=kTRUE)
Set visualization option (leaves only OR all volumes)
void MasterToLocal(const Double_t *master, Double_t *local) const
TObjArray * GetListOfShapes() const
static void ClearThreadsMap()
Clear the current map of threads.
TObjArray * fUniqueVolumes
TGeoNode * fTopNode
top level volume in geometry
Bool_t fIsNodeSelectable
switch ON/OFF volume activity (default OFF - all volumes active))
void InspectState() const
Inspects path and all flags for the current state.
void OptimizeVoxels(const char *filename="tgeovox.C")
Optimize voxelization type for all volumes. Save best choice in a macro.
static Int_t Parse(const char *expr, TString &expr1, TString &expr2, TString &expr3)
Parse a string boolean expression and do a syntax check.
const char * GetParticleName() const
TVirtualGeoTrack * MakeTrack(Int_t id, Int_t pdgcode, TObject *particle)
Makes a primary track but do not attach it to the list of tracks.
Bool_t PopPoint(Int_t index)
TGeoVolume * 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.
TGeoShape * fClippingShape
Int_t GetNAlignable(Bool_t with_uid=kFALSE) const
Retreives number of PN entries with or without UID.
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 AnimateTracks(Double_t tmin=0, Double_t tmax=5E-8, Int_t nframes=200, Option_t *option="/*")
Draw animation of tracks.
Bool_t IsCheckingOverlaps() const
static void SetNavigatorsLock(Bool_t flag)
Set the lock for navigators.
TGeoVolume * 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.
TGeoVolume * GetVolume(Int_t uid) const
void SetVisibility(TObject *obj, Bool_t vis)
Set visibility for a volume.
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.
TGeoHMatrix * GetHMatrix()
Return stored current matrix (global matrix of the next touched node).
void SetVisDensity(Double_t dens=0.01)
Set density threshold.
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
static Int_t GetNumThreads()
Returns number of threads that were set to use geometry.
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Bool_t fIsGeomCleaning
flag set when reading geometry
TObjArray * fMatrices
current painter
void ResetState()
Reset current state flags.
Int_t PushPath(Int_t startlevel=0)
const char * Data() const
TGeoParallelWorld * fParallelWorld
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
TGeoParallelWorld * GetParallelWorld() const
virtual Int_t Export(const char *filename, const char *name="", Option_t *option="vg")
Export this geometry to a file.
TGeoVolume * 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.
TVirtualGeoTrack * GetParentTrackOfId(Int_t id) const
Get parent track with a given ID.
Bool_t IsStepExiting() const
TGeoPNEntry * SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1)
Creates an aligneable object with unique name corresponding to a path and adds it to the list of alig...
void UpdateElements()
Update element flags when geometry is loaded from a file.
Bool_t IsMatrixTransform() const
#define ClassDef(name, id)
void SetVolumeAttribute(const char *name, const char *att, Int_t val)
Set volume attributes in G3 style.
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.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
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 SetCurrentTrack(Int_t i)
Bool_t IsStartSafe() const
Int_t AddTrack(Int_t id, Int_t pdgcode, TObject *particle=0)
Add a track to the list of tracks.
const Double_t * GetCldir() const
void PopDummy(Int_t ipop=9999)
void SetCurrentPoint(Double_t *point)
TGeoNode * GetTopNode() const
TObjArray * GetListOfNodes()
The TNamed class is the base class for all named ROOT classes.
void LocalToMaster(const Double_t *local, Double_t *master) const
void SetMatrixReflection(Bool_t flag=kTRUE)
void CdDown(Int_t index)
Make a daughter of current node current.
void CleanGarbage()
Clean temporary volumes and shapes from garbage collection.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
THashList * fHashGVolumes
hash list of volumes providing fast search
Int_t GetVisLevel() const
Returns current depth to which geometry is drawn.
void ClearShape(const TGeoShape *shape)
Remove a shape from the list of shapes.
Double_t fTmax
lower time limit for tracks drawing
static Bool_t IsLocked()
Check lock state.
THashList * fHashPNE
hash list of group volumes providing fast search
void Browse(TBrowser *b)
Describe how to browse this object.
TVirtualGeoPainter * GetPainter() const
TList * GetListOfMedia() const
void SortOverlaps()
Sort overlaps by decreasing overlap distance. Extrusions comes first.
void SetNodeSelectable(Bool_t flag=kTRUE)
TGeoNavigator * fCurrentNavigator
Lock existing navigators.
TGeoVolume * MakeXtru(const char *name, TGeoMedium *medium, Int_t nz)
Make a TGeoXtru-shaped volume with nz planes.
Bool_t IsOnBoundary() const
void SetStartSafe(Bool_t flag=kTRUE)
static Int_t GetMaxDaughters()
Return maximum number of daughters of a volume used in the 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 FindNe...
Int_t AddVolume(TGeoVolume *volume)
Add a volume to the list. Returns index of the volume in list.
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
TGeoVolume * fTopVolume
current volume
Int_t GetVirtualLevel()
Find level of virtuality of current overlapping node (number of levels up having the same tracking me...
TGeoVolume * 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.
static Int_t fgNumThreads
Thread id's map.
Bool_t InsertPNEId(Int_t uid, Int_t ientry)
Insert a PN entry in the sorted array of indexes.
ThreadsMap_t::const_iterator ThreadsMapIt_t
void SetOutside(Bool_t flag=kTRUE)
TGeoNode * GetCurrentNode() const
void SetClippingShape(TGeoShape *clip)
Set a user-defined shape as clipping for ray tracing.
TGeoVolume * GetPaintVolume() const
void DisableInactiveVolumes()
TGeoVolume * MakeArb8(const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=0)
Make an TGeoArb8 volume.
void SetMaxVisNodes(Int_t maxnodes=10000)
set the maximum number of visible nodes.
Bool_t IsCurrentOverlapping() const
TVirtualGeoTrack * GetTrackOfId(Int_t id) const
Get track with a given ID.
TGeoVolume * 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.
void RestoreMasterVolume()
Restore the master volume of the geometry.
Bool_t fPhiCut
flag to notify that the manager is being destructed
NavigatorsMap_t fNavigators
TGeoVolume * GetTopVolume() const
TGeoVolume * 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 paralelipiped shape with given medium.
Int_t TransformVolumeToAssembly(const char *vname)
Transform all volumes named VNAME to assemblies. The volumes must be virtual.
Int_t GetUID(const char *volname) const
Retreive unique id for a volume name. Return -1 if name not found.
void SetCurrentTrack(TVirtualGeoTrack *track)
static Int_t fgVerboseLevel
Lock preventing a second geometry to be loaded.
void MasterToLocalVect(const Double_t *master, Double_t *local) const
void RefreshPhysicalNodes(Bool_t lock=kTRUE)
Refresh physical nodes to reflect the actual geometry paths after alignment was applied.
Bool_t fLoopVolumes
flag that geometry is closed
void SetStep(Double_t step)
TGeoMaterial * FindDuplicateMaterial(const TGeoMaterial *mat) const
Find if a given material duplicates an existing one.
const Double_t * GetCldir() const
void PopDummy(Int_t ipop=9999)
TGeoPhysicalNode * MakeAlignablePN(const char *name)
Make a physical node from the path pointed by an alignable object with a given name.
Int_t GetMaxVisNodes() const
void CreateThreadData() const
Create thread private data for all geometry objects.
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
Bool_t CheckPath(const char *path) const
Check if a geometry path is valid without changing the state of the current navigator.
Double_t GetLastSafety() const
TObject * UncheckedAt(Int_t i) const
Int_t PushPoint(Int_t startlevel=0)
void SelectTrackingMedia()
Define different tracking media.
TObjArray * GetListOfVolumes() const
Int_t AddOverlap(const TNamed *ovlp)
Add an illegal overlap/extrusion to the list.
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
Make an assembly of volumes.
Double_t fTmin
highest range for phi cut
void RemoveNavigator(const TGeoNavigator *nav)
Clear a single navigator.
TObjArray * fPhysicalNodes
Bool_t IsNullStep() const
Using a TBrowser one can browse all ROOT objects.
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.
Int_t GetBombMode() const
const Double_t * GetNormal() const
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.
void SetDrawExtraPaths(Bool_t flag=kTRUE)
Int_t fNLevel
array of node id's
Int_t * fNodeIdArray
table of elements
const Double_t * GetCurrentPoint() const
void SetCurrentPoint(const Double_t *point)
Int_t GetStackLevel() const
TGeoPNEntry * GetAlignableEntry(const char *name) const
Retreives an existing alignable object.
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'.
static void LockGeometry()
Lock current geometry so that no other geometry can be imported.
TGeoMedium * 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.
Bool_t IsStepExiting() const
TObjArray * GetListOfTracks() const
TGeoNode * Step(Bool_t is_geom=kTRUE, Bool_t cross=kTRUE)
Make a rectiliniar step of length fStep from current point (fPoint) on current direction (fDirection)...
const Double_t * GetLastPoint() const
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
Compute distance to next boundary within STEPMAX.
void DefaultColors()
Set default volume colors according to A of material.
TGeoNavigator * AddNavigator()
Add a navigator in the list of navigators.
TGeoManager()
Default constructor.
void SetStep(Double_t step)
void SetMatrixTransform(Bool_t on=kTRUE)
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
Double_t * FindNormalFast()
Computes fast normal to next crossed boundary, assuming that the current point is close enough to the...
TGeoVolume * 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.
static Int_t fgMaxLevel
Verbosity level for Info messages (no IO).
void CdNode(Int_t nodeid)
Change current path to point to the node having this id.
Double_t fPhimax
lowest range for phi cut
void SetPdgName(Int_t pdg, const char *name)
Set a name for a particle having a given pdg.
Bool_t IsDrawingExtra() const
void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
Retrieve cartesian and radial bomb factors.
TGeoShape * GetClippingShape() const
void DrawCurrentPoint(Int_t color=2)
Draw current point in the same view.
TGeoNode * GetMother(Int_t up=1) const
Bool_t IsSameLocation() const
Bool_t IsOnBoundary() const
Bool_t IsCleaning() const
void SetLastPoint(Double_t x, Double_t y, Double_t z)
TObjArray * fTracks
list of runtime volumes
TGeoMedium * GetMedium(const char *medium) const
Search for a named tracking medium. All trailing blanks stripped.
TGeoVolume * 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.
TGeoNodeCache * GetCache() const
const Double_t * GetCldirChecked() const
Int_t GetTrackIndex(Int_t id) const
Get index for track id, -1 if not found.
Double_t fVisDensity
particles to be drawn
const Double_t * GetCurrentDirection() const
virtual Int_t GetByteCount(Option_t *option=0)
Get total size of geometry in bytes.
void SetLoopVolumes(Bool_t flag=kTRUE)
TGeoNavigator * GetCurrentNavigator() const
Returns current navigator for the calling thread.
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
Double_t GetSafeDistance() const
Bool_t IsStepEntering() const
void DrawTracks(Option_t *option="")
Draw tracks over the geometry, according to option.
void SetCheckedNode(TGeoNode *node)
Assign a given node to be checked for ovelaps. Any other overlaps will be ignored.
TGeoVolume * 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.
const char * GetPdgName(Int_t pdg) const
Get name for given pdg code;.
Bool_t fStreamVoxels
flag volume lists loop
TGeoVolume * 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)
void SetUseParallelWorldNav(Bool_t flag)
Activate/deactivate usage of parallel world navigation.
void ClearThreadData() const
const Double_t * GetCurrentPoint() const
TObjArray * GetListOfMatrices() const
void DrawPath(const char *path, Option_t *option="")
Draw current path.
virtual ~TGeoManager()
Destructor.
void SetMultiThread(Bool_t flag=kTRUE)
void RandomPoints(const TGeoVolume *vol, Int_t npoints=10000, Option_t *option="")
Draw random points in the bounding box of a volume.
TGeoNode * FindNode(Bool_t safe_start=kTRUE)
Returns deepest node containing current point.
TObjArray * fGVolumes
list of runtime shapes
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
TGeoNodeCache * GetCache() const
Int_t GetSafeLevel() const
Go upwards the tree until a non-overlaping node.
TGeoVolume * fCurrentVolume
current navigator
Int_t PushPath(Int_t startlevel=0)
TGeoMaterial * 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.
void DefaultAngles()
Set default angles for a given view.
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
TGeoPhysicalNode * GetPhysicalNode(Int_t i) const
void TestOverlaps(const char *path="")
Geometry overlap checker based on sampling.
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.
Int_t GetVisOption() const
Returns current depth to which geometry is drawn.
static Int_t GetMaxLevels()
Return maximum number of levels used in the geometry.
TObjArray * GetListOfGVolumes() const
void TopToMaster(const Double_t *top, Double_t *master) const
Convert coordinates from top volume frame to master.
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
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.
TGeoHMatrix * GetGLMatrix() const
void SetCurrentDirection(const Double_t *dir)
void DoBackupState()
Backup the current state without affecting the cache stack.
Bool_t IsNodeSelectable() const
R__EXTERN TGeoManager * gGeoManager
void RemoveMaterial(Int_t index)
Remove material at given index.
Bool_t GotoSafeLevel()
Go upwards the tree until a non-overlaping node.
Int_t PushPoint(Int_t startlevel=0)
Int_t GetMaxLevel() const
TGeoNode * GetMother(Int_t up=1) const
TGeoVolume * GetVolume(const char *name) const
Search for a named volume. All trailing blanks stripped.
TVirtualGeoPainter * fPainter
flag that nodes are the selected objects in pad rather than volumes
Double_t GetSafeDistance() const
void Voxelize(Option_t *option=0)
Voxelize all non-divided volumes.
Bool_t IsMultiThread() const
void SetPaintVolume(TGeoVolume *vol)
virtual ULong_t SizeOf(const TGeoNode *node, Option_t *option)
computes the total size in bytes of the branch starting with node.
void ModifiedPad() const
Send "Modified" signal to painter.
void CdTop()
Make top level node the current node.
void RegisterMatrix(const TGeoMatrix *matrix)
Register a matrix to the list of matrices.
void SetPhiRange(Double_t phimin=0., Double_t phimax=360.)
Set cut phi range.
TGeoVolume * GetCurrentVolume() const
static Bool_t fgLockNavigators
Number of registered threads.
TObjArray * GetListOfPhysicalNodes()
TVirtualGeoTrack * FindTrackWithId(Int_t id) const
Search the track hierarchy to find the track with the given id.
Bool_t fUsePWNav
Flag for multi-threading.
Bool_t IsEntering() const
Bool_t SetCurrentNavigator(Int_t index)
Switch to another existing navigator for the calling thread.
Bool_t IsAnimatingTracks() const
void SetTminTmax(Double_t tmin=0, Double_t tmax=999)
Set time cut interval for drawing tracks.
Bool_t IsInPhiRange() const
True if current node is in phi range.
TGeoHMatrix * GetCurrentMatrix() const
Int_t AddShape(const TGeoShape *shape)
Add a shape to the list. Returns index of the shape in list.
Bool_t PopPath(Int_t index)
static ThreadsMap_t * fgThreadId
Map between thread id's and navigator arrays.
void SetCheckingOverlaps(Bool_t flag=kTRUE)
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
Bool_t IsLoopingVolumes() const
void ConvertReflections()
Convert all reflections in geometry to normal rotations + reflected shapes.
Mother of all ROOT objects.
TGeoNode * FindNextBoundary(Double_t stepmax=TGeoShape::Big(), const char *path="", Bool_t frombdr=kFALSE)
Find distance to next boundary and store it in fStep.
Bool_t IsCheckingOverlaps() const
Bool_t IsParallelWorldNav() const
void CountLevels()
Count maximum number of nodes per volume, maximum depth and maximum number of xtru vertices...
void ClearOverlaps()
Clear the list of overlaps.
void SetCheckingOverlaps(Bool_t flag=kTRUE)
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 pointing to the volume called as daughter of the volume called ...
void SetNsegments(Int_t nseg)
Set number of segments for approximating circles in drawing.
void SetMaxThreads(Int_t nthreads)
Set maximum number of threads for navigation.
void SetExplodedView(Int_t iopt=0)
Set type of exploding view (see TGeoPainter::SetExplodedView())
virtual void Edit(Option_t *option="")
Append a pad for this geometry.
Bool_t IsMatrixReflection() const
void SetVisLevel(Int_t level=3)
set default level down to which visualization is performed
TGeoElementTable * fElementTable
clipping shape for raytracing
void SaveAttributes(const char *filename="tgeoatt.C")
Save current attributes in a macro.
TGeoManager & operator=(const TGeoManager &)
assignment operator
static Int_t ThreadId()
Translates the current thread id to an ordinal number.
Int_t fSizePNEId
array of phisical node entries
TGeoNode * GetNextNode() const
TGeoVolume * FindVolumeFast(const char *name, Bool_t multi=kFALSE)
Fast search for a named volume. All trailing blanks stripped.
void SetClipping(Bool_t flag=kTRUE)
Double_t * FindNormal(Bool_t forward=kTRUE)
Computes normal vector to the next surface that will be or was already crossed when propagating on a ...
void CdNext()
Do a cd to the node found next by FindNextBoundary.
Bool_t IsEntering() const
Int_t GetCurrentNodeId() const
Get the unique ID of the current node.
TGeoVolume * 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.
void BuildDefaultMaterials()
Now just a shortcut for GetElementTable.
Int_t GetMaxThreads() const
TGeoPNEntry * GetAlignableEntryByUID(Int_t uid) const
Retreives an existing alignable object having a preset UID.
TObjArray * GetListOfGShapes() const
void SetAnimateTracks(Bool_t flag=kTRUE)
Int_t AddMaterial(const TGeoMaterial *material)
Add a material to the list. Returns index of the material in list.
Bool_t fMultiThread
Max number of threads.
void SetStartSafe(Bool_t flag=kTRUE)
TString fParticleName
path to current node
TObjArray * GetListOfUVolumes() const
Int_t AddTransformation(const TGeoMatrix *matrix)
Add a matrix to the list. Returns index of the matrix in list.
const char * GetPath() const
Get path to the current node in the form /node0/node1/...
static Int_t GetMaxXtruVert()
Return maximum number of vertices for an xtru shape used.
void EnableInactiveVolumes()
TGeoVolume * fPaintVolume
void LocalToMasterVect(const Double_t *local, Double_t *master) const
void GetBranchOnlys(Int_t *isonly) const
Fill node copy numbers of current branch into an array.
void GetBranchNames(Int_t *names) const
Fill volume names of current branch into an array.
TObjArray * GetListOfOverlaps()
TGeoParallelWorld * CreateParallelWorld(const char *name)
Create a parallel world for prioritized navigation.
Bool_t IsVisLeaves() const
Bool_t IsStreamingVoxels() const
TObject * At(Int_t idx) const
void ClearNavigators()
Clear all navigators.
void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'unbombed' translation vector according current exploded view mode.
void PrintOverlaps() const
Prints the current list of overlaps.
TGeoNode * 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.
Int_t GetMaterialIndex(const char *matname) const
Return index of named material.
TGeoNode * GetCurrentNode() const
TGeoVolume * fMasterVolume
top physical node
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
static function Import a geometry from a gdml or ROOT file
void LocalToMaster(const Double_t *local, Double_t *master) const
void SetVisOption(Int_t option=0)
set drawing mode : option=0 (default) all nodes drawn down to vislevel option=1 leaves and nodes at v...
TVirtualGeoPainter * GetGeomPainter()
Make a default painter if none present. Returns pointer to it.
Bool_t IsStepEntering() const
TGeoMaterial * GetMaterial(const char *matname) const
Search for a named material. All trailing blanks stripped.
static void UnlockGeometry()
Unlock current geometry.
Bool_t GetTminTmax(Double_t &tmin, Double_t &tmax) const
Get time cut for drawing tracks.
TGeoVolume * GetCurrentVolume() const
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute mouse actions on this manager.
Bool_t InitArrayPNE() const
Initialize PNE array for fast access via index and unique-id.
Double_t GetVisDensity() const
void ClearPhysicalNodes(Bool_t mustdelete=kFALSE)
Clear the current list of physical nodes, so that we can start over with a new list.
void SetNmeshPoints(Int_t npoints=1000)
Set the number of points to be generated on the shape outline when checking for overlaps.
void MasterToLocal(const Double_t *master, Double_t *local) const
static Int_t fgMaxXtruVert
Maximum number of daughters.
void MasterToTop(const Double_t *master, Double_t *top) const
Convert coordinates from master volume frame to top.
TVirtualGeoTrack * GetLastTrack()
void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
TGeoNode * CrossBoundaryAndLocate(Bool_t downwards, TGeoNode *skipnode)
Cross next boundary and locate within current node The current point must be on the boundary of fCurr...