Log of /trunk/geom/geompainter/src/TGeoChecker.cxx
Parent Directory
Revision
48046 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 14 15:35:16 2012 UTC (2 years, 1 month ago) by
rdm
File length: 106171 byte(s)
Diff to
previous 47356
From Ioan:
Replace the trunk code that uses the deprecated TH1::kCanRebin bit with
the new methods TH1::CanExtendAllAxes() and TH1::SetCanExtend() - see r47909,
r48012 and r48031. The old TH1::kCanRebin bit did not really have much to
do with histogram rebinning, but rather with extending the limits of the
histogram's axes (which can cause a rebin, but only in some cases). As such,
the word "Rebin" has been replaced with "Extend" for the new methods.
Rename TH1::RebinAxis() to TH1::ExtendAxis() for the reasons stated above.
The TH1::RebinAxis() method will be kept in v6-00 for backward compatibility
with an obsolete warning and will be removed in v6-02. The current
implementation simply forwards the call to TH1::ExtendAxis().
Revision
47228 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 13 17:09:38 2012 UTC (2 years, 2 months ago) by
agheata
File length: 106151 byte(s)
Diff to
previous 44557
Added possibility to prevent known overlaps produced by misalignment by assignig priority to one of the candidates. This is not using the error prone AddNodeOverlap method, but composite shapes. One has to create the unprioritized shape as the subtraction of the original one and the shape of the node to prioritize, then position this composite shape colume with identity matrix. The prioritized volume should be added as node using the same local matrix as the one used in the subtraction operation. The matrix itself has to be declared shared via SetShared() method. Added few parameters to the RandomRays method.
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: 104994 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: 104791 byte(s)
Diff to
previous 39625
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
39021 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 14:25:40 2011 UTC (3 years, 9 months ago) by
agheata
File length: 97343 byte(s)
Diff to
previous 39018
Fixed TGeoArb8::DistFromInside when point is on the boundary. Extended TGeoChecker::CheckShape to detect errors when starting from boundaries
Revision
39018 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 09:38:31 2011 UTC (3 years, 9 months ago) by
agheata
File length: 95734 byte(s)
Diff to
previous 36535
New generic method to check shape navigation methods TGeoShape::CheckShape that can run a given test number from a test suite. Currently a single test implemented (see desctiption in TGeoShape::CheckShape). Fixed TGeoArb8::DistToPlane with respect to boundary crossing. Added possibility to divide assemblies according a pattern (still under development). This is the first step in being able to gave generic divided-like volumes without being forced to have a container shape - particularly useful in describing calorimeters.
Revision
32735 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 24 16:27:32 2010 UTC (4 years, 10 months ago) by
brun
File length: 89671 byte(s)
Diff to
previous 32690
From Andrei:
fixes computation of the normal for scaled shapes and modified the RandomRays algorithm to visualize also the normals to crossed surfaces. Addresses the bug report on roottalk by Corey Reed.
Revision
32690 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Mar 21 08:47:56 2010 UTC (4 years, 10 months ago) by
brun
File length: 88728 byte(s)
Diff to
previous 31612
From Andrei:
This patch implements SetPoints for composite shapes, allowing to have a mesh of points for composites. Not having this was limiting the overlap checker to non-composites.
Revision
27770 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 13 17:02:53 2009 UTC (5 years, 10 months ago) by
brun
File length: 89174 byte(s)
Diff to
previous 27749
From Andrei:
- The patch highly improves the numerical precision in solving the quartic equation for computing the distance to boundaries. The errors of the distance computation typically peaked at 1E-6 with the old algorithm, but in certain conditions could be as high as 1E-1 to 1E0. The new algorithm makes the precision better than 1E-9 in all cases (typical for most shapes)
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: 89114 byte(s)
Diff to
previous 26157
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
25123 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 12 09:59:46 2008 UTC (6 years, 5 months ago) by
brun
File length: 81113 byte(s)
Diff to
previous 24968
From Andrei:
- outline sampling points used for overlap checking were wrongly generated in case navigation/drawing methods were invoked before CheckOverlaps()
- new method TGeoManager::SetNmeshPoints(npoints) can be used to modify the number of mesh points used in overlap checking. Default value is 1000.
- prototype of TGeoPhysicalNode::Align(TGeoMatrix *, TGeoShape *, Bool_t check, Double_t ovlp) changed - last parameter added. Representing the overlap tolerance in case the physical node is aligned with check=true option. Default value 0.001 (10 microns). In this case only the overlaps of the aligned object (or daughters if an assembly) are reported.
- Checking only overlaps of a single node possible by calling: TGeoManager::SetCheckedNode(TGeoNode *node). User responsibility to restore checked node to NULL after the check.
Revision
24968 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 28 20:39:24 2008 UTC (6 years, 5 months ago) by
brun
File length: 76126 byte(s)
Diff to
previous 24870
From Andrei:
fix for the bug mentioned by Christian + a protection in TGeoXtru for not allowing holes in the polygon + some refinement in the overlap checker progress bar.
Revision
24870 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 17 16:30:58 2008 UTC (6 years, 6 months ago) by
brun
File length: 73106 byte(s)
Diff to
previous 24419
From Andrei:
new development related to overlap checking. This generates not only the shape mesh vertices but some 1000 points on the shape outline/surface. This is implemented for all important shapes except TGeoPcon (which works using the old method).
Revision
24419 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 13:40:38 2008 UTC (6 years, 7 months ago) by
brun
File length: 76145 byte(s)
Diff to
previous 23810
From Andrei:
a patch that unifies the overlap checking methods by sampling via the standard. There is also a new method introduced to sample points on shapes surface - implemented only for TGeoBBox for the moment.
Revision
23809 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 13 07:34:38 2008 UTC (6 years, 8 months ago) by
brun
File length: 75727 byte(s)
Diff to
previous 22923
From Andrei:
- adding a method AddTrack(TVirtualGeoTrack *) to TGeoManager.
- TGeoBoolNode::Safety(point, in) returns now 0. in case the tracking point is not matching the input <in> condition - caused track propagation outside geometry limits with g4root
- Improvements in checking overlaps by sampling for TGeoNode - using now voxels.
Revision
22419 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 3 00:25:01 2008 UTC (6 years, 10 months ago) by
rdm
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 75698 byte(s)
Diff to
previous 21569
From Andrew Savchenko:
ROOT can not be compiled with gcc-4.3.
Some ROOT source files doesn't contain required #include directives,
for example, they use strlen(), but #include <string.h> is missed or
malloc() is used and #include <stdlib.h> is missed.
Earlier versions of gcc allowed some headers to be included implicitly,
but issued a warning (-Wimplicit-function-declaration). Newer one,
gcc-4.3 denies such silly behaviour: all required headers must be explicitly
included.
Attached patch fixes this. Also it fixes another issue, which disallows
ROOT to compile under gcc-4.3: C functions don't belong to namespace std,
so expressions like std::memcpy() are no longer valid and plain memcpy()
should be used instead.
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/geompainter/src/TGeoChecker.cxx
File length: 77219 byte(s)
Diff to
previous 19662
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
19652 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 20 14:00:56 2007 UTC (7 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 74685 byte(s)
Diff to
previous 19650
From Andrei:
Extend functionality of overlap checker and performance analyzer by introducing a new function:
void CheckGeometryFull(Int_t ntracks=10000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
The method is doing a 4 stage check:
- if option contains 'o': Optional overlap checkings (by sampling and by mesh).
- if option contains 'b': Optional boundary crossing check + timing per volume.
STAGE 1: extensive overlap checking by sampling per volume. Stdout need to be checked by user to get report, then TGeoVolume::CheckOverlaps(0.01, "s") can be called for the suspicious volumes.
STAGE2 : normal overlap checking using the shapes mesh - fills the list of overlaps.
STAGE3 : shooting NRAYS rays from VERTEX and counting the total number of crossings per volume (rays propagated from boundary to boundary until
geometry exit). Timing computed and results stored in a histo.
STAGE4 : shooting 1 mil. random rays inside EACH volume and calling FindNextBoundary() + Safety() for each call. The timing is normalized by the number of crossings computed at stage 2 and presented as percentage.
One can get a picture on which are the most "burned" volumes during
transportation from geometry point of view. Another plot of the timing per volume vs. number of daughters is produced.
All histos are saved in the file statistics.root
Revision
19650 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 20 08:49:08 2007 UTC (7 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 63939 byte(s)
Diff to
previous 18989
From Andrei:
- TGeoPNEntry class has now an additional pointer to the original matrix, which is set in the class ctor and works provided that all PNEntry objects are created BEFORE applying any alignment. The getter for this original (LOCAL) matrix of the last TGeoNode in the branch is:
TGeoMatrix *TGeoPNEntry::GetMatrixOrig()
- Modified method:
TGeoPNEntry * TGeoManager::SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1);
If UID is provided, one can do a (fast) retrieval by UID (based on binary search):
TGeoPNEntry *TGeoManager::GetAlignableEntryByUID(Int_t uid) const;
The UID mapping becomes persistent with the geometry. To retrieve the number of entries having (or not) uid's defined, I modified:
Int_t TGeoManager::GetNAlignable(Bool_t with_uid=kFALSE) const
- Added method TGeoOverlap::SampleOverlap(Int_t npoints) for overlaps/extrusions in the context menu of overlaps. This normally produces a picture of the overlap having random red points in the overlapping region. Helps a lot to check how big the overlap is (prints the volume of the overlapping region) and to validate if the overlap is valid or not.
- TGeoVolume::CheckOverlaps(Double_t ovlp, Option_t *option) produces now overlap objects in the list of overlaps of TGeoManager in case option="s" (sampling). Very useful for doing an extensive check on ovelaps as an alternative to the fast method.
Note: when checking assembly vs. assembly (or volume) only one overlap is reported (the check does not show which node in the assembly produced the overlap). A graphical output giving hints is still provided in this case.
Revision
18989 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 8 15:46:30 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 63110 byte(s)
Diff to
previous 18553
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...)
Revision
18553 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 23 08:58:53 2007 UTC (7 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 63062 byte(s)
Diff to
previous 17338
From Andrei:
- new method TGeoShape::GetMeshNumbers() that allows getting the number of points, segments and polygons in the mesh of any shape - to be used by an upgrade of the overlap checker
- addition in the overlap checker to use the above info
- modifications in TGeoManager for improving performance for tracking geantinos with G4root interface
Revision
16680 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 3 21:22:32 2006 UTC (8 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 58154 byte(s)
Diff to
previous 14556
From Andrei:
1. Possibility to export/import TGeoVolume objects in a similar way as we
can do it for TGeoManager class. Note that for the moment only the .root and
.C formats are supported (for .gdml I don't know how to do it). One can now
import several volumes from file(s) and connect them to the same TGeoManager
object:
Exporting is straightforward:
module1->Export("file.root"); // by default file is overwritten
module2->Export("file.root","","update"); // to the same file
Importing will append the volume to the current TGeoManager or will create
one:
TGeoManager *geom = new TGeoManager("myGeom", "");
TGeoVolume *top = geom->MakeBox(...);
geom->SetTopVolume(top);
TGeoVolume *module1 = TGeoVolume::Import("file.root", "MOD1"); //
name of volume or key (depending on export usage)
TGeoVolume *module2 = TGeoVolume::Import("file.root", "MOD2");
top->AddNode(module1, 1, new TGeoTranslation(0,0,100));
top->AddNode(module2, 1, new TGeoTranslation(0,0,-100));
geom->CloseGeometry(); // One should close himself the geometry
2. Fix in the overlap checker and functionality extension:
TGeoVolume::CheckOverlaps(Double_t ovlp, Option_t *option)
uses now option="d" or option="d<number>" to perform overlap checking by
sampling the volume with <number> random points (default 1 mil.). It
produces also a picture showing in red the overlapping region and estimates
the volume of the overlaps.
3. TGeoMaterial class takes now as optional arguments the material state,
temperature and pressure for compatibility with GEANT4
4. Few modifications of some navigation flags needed to run correctly G4
navigation interface.
Revision
13960 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 31 14:02:36 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 51111 byte(s)
Diff to
previous 13874
From Andrei:
1. TGeoManager::SetNodeSelectable(flag); - allows user to make nodes selected in the
pad rather that volumes(default)
2. TGeoManager::ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew); - allows
replacement of all occurances of VORIG with VNEW in the geometry tree. VORIG is not
removed from the list of volumes, but all nodes referencing it as their volume or
mother will reference instead VNEW.
3. static TGeoVolumeAssembly::MakeAssemblyFromVolume(TGeoVolume *vorig); - creates a
sort of clone of a normal volume (same daughters inside), but this will be an
assembly. This method can be used togeather with ReplaceVolume() to change some
virtual conainers in a closed geometry with assemblies.
4. TGeoVolume::RemoveNode(TGeoNode *node) - will safely remove a daughter node of a
volume, even if the geometry is closed. Geometry is valid for navigation afterwards.
Revision
13271 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 17 13:17:55 2005 UTC (9 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 50655 byte(s)
Diff to
previous 12847
From Andrei & Mihaela:
a diff containing the implementation of TGeoShape::Capacity. There are also
few other fixes (see below):
Mihaela:
New method:
Double_t TGeoShape::Capacity() const;
implemented for all supported shapes. The algorithms provide analytical computation of
shape capacity in [cm^3]. All algorithms are accurate with 2 exceptions:
- TGeoCtub : the formula is just an approximation due to the difficulties to integrate
over the phi angle in the general case.
- TGeoCompositeShape: the computation of the capacity is done by sampling, with an
accuracy of 1%.
Based on this method I extended the implementation of TGeoVolume::Weight(Double_t
precision, Option_t *option). The default value of option is now "va" meaning: verbose
+ analytical. Removing "a" from the default option performs computation of volume
weight using the old algorithm of sampling. I have checked the 2 ways of computing the
weight one against the other and they are consistent.
Andrei:
- fixed a memory leak related to TGeoShapeAssembly ownership
- fixed some tracking problems for assemblies (when the top volume was an assembly)
Revision
12847 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 26 12:14:07 2005 UTC (9 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 50221 byte(s)
Diff to
previous 12640
From Andrei:
a patch that performs a check to see if the pcon/pgon sections are defined
in increasing Z order. If not, the arrays fZ, fRmin, fRmax are inverted to have the
good ordering. One should still be consistent in the section definition order and to
define as last section the one with the maximum index.
Revision
11664 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 07:53:27 2005 UTC (9 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 49760 byte(s)
Diff to
previous 11272
Implement changes in the TGeoPainter and TGeoChecker such that one
can draw geometries from several TGeoManagers.
The following mods have been made:
-new data member fGeoManager in TGeoVolume.
When a volume is created fGeoManager is set to the current gGeoManager.
When a volume is drawn, a TGeoPainter object is created in its own fGeoManager.
- new function TGeoVolume::GetGeoManager() const
-The TVirtualGeoPainter and TGeoPainter have now a constructor with:
TVirtualGeoPainter(TGeoManager *manager)
TGeoPainter(TGeoManager *manager)
-The TGeoManager::GetGeoPainter is now calling directly the plugin manager
to create a TGeoPainter if necessary.
-In TGeoVolume, all occurences of gGeoManager replaced by fGeoManager.
-In TGeoChecker and TGeoPainter, the existing member fGeom has been
renamed fGeoManager and all occurences of gGeoManager replaced by fGeoManager.
-In TGeoOverlap all occurences of gGeoManager are creplaced by
fVolume->GetGeoManager.
-In rootrc.in mod for calling TGeoPainter with the new argument TGeoManager*.
Revision
11272 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 9 18:19:27 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 49047 byte(s)
Diff to
previous 10621
From Richard Maunder:
Changes to viewer infrastructure (TBuffer3D,TVirtualViewer3D) to
support:
i) Proper shape specific (sphere, tube, etc) descriptions in TBuffer3D
derived classes - c.f. abuse of raw tesselation blocks before.
ii) On demand filling of buffer sections as required by viewer.
iii) Support for local/master frame shapes descriptions & child object
rejection.
iv) Template/placed shapes ids - enabling viewer to detect/receive
common shapes once and just obtain the new position and id of the
duplicate.
Cleans up all producer (g3d/geom) code so no longer has an viewer
specific knowledge - Paint() methods replaced with
GetBuffer3D/FillBuffer3D methods which complete requested sections of
the buffer.
All viewer specific code now sits on the viewer implementation side of
TVirtualViewer3D. Added a TViewer3DPad class for performing the 3D draws
into pad. In future this should be merged with TView/TView3D possibly.
TBuffer3D is now stripped of functional code (aside from memory
management) and various viewer passback options there previously.
Enforced one way passing a const & to viewer.
Buffers (various types) are held as single static inside producer
function e.g. TGeoShape::GetBuffer3D (c.f. single generic buffer type
fetched from pad previously).
For g3d and geom shapes the top level geometry painter (TNode /
TGeoPainter) controlls painting process, requesting shapes to fill
buffer and passing to 3D viewer.
Exceptions are g3d's TPolyLine3D, TPolyMarker3D & TMarker3DBox. These
are 'standalone' shapes - no controlling 'painter' object. They still
implement Paint(), fill buffer and add to viewer directly.
3D viewer still held / created by pad - and pad has it's own viewer
object (TViewer3DPad).
NOTE:
1. Current scheme supports one 3D viewer only - pad, x3d or OpenGL. This
means that pad goes blank when x3d/OGL is spawned, and is updated again
when it is closed. To be revisited - need to support multiple viewers,
of multiple types - which implies explicit naming or pad controlling
enumeration.
2. OGL viewer now responds correct to modifications in pad, without
having to be reinvoked (as previously). x3d is still decoupled (as
previously) so does not rebuild - too difficult to get working.
Revision
10621 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 25 12:10:01 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 48984 byte(s)
Diff to
previous 7724
From Andrei and Mihaela Gheata:
New shape TGeoHype from Mihaela.
This patch contains all modifications in TGeo, additions in
g2root to adjust format of MakeHype(...) and a fix in TBuffer3D.cxx
(Paint("SAME")). Also Mihaela modified geodemo.C
The modifications (made by Timur probably) TGeoTube::Paint() for making
GL-like tubes are wrong so I temporary disabled them. The global matrix
filled to GL is wrongly retreived (+ it may come from other sources in
case of overlap drawing).
Revision
6725 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 17 09:13:56 2003 UTC (11 years, 7 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 48796 byte(s)
Diff to
previous 6144
New version of the geometry package from Andrei/Mihaela
TGeoArb8 - pictures added
TGeoBBox - doc, pictures
TGeoCache - id array for physical nodes
TGeoCompositeShape - doc added
TGeoCone - pictures, bug fiz in Z divisions, correction in 'safety'
TGeoEltu - pict. added
TGeoManager - registration of matrices, unique volume id's
TGeoMatrix - copy ctors., = and * operators, improvements, extensive doc.
TGeoNode - doc added
TGeoPara - pictures
TGeoPatternFinder - registration of pattern matrices
TGeoPcon - fix in Z divisions, fix in 'safety', pictures
TGeoPgon - same as Pcon
TGeoShape - doc added
TGeoSphere, Trd1,2, Tube - pictures added
TGeoVolume - doc updated
TGeoChecker - doc., improvement of extrusions checker by Mihaela
TGeoPainter - does not create polygons array in X3dBuffers when drawing
in pad
TGeoTrack - compilation warnings fixed
Revision
6144 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 18 15:37:36 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 46772 byte(s)
Diff to
previous 6136
From Andrei;
TGeoManager :
- Safety() fully implemented using voxelization
- FindNextBoundary() modified in order to compute safety only when
needed (when a value MAXSTEP representing the physical step is given as
input).
TGeoBBox :
- correction for points exactly on box boundary for DistToIn()
TGeoVoxelFinder :
- fast check if distance to the voxel corresponding to a given node is
smaller than a input value - used in computing safety and distance to
next boundary;
TGeoChecker:
- CheckPoint() changed to use new Safety().
Revision
6136 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 17 11:57:31 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 47327 byte(s)
Diff to
previous 6085
m andrei;
TGeoManager :
- added TGeoManager::Safety() that computes the global safety for the
current point. This is just the first implementation, since it does not
use yet voxelization. This will be needed for the VMC because for the
time being safety is computed just for the crossed volumes along the
current direction plus the current volume, which of course is not enough
- finding the closest neighbour for a given point has to use a different
algorithm.
- added weight estimation for the top volume
TGeoMaterial :
- material index in the list of materials added as data member (as for
volumes) - I needed this for weight computation, but it will be helpfull
for any other analysis based on material indexing.
TGeoVolume :
- weight estimation method in the context menu of volumes : can be
verbose (default) or not and takes as argument the desired precision.
Prints error (1 x SIGMA)
TGeoChecker:
- implementation of weight estimation based on sampling random points
in the bounding box of a volume. Materials with rho<0.01 g/cm3 (mostly
gases) ignored due to the fact that we generally do not want to weight
the air in the top volume container (it can have quite significant mass)
other modified classes just provide redirection of Weight() method to
the geopainter package.
Revision
6083 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 10 17:23:14 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 44416 byte(s)
Diff to
previous 6080
From Andrei:
- new files TGeoOverlap.h/cxx in geompainter directory. Contains one
base class and 2 derived, describing overlaps. The CheckOverlaps()
methods in TGeoManager and TGeoVolume fills a list of these objects
which is held by TGeoManager class and appears in the browser as
"Illegal overlaps". The elements in this list are ordered according the
overlapping distance, big comes first and extrusions before node
overlaps. Double-clicking triggers drawing. Points in the
overlapping/extruding region are paint in red, while the 2 candidates in
bleu/green. The list of overlaps is dynamic and changes whenever a check
is done per volume.
- volumes with invalid shapes post a warning (see ATLAS)
Revision
6068 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 7 13:46:48 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 43238 byte(s)
Diff to
previous 6038
New version from Andrei and Mihaela:
- several implementations of method Safety for shapes
- few bug fixes in safety computation (phi segmented shapes)
- volumes have now an unique ID that you can get with GetNumber()
- Mihaela implemented an overlap checker that can be called either for
all geometry :
TGeoManager::CheckOverlaps(Double_t ovlp=0.1) or just for a given
volume. OVLP is the lower overlapping limit. The checker looks for the
following errors in the geometry definition :
1 - nodes extruding their mother - can be visualised with
TGeoManager::DrawExtrusion(char *mother, char *node) which draws mother
in blue and extruding daughter in red
2 - ONLY brothers overlapping to each other - can be visualized with
TGeoManager::DrawOverlap(char *volume, char *node1, char *node2) - node1
will appear in red and node2 in blue.
These methods can be called only after CheckOverlaps() that prints the
list of overlaps. They are all in the context menu of both TGeoVolume
and TGeoManager.
Revision
6038 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 31 16:38:23 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 38615 byte(s)
Diff to
previous 5918
New version of the geometry package from Andrei:
- new algorithms for computing safety for tubes, cones, pcon
- TGeoChecker::CheckPoint() modified so that a "safety ball" is drawn
when one uses it. - global tracking modified such that the distances for most of the
shapes (except pgon and arb8) are computed only if the safety to these
shapes is smaller than a refference value.
There is one limitation in case global safety is computed : the value
fSafety hold by TGeoManager does not represent the real safety, but the
minimum safety value among those calculated for the checked nodes.
Therefore if some node is "backwards" w.r.t the current direction, it
will be ignored in safety computation. I do not know if this affects
tracking, but I guess not. In short words, the global safety depends on
the current direction - for instance after just exiting a volume it
might happen that safety is not a very small value.
Revision
5798 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 11 17:10:20 2002 UTC (12 years, 1 month ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 38381 byte(s)
Diff to
previous 5788
From Andrei:
attached the last version, with bug fixes in tracking. Now you can do
lego plots for everything in alice. It does not do extra steps (except
very seldom in ITS in som very thin tubes - 1 extra step to cross). Much
more stable. I temporarly disabled TGeoVolume::CheckGeometry from the
context menu of volumes since it seems to have a bug that I need to fix.
Much better version in computing distances.
Revision
5758 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 6 16:45:03 2002 UTC (12 years, 1 month ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 40020 byte(s)
Diff to
previous 5724
From Andrei:
New patch for shape algorithms, including :
- bug fixes in TGeoPgon::DistToIn()
- new algorithm by Mihaela for computing distances to a sphere (it was
missing).
So, now all algorithms per shape for computing distances should be "in
shape", at least as far as we have tested. Clearly some problems still
remain with the global algorithm including MANY's. At least now the lego
plot seem to work for the rootgeom example (shooting in /TOP/Replica
produces a nice plot). Obviously we will eventually find other bugs, but
the version as it is now seems to work reasonably good.
Revision
5621 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 20 08:55:11 2002 UTC (12 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 40405 byte(s)
Diff to
previous 5454
Following improvements by Andrei Gheata:
1. gpad - containing a modified src/TPad.cxx (notification to TView
class when resizing the pad and having perspective view)
2. base - containing modified TView.h/.cxx
3. geom, geompainter - modifications to geometry classes (perspective
view support + some bug fixes in shape algorithms)
New features :
- First implementation of TGeoChecker::CheckGeometry() by Mihaela : it
can be called from the volume context menu and for the time being just
draws the boundary intersections not matching on the way back and forth
(no histogram generated). Anyway, we discovered by using it that we have
to correct several bugs in the shapes DistToIn/Out algorithms ... :-(
- Perspective view fully implemented. Activated with TView(11) - this is
the default now for the new geometry classes. For all other views
(instantiated usually with TView(1)) one can switch parralel/perspective
from TView context menu.
- Navigation inside geometries based on perspective view : just draw
some geometry, then double-click on volumes in the pad - you will get a
nice grab-focus effect (specially if the number of volumes on screen is
relatively small)
- navigation keys : zoom in/out, move left/right/up/down exactly like in x3d
- resizing of pad and drawing of axes in TView supported - aspect ratio
always kept.
Revision
5443 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 21 15:21:13 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 29900 byte(s)
Diff to
previous 5427
Upgrade of the geom classes by Andrei:
- improvements in the drawing mechanism (nodes can also be made
invisible, having higher priority than volumes;
- possibility of simple phi cut in TGeoManager::SetPhiRange(phimin, phimax)
- by default the phi range is (0, 360) - no cut performed
- setting different values for phimin, phimax will make invisible the
nodes having the origin in this range;
- documentation updated for TGeoArb8 class (picture in /gif directory)
Revision
5354 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 27 16:16:06 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoChecker.cxx
File length: 26284 byte(s)
Diff to
previous 4961
New version of the geometry package by Andrea & Mihaela Gheata
New features:
-I/O for all geometry classes. For example, to save/restore a geometry structure,
TFile f("mygeom.root","recreate");
gGeoManager->Write("mygeom");
and to read it back;
TFile f("mygeom.root");
f.Get("myGeom");
gGeoManager->CloseGeometry();
-Composite shapes fully implemented (no visualisation yet).
A composite shape is built out of basic shapes and transformations via
a simple formula mechanism, eg assuming a TGeoTube "tub1" and a TGeoMatrix "r1",
we can build a composite shape with:
TGeoCompositeShape *comp = new TGeoCompositeShape("comp",formula); where
char* formula="tub1+tub1:r1"
This will create the union of a tube with itself rotated.
The operators recognized by the geometry formula parser are "+","-","*"
for union, subtraction and intersection respectively. The colon ":" can be
used to specify a transformation for a given component.
-The voxelisation in cylindrical coordinates added as an optional optimisation
algorithm.
-Some bug fixes and several improvements in the tracking-related algorithms.
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.