Class providing navigation API for TGeo geometries.
Several instances are allowed for a single geometry. A default navigator is provided for any geometry but one may add several others for parallel navigation:
.... and then switch back to the default navigator:
Definition at line 33 of file TGeoNavigator.h.
Public Member Functions | |
TGeoNavigator () | |
path to current node | |
TGeoNavigator (TGeoManager *geom) | |
Constructor. | |
virtual | ~TGeoNavigator () |
Destructor. | |
void | BuildCache (Bool_t dummy=kFALSE, Bool_t nodeid=kFALSE) |
Builds the cache for physical nodes and global matrices. | |
Bool_t | cd (const char *path="") |
Browse the tree of nodes starting from top node according to pathname. | |
void | CdDown (Int_t index) |
Make a daughter of current node current. | |
void | CdDown (TGeoNode *node) |
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. | |
Bool_t | CheckPath (const char *path) const |
Check if a geometry path is valid without changing the state of the navigator. | |
TGeoNode * | CrossBoundaryAndLocate (Bool_t downwards, TGeoNode *skipnode) |
Cross next boundary and locate within current node The current point must be on the boundary of fCurrentNode. | |
void | DoBackupState () |
Backup the current state without affecting the cache stack. | |
void | DoRestoreState () |
Restore a backed-up state without affecting the cache stack. | |
TGeoNode * | FindNextBoundary (Double_t stepmax=TGeoShape::Big(), const char *path="", Bool_t frombdr=kFALSE) |
Find distance to next boundary and store it in fStep. | |
TGeoNode * | FindNextBoundaryAndStep (Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE) |
Compute distance to next boundary within STEPMAX. | |
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. | |
TGeoNode * | FindNode (Bool_t safe_start=kTRUE) |
Returns deepest node containing current point. | |
TGeoNode * | FindNode (Double_t x, Double_t y, Double_t z) |
Returns deepest node containing current point. | |
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 straight line from a given point/direction. | |
Double_t * | FindNormalFast () |
Computes fast normal to next crossed boundary, assuming that the current point is close enough to the boundary. | |
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. | |
TGeoNodeCache * | GetCache () const |
const Double_t * | GetCldir () const |
const Double_t * | GetCldirChecked () const |
const Double_t * | GetCurrentDirection () const |
TGeoHMatrix * | GetCurrentMatrix () const |
TGeoNode * | GetCurrentNode () const |
Int_t | GetCurrentNodeId () const |
const Double_t * | GetCurrentPoint () const |
TGeoVolume * | GetCurrentVolume () const |
TGeoHMatrix * | GetDivMatrix () const |
TGeoHMatrix * | GetHMatrix () |
Return stored current matrix (global matrix of the next touched node). | |
const Double_t * | GetLastPoint () const |
Double_t | GetLastSafety () const |
Int_t | GetLevel () const |
TGeoNode * | GetMother (Int_t up=1) const |
TGeoHMatrix * | GetMotherMatrix (Int_t up=1) const |
Int_t | GetNextDaughterIndex () const |
TGeoNode * | GetNextNode () const |
Int_t | GetNmany () const |
Int_t | GetNodeId () const |
const Double_t * | GetNormal () const |
const char * | GetPath () const |
Get path to the current node in the form /node0/node1/... | |
Double_t | GetSafeDistance () const |
Int_t | GetSafeLevel () const |
Go upwards the tree until a non-overlapping node. | |
Int_t | GetStackLevel () const |
Double_t | GetStep () const |
Int_t | GetThreadId () const |
Int_t | GetVirtualLevel () |
Find level of virtuality of current overlapping node (number of levels up having the same tracking media. | |
Bool_t | GotoSafeLevel () |
Go upwards the tree until a non-overlapping node. | |
TGeoNode * | InitTrack (const Double_t *point, const Double_t *dir) |
Initialize current point and current direction vector (normalized) in MARS. | |
TGeoNode * | 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. | |
void | InspectState () const |
Inspects path and all flags for the current state. | |
virtual TClass * | IsA () const |
Bool_t | IsCheckingOverlaps () const |
Bool_t | IsCurrentOverlapping () const |
Bool_t | IsEntering () const |
Bool_t | IsExiting () const |
Bool_t | IsNullStep () const |
Bool_t | IsOnBoundary () const |
Bool_t | IsOutside () const |
Bool_t | IsSafeStep (Double_t proposed, Double_t &newsafety) const |
In case a previous safety value was computed, check if the safety region is still safe for the current point and proposed step. | |
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 |
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 |
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. | |
void | PopDummy (Int_t ipop=9999) |
Bool_t | PopPath () |
Bool_t | PopPath (Int_t index) |
Bool_t | PopPoint () |
Bool_t | PopPoint (Int_t index) |
Int_t | PushPath (Int_t startlevel=0) |
Int_t | PushPoint (Int_t startlevel=0) |
void | ResetAll () |
Reset the navigator. | |
void | ResetState () |
Reset current state flags. | |
Double_t | Safety (Bool_t inside=kFALSE) |
Compute safe distance from the current point. | |
TGeoNode * | SearchNode (Bool_t downwards=kFALSE, const TGeoNode *skipnode=nullptr) |
Returns the deepest node containing fPoint, which must be set a priori. | |
void | SetCheckingOverlaps (Bool_t flag=kTRUE) |
void | SetCldirChecked (Double_t *dir) |
void | SetCurrentDirection (const Double_t *dir) |
void | SetCurrentDirection (Double_t nx, Double_t ny, Double_t nz) |
void | SetCurrentPoint (const Double_t *point) |
void | SetCurrentPoint (Double_t x, Double_t y, Double_t z) |
void | SetLastPoint (Double_t x, Double_t y, Double_t z) |
void | SetLastSafetyForPoint (Double_t safe, const Double_t *point) |
void | SetLastSafetyForPoint (Double_t safe, Double_t x, Double_t y, Double_t z) |
void | SetOutside (Bool_t flag=kTRUE) |
void | SetStartSafe (Bool_t flag=kTRUE) |
void | SetStep (Double_t step) |
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). | |
virtual void | Streamer (TBuffer &) |
Stream an object of class TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
void | TopToMaster (const Double_t *top, Double_t *master) const |
Convert coordinates from top volume frame to master. | |
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. | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. | |
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 | Clear (Option_t *="") |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. | |
virtual Int_t | Compare (const TObject *obj) const |
Compare abstract method. | |
virtual void | Copy (TObject &object) const |
Copy this to obj. | |
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 TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1) . | |
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=nullptr) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual const char * | GetName () const |
Returns 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_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. | |
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. | |
virtual ULong_t | Hash () const |
Return hash value for this object. | |
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). | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
virtual Bool_t | IsSortable () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
virtual void | ls (Option_t *option="") const |
The ls function lists the contents of a class on stdout. | |
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 []. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (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 void | Print (Option_t *option="") const |
This method must be overridden when a class wants to print itself. | |
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. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
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=nullptr, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
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 | |
TGeoNavigator (const TGeoNavigator &)=delete | |
TGeoNode * | CrossDivisionCell () |
Cross a division cell. | |
TGeoNode * | FindInCluster (Int_t *cluster, Int_t nc) |
Find a node inside a cluster of overlapping nodes. | |
Int_t | GetTouchedCluster (Int_t start, Double_t *point, Int_t *check_list, Int_t ncheck, Int_t *result) |
Make the cluster of overlapping nodes in a voxel, containing point in reference of the mother. | |
TGeoNavigator & | operator= (const TGeoNavigator &)=delete |
void | SafetyOverlaps () |
Compute safe distance from the current point within an overlapping node. | |
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 () |
Private Attributes | |
TGeoCacheState * | fBackupState |
current point is supposed to be inside this node | |
TGeoNodeCache * | fCache |
current geometry | |
Double_t | fCldir [3] |
cosine of incident angle on current checked surface | |
Double_t | fCldirChecked [3] |
unit vector to current closest shape | |
TGeoHMatrix * | fCurrentMatrix |
backup state | |
TGeoNode * | fCurrentNode |
current volume | |
Bool_t | fCurrentOverlapping |
flag set when an overlapping cluster is searched | |
TGeoVolume * | fCurrentVolume |
cache of states | |
Double_t | fDirection [3] |
current point | |
TGeoHMatrix * | fDivMatrix |
current pointer to cached global matrix | |
TGeoNode * | fForcedNode |
next node that will be crossed | |
TGeoManager * | fGeometry |
flag that last geometric step was null | |
TGeoHMatrix * | fGlobalMatrix |
current stored global matrix | |
Bool_t | fIsEntering |
flag a safe start for point classification | |
Bool_t | fIsExiting |
flag if current step just got into a new node | |
Bool_t | fIsNullStep |
flag that a new point is in the same node as previous | |
Bool_t | fIsOnBoundary |
flag that current point is outside geometry | |
Bool_t | fIsOutside |
flag that next geometric step will exit current volume | |
Bool_t | fIsSameLocation |
flag that current point is on some boundary | |
Bool_t | fIsStepEntering |
flag that current track is about to leave current node | |
Bool_t | fIsStepExiting |
flag that next geometric step will enter new volume | |
TGeoNode * | fLastNode |
top physical node | |
Double_t | fLastPoint [3] |
current direction | |
Double_t | fLastSafety |
safety radius from current point | |
Int_t | fLevel |
thread id for this navigator | |
Int_t | fNextDaughterIndex |
number of overlapping nodes on current branch | |
TGeoNode * | fNextNode |
last searched node | |
Int_t | fNmany |
current geometry level; | |
Double_t | fNormal [3] |
last computed safety radius | |
Int_t * | fOverlapClusters |
current recursive position in fOverlapClusters | |
Int_t | fOverlapMark |
current size of fOverlapClusters | |
Int_t | fOverlapSize |
next daughter index after FindNextBoundary | |
TString | fPath |
current local matrix of the selected division cell | |
Double_t | fPoint [3] |
unit vector to current checked shape | |
Double_t | fSafety |
step to be done from current point and direction | |
Bool_t | fSearchOverlaps |
internal array for overlaps | |
Bool_t | fStartSafe |
flags the type of the current node | |
Double_t | fStep |
Int_t | fThreadId |
last point for which safety was computed | |
TGeoNode * | fTopNode |
current node | |
Additional Inherited Members | |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
#include <TGeoNavigator.h>
|
protecteddelete |
TGeoNavigator::TGeoNavigator | ( | ) |
TGeoNavigator::TGeoNavigator | ( | TGeoManager * | geom | ) |
Constructor.
Definition at line 106 of file TGeoNavigator.cxx.
|
virtual |
Destructor.
Definition at line 165 of file TGeoNavigator.cxx.
Builds the cache for physical nodes and global matrices.
Definition at line 175 of file TGeoNavigator.cxx.
Bool_t TGeoNavigator::cd | ( | const char * | path = "" | ) |
Browse the tree of nodes starting from top node according to pathname.
Changes the path accordingly. The path is changed to point to the top node in case of failure.
Definition at line 200 of file TGeoNavigator.cxx.
void TGeoNavigator::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 296 of file TGeoNavigator.cxx.
void TGeoNavigator::CdDown | ( | TGeoNode * | node | ) |
Make a daughter of current node current.
Can be called only with a valid daughter node (no check). Updates cache accordingly.
Definition at line 315 of file TGeoNavigator.cxx.
void TGeoNavigator::CdNext | ( | ) |
Do a cd to the node found next by FindNextBoundary.
Definition at line 382 of file TGeoNavigator.cxx.
void TGeoNavigator::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 284 of file TGeoNavigator.cxx.
void TGeoNavigator::CdTop | ( | ) |
Make top level node the current node.
Updates the cache accordingly. Determine the overlapping state of current node.
Definition at line 366 of file TGeoNavigator.cxx.
void TGeoNavigator::CdUp | ( | ) |
Go one level up in geometry.
Updates cache accordingly. Determine the overlapping state of current node.
Definition at line 333 of file TGeoNavigator.cxx.
Bool_t TGeoNavigator::CheckPath | ( | const char * | path | ) | const |
Check if a geometry path is valid without changing the state of the navigator.
Definition at line 243 of file TGeoNavigator.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 204 of file TGeoNavigator.h.
Cross next boundary and locate within current node The current point must be on the boundary of fCurrentNode.
Definition at line 496 of file TGeoNavigator.cxx.
|
protected |
Cross a division cell.
Distance to exit contained in fStep, current node points to the cell node.
Definition at line 436 of file TGeoNavigator.cxx.
|
inlinestatic |
Definition at line 204 of file TGeoNavigator.h.
void TGeoNavigator::DoBackupState | ( | ) |
Backup the current state without affecting the cache stack.
Definition at line 2463 of file TGeoNavigator.cxx.
void TGeoNavigator::DoRestoreState | ( | ) |
Restore a backed-up state without affecting the cache stack.
Definition at line 2471 of file TGeoNavigator.cxx.
Find a node inside a cluster of overlapping nodes.
Current node must be on top of all the nodes in cluster. Always nc>1.
Definition at line 2014 of file TGeoNavigator.cxx.
TGeoNode * TGeoNavigator::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 594 of file TGeoNavigator.cxx.
TGeoNode * TGeoNavigator::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 1123 of file TGeoNavigator.cxx.
TGeoNode * TGeoNavigator::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 945 of file TGeoNavigator.cxx.
Returns deepest node containing current point.
Definition at line 1478 of file TGeoNavigator.cxx.
Returns deepest node containing current point.
Definition at line 1500 of file TGeoNavigator.cxx.
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 1545 of file TGeoNavigator.cxx.
Double_t * TGeoNavigator::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 1526 of file TGeoNavigator.cxx.
void TGeoNavigator::GetBranchNames | ( | Int_t * | names | ) | const |
Fill volume names of current branch into an array.
Definition at line 411 of file TGeoNavigator.cxx.
Fill node copy numbers of current branch into an array.
Definition at line 419 of file TGeoNavigator.cxx.
void TGeoNavigator::GetBranchOnlys | ( | Int_t * | isonly | ) | const |
Fill node copy numbers of current branch into an array.
Definition at line 427 of file TGeoNavigator.cxx.
|
inline |
Definition at line 193 of file TGeoNavigator.h.
|
inline |
Definition at line 164 of file TGeoNavigator.h.
|
inline |
Definition at line 163 of file TGeoNavigator.h.
|
inline |
Definition at line 161 of file TGeoNavigator.h.
|
inline |
Definition at line 157 of file TGeoNavigator.h.
|
inline |
Definition at line 158 of file TGeoNavigator.h.
|
inline |
Definition at line 159 of file TGeoNavigator.h.
|
inline |
Definition at line 160 of file TGeoNavigator.h.
|
inline |
Definition at line 162 of file TGeoNavigator.h.
|
inline |
Definition at line 165 of file TGeoNavigator.h.
TGeoHMatrix * TGeoNavigator::GetHMatrix | ( | ) |
Return stored current matrix (global matrix of the next touched node).
Definition at line 2484 of file TGeoNavigator.cxx.
|
inline |
Definition at line 121 of file TGeoNavigator.h.
|
inline |
Definition at line 126 of file TGeoNavigator.h.
|
inline |
Definition at line 168 of file TGeoNavigator.h.
Definition at line 154 of file TGeoNavigator.h.
|
inline |
Definition at line 155 of file TGeoNavigator.h.
|
inline |
Definition at line 152 of file TGeoNavigator.h.
|
inline |
Definition at line 153 of file TGeoNavigator.h.
|
inline |
Definition at line 104 of file TGeoNavigator.h.
|
inline |
Definition at line 151 of file TGeoNavigator.h.
|
inline |
Definition at line 167 of file TGeoNavigator.h.
const char * TGeoNavigator::GetPath | ( | ) | const |
Get path to the current node in the form /node0/node1/...
Definition at line 2496 of file TGeoNavigator.cxx.
|
inline |
Definition at line 125 of file TGeoNavigator.h.
Int_t TGeoNavigator::GetSafeLevel | ( | ) | const |
Go upwards the tree until a non-overlapping node.
Definition at line 2241 of file TGeoNavigator.cxx.
|
inline |
Definition at line 170 of file TGeoNavigator.h.
|
inline |
Definition at line 127 of file TGeoNavigator.h.
|
inline |
Definition at line 128 of file TGeoNavigator.h.
|
protected |
Make the cluster of overlapping nodes in a voxel, containing point in reference of the mother.
Returns number of nodes containing the point. Nodes should not be offsets.
Definition at line 2097 of file TGeoNavigator.cxx.
Int_t TGeoNavigator::GetVirtualLevel | ( | ) |
Find level of virtuality of current overlapping node (number of levels up having the same tracking media.
Definition at line 2175 of file TGeoNavigator.cxx.
Bool_t TGeoNavigator::GotoSafeLevel | ( | ) |
Go upwards the tree until a non-overlapping node.
Definition at line 2198 of file TGeoNavigator.cxx.
Initialize current point and current direction vector (normalized) in MARS.
Return corresponding node.
Definition at line 1554 of file TGeoNavigator.cxx.
TGeoNode * TGeoNavigator::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 1565 of file TGeoNavigator.cxx.
void TGeoNavigator::InspectState | ( | ) | const |
Inspects path and all flags for the current state.
Definition at line 2258 of file TGeoNavigator.cxx.
|
inlinevirtual |
Reimplemented from TObject.
Definition at line 204 of file TGeoNavigator.h.
|
inline |
Definition at line 137 of file TGeoNavigator.h.
|
inline |
Definition at line 138 of file TGeoNavigator.h.
|
inline |
Definition at line 139 of file TGeoNavigator.h.
|
inline |
Definition at line 140 of file TGeoNavigator.h.
|
inline |
Definition at line 145 of file TGeoNavigator.h.
|
inline |
Definition at line 144 of file TGeoNavigator.h.
|
inline |
Definition at line 143 of file TGeoNavigator.h.
In case a previous safety value was computed, check if the safety region is still safe for the current point and proposed step.
Return value changed only if proposed distance is safe.
Definition at line 2427 of file TGeoNavigator.cxx.
|
inline |
Definition at line 132 of file TGeoNavigator.h.
Checks if point (x,y,z) is still in the current node.
check if this is an overlapping node
Definition at line 2278 of file TGeoNavigator.cxx.
Check if a new point with given coordinates is the same as the last located one.
Definition at line 2450 of file TGeoNavigator.cxx.
|
inline |
Definition at line 134 of file TGeoNavigator.h.
|
inline |
Definition at line 141 of file TGeoNavigator.h.
|
inline |
Definition at line 142 of file TGeoNavigator.h.
Definition at line 185 of file TGeoNavigator.h.
Definition at line 187 of file TGeoNavigator.h.
Definition at line 186 of file TGeoNavigator.h.
Definition at line 188 of file TGeoNavigator.h.
Definition at line 190 of file TGeoNavigator.h.
Definition at line 189 of file TGeoNavigator.h.
Convert coordinates from master volume frame to top.
Definition at line 2505 of file TGeoNavigator.cxx.
|
protecteddelete |
|
inline |
Definition at line 202 of file TGeoNavigator.h.
|
inline |
Definition at line 197 of file TGeoNavigator.h.
Definition at line 198 of file TGeoNavigator.h.
|
inline |
Definition at line 200 of file TGeoNavigator.h.
Definition at line 201 of file TGeoNavigator.h.
Definition at line 196 of file TGeoNavigator.h.
Definition at line 199 of file TGeoNavigator.h.
void TGeoNavigator::ResetAll | ( | ) |
Reset the navigator.
Definition at line 2521 of file TGeoNavigator.cxx.
void TGeoNavigator::ResetState | ( | ) |
Reset current state flags.
Definition at line 1575 of file TGeoNavigator.cxx.
Compute safe distance from the current point.
This represent the distance from POINT to the closest boundary.
Definition at line 1588 of file TGeoNavigator.cxx.
|
protected |
Compute safe distance from the current point within an overlapping node.
Definition at line 1719 of file TGeoNavigator.cxx.
TGeoNode * TGeoNavigator::SearchNode | ( | Bool_t | downwards = kFALSE , |
const TGeoNode * | skipnode = nullptr |
||
) |
Returns the deepest node containing fPoint, which must be set a priori.
Check if parallel world navigation is enabled
Definition at line 1791 of file TGeoNavigator.cxx.
Definition at line 146 of file TGeoNavigator.h.
|
inline |
Definition at line 180 of file TGeoNavigator.h.
|
inline |
Definition at line 176 of file TGeoNavigator.h.
Definition at line 177 of file TGeoNavigator.h.
|
inline |
Definition at line 171 of file TGeoNavigator.h.
Definition at line 172 of file TGeoNavigator.h.
Definition at line 174 of file TGeoNavigator.h.
Definition at line 181 of file TGeoNavigator.h.
|
inline |
Definition at line 182 of file TGeoNavigator.h.
Definition at line 147 of file TGeoNavigator.h.
Definition at line 135 of file TGeoNavigator.h.
|
inline |
Definition at line 136 of file TGeoNavigator.h.
Make a rectiliniar 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 2139 of file TGeoNavigator.cxx.
|
virtual |
|
inline |
Definition at line 204 of file TGeoNavigator.h.
Convert coordinates from top volume frame to master.
Definition at line 2513 of file TGeoNavigator.cxx.
|
private |
current point is supposed to be inside this node
Definition at line 81 of file TGeoNavigator.h.
|
private |
current geometry
Definition at line 74 of file TGeoNavigator.h.
|
private |
cosine of incident angle on current checked surface
Definition at line 50 of file TGeoNavigator.h.
|
private |
unit vector to current closest shape
Definition at line 51 of file TGeoNavigator.h.
|
private |
backup state
Definition at line 82 of file TGeoNavigator.h.
|
private |
current volume
Definition at line 76 of file TGeoNavigator.h.
|
private |
flag set when an overlapping cluster is searched
Definition at line 63 of file TGeoNavigator.h.
|
private |
cache of states
Definition at line 75 of file TGeoNavigator.h.
|
private |
current point
Definition at line 53 of file TGeoNavigator.h.
|
private |
current pointer to cached global matrix
Definition at line 84 of file TGeoNavigator.h.
|
private |
next node that will be crossed
Definition at line 80 of file TGeoNavigator.h.
|
private |
flag that last geometric step was null
Definition at line 73 of file TGeoNavigator.h.
|
private |
current stored global matrix
Definition at line 83 of file TGeoNavigator.h.
|
private |
flag a safe start for point classification
Definition at line 65 of file TGeoNavigator.h.
|
private |
flag if current step just got into a new node
Definition at line 66 of file TGeoNavigator.h.
|
private |
flag that a new point is in the same node as previous
Definition at line 72 of file TGeoNavigator.h.
|
private |
flag that current point is outside geometry
Definition at line 70 of file TGeoNavigator.h.
|
private |
flag that next geometric step will exit current volume
Definition at line 69 of file TGeoNavigator.h.
|
private |
flag that current point is on some boundary
Definition at line 71 of file TGeoNavigator.h.
|
private |
flag that current track is about to leave current node
Definition at line 67 of file TGeoNavigator.h.
|
private |
flag that next geometric step will enter new volume
Definition at line 68 of file TGeoNavigator.h.
|
private |
top physical node
Definition at line 78 of file TGeoNavigator.h.
|
private |
current direction
Definition at line 54 of file TGeoNavigator.h.
|
private |
safety radius from current point
Definition at line 48 of file TGeoNavigator.h.
|
private |
thread id for this navigator
Definition at line 56 of file TGeoNavigator.h.
|
private |
number of overlapping nodes on current branch
Definition at line 58 of file TGeoNavigator.h.
|
private |
last searched node
Definition at line 79 of file TGeoNavigator.h.
|
private |
current geometry level;
Definition at line 57 of file TGeoNavigator.h.
|
private |
last computed safety radius
Definition at line 49 of file TGeoNavigator.h.
|
private |
current recursive position in fOverlapClusters
Definition at line 61 of file TGeoNavigator.h.
|
private |
current size of fOverlapClusters
Definition at line 60 of file TGeoNavigator.h.
|
private |
next daughter index after FindNextBoundary
Definition at line 59 of file TGeoNavigator.h.
|
private |
current local matrix of the selected division cell
Definition at line 85 of file TGeoNavigator.h.
|
private |
unit vector to current checked shape
Definition at line 52 of file TGeoNavigator.h.
|
private |
step to be done from current point and direction
Definition at line 47 of file TGeoNavigator.h.
|
private |
internal array for overlaps
Definition at line 62 of file TGeoNavigator.h.
|
private |
flags the type of the current node
Definition at line 64 of file TGeoNavigator.h.
|
private |
Definition at line 46 of file TGeoNavigator.h.
|
private |
last point for which safety was computed
Definition at line 55 of file TGeoNavigator.h.
|
private |
current node
Definition at line 77 of file TGeoNavigator.h.