Log of /trunk/geom/geom/src/TGeoNavigator.cxx
Parent Directory
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
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
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
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
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
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
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
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
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
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
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.