Log of /trunk/geom/geom/src/TGeoBBox.cxx
Parent Directory
Revision
48928 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 25 15:45:11 2013 UTC (22 months ago) by
agheata
File length: 34539 byte(s)
Diff to
previous 44507
Large scale cleanup in shapes navigation interfaces adding const modifier for point and direction parameters passed as input arguments.
Revision
44507 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by
axel
File length: 34415 byte(s)
Diff to
previous 27731
Remove
using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.
Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.
Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.
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: 34365 byte(s)
Diff to
previous 26668
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
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: 33916 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: 32447 byte(s)
Diff to
previous 22923
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
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/TGeoBBox.cxx
File length: 29530 byte(s)
Diff to
previous 20882
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
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/geom/src/TGeoBBox.cxx
File length: 29706 byte(s)
Diff to
previous 17356
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
17306 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 12 16:03:17 2007 UTC (8 years ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 29439 byte(s)
Diff to
previous 16680
TMath::Abs, TMath::Min, TMath::Max, TMath::Sign, TMath::Range
These functions are unfortunately not defined in a standard way in std::
This include is referenced by a new version of TMath.h.
As a result, TMath.h is back compatible with the previous version.
TMathBase.h is used in place of TMath.h in all the classes
that will go into the future miniCore library.
TMath.h and the TMath implementation will go into a new math sub-directory.
TString.h uses TMathBase.h instead of TMath.h.
As a result, it was necessary to include "TMath.h" in some classes
assuming that TMath was included via TString and using other functions
than the ones defined in TMathBase.h
----------------------------------------------------------------------
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/geom/src/TGeoBBox.cxx
File length: 29420 byte(s)
Diff to
previous 15672
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
15672 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 3 16:10:46 2006 UTC (8 years, 6 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 27087 byte(s)
Diff to
previous 14556
from Axel:
Change the signature of SavePrimitive from
void SavePrimitive(ofstream &out, Option_t *option);
to
void SavePrimitive(ostream &out, Option_t *option = "");
With this change one can do, eg
myhist.SavePrimitive(std::cout);
WARNING: do rm -f tree/src/*.o
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/geom/src/TGeoBBox.cxx
File length: 24891 byte(s)
Diff to
previous 12629
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
12025 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 13 12:17:32 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 24678 byte(s)
Diff to
previous 11866
From Andrei Gheata:
New developments related to assemblies. Assemblies were up to now just
a collection of nodes that could be handled together only during build
time(TGeoVolumeAssembly class).
When positioning an assembly as node in some container volume,
what happened was just that all components of the assembly were directly
put into this container (with the big disadvantage of creating a very
flat structure at the level ofthis container).
With the new implementation, an assembly volume has a shape
(TGeoShapeAssembly) that derives from TGeoShape and implements all
required navigation functionality. Practically, this behaves as the
union of all shapes positioned in the assembly, but it is not
represented as a composite shape and uses voxelization.
An assembly volume creates an hierarchical level and it geometrically
insulates the structure from the rest (as a normal volume). Physically,
a point that is INSIDE a TGeoShapeAssembly is always inside one of
the components, so a TGeoVolumeAssembly does not have a medium. Due to
the self containment of assemblies, they are very practical to use when
a container is hard to define due to possible overlaps during positioning.
For instance, it is very easy now to create honeycomb structures without
using the "MANY" (overlapping) feature that is quite expensive in
performance.
To create an assembly volume, one should:
TGeoVolume *vol = new TGeoVolumeAssembly(name);
vol->AddNode(vol1, 1, ...)
vol->AddNode(vol2, 1, ...)
....
The creation of the TGeoShapeAssembly for the assembly volume is
completely transparent to users. Its bounding box is recomputed after
the addition of a node. Users do not have to create TGeoShapeAssembly
themselves. One can even replace a container in his existing code
(if this needed to be positioned as overlapping) with an assembly, by
just replacing:
TGeoVolume *container = new TGeoVolume(name, shape, medium);
with:
TGeoVolume *container = new TGeoVolumeAssembly(name);
then replace:
some_mother_vol->AddNodeOverlap(container,1,...)
with:
some_mother_vol->AddNode(container,1,...)
One cam define assembly(assembly(assembly(...))) Usage of assemblies
does NOT imply any penalty in navigation performance in itself.
Assemblies can also be used to regroup existing flat structures of
nodes thus highly optimizing the performance.
Revision
11866 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 25 14:25:17 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 24796 byte(s)
Diff to
previous 11785
From Richard Maunder:
Major changes to GL viewer to support:
i) Logical/Physical shape pairings
ii) Level of detail (LOD) scheme (TGLSphere only using at present)
iii) Common display list cache
iv) Scene rebuilds for large geometries
v) Some basic interactivity improvements - draw timeouts, drop low LOD
shapes etc
vi) New camara interactions:
Left Mouse: Rotate
Middle Mouse: Truck (pan parallel to camera film plane)
Right Mouse: Side-side drag dolly/zoom
Double click any button to reset the camera.
The previous pan with arrow keys, and zoom on mouse wheel are still
supported.
Camera interaction is default in viewer. These extra camera modes mean
there are not enough mouse buttons for previous right context/select.
To select / invoke context menu use Shift+Left Button and Shift+Right
Button respectively.
Revision
11785 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 13 16:20:38 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 24894 byte(s)
Diff to
previous 11473
From Mihaela Gheata:
a patch with some fixes in SavePrimitive:
- shapes have now unique pointer names
- matrices used in composite shapes get registered to TGeoManager
- fix in TGeoCompositeShape::SavePrimitive, added
TGeoBoolNode::SavePrimitive
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/geom/src/TGeoBBox.cxx
File length: 24752 byte(s)
Diff to
previous 11204
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
11028 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 3 11:40:39 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 24143 byte(s)
Diff to
previous 11002
From Andrei Gheata:
The diffs for the changes from Mihaela. They implement the SavePrimitive method for:
- all shapes
- materials, mixtures and media
- matrices
- TGeoVolume - just a first version
What is missing:
Divisions + manager metod to save:
- all geometry
- just the branch corresponding to one volume
The differences compared to g2root are that:
- when saving just a a branch just materials/media/matrices for that branch are created (module encapsulation)
- instead of creating objects with numerical arguments, the coresponding variables are defined and used.
e.g. instead of :
new TGeoBBox("name", 10.,20.,30); the generated code is:
dx = 10.;
dy = 20.;
dz = 30.;
pShape = new TGeoBBox("name", dx,dy,dz);
The diffs contain also 2 shapes with boundary-safe algorithms: TGeoPara and TGeoTrap
Revision
11002 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 28 10:01:04 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 23148 byte(s)
Diff to
previous 10699
From Andrei:
I attached the first big chunk of changes.
The methods changed are mostly the implementations of TGeoShape::DistFromInside/DistFromOutside for some specific shapes. The new algorithms are boundary error tolerant, giving the correct distance even if the point is on the wrong side of the boundary. The calling sequence remains un-changed. The affected shapes for now are: box, trd1, trd2, tube, tube seg, cone, cone seg, pcon, pgon. I will complete few remaining for the full description of ALICE next week (para + arb8 family: trap,gtra).
Revision
10699 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 7 14:24:57 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 22581 byte(s)
Diff to
previous 10682
From Andrei Gheata:
I attached some diffs as proposed by Matevz and Alja which made their
own GL-based TGeo viewer in GLED. The changes are just structural:
- lines/polygons filling splitted out from TGeoShape::Paint() as
TGeoShape::SetLinesAndPols(TBuffer3D *buff).
- Shapes can create and fill a new TBuffer3D with the new method:
TGeoShape::Make3DBuffer() in the local frame
They need this since they have their own geometry tree parsing algorithm
(not the same as in TGeoPainter::PaintNode()) with another
structure/matrix handling system. Basically they just need one buffer
per volume, reusing them since they attach them to TGeoVolume as user
data. Not quite bad idea: they create only once a limited number of
buffers that they re-use without re-filling...
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/geom/src/TGeoBBox.cxx
File length: 21772 byte(s)
Diff to
previous 10498
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
10498 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 8 09:56:24 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 22050 byte(s)
Diff to
previous 10313
From Andrei Gheata:
Change names of TGeo functions with confusing names
DistToIn -> DistFromOutside
DistToOut -> DistFromInside
It should be much less confusing since it specifies where the starting
point is supposed to be.
Revision
10313 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 15 15:30:50 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 22031 byte(s)
Diff to
previous 10048
From Andrei Gheata;
- cleanup of all obsolete methods related to the old 3D visualization in
TGeoPainter
- fix in color settings for TGeoPhysicalNode - minor, but touches most
shape.cxx files
- improved visible node counting - it is now automatic and verbose. By
default the visible depth is automatized for 10000 nodes (as before) but
calling gGeoManager->SetVisLevel(n) disables this and switches to old
style. It can be turned on to automatic state by calling
gGeoManager->SetMaxVisNodes(n) (which also updates the current view).
Limitation : nodes are not recount after setting volumes or branches
invisible unless a new Draw() is called.
Revision
9928 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 6 16:42:33 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 22035 byte(s)
Diff to
previous 9665
From Andrei
-SetBit(kIsReflection) in TGeoShape::paint when the object has a reflection matrix.
-Exploded view works again.
-Set TGeoVolume instead of TGeoShape when filling TBuffer3D
-Modify rootgeom.C ("R" problem). TGeoArb8 allowing definition of vertices in any order.
Revision
9665 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 3 16:01:19 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 21976 byte(s)
Diff to
previous 9311
From Olivier, Timur Pocheptsov , Andrei Gheata and Rene
Mega patch to introduce the new 3-d interface (to be described later).
The new interface has been tested with both X3D and OpenGL under Linux.
Being tested under Windows.
Note that several changes are expected in these classes (OpenGL in particular)
in the coming days.
Revision
9311 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 25 11:59:56 2004 UTC (10 years, 7 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 19392 byte(s)
Diff to
previous 8565
From Andrei Gheata:
- TGeoShape::PaintNext() removed from all shapes (for the new
visualization system to be introduced shortly).
The new mechanism is implemented in
TGeoPainter::PaintShape (uses gGeoManager as we discussed), but it also
affect some shapes (TGeoCompositeShape at least)
- New files: TGeoElement.h /.cxx representing a chemical element. This
is very helpful for the implementation of TFluka. Materials/mixtures can
be now built also based on this new class. An element table is kept
always transient in memory.
- Mihaela implemented the TGeoParaboloid shape: new files:
TGeoParaboloid.h/cxx.
Revision
8565 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 13 07:04:42 2004 UTC (10 years, 9 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 19818 byte(s)
Diff to
previous 8174
From Andrei Gheata:
- All shapes.cxx - added shape name in InspectShape() + some corrections
in error messages (Bjorn requirement)
- TGeoAtt.cxx - activity flag added (not yet taken into account by tracking)
- TGeoMaterial/Medium - added Cerenkov properties by Andreas (for FLUKA)
- TGeoVolume.h, TGeoManager.k - added *TOGGLE* 's
- TGeoPhysicalNode - possibility to align a physical node. One can
define a physical node according a path, then change its local
transformation matrix OR shape - the corresponding branch is decoupled
from the logical tree and a new trackable branch is created. A
post-alignment check for overlaps can be perfomed for the aligned node.
Revision
7022 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 31 20:19:33 2003 UTC (11 years, 5 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 19548 byte(s)
Diff to
previous 6725
From Andrei GHeata:
- TGeoManager::FindNormal(Bool_t forward=kTRUE) = global algorithm for
finding the normal to the next/previous crossed surface, from the
current global point/direction. The current point does not necessary
need to be close to the surface, and the normal direction is always
returned so that its dot product with the current direction is positive
defined. One can get the normal after its computation with:
Double_t *TGeoManager::GetNormal()
- Normal computation algorithms for box, arb8, trap, gtra, cone in the
corresponding shape classes.
- New primitive shape fully implemented, from visualization to
computation of distances (except the normal computation, missing also
for several other shapes). Class name: TGeoTorus, representing a torus
segment with :
- R - radius of the circle representing the torus axis
- Rmin - inner radius (like a donut having a hole in the middle)
- Rmax - outer radius (Rmin < Rmax < R)
- Phi1 - start phi
- Dphi - phi range
- Some unused obsolete methods removed from the TGeoShape class.
- modifications in TGeoIdentity default ctor to initialize gGeoIdentity
- TGeoMaterial::IsMixture(),
TGeoMaterial::FindDuplicateMaterial(const TGeoMaterial *mat)
- several other minor changes
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/geom/src/TGeoBBox.cxx
File length: 19693 byte(s)
Diff to
previous 6678
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/geom/src/TGeoBBox.cxx
File length: 17466 byte(s)
Diff to
previous 6068
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
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/geom/src/TGeoBBox.cxx
File length: 17467 byte(s)
Diff to
previous 5993
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
5972 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 23 14:25:37 2003 UTC (12 years ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 17016 byte(s)
Diff to
previous 5946
From Andrei:
- all shape classes : changed the prototype for Safety() method.
Eliminated validity checking in Divide() methods that are now globally
handled by TGeoVolume::Divide(). Added methods
TGeoShape::GetAxisName/Range(Int_t iaxis) which are used by the new
global division mechanism.
- safety for TGeoTrap now computed (pcon, pgon not yet)
- TGeoVolume : eliminated unnecesarry Divide() prototypes. The new
Divide() prototype is backwards compatible (old macros works with it)
but supports an option in order to allow all G3 division types. More
description in TGeoVolume::Divide().
- TGeoManager : Only one prototype for G3-like divisions left,
supporting all G3 options and also being able to assign to the division
volumes a medium different than the one of the divided volume. New
FindNode(x,y,z) implemented. New IsSameLocation(x,y,z) with the same
functionality as GINVOL.
Revision
5946 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 20 14:35:48 2003 UTC (12 years ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 17882 byte(s)
Diff to
previous 5918
Several updates to the geometry pacjage by Andrei:
TGeoManager :
- added getter for current direction;
- dummy cache option by default
TGeoNodeOffset
- set the name for parametrized divisions; minor fix in allocating the
space for the name (safer now)
TGeoPatternFinder :
- the getter for the matrix of a divided node will return the updated
matrix (before one had to do TGeoNodeOffset::cd() first, now
TGeoNodeOffset::GetMatrix() does this in one go)
Shape classes :
- protection for wrong division range slightly modified
Revision
5883 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 12 14:49:32 2003 UTC (12 years ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 17850 byte(s)
Diff to
previous 5848
New version of TGeo classes from Andrei:
-TGeoManager - added G3-like prototypes for building geometry
-TGeoPatternFinder - added parameters of a division (fStart, fStep, fEnd)
-TGeoVolume - fix in TGeoVolumeMulti::AddVolume() to update existing
nodes for all volumes in list
several shapes supporting divisions - using TGeoVolumeMulti for divisions
-TGeoVoxelFinder - fixed dtor
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/geom/src/TGeoBBox.cxx
File length: 17933 byte(s)
Diff to
previous 5457
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/geom/src/TGeoBBox.cxx
File length: 17972 byte(s)
Diff to
previous 5406
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
5406 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 8 16:17:49 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoBBox.cxx
File length: 17647 byte(s)
Diff to
previous 5354
new version of the geometry package from Andrei:
- bug fix in the destructor of TGeoPatternCylPhi
- several modifications in the default constructors of shapes.
- several corrections and "v" feature added to I/O
- removed base class for finders
Now you can save voxels and retreive them with no problem. You can use :
gGeoManager->Export("filename", "", "v") to do that. The size of files
without/with voxelization are :
Exp no voxels saved voxels saved
ALICE 404227 719703
CMS 550440 1275590
ATLAS 1858198 3335166
Be careful, the files TGeoFinder.h and TGeoFinder.cxx have been removed.
Suggest doing:
rm geom/src/*.o geom/src/G__*
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/geom/src/TGeoBBox.cxx
File length: 17643 byte(s)
Diff to
previous 4918
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.