[root] / trunk / geom / geom / src / TGeoNavigator.cxx Repository:
ViewVC logotype

Log of /trunk/geom/geom/src/TGeoNavigator.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 44557 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 5 09:25:52 2012 UTC (2 years, 7 months ago) by agheata
File length: 87141 byte(s)
Diff to previous 43155
Large chunk of coverity fixes

Revision 43155 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 28 14:27:43 2012 UTC (2 years, 10 months ago) by agheata
File length: 86847 byte(s)
Diff to previous 42982
Added thread id retrieval via TLS. Faster version of TGeoBranchArray. Added getters for specific activity (in Bq/gram) for radioactive elements and materials/mixtures via GetSpecificActivity().

Revision 42982 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 13 10:21:23 2012 UTC (2 years, 11 months ago) by agheata
File length: 86330 byte(s)
Diff to previous 41891
Added support structure TGeoStateInfo to communicate stateful navigation data internally. Fully removed locking from TGeoManager and TGeoVoxelFinder.

Revision 41891 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 10 22:46:31 2011 UTC (3 years, 2 months ago) by pcanal
File length: 85777 byte(s)
Diff to previous 41351
Remove all assigned but unused variable discovered by g++ 4.6.1 (including one completely nop function)

Revision 41351 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 12 09:59:03 2011 UTC (3 years, 3 months ago) by pcanal
File length: 85914 byte(s)
Diff to previous 41341
Comment out debug printout

Revision 41341 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 11 14:58:29 2011 UTC (3 years, 3 months ago) by agheata
File length: 85911 byte(s)
Diff to previous 41301
Adding thread id as parameter to methods of TGeoVoxelFinder to avoid passing through the serial TGeoManager::ThreadId. This recovers quite good the scalability with the number of threads

Revision 41301 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 10 13:26:43 2011 UTC (3 years, 3 months ago) by agheata
File length: 85607 byte(s)
Diff to previous 41274
Allow locking adding navigators to avoid TThread::Lock in TGeoManager::ThreadId

Revision 41274 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 7 12:10:43 2011 UTC (3 years, 3 months ago) by agheata
File length: 85592 byte(s)
Diff to previous 40853
Thread safe TGeoManager. Clean-up thread data at the end. Navigators cleaned-up.

Revision 40853 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 12 15:38:10 2011 UTC (3 years, 4 months ago) by agheata
File length: 85572 byte(s)
Diff to previous 40609
Adjusted IsSameLocation(...,kTRUE) to update the point position and adjust the last computed safety in case the checked point is within the old computed safety. Thanks to Tobias Schluter.

Revision 40609 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 17 07:12:58 2011 UTC (3 years, 5 months ago) by agheata
File length: 85296 byte(s)
Diff to previous 40116
Coverity fix

Revision 40116 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 4 12:00:32 2011 UTC (3 years, 6 months ago) by agheata
File length: 85150 byte(s)
Diff to previous 38245
Allow creating and accessing transparently a different list of navigators for each calling thread. Must be initialized via TGeoManager::SetMultiThread()

Revision 38245 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 28 14:10:23 2011 UTC (3 years, 10 months ago) by agheata
File length: 84654 byte(s)
Diff to previous 38238
reverted last change that has to be checked against stressGeom first

Revision 38238 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 28 08:48:16 2011 UTC (3 years, 10 months ago) by agheata
File length: 85357 byte(s)
Diff to previous 35671
Small navigation corrections. Assembly shapes do not need to be reflected in case of G4Root (only their content)

Revision 35671 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 14:57:00 2010 UTC (4 years, 4 months ago) by agheata
File length: 84654 byte(s)
Diff to previous 35639
Fixed FORWARD_NULL issue affecting geometries with volume activity enabled.

Revision 35639 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 12:02:31 2010 UTC (4 years, 4 months ago) by agheata
File length: 84632 byte(s)
Diff to previous 35638
Fixed unused values.

Revision 35638 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 09:56:56 2010 UTC (4 years, 4 months ago) by agheata
File length: 84621 byte(s)
Diff to previous 34998
Fixed unused variable

Revision 34998 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 25 11:11:48 2010 UTC (4 years, 5 months ago) by agheata
File length: 84628 byte(s)
Diff to previous 34890
Initializations in default constructor (coverity #21473

Revision 34890 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 20 15:03:09 2010 UTC (4 years, 5 months ago) by agheata
File length: 84444 byte(s)
Diff to previous 31002
Fixed uninitialized variable. Coverity #21375

Revision 31002 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 6 09:27:30 2009 UTC (5 years, 2 months ago) by brun
File length: 84320 byte(s)
Diff to previous 30012
From Andrei:
a tracking optimization patch, based on the new function TGeoNavigator::IsSafeStep(). This backs-up the last computed safety in correlation with the last point coordinates (safety sphere). When a new safety is asked during FindNextBoundary calls, it first checks if the safe sphere around the new point is included in the old one. If this is the case the function returns true and the navigator just approves the step. This avoids the expensive FindNextBoundary calls when the steps imposed by MC are very small.
Particularly efficient in large volumes in FLUKA simulations.

Revision 30012 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 2 06:55:05 2009 UTC (5 years, 4 months ago) by brun
File length: 82660 byte(s)
Diff to previous 29393
From Andrei and Yuri Fisiak:
a small fix by Yuri in restoring the old safety value. The modification in TGeoCone.cxx is disabled for the moment and represent a first try (not completed) to compute accurate safety for cones.

Revision 29393 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 8 07:44:49 2009 UTC (5 years, 6 months ago) by brun
File length: 82662 byte(s)
Diff to previous 27760
From Andrei:
fixes an incoherency while navigating in assembly volumes by correctly storing the index of the next crossed daughter to the assembly. The effect was that in some rare cases assembly volumes appeared in tracking with GEANT4.

Revision 27760 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 12 08:41:34 2009 UTC (5 years, 10 months ago) by brun
File length: 82493 byte(s)
Diff to previous 27749
From Andrei:
Change the tolerance when crossing boundaries.
Add more debugging capabilities.

Revision 27749 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 10 15:23:52 2009 UTC (5 years, 10 months ago) by brun
File length: 81390 byte(s)
Diff to previous 27731
From Andrei:
 New method void TGeoManager::CheckBoundaryErrors(Int_t ntracks, Double_t radius). Checks how much the point propagated from a random position and direction to the boundary given by FindNextBoundary() has to be pushed forward or pulled backward to numerically cross (or not cross) the boundary. The optional radius can be used to limit the search volume. The method generates a reference with the points with pushes/pulls lower than 1E-5. This can be played back using the method: void TGeoManager::CheckBoundaryReference(Int_t icheck). If icheck is non-negative, the shape for which the crossing failed is drawn with the starting point in red and the extrapolated point to boundary (+/- failing push/pull) in yellow.

Currently the method gives a distribution with tails at ~1E-5. Investigating these I could not find other than truncation errors effects (that can get surprisingly big) in very rare cases and which need further in-depth investigation to see if they can be due to flaws in shape algorithms or they are just numerical "accidents". There is no obvious error left (at least in case of ALICE geometry)

Revision 27731 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 9 17:40:56 2009 UTC (5 years, 10 months ago) by brun
File length: 79546 byte(s)
Diff to previous 27596
From Andrei:
- Removed casting away constness in headers, and removed == and != between doubles in all geom code (Philippe's suggestion)
- Info messages suppressed now by the static TGeoManager::SetVerboseLevel(0). We should probably call this at the beginning of stressGeometry.cxx
- Fine tune in TGeoIntersection::DistFromInside() that solves inner boundary crossings in case the starting point is very close to boundary
- TGeoManager::FindInCluster() gives now priority (when selecting between MANY candidates) to the node that was proposed by FindNextBoundary()

Revision 27596 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 24 15:45:12 2009 UTC (5 years, 10 months ago) by brun
File length: 79344 byte(s)
Diff to previous 27448
From Andrei:
- avoid a useless mater->local conversion in TGeoNavigator::IsSameLocation()
- fix in TGeoCone::DistFromOutsideS() that could wrongly compute the distance in case rmin=rmax for a cone top/bottom

Revision 27448 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 13 13:38:35 2009 UTC (5 years, 11 months ago) by brun
File length: 79353 byte(s)
Diff to previous 27434
From Andrei:
- Precision fix when crossing divisions

Revision 27434 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 12 14:01:16 2009 UTC (5 years, 11 months ago) by brun
File length: 79305 byte(s)
Diff to previous 26991
From Andrei:
- Truncation errors better taken into account when propagating to boundaries.
- A fix for TGeoXtru::DistFromInside() in case propagation to outside fails.
- A very important protection in TGeoArb8 that checks if the vertices are defined clockwise. It posts an error message if this is not the case and automatically fixes the wrong shapes event if geometry is loaded from file.

Revision 26991 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 17 15:16:28 2008 UTC (6 years, 1 month ago) by brun
File length: 78410 byte(s)
Diff to previous 25777
From Federico:
A few code optimizations.

Revision 25777 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 10 10:37:48 2008 UTC (6 years, 3 months ago) by brun
File length: 78398 byte(s)
Diff to previous 23478
From Andrei:
While debugging the interfaces with G4/FLUKA, i found a couple of bugs related to TGeoNavigator::FindNextBoundaryAndStep(). One problem was affecting crossing boundaries within divided volumes (sometimes a step was made in the mother volume and few division cells were skipped). The other problem was wrongly returning the top node even if the point was correctly located.

Both problems are fixed by the patch. This will certainly improve the situation for the problems reported both with TFluka and g4root interfaces, as well as rare problems when computing the material budget in ALICE (reconstruction). Does not affect G3 navigation that works using FindNextBoundary()

Revision 23478 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 23 14:36:55 2008 UTC (6 years, 9 months ago) by brun
File length: 75624 byte(s)
Diff to previous 22959
From Andrei:
Fix many shadowed variables.

Revision 22959 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 11:56:37 2008 UTC (6 years, 9 months ago) by brun
File length: 75526 byte(s)
Diff to previous 22923
From Andrei:
fix for a crash when calling Safety() before any other navigation method for an aligned volume.

Revision 22923 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 1 12:34:14 2008 UTC (6 years, 9 months ago) by rdm
File length: 75406 byte(s)
Diff to previous 21853
move geom, geombuilder, geompainter and gdml to geom meta directory.

Revision 21853 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 25 11:17:04 2008 UTC (7 years ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 75406 byte(s)
Diff to previous 21494
From Andrei:
I fixed the problem of double delete of a matrix when exporting as .gdml or .C . Also added a small optimization in copying matrices that seems to have a non-negligible effect on the speed of stressGeometry

Revision 21494 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 19 15:50:40 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 75341 byte(s)
Diff to previous 21301
Update to the class docs and index.txt files.

Revision 21301 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 10 16:21:50 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 74982 byte(s)
Diff to previous 21256
From Andrei:
there was an implicit dependency of TGeoMatrix by TGeoManager.h via TGeoNavigator.h->TGeoCache.h + few other bad dependencies like: TGeoMatrix included by TGeoNode.h via TGeoPatternFinder.h  Hmm... I had to cleanup few inlines, introduce a transient matrix in TGeoNavigator (to recover the lost inlining speed) + add several #include "TGeoMatrix.h" allover where this was included and used via TGeoManager.h

Revision 21256 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 7 09:41:04 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 74392 byte(s)
Diff to previous 21222
From Andrei:
Fix coding conventions.

Revision 21222 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 6 10:39:41 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 74392 byte(s)
Diff to previous 20882
From Andrei:
-The fix in navigation adds protections in case of MANY overlaps of divided volumes, plus precision-related changes like:

if (snext<fStep)  ->  if (snext<fStep-gTolerance)

This should fix the discrepancies found when running stressGeometry.
see coming check-in.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 73333 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 73333 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 73388 byte(s)
Diff to previous 19777
remove :$ from tag line

Revision 19777 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 10 14:28:49 2007 UTC (7 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 73398 byte(s)
Diff to previous 18989
From Andrei:
a diff with a new class TGeoUniformVoxels that is supposed to increase navigation speed. For the moment it does not - there is still some work to be done - so it is not yet used. The patch contains also a fix for the problem of visualization of daughters of composites.

Revision 18989 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri Jun 8 15:46:30 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/geom/src/TGeoNavigator.cxx
File length: 73205 byte(s)
From Andrei & Mihaela:
I managed together with Mihaela to split out all navigation functionality out of TGeoManager into a new class TGeoNavigator (attached diff, .h and .cxx). The changes are fully backward compatible and did not require modifying the streamer of TGeoManager. We have tested with:
- /roottest/root/io/geo - the reference changes a bit (name of a class)
- aliroot with G3
- /test/stressGeometry

New feature: one has a default navigator for a geometry but may add several others for parallel navigation:

TGeoNavigator *navig = new TGeoNavigator(gGeoManager);
Int_t inav = gGeoManager->AddNavigator(navig);
gGeoManager->SetCurrentNavigator(inav);
.... and then switch back to the default navigator:
gGeoManager->SetCurrentNavigator(0);

One may also derive from TGeoNavigator and implement its own navigation (I doubt that this will ever happen but you never know...)

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9