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 32 of file TGeoNavigator.h.
Public Member Functions | |
TGeoNavigator () | |
global mode is caching enabled for parallel world safety calls | |
TGeoNavigator (TGeoManager *geom) | |
Constructor. | |
~TGeoNavigator () override | |
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 | GetPWSafety (Double_t cpoint[3], Double_t saf_max) |
Wrapper for getting the safety from the parallel world. | |
Double_t | GetPWSafetyEstimateFromCache (Double_t cpoint[3]) const |
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. | |
TClass * | IsA () const override |
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). | |
void | Streamer (TBuffer &) override |
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 (the base implementation is no-op). | |
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, void *vp) |
Only called by placement new when throwing an exception. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void | operator delete[] (void *ptr, void *vp) |
Only called by placement new[] when throwing an exception. | |
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 Bool_t | IsPWSafetyCaching () |
static void | SetPWSafetyCaching (Bool_t b) |
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 | fLastPWSafety {-1} |
last point for which parallel world safety was "evaluated" | |
Double_t | fLastPWSaftyPnt [3] |
last point for which safety was computed | |
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 safety returned from parallel world (negative if invalid) | |
TGeoNode * | fTopNode |
current node | |
Static Private Attributes | |
static Bool_t | fgUsePWSafetyCaching = kFALSE |
path to 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 | ( | ) |
global mode is caching enabled for parallel world safety calls
Constructor.
Definition at line 57 of file TGeoNavigator.cxx.
TGeoNavigator::TGeoNavigator | ( | TGeoManager * | geom | ) |
Constructor.
Definition at line 109 of file TGeoNavigator.cxx.
|
override |
Destructor.
Definition at line 169 of file TGeoNavigator.cxx.
Builds the cache for physical nodes and global matrices.
Definition at line 182 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 210 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 313 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 333 of file TGeoNavigator.cxx.
void TGeoNavigator::CdNext | ( | ) |
Do a cd to the node found next by FindNextBoundary.
Definition at line 405 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 301 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 386 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 352 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 256 of file TGeoNavigator.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 282 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 523 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 461 of file TGeoNavigator.cxx.
|
inlinestatic |
Definition at line 282 of file TGeoNavigator.h.
void TGeoNavigator::DoBackupState | ( | ) |
Backup the current state without affecting the cache stack.
Definition at line 2648 of file TGeoNavigator.cxx.
void TGeoNavigator::DoRestoreState | ( | ) |
Restore a backed-up state without affecting the cache stack.
Definition at line 2657 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 2159 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 624 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 1178 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 988 of file TGeoNavigator.cxx.
Returns deepest node containing current point.
Definition at line 1543 of file TGeoNavigator.cxx.
Returns deepest node containing current point.
Definition at line 1566 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 1613 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 1593 of file TGeoNavigator.cxx.
void TGeoNavigator::GetBranchNames | ( | Int_t * | names | ) | const |
Fill volume names of current branch into an array.
Definition at line 436 of file TGeoNavigator.cxx.
Fill node copy numbers of current branch into an array.
Definition at line 444 of file TGeoNavigator.cxx.
void TGeoNavigator::GetBranchOnlys | ( | Int_t * | isonly | ) | const |
Fill node copy numbers of current branch into an array.
Definition at line 452 of file TGeoNavigator.cxx.
|
inline |
Definition at line 243 of file TGeoNavigator.h.
|
inline |
Definition at line 165 of file TGeoNavigator.h.
|
inline |
Definition at line 164 of file TGeoNavigator.h.
|
inline |
Definition at line 162 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 161 of file TGeoNavigator.h.
|
inline |
Definition at line 163 of file TGeoNavigator.h.
|
inline |
Definition at line 166 of file TGeoNavigator.h.
TGeoHMatrix * TGeoNavigator::GetHMatrix | ( | ) |
Return stored current matrix (global matrix of the next touched node).
Definition at line 2670 of file TGeoNavigator.cxx.
|
inline |
Definition at line 122 of file TGeoNavigator.h.
|
inline |
Definition at line 127 of file TGeoNavigator.h.
|
inline |
Definition at line 169 of file TGeoNavigator.h.
Definition at line 155 of file TGeoNavigator.h.
|
inline |
Definition at line 156 of file TGeoNavigator.h.
|
inline |
Definition at line 153 of file TGeoNavigator.h.
|
inline |
Definition at line 154 of file TGeoNavigator.h.
|
inline |
Definition at line 105 of file TGeoNavigator.h.
|
inline |
Definition at line 152 of file TGeoNavigator.h.
|
inline |
Definition at line 168 of file TGeoNavigator.h.
const char * TGeoNavigator::GetPath | ( | ) | const |
Get path to the current node in the form /node0/node1/...
Definition at line 2682 of file TGeoNavigator.cxx.
Wrapper for getting the safety from the parallel world.
Takes care of caching mechanics + talking to the parallel world.
Definition at line 1656 of file TGeoNavigator.cxx.
Definition at line 208 of file TGeoNavigator.h.
|
inline |
Definition at line 126 of file TGeoNavigator.h.
Int_t TGeoNavigator::GetSafeLevel | ( | ) | const |
Go upwards the tree until a non-overlapping node.
Definition at line 2406 of file TGeoNavigator.cxx.
|
inline |
Definition at line 171 of file TGeoNavigator.h.
|
inline |
Definition at line 128 of file TGeoNavigator.h.
|
inline |
Definition at line 129 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 2245 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 2331 of file TGeoNavigator.cxx.
Bool_t TGeoNavigator::GotoSafeLevel | ( | ) |
Go upwards the tree until a non-overlapping node.
Definition at line 2357 of file TGeoNavigator.cxx.
Initialize current point and current direction vector (normalized) in MARS.
Return corresponding node.
Definition at line 1622 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 1633 of file TGeoNavigator.cxx.
void TGeoNavigator::InspectState | ( | ) | const |
Inspects path and all flags for the current state.
Definition at line 2425 of file TGeoNavigator.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 282 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 141 of file TGeoNavigator.h.
|
inline |
Definition at line 146 of file TGeoNavigator.h.
|
inline |
Definition at line 145 of file TGeoNavigator.h.
|
inline |
Definition at line 144 of file TGeoNavigator.h.
|
inlinestatic |
Definition at line 232 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 2609 of file TGeoNavigator.cxx.
|
inline |
Definition at line 133 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 2446 of file TGeoNavigator.cxx.
Check if a new point with given coordinates is the same as the last located one.
Definition at line 2634 of file TGeoNavigator.cxx.
|
inline |
Definition at line 135 of file TGeoNavigator.h.
|
inline |
Definition at line 142 of file TGeoNavigator.h.
|
inline |
Definition at line 143 of file TGeoNavigator.h.
Definition at line 235 of file TGeoNavigator.h.
Definition at line 237 of file TGeoNavigator.h.
Definition at line 236 of file TGeoNavigator.h.
Definition at line 238 of file TGeoNavigator.h.
Definition at line 240 of file TGeoNavigator.h.
Definition at line 239 of file TGeoNavigator.h.
Convert coordinates from master volume frame to top.
Definition at line 2692 of file TGeoNavigator.cxx.
|
protecteddelete |
|
inline |
Definition at line 280 of file TGeoNavigator.h.
|
inline |
Definition at line 247 of file TGeoNavigator.h.
Definition at line 255 of file TGeoNavigator.h.
|
inline |
Definition at line 264 of file TGeoNavigator.h.
Definition at line 272 of file TGeoNavigator.h.
Definition at line 246 of file TGeoNavigator.h.
Definition at line 263 of file TGeoNavigator.h.
void TGeoNavigator::ResetAll | ( | ) |
Reset the navigator.
Definition at line 2708 of file TGeoNavigator.cxx.
void TGeoNavigator::ResetState | ( | ) |
Reset current state flags.
Definition at line 1643 of file TGeoNavigator.cxx.
Compute safe distance from the current point.
This represent the distance from POINT to the closest boundary.
Definition at line 1689 of file TGeoNavigator.cxx.
|
protected |
Compute safe distance from the current point within an overlapping node.
Definition at line 1846 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 1924 of file TGeoNavigator.cxx.
Definition at line 147 of file TGeoNavigator.h.
|
inline |
Definition at line 193 of file TGeoNavigator.h.
|
inline |
Definition at line 185 of file TGeoNavigator.h.
Definition at line 186 of file TGeoNavigator.h.
|
inline |
Definition at line 172 of file TGeoNavigator.h.
Definition at line 173 of file TGeoNavigator.h.
Definition at line 179 of file TGeoNavigator.h.
Definition at line 194 of file TGeoNavigator.h.
|
inline |
Definition at line 199 of file TGeoNavigator.h.
Definition at line 148 of file TGeoNavigator.h.
|
inlinestatic |
Definition at line 231 of file TGeoNavigator.h.
Definition at line 136 of file TGeoNavigator.h.
|
inline |
Definition at line 137 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 2290 of file TGeoNavigator.cxx.
|
overridevirtual |
|
inline |
Definition at line 282 of file TGeoNavigator.h.
Convert coordinates from top volume frame to master.
Definition at line 2700 of file TGeoNavigator.cxx.
|
private |
current point is supposed to be inside this node
Definition at line 80 of file TGeoNavigator.h.
|
private |
current geometry
Definition at line 73 of file TGeoNavigator.h.
|
private |
cosine of incident angle on current checked surface
Definition at line 47 of file TGeoNavigator.h.
|
private |
unit vector to current closest shape
Definition at line 48 of file TGeoNavigator.h.
|
private |
backup state
Definition at line 81 of file TGeoNavigator.h.
|
private |
current volume
Definition at line 75 of file TGeoNavigator.h.
|
private |
flag set when an overlapping cluster is searched
Definition at line 62 of file TGeoNavigator.h.
|
private |
cache of states
Definition at line 74 of file TGeoNavigator.h.
|
private |
current point
Definition at line 50 of file TGeoNavigator.h.
|
private |
current pointer to cached global matrix
Definition at line 83 of file TGeoNavigator.h.
|
private |
next node that will be crossed
Definition at line 79 of file TGeoNavigator.h.
|
private |
flag that last geometric step was null
Definition at line 72 of file TGeoNavigator.h.
|
private |
current stored global matrix
Definition at line 82 of file TGeoNavigator.h.
path to current node
Definition at line 86 of file TGeoNavigator.h.
|
private |
flag a safe start for point classification
Definition at line 64 of file TGeoNavigator.h.
|
private |
flag if current step just got into a new node
Definition at line 65 of file TGeoNavigator.h.
|
private |
flag that a new point is in the same node as previous
Definition at line 71 of file TGeoNavigator.h.
|
private |
flag that current point is outside geometry
Definition at line 69 of file TGeoNavigator.h.
|
private |
flag that next geometric step will exit current volume
Definition at line 68 of file TGeoNavigator.h.
|
private |
flag that current point is on some boundary
Definition at line 70 of file TGeoNavigator.h.
|
private |
flag that current track is about to leave current node
Definition at line 66 of file TGeoNavigator.h.
|
private |
flag that next geometric step will enter new volume
Definition at line 67 of file TGeoNavigator.h.
|
private |
top physical node
Definition at line 77 of file TGeoNavigator.h.
|
private |
current direction
Definition at line 51 of file TGeoNavigator.h.
|
private |
last point for which parallel world safety was "evaluated"
Definition at line 53 of file TGeoNavigator.h.
|
private |
last point for which safety was computed
Definition at line 52 of file TGeoNavigator.h.
|
private |
safety radius from current point
Definition at line 45 of file TGeoNavigator.h.
|
private |
thread id for this navigator
Definition at line 55 of file TGeoNavigator.h.
|
private |
number of overlapping nodes on current branch
Definition at line 57 of file TGeoNavigator.h.
|
private |
last searched node
Definition at line 78 of file TGeoNavigator.h.
|
private |
current geometry level;
Definition at line 56 of file TGeoNavigator.h.
|
private |
last computed safety radius
Definition at line 46 of file TGeoNavigator.h.
|
private |
current recursive position in fOverlapClusters
Definition at line 60 of file TGeoNavigator.h.
|
private |
current size of fOverlapClusters
Definition at line 59 of file TGeoNavigator.h.
|
private |
next daughter index after FindNextBoundary
Definition at line 58 of file TGeoNavigator.h.
|
private |
current local matrix of the selected division cell
Definition at line 84 of file TGeoNavigator.h.
|
private |
unit vector to current checked shape
Definition at line 49 of file TGeoNavigator.h.
|
private |
step to be done from current point and direction
Definition at line 44 of file TGeoNavigator.h.
|
private |
internal array for overlaps
Definition at line 61 of file TGeoNavigator.h.
|
private |
flags the type of the current node
Definition at line 63 of file TGeoNavigator.h.
|
private |
Definition at line 43 of file TGeoNavigator.h.
|
private |
last safety returned from parallel world (negative if invalid)
Definition at line 54 of file TGeoNavigator.h.
|
private |
current node
Definition at line 76 of file TGeoNavigator.h.