12#ifndef ROOT_TGeoManager
13#define ROOT_TGeoManager
278 const char *target_vol =
nullptr,
Bool_t check_norm =
kFALSE);
bool Bool_t
Boolean (0=false, 1=true) (bool).
int Int_t
Signed integer 4 bytes (int).
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char).
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
float Float_t
Float 4 bytes (float).
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char).
#define ClassDefOverride(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t property
externTGeoManager * gGeoManager
Using a TBrowser one can browse all ROOT objects.
This class is used in the process of reading and writing the GDML "matrix" tag.
Strategy object for assigning colors and transparency to geometry volumes.
Matrix class used for computing global transformations Should NOT be used for node definition.
Double_t fPhimax
! highest range for phi cut
TGeoPNEntry * GetAlignableEntry(Int_t index) const
TGeoVolume * MakeCone(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
void SetLastPoint(Double_t x, Double_t y, Double_t z)
void AnimateTracks(Double_t tmin=0, Double_t tmax=5E-8, Int_t nframes=200, Option_t *option="/*")
void AddSkinSurface(TGeoSkinSurface *surf)
TGeoNode * GetMother(Int_t up=1) const
TGeoVolume * MakeXtru(const char *name, TGeoMedium *medium, Int_t nz)
Double_t * FindNormalFast()
TGeoVolume * MakePcon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nz)
Int_t fRaytraceMode
! Raytrace mode: 0=normal, 1=pass through, 2=transparent
TGeoNavigator * AddNavigator()
TObjArray * GetListOfUVolumes() const
TVirtualGeoTrack * GetTrackOfId(Int_t id) const
TGeoMaterial * FindDuplicateMaterial(const TGeoMaterial *mat) const
TGeoVolume * GetVolume(Int_t uid) const
TObjArray * GetListOfOverlaps()
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="")
TGeoVolume * Volume(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t npar=0)
Int_t ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew)
void SetDrawExtraPaths(Bool_t flag=kTRUE)
Int_t GetCurrentNodeId() const
TGeoPNEntry * GetAlignableEntry(const char *name) const
TGeoVolume * fMasterVolume
TVirtualGeoTrack * FindTrackWithId(Int_t id) const
TObjArray * fArrayPNE
! array of physical node entries
Bool_t IsStepEntering() const
const Double_t * GetLastPoint() const
void TestOverlaps(const char *path="")
void RemoveMaterial(Int_t index)
static Int_t GetNumThreads()
TList * GetListOfMedia() const
void SetCldirChecked(Double_t *dir)
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)
TGeoElementTable * GetElementTable()
virtual Bool_t cd(const char *path="")
TGeoVolume * Volume(const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t npar=0)
void SetUserPaintVolume(TGeoVolume *vol)
Bool_t IsVisLeaves() const
Bool_t IsNullStep() const
TObjArray * GetListOfTracks() const
static Int_t fgVerboseLevel
! Verbosity level for Info messages (no IO).
Bool_t IsStartSafe() const
Bool_t InitArrayPNE() const
TObjArray * fPhysicalNodes
void SetLoopVolumes(Bool_t flag=kTRUE)
TObjArray * fUniqueVolumes
static UInt_t fgExportPrecision
! Precision to be used in ASCII exports
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)
TObjArray * fGShapes
! list of runtime shapes
TGeoVolume * fPaintVolume
! volume currently painted
Bool_t PopPoint(Int_t index)
TGeoSkinSurface * GetSkinSurface(const char *name) const
void CheckOverlapsBySampling(Double_t ovlp, Int_t npoints)
TVirtualGeoChecker * GetGeomChecker()
ConstPropMap_t fProperties
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
static Int_t Parse(const char *expr, TString &expr1, TString &expr2, TString &expr3)
static void SetVerboseLevel(Int_t vl)
void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.)
TGeoHMatrix * GetGLMatrix() const
TObjArray * GetListOfVolumes() const
Int_t AddTrack(TVirtualGeoTrack *track)
TGeoNode * GetNextNode() const
TGeoPNEntry * GetAlignableEntryByUID(Int_t uid) const
void AddGDMLMatrix(TGDMLMatrix *mat)
Bool_t IsMatrixTransform() const
TGeoManager(const char *name, const char *title)
void AddBorderSurface(TGeoBorderSurface *surf)
NavigatorsMap_t::iterator NavigatorsMapIt_t
void SetClippingShape(TGeoShape *clip)
void SetMatrixReflection(Bool_t flag=kTRUE)
TGeoVolume * fCurrentVolume
! current volume
TGeoShape * GetClippingShape() const
static void SetExportPrecision(UInt_t prec)
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)
void SetStartSafe(Bool_t flag=kTRUE)
TObjArray * GetListOfSkinSurfaces() const
THashList * fHashGVolumes
! hash list of group volumes providing fast search
TObjArray * GetListOfGDMLMatrices() const
TVirtualGeoChecker * fChecker
! current checker
Double_t GetLastSafety() const
static std::mutex fgMutex
! mutex for navigator booking in MT mode
Bool_t IsLoopingVolumes() const
Bool_t IsInPhiRange() const
TObjArray * GetListOfGVolumes() const
void SetParticleName(const char *pname)
TGeoNode * SearchNode(Bool_t downwards=kFALSE, const TGeoNode *skipnode=nullptr)
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)
void LocalToMaster(const Double_t *local, Double_t *master) const
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
void SetCurrentTrack(Int_t i)
Double_t fPhimin
! lowest range for phi cut
static ThreadsMap_t * fgThreadId
! Thread id's map
TObjArray * GetListOfMatrices() const
static Int_t GetMaxDaughters()
TGeoVolume * GetPaintVolume() const
TString fParticleName
! particles to be drawn
static void SetDefaultUnits(EDefaultUnits new_value)
TGeoNode * FindNode(Double_t x, Double_t y, Double_t z)
static void LockGeometry()
static Bool_t fgLockNavigators
! Lock existing navigators
static Int_t GetMaxXtruVert()
void SaveAttributes(const char *filename="tgeoatt.C")
void RestoreMasterVolume()
TVirtualGeoTrack * GetCurrentTrack()
Bool_t fDrawExtra
! flag that the list of physical nodes has to be drawn
TGeoVolume * MakeArb8(const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=nullptr)
TGeoNode * FindNextDaughterBoundary(Double_t *point, Double_t *dir, Int_t &idaughter, Bool_t compmatrix=kFALSE)
Int_t GetUID(const char *volname) const
TGeoShape * fClippingShape
! clipping shape for raytracing
TGeoNavigator * GetCurrentNavigator() const
THashList * fHashVolumes
! hash list of volumes providing fast search
TGeoVolumeMulti * MakeVolumeMulti(const char *name, TGeoMedium *medium)
TGeoVolume * GetMasterVolume() const
Int_t AddTransformation(const TGeoMatrix *matrix)
TObjArray * fOpticalSurfaces
TVirtualGeoTrack * GetParentTrackOfId(Int_t id) const
void SetCurrentTrack(TVirtualGeoTrack *track)
void CdNode(Int_t nodeid)
UChar_t * fBits
! bits used for voxelization
Double_t fTmin
! lower time limit for tracks drawing
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Int_t GetNproperties() const
TGeoVolume * fTopVolume
! top level volume in geometry
TGeoVolume * fUserPaintVolume
!
TVirtualGeoPainter * GetGeomPainter()
void GetBranchOnlys(Int_t *isonly) const
TObjArray * GetListOfNodes()
TGeoNode * GetCurrentNode() const
Int_t AddTrack(Int_t id, Int_t pdgcode, TObject *particle=nullptr)
TGeoManager(const TGeoManager &)=delete
void SetVisOption(Int_t option=0)
TObjArray * GetListOfBorderSurfaces() const
void SetPdgName(Int_t pdg, const char *name)
TObjArray * fBorderSurfaces
Int_t GetNAlignable(Bool_t with_uid=kFALSE) const
void RefreshPhysicalNodes(Bool_t lock=kTRUE)
static Bool_t fgLock
! Lock preventing a second geometry to be loaded
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)
void TopToMaster(const Double_t *top, Double_t *master) const
TGeoParallelWorld * GetParallelWorld() const
Double_t GetVisDensity() const
void SetCurrentDirection(Double_t *dir)
void AddOpticalSurface(TGeoOpticalSurface *optsurf)
Bool_t fLoopVolumes
! flag volume lists loop
Int_t AddMaterial(const TGeoMaterial *material)
static Int_t fgMaxDaughters
! Maximum number of daughters
void SetRTmode(Int_t mode)
Bool_t CheckPath(const char *path) const
void InspectState() const
static Int_t GetMaxLevels()
void ConvertReflections()
void SetVisLevel(Int_t level=3)
void SetMatrixTransform(Bool_t on=kTRUE)
TGeoNode * FindNextBoundary(Double_t stepmax=TGeoShape::Big(), const char *path="", Bool_t frombdr=kFALSE)
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
TGeoPhysicalNode * MakePhysicalNode(const char *path=nullptr)
Bool_t PopPath(Int_t index)
Int_t fMaxThreads
! Max number of threads
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)
Bool_t fIsGeomReading
! flag set when reading geometry
TObjArray * GetListOfRegions() const
Bool_t IsCurrentOverlapping() const
TGeoVolume * MakeTorus(const char *name, TGeoMedium *medium, Double_t r, Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360)
TGeoHMatrix * GetHMatrix()
TGeoParallelWorld * fParallelWorld
void RegisterMatrix(const TGeoMatrix *matrix)
TVirtualGeoTrack * GetTrack(Int_t index)
Int_t AddVolume(TGeoVolume *volume)
TVirtualGeoPainter * fPainter
! current painter
void SetVolumeAttribute(const char *name, const char *att, Int_t val)
const char * GetPdgName(Int_t pdg) const
static Bool_t LockDefaultUnits(Bool_t new_value)
void CheckGeometryFull(Int_t ntracks=1000000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Bool_t fIsNodeSelectable
! flag that nodes are the selected objects in pad rather than volumes
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
std::map< std::thread::id, TGeoNavigatorArray * > NavigatorsMap_t
TGeoNode * Step(Bool_t is_geom=kTRUE, Bool_t cross=kTRUE)
Bool_t IsDrawingExtra() const
Bool_t fActivity
! switch ON/OFF volume activity (default OFF - all volumes active))
Int_t GetMaxLevel() const
void GetBranchNames(Int_t *names) const
TObjArray * GetListOfGShapes() const
void CloseGeometry(Option_t *option="d")
void SetCheckingOverlaps(Bool_t flag=kTRUE)
TVirtualGeoTrack * MakeTrack(Int_t id, Int_t pdgcode, TObject *particle)
Int_t GetTrackIndex(Int_t id) const
Bool_t IsParallelWorldNav() const
void OptimizeVoxels(const char *filename="tgeovox.C")
TGeoMaterial * GetMaterial(Int_t id) const
TGeoVolume * GetVolume(const char *name) const
void SetAnimateTracks(Bool_t flag=kTRUE)
Bool_t fIsGeomCleaning
! flag to notify that the manager is being destructed
void DefaultColors(const TGeoColorScheme *cs=nullptr)
Bool_t IsStreamingVoxels() const
Bool_t IsSameLocation() const
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
void SetOutside(Bool_t flag=kTRUE)
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
TGeoVolume * MakeTrd2(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2, Double_t dz)
Int_t GetMaxVisNodes() const
void SetCurrentPoint(Double_t *point)
Double_t * FindNormal(Bool_t forward=kTRUE)
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)
TGeoElementTable * fElementTable
! table of elements
TGeoPhysicalNode * MakeAlignablePN(TGeoPNEntry *entry)
static Int_t fgMaxXtruVert
! Maximum number of Xtru vertices
TGeoNode * FindNode(Bool_t safe_start=kTRUE)
Int_t GetVisOption() const
virtual Int_t GetByteCount(Option_t *option=nullptr)
static UInt_t GetExportPrecision()
const Double_t * GetCurrentPoint() const
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
TGeoVolume * GetUserPaintVolume() const
Bool_t IsActivityEnabled() const
static Int_t fgMaxLevel
! Maximum level in geometry
void PrintOverlaps() const
const Double_t * GetNormal() const
TGeoVolume * MakeTrd1(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy, Double_t dz)
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)
TGeoVolume * FindVolumeFast(const char *name, Bool_t multi=kFALSE)
Double_t GetSafeDistance() const
TGeoNode * InitTrack(Double_t x, Double_t y, Double_t z, Double_t nx, Double_t ny, Double_t nz)
Bool_t GetTminTmax(Double_t &tmin, Double_t &tmax) const
TGeoNode * InitTrack(const Double_t *point, const Double_t *dir)
ThreadsMap_t::const_iterator ThreadsMapIt_t
Double_t GetProperty(size_t i, TString &name, Bool_t *error=nullptr) const
Bool_t fMatrixTransform
! flag for using GL matrix
void SetVisibility(TObject *obj, Bool_t vis)
void SetTopVolume(TGeoVolume *vol)
Bool_t fMatrixReflection
! flag for GL reflections
TGeoPNEntry * SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1)
void ClearShape(const TGeoShape *shape)
const Double_t * GetCldir() const
virtual ULong_t SizeOf(const TGeoNode *node, Option_t *option)
TGeoHMatrix * GetCurrentMatrix() const
TGeoManager & operator=(const TGeoManager &)=delete
void BombTranslation(const Double_t *tr, Double_t *bombtr)
TGeoNavigator * fCurrentNavigator
! current navigator
const char * GetParticleName() const
TGeoMedium * GetMedium(const char *medium) const
Bool_t InsertPNEId(Int_t uid, Int_t ientry)
void ViewLeaves(Bool_t flag=kTRUE)
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)
TGeoNode * GetTopNode() const
void SetTminTmax(Double_t tmin=0, Double_t tmax=999)
NavigatorsMap_t fNavigators
! Map between thread id's and navigator arrays
void GetBranchNumbers(Int_t *copyNumbers, Int_t *volumeNumbers) const
TVirtualGeoChecker * GetChecker() const
void SetNodeSelectable(Bool_t flag=kTRUE)
TString fPath
! path to current node
TGeoNodeCache * GetCache() const
TGeoNode * CrossBoundaryAndLocate(Bool_t downwards, TGeoNode *skipnode)
void DrawTracks(Option_t *option="")
void BuildDefaultMaterials()
void SetMaxThreads(Int_t nthreads)
Bool_t IsMatrixReflection() const
Int_t PushPoint(Int_t startlevel=0)
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)
void SetExplodedView(Int_t iopt=0)
Double_t Weight(Double_t precision=0.01, Option_t *option="va")
void ClearPhysicalNodes(Bool_t mustdelete=kFALSE)
static void UnlockGeometry()
void MasterToLocalVect(const Double_t *master, Double_t *local) const
std::map< std::string, Double_t > ConstPropMap_t
Bool_t IsSameLocation(Double_t x, Double_t y, Double_t z, Bool_t change=kFALSE)
void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
Double_t GetProperty(const char *name, Bool_t *error=nullptr) const
Bool_t IsAnimatingTracks() const
const char * GetPath() const
static Int_t fgNumThreads
! Number of registered threads
TObjArray * fGDMLMatrices
void SetPaintVolume(TGeoVolume *vol)
TGeoPhysicalNode * MakeAlignablePN(const char *name)
void SetCheckedNode(TGeoNode *node)
Int_t AddOverlap(const TNamed *ovlp)
void SetClipping(Bool_t flag=kTRUE)
void CreateThreadData() const
TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil=1E-5, const char *g3path="")
Bool_t IsMultiThread() const
Int_t GetStackLevel() const
TGDMLMatrix * GetGDMLMatrix(const char *name) const
Double_t fTmax
! upper time limit for tracks drawing
void InvalidateMeshCaches()
Int_t TransformVolumeToAssembly(const char *vname)
TGeoRegion * GetRegion(int i)
Bool_t fMultiThread
! Flag for multi-threading
static void SetNavigatorsLock(Bool_t flag)
TGeoVolume * MakePgon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nedges, Int_t nz)
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)
void DrawCurrentPoint(Int_t color=2)
TGeoOpticalSurface * GetOpticalSurface(const char *name) const
void SetNsegments(Int_t nseg)
Bool_t IsSamePoint(Double_t x, Double_t y, Double_t z) const
void SetStep(Double_t step)
void SetNmeshPoints(Int_t npoints=1000)
void CheckBoundaryReference(Int_t icheck=-1)
TGeoVolume * GetCurrentVolume() const
Int_t GetVisLevel() const
Bool_t AddProperty(const char *property, Double_t value)
TVirtualGeoPainter * GetPainter() const
Int_t CountNodes(const TGeoVolume *vol=nullptr, Int_t nlevels=10000, Int_t option=0)
TGeoMaterial * Mixture(const char *name, Double_t *a, Double_t *z, Double_t dens, Int_t nelem, Double_t *wmat, Int_t uid)
TGeoMaterial * GetMaterial(const char *matname) const
static Int_t GetVerboseLevel()
void CheckGeometry(Option_t *option="")
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to an event at (px,py).
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
Int_t GetBombMode() const
TObjArray * GetListOfOpticalSurfaces() const
Int_t AddRegion(TGeoRegion *region)
void SelectTrackingMedia()
void EnableInactiveVolumes()
Double_t Safety(Bool_t inside=kFALSE)
TGeoMaterial * Mixture(const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nelem, Float_t *wmat, Int_t uid)
std::map< std::thread::id, Int_t > ThreadsMap_t
void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="", Double_t safety=0.)
void SetUseParallelWorldNav(Bool_t flag)
Bool_t IsCheckingOverlaps() const
static void ClearThreadsMap()
void MasterToLocal(const Double_t *master, Double_t *local) const
TGeoPhysicalNode * GetPhysicalNode(Int_t i) const
TVirtualGeoTrack * GetLastTrack()
void Browse(TBrowser *b) override
Browse object. May be overridden for another default action.
const Double_t * GetCldirChecked() const
void Test(Int_t npoints=1000000, Option_t *option="")
Int_t GetSafeLevel() const
TObjArray * fGVolumes
! list of runtime volumes
Int_t PushPath(Int_t startlevel=0)
Bool_t IsOnBoundary() const
void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3)
TGeoNode * fTopNode
! top physical node
void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
static EDefaultUnits GetDefaultUnits()
void RandomPoints(const TGeoVolume *vol, Int_t npoints=10000, Option_t *option="")
TGeoParallelWorld * CreateParallelWorld(const char *name)
Int_t GetMaterialIndex(const char *matname) const
TGeoNavigatorArray * GetListOfNavigators() const
TGeoNode * GetNode(Int_t level) const
virtual Int_t Export(const char *filename, const char *name="", Option_t *option="vg")
TList * GetListOfMaterials() const
static EDefaultUnits fgDefaultUnits
! Default units in GDML if not explicit in some tags
void RandomRays(Int_t nrays=1000, Double_t startx=0, Double_t starty=0, Double_t startz=0, const char *target_vol=nullptr, Bool_t check_norm=kFALSE)
TObjArray * fSkinSurfaces
TObjArray * GetListOfShapes() const
TGeoMedium * GetMedium(Int_t numed) const
void SetVisDensity(Double_t dens=0.01)
Bool_t fClosed
! flag that geometry is closed
Int_t GetNsegments() const
void SetPhiRange(Double_t phimin=0., Double_t phimax=360.)
TVirtualGeoTrack * fCurrentTrack
! current track
Bool_t IsNodeSelectable() const
void DrawPath(const char *path, Option_t *option="")
TGeoVolume * GetTopVolume() const
TObjArray * GetListOfPhysicalNodes()
Bool_t IsCleaning() const
Bool_t SetCurrentNavigator(Int_t index)
void SetTopVisible(Bool_t vis=kTRUE)
TGeoVolume * MakeHype(const char *name, TGeoMedium *medium, Double_t rin, Double_t stin, Double_t rout, Double_t stout, Double_t dz)
TGeoVolume * MakeParaboloid(const char *name, TGeoMedium *medium, Double_t rlo, Double_t rhi, Double_t dz)
Int_t AddShape(const TGeoShape *shape)
void SetMaxVisNodes(Int_t maxnodes=10000)
void Voxelize(Option_t *option=nullptr)
TGeoBorderSurface * GetBorderSurface(const char *name) const
void ClearThreadData() const
virtual void Edit(Option_t *option="")
void PopDummy(Int_t ipop=9999)
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
void DisableInactiveVolumes()
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
void SetCurrentDirection(Double_t nx, Double_t ny, Double_t nz)
Int_t GetMaxThreads() const
TGeoVolume * MakeEltu(const char *name, TGeoMedium *medium, Double_t a, Double_t b, Double_t dz)
Bool_t IsEntering() const
void RemoveNavigator(const TGeoNavigator *nav)
void MasterToTop(const Double_t *master, Double_t *top) const
Bool_t IsStepExiting() const
Base class describing materials.
Geometrical transformation package.
Media are used to store properties related to tracking and which are useful only when using geometry ...
Class providing navigation API for TGeo geometries.
TGeoNode * GetMother(Int_t up=1) const
Bool_t IsStepExiting() const
Bool_t IsCheckingOverlaps() const
void LocalToMaster(const Double_t *local, Double_t *master) const
TGeoNode * GetNextNode() const
const Double_t * GetCldirChecked() const
Double_t GetLastSafety() 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.
void SetLastPoint(Double_t x, Double_t y, Double_t z)
void MasterToLocal(const Double_t *master, Double_t *local) const
const Double_t * GetLastPoint() const
Int_t PushPoint(Int_t startlevel=0)
Bool_t IsNullStep() const
TGeoVolume * GetCurrentVolume() const
TGeoHMatrix * GetCurrentMatrix() const
Double_t GetSafeDistance() const
void SetCheckingOverlaps(Bool_t flag=kTRUE)
void SetOutside(Bool_t flag=kTRUE)
void SetStartSafe(Bool_t flag=kTRUE)
Bool_t IsEntering() const
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
void SetCldirChecked(Double_t *dir)
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
void PopDummy(Int_t ipop=9999)
TGeoNode * GetCurrentNode() const
void SetStep(Double_t step)
const Double_t * GetCurrentDirection() const
Int_t PushPath(Int_t startlevel=0)
Int_t GetStackLevel() const
const Double_t * GetNormal() const
void SetCurrentPoint(const Double_t *point)
const Double_t * GetCldir() const
void LocalToMasterVect(const Double_t *local, Double_t *master) const
void SetCurrentDirection(const Double_t *dir)
Bool_t IsCurrentOverlapping() const
TGeoNodeCache * GetCache() const
Bool_t IsOnBoundary() const
const Double_t * GetCurrentPoint() const
Bool_t IsStartSafe() const
void MasterToLocalVect(const Double_t *master, Double_t *local) const
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
Bool_t IsStepEntering() const
Special pool of reusable nodes.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
This is a wrapper class to G4OpticalSurface.
The knowledge of the path to the objects that need to be misaligned is essential since there is no ot...
Base class for a flat parallel geometry.
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
Regions are groups of volumes having a common set of user tracking cuts.
Base abstract class for all shapes.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
TObject()
TObject constructor.
Abstract class for geometry checkers.
Abstract class for geometry painters.
Base class for user-defined tracks attached to a geometry.