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=
"");
269 void Node(
const char *name,
Int_t nr,
const char *mother,
272 void Node(
const char *name,
Int_t nr,
const char *mother,
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().
void ClearThreadData() const
void SetLastPoint(Double_t x, Double_t y, Double_t z)
Bool_t IsEntering() const
const Double_t * GetLastPoint() const
TVirtualGeoTrack * GetCurrentTrack()
TGeoNode * GetNode(Int_t level) const
std::map< Long_t, TGeoNavigatorArray * > NavigatorsMap_t
bits used for voxelization
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.
Bool_t IsEntering() const
Int_t GetMaxLevel() const
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 ModifiedPad() const
Send "Modified" signal to painter.
Bool_t IsCurrentOverlapping() const
double dist(Rotation3D const &r1, Rotation3D const &r2)
TGeoVolume * GetPaintVolume() const
Bool_t IsCheckingOverlaps() const
void PrintOverlaps() const
Prints the current list of overlaps.
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.
Bool_t GetTminTmax(Double_t &tmin, Double_t &tmax) const
Get time cut for drawing tracks.
void CheckGeometry(Option_t *option="")
Perform last checks on the geometry.
Int_t GetCurrentNodeId() const
Get the unique ID of the current node.
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.
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
Int_t GetStackLevel() const
TGeoNode * GetNextNode() 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.
Bool_t fActivity
flag for GL reflections
void ClearAttributes()
Reset all attributes to default ones.
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.
Bool_t IsDrawingExtra() const
Bool_t IsCurrentOverlapping() const
Bool_t fMatrixTransform
flag that the list of physical nodes has to be drawn
void SetCldirChecked(Double_t *dir)
TVector3 cross(const TVector3 &v1, const TVector3 &v2)
void SetOutside(Bool_t flag=kTRUE)
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.
void BombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'bombed' translation vector according current exploded view mode.
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.
const Double_t * GetNormal() const
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.
TGeoNodeCache * GetCache() const
TVirtualGeoPainter * GetPainter() const
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check all geometry for illegal overlaps within a limit OVLP.
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
THashList * fHashVolumes
volume currently painted
TVirtualGeoTrack * GetTrack(Int_t index)
void Init()
Initialize manager class.
Int_t GetTrackIndex(Int_t id) const
Get index for track id, -1 if not found.
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
Double_t GetLastSafety() const
Bool_t fMatrixReflection
flag for using GL matrix
TGeoVolume * GetVolume(const char *name) const
Search for a named volume. All trailing blanks stripped.
TVirtualGeoTrack * fCurrentTrack
static const char * filename()
Int_t fNNodes
upper time limit for tracks drawing
static Int_t GetVerboseLevel()
Set verbosity level (static function).
TObjArray * GetListOfGVolumes() const
static void SetVerboseLevel(Int_t vl)
Return current verbosity level (static function).
Bool_t IsStepEntering() 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
Double_t GetVisDensity() 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 InspectState() const
Inspects path and all flags for the current state.
void GetBranchNumbers(Int_t *copyNumbers, Int_t *volumeNumbers) const
Fill node copy numbers of current branch into an array.
void MasterToLocal(const Double_t *master, Double_t *local) const
static void ClearThreadsMap()
Clear the current map of threads.
void GetBranchNames(Int_t *names) const
Fill volume names of current branch into an array.
Bool_t IsMatrixReflection() const
TObjArray * fUniqueVolumes
Double_t GetSafeDistance() const
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
Bool_t IsNodeSelectable() const
TGeoVolume * GetMasterVolume() const
TGeoNodeCache * GetCache() const
const Double_t * GetCldir() const
TGeoNode * fTopNode
top level volume in geometry
Bool_t fIsNodeSelectable
switch ON/OFF volume activity (default OFF - all volumes active))
const Double_t * GetCurrentPoint() const
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.
Double_t GetSafeDistance() 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
TObject * At(Int_t idx) const
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.
Int_t GetVisLevel() const
Returns current depth to which geometry is drawn.
Bool_t InitArrayPNE() const
Initialize PNE array for fast access via index and unique-id.
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.
const char * GetPdgName(Int_t pdg) const
Get name for given pdg code;.
Int_t GetSafeLevel() const
Go upwards the tree until a non-overlaping node.
void GetBranchOnlys(Int_t *isonly) const
Fill node copy numbers of current branch into an array.
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.
TList * GetListOfMaterials() const
TGeoHMatrix * GetHMatrix()
Return stored current matrix (global matrix of the next touched node).
void SetVisDensity(Double_t dens=0.01)
Set density threshold.
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)
TGeoMaterial * GetMaterial(const char *matname) const
Search for a named material. All trailing blanks stripped.
void MasterToLocalVect(const Double_t *master, Double_t *local) const
TList * GetListOfMedia() 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.
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.
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.
#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 * GetVolume(Int_t uid) const
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)
Int_t AddTrack(Int_t id, Int_t pdgcode, TObject *particle=0)
Add a track to the list of tracks.
void PopDummy(Int_t ipop=9999)
void SetCurrentPoint(Double_t *point)
TObjArray * GetListOfNodes()
The TNamed class is the base class for all named ROOT classes.
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.
THashList * fHashGVolumes
hash list of volumes providing fast search
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.
void SortOverlaps()
Sort overlaps by decreasing overlap distance. Extrusions comes first.
const char * GetPath() const
Get path to the current node in the form /node0/node1/...
void SetNodeSelectable(Bool_t flag=kTRUE)
void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
Retrieve cartesian and radial bomb factors.
TGeoNavigator * fCurrentNavigator
Lock existing navigators.
TGeoVolume * MakeXtru(const char *name, TGeoMedium *medium, Int_t nz)
Make a TGeoXtru-shaped volume with nz planes.
TGeoVolume * GetCurrentVolume() const
Int_t GetMaxVisNodes() const
void SetStartSafe(Bool_t flag=kTRUE)
static Int_t GetMaxDaughters()
Return maximum number of daughters of a volume used in the geometry.
void TopToMaster(const Double_t *top, Double_t *master) const
Convert coordinates from top volume frame to master.
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...
Double_t GetLastSafety() const
Int_t AddVolume(TGeoVolume *volume)
Add a volume to the list. Returns index of the volume in list.
TGeoVolume * fTopVolume
current volume
Int_t GetVirtualLevel()
Find level of virtuality of current overlapping node (number of levels up having the same tracking me...
void LocalToMaster(const Double_t *local, Double_t *master) const
TVirtualGeoTrack * GetParentTrackOfId(Int_t id) const
Get parent track with a given ID.
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 LocalToMasterBomb(const Double_t *local, Double_t *master) const
void SetOutside(Bool_t flag=kTRUE)
Int_t GetVisOption() const
Returns current depth to which geometry is drawn.
void SetClippingShape(TGeoShape *clip)
Set a user-defined shape as clipping for ray tracing.
TGeoMaterial * FindDuplicateMaterial(const TGeoMaterial *mat) const
Find if a given material duplicates an existing one.
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.
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
TGeoNavigatorArray * GetListOfNavigators() const
Get list of navigators for the calling thread.
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 GetNAlignable(Bool_t with_uid=kFALSE) const
Retreives number of PN entries with or without UID.
Int_t TransformVolumeToAssembly(const char *vname)
Transform all volumes named VNAME to assemblies. The volumes must be virtual.
TGeoNode * GetCurrentNode() const
Bool_t IsAnimatingTracks() const
void SetCurrentTrack(TVirtualGeoTrack *track)
static Int_t fgVerboseLevel
Lock preventing a second geometry to be loaded.
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)
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.
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
Int_t PushPoint(Int_t startlevel=0)
void SelectTrackingMedia()
Define different tracking media.
Int_t GetUID(const char *volname) const
Retreive unique id for a volume name. Return -1 if name not found.
TGeoNode * GetNextNode() const
Int_t AddOverlap(const TNamed *ovlp)
Add an illegal overlap/extrusion to the list.
TGeoHMatrix * GetCurrentMatrix() const
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
Using a TBrowser one can browse all ROOT objects.
TGeoPNEntry * GetAlignableEntryByUID(Int_t uid) const
Retreives an existing alignable object having a preset UID.
Bool_t IsNullStep() 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.
Bool_t IsStartSafe() const
void SetDrawExtraPaths(Bool_t flag=kTRUE)
Int_t fNLevel
array of node id's
Int_t * fNodeIdArray
table of elements
Int_t GetNsegments() const
Get number of segments approximating circles.
Bool_t IsActivityEnabled() const
void SetCurrentPoint(const Double_t *point)
void LocalToMaster(const Double_t *local, Double_t *master) const
const Double_t * GetCurrentDirection() const
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>'.
const Double_t * GetCldirChecked() const
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 IsStartSafe() 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 * GetCldir() const
const Double_t * GetCldirChecked() 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.
void MasterToLocalVect(const Double_t *master, Double_t *local) const
TGeoNavigator * AddNavigator()
Add a navigator in the list of navigators.
Bool_t IsInPhiRange() const
True if current node is in phi range.
TGeoManager()
Default constructor.
void SetStep(Double_t step)
void SetMatrixTransform(Bool_t on=kTRUE)
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.
TVirtualGeoTrack * GetTrackOfId(Int_t id) const
Get track with a given ID.
Double_t fPhimax
lowest range for phi cut
TObjArray * GetListOfShapes() const
void SetPdgName(Int_t pdg, const char *name)
Set a name for a particle having a given pdg.
TGeoVolume * GetCurrentVolume() const
Bool_t IsMultiThread() const
Bool_t IsLoopingVolumes() const
void DrawCurrentPoint(Int_t color=2)
Draw current point in the same view.
TGeoHMatrix * GetCurrentMatrix() const
Bool_t IsStepExiting() const
const Double_t * GetCurrentDirection() const
Bool_t IsStepExiting() const
Bool_t IsVisLeaves() const
Bool_t CheckPath(const char *path) const
Check if a geometry path is valid without changing the state of the current navigator.
void SetLastPoint(Double_t x, Double_t y, Double_t z)
TObjArray * fTracks
list of runtime volumes
Int_t GetStackLevel() const
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.
TGeoNode * GetTopNode() const
Double_t fVisDensity
particles to be drawn
virtual Int_t GetByteCount(Option_t *option=0)
Get total size of geometry in bytes.
TObjArray * GetListOfTracks() const
void SetLoopVolumes(Bool_t flag=kTRUE)
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
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.
Bool_t fStreamVoxels
flag volume lists loop
TVirtualGeoTrack * FindTrackWithId(Int_t id) const
Search the track hierarchy to find the track with the given id.
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 DrawPath(const char *path, Option_t *option="")
Draw current path.
virtual ~TGeoManager()
Destructor.
void SetMultiThread(Bool_t flag=kTRUE)
TObjArray * GetListOfMatrices() const
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
Bool_t IsStepEntering() const
TGeoMedium * GetMedium(const char *medium) const
Search for a named tracking medium. All trailing blanks stripped.
TGeoParallelWorld * GetParallelWorld() const
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.
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.
static Int_t GetMaxLevels()
Return maximum number of levels used in the geometry.
TGeoShape * GetClippingShape() const
TObject * UncheckedAt(Int_t i) 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.
void SetCurrentDirection(const Double_t *dir)
void DoBackupState()
Backup the current state without affecting the cache stack.
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
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)
Bool_t IsNullStep() const
TVirtualGeoPainter * fPainter
flag that nodes are the selected objects in pad rather than volumes
void Voxelize(Option_t *option=0)
Voxelize all non-divided volumes.
TGeoHMatrix * GetGLMatrix() const
void LocalToMasterVect(const Double_t *local, Double_t *master) 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 CdTop()
Make top level node the current node.
void RegisterMatrix(const TGeoMatrix *matrix)
Register a matrix to the list of matrices.
Bool_t IsMatrixTransform() const
void SetPhiRange(Double_t phimin=0., Double_t phimax=360.)
Set cut phi range.
TGeoPhysicalNode * GetPhysicalNode(Int_t i) const
static Bool_t fgLockNavigators
Number of registered threads.
TObjArray * GetListOfPhysicalNodes()
TGeoNode * GetMother(Int_t up=1) const
Bool_t fUsePWNav
Flag for multi-threading.
Bool_t SetCurrentNavigator(Int_t index)
Switch to another existing navigator for the calling thread.
void SetTminTmax(Double_t tmin=0, Double_t tmax=999)
Set time cut interval for drawing tracks.
TObjArray * GetListOfUVolumes() 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.
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.
Int_t GetMaxThreads() const
void MasterToTop(const Double_t *master, Double_t *top) const
Convert coordinates from master volume frame to top.
TGeoPNEntry * GetAlignableEntry(const char *name) const
Retreives an existing alignable object.
Int_t GetMaterialIndex(const char *matname) const
Return index of named material.
void CountLevels()
Count maximum number of nodes per volume, maximum depth and maximum number of xtru vertices...
Int_t GetBombMode() const
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 <name_nr> pointing to the volume called <name> as daughter of the volume called ...
void SetNsegments(Int_t nseg)
Set number of segments for approximating circles in drawing.
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
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.
void SetVisLevel(Int_t level=3)
set default level down to which visualization is performed
TGeoNavigator * GetCurrentNavigator() const
Returns current navigator for the calling thread.
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
const Double_t * GetNormal() const
TGeoVolume * FindVolumeFast(const char *name, Bool_t multi=kFALSE)
Fast search for a named volume. All trailing blanks stripped.
Bool_t IsSameLocation() const
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 ...
Bool_t IsCleaning() const
const Double_t * GetCurrentPoint() const
void CdNext()
Do a cd to the node found next by FindNextBoundary.
TObjArray * GetListOfVolumes() const
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.
void SetAnimateTracks(Bool_t flag=kTRUE)
TGeoNode * GetCurrentNode() const
Int_t AddMaterial(const TGeoMaterial *material)
Add a material to the list. Returns index of the material in list.
TGeoNode * GetMother(Int_t up=1) const
const Double_t * GetLastPoint() const
Bool_t fMultiThread
Max number of threads.
void SetStartSafe(Bool_t flag=kTRUE)
TString fParticleName
path to current node
Int_t AddTransformation(const TGeoMatrix *matrix)
Add a matrix to the list. Returns index of the matrix in list.
static Int_t GetMaxXtruVert()
Return maximum number of vertices for an xtru shape used.
void EnableInactiveVolumes()
TGeoVolume * fPaintVolume
TObjArray * GetListOfOverlaps()
Bool_t IsParallelWorldNav() const
TGeoParallelWorld * CreateParallelWorld(const char *name)
Create a parallel world for prioritized navigation.
Bool_t IsStreamingVoxels() const
TGeoVolume * GetTopVolume() 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.
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.
Bool_t IsOnBoundary() 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 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.
static void UnlockGeometry()
Unlock current geometry.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
void CreateThreadData() const
Create thread private data for all geometry objects.
Bool_t IsCheckingOverlaps() const
TObjArray * GetListOfGShapes() const
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute mouse actions on this manager.
const char * GetParticleName() const
void MasterToLocal(const Double_t *master, Double_t *local) 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.
Bool_t IsOnBoundary() const
static Int_t fgMaxXtruVert
Maximum number of daughters.
const char * Data() const
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...