[root] / trunk / geom / geom / inc / TGeoVolume.h Repository:
ViewVC logotype

Log of /trunk/geom/geom/inc/TGeoVolume.h

Parent Directory Parent Directory


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

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: 17117 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 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: 17065 byte(s)
Diff to previous 44507
Large chunk of coverity fixes

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: 17126 byte(s)
Diff to previous 42999
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 42999 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 14 13:42:55 2012 UTC (2 years, 11 months ago) by agheata
File length: 17121 byte(s)
Diff to previous 41234
Thread data is now pre-allocated when calling gGeoManager->SetMaxThreads(). This adds ~20MB for ALICE geometry per 100 threads, but avoids atomic allocations and thread locking. All run-time geometry locks removed. Thread id stored now using static thread__ allocator, faster and lock free for subsequent calls issued by the same thread.

Revision 41234 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 6 15:48:52 2011 UTC (3 years, 3 months ago) by agheata
File length: 17019 byte(s)
Diff to previous 40117
Thread safe volume assemblies. Cleanup of thread data.

Revision 40117 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 4 12:17:06 2011 UTC (3 years, 6 months ago) by agheata
File length: 16702 byte(s)
Diff to previous 39018
Fixed reflection factory for assemblies - affects G4 interface

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: 16718 byte(s)
Diff to previous 33670
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 33670 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 31 14:45:23 2010 UTC (4 years, 7 months ago) by agheata
File length: 16517 byte(s)
Diff to previous 27731
Fixed support for divisions in the GDML parser. Basically everything was wrong, including the number of divisions parameter.

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: 16457 byte(s)
Diff to previous 22923
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 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: 16550 byte(s)
Diff to previous 21494
move geom, geombuilder, geompainter and gdml to geom meta directory.

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/inc/TGeoVolume.h
File length: 16550 byte(s)
Diff to previous 21425
Update to the class docs and index.txt files.

Revision 21425 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 17 15:59:27 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 16663 byte(s)
Diff to previous 20882
From Andrei:
Improve the documentation layout such that THtml makes a better rendering.

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/inc/TGeoVolume.h
File length: 15936 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/inc/TGeoVolume.h
File length: 15936 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/inc/TGeoVolume.h
File length: 15987 byte(s)
Diff to previous 17063
remove :$ from tag line

Revision 17063 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 6 15:09:11 2006 UTC (8 years, 1 month ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15997 byte(s)
Diff to previous 16680
From Andrei:
a patch that implements the method:
TGeoNode *TGeoVolume::ReplaceNode(TGeoNode *nodeorig,
                   TGeoShape *newshape=0,
                   TGeoMatrix *newpos=0,
                   TGeoMedium *newmed=0)

The method allows replacing an existing daughter of a volume with another one. Providing only the node to be replaced will just create a new volume for the node but having exactly the same parameters as the old one. This helps in case of divisions for decoupling a node from the logical hierarchy so getting new content/properties.

For non divided volumes, one can change the shape and/or the position of the daughter.

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/inc/TGeoVolume.h
File length: 15878 byte(s)
Diff to previous 16589
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 16589 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 20 21:07:40 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15635 byte(s)
Diff to previous 16573
Add an optional argument Option_t *option="" to all SaveAs functions.

Revision 16573 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 20 08:38:43 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15615 byte(s)
Diff to previous 16555
From Andrei:
a big chunk of modifications that mainly allow converting a geometry
containing reflection matrices into a reflection-free one.
This is done via a mechanism implemented in TGeoManager/TGeoVolume/TGeoScaledShape
classes which can be invoked using:
TGeoManager::ConvertReflections() method once the geometry is closed.
This is required for normal GEANT4 operation and is to be used only
in G4 navigation context.

Besides that, I made some changes which allow now controlling visibility
of nodes/volumes directly from the TBrowser (check-boxes).
This was not really working before.

Revision 16555 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 19 10:58:25 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15566 byte(s)
Diff to previous 15672
Make all SaveAs functions const.

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/inc/TGeoVolume.h
File length: 15560 byte(s)
Diff to previous 15134
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 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15564 byte(s)
Diff to previous 14409
From Federico Carminati:

"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."

Revision 14409 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 24 15:11:23 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 15362 byte(s)
Diff to previous 14240
From Andrei:
a big chunk of modifications. The class most affected is TGeoPainter, but
also some external methods (e.g.in TGeoVolume).
Currently all internal loops are working with TGeoIterator. The main advantages are
that: the painter does not need to change the top volume for TGeoManager and the loops
are not longer recursive. This makes painting a process that does not affect any more
(almost) the manager class. It makes possible having parallel views of different parts
of a geometry (or different geometries)

There are also few new features:
- visualisation options can be set at the level of volumes and there are new methods
accessible from the context menu of TGeoVolume:
SetVisContainers: draw all containers
SetVisLeaves : draw only leaves
SetVisOnly : draw only this volume

These options are operational only for the current drawn volume, which is accesible
even from the pad when approaching the right edge with the mouse. The manager class
can also be accessed from the pad approaching the top right corner.

Revision 14240 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 13 11:03:36 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 14562 byte(s)
Diff to previous 13960
From Andrei & Philippe
Fix a possible double delete problem in TGeoVoxelFinder

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/geom/inc/TGeoVolume.h
File length: 14479 byte(s)
Diff to previous 13864
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 13864 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 19 11:23:08 2006 UTC (9 years ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 14241 byte(s)
Diff to previous 13730
From Andrei:
- new TGeoNode::CheckOverlaps() allows checking overlaps for a whole geometry branch.
- fix in the paint mechanism when raytracing for a problem mentioned by Ivana (when
raytracing a volume without having a pad created it did not work)

Revision 13730 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 19 10:46:58 2005 UTC (9 years, 1 month ago) by rdm
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 14067 byte(s)
Diff to previous 13373
From Bertrand:
Suppress dependency on TGeoVolume in TRootBrowser.

Revision 13373 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 28 12:55:35 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 13986 byte(s)
Diff to previous 13282
From Andrei:
some optimizations for creating physical nodes:
- re-voxelization no more done afer each Align() call - instead a signal is sent to
the existing voxels; the first navigation query to this voxel will rebuild it.
- volumes are aware if they were positioned more than once (replicated). If this is
not the case the volume is not cloned anymore for alignment.

Revision 13282 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 18 16:07:59 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 13607 byte(s)
Diff to previous 13271
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

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/inc/TGeoVolume.h
File length: 13615 byte(s)
Diff to previous 12025
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/inc/TGeoVolume.h
File length: 13544 byte(s)
Diff to previous 11664
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 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/geom/inc/TGeoVolume.h
File length: 12539 byte(s)
Diff to previous 11076
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 11076 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 9 13:30:27 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 12372 byte(s)
Diff to previous 11028
From Mihaela Gheata;

- divisions supporting SavePrimitive
- main SavePrimitive loop implemented at level of TGeoVolume
   - user interface: TGeoVolume::SaveAs(const char *filename); having *MENU*
   - can be called from the browser for any volume:
     the resulting file will have a geometry starting with the selected
     volume as TOP.
   - should work with TPad::SavePrimitive(ofstream out, Option_t *option)
   - not tested however

From Andrei:
I did some changes in TGeoCombiTrans to support a shared rotation matrix.
I also fixed a bug in TGeoTube::GetMakeRuntimeShape (and tube segment)
that produced wrong shapes in case one of the initial parameters was negative.

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/inc/TGeoVolume.h
File length: 12268 byte(s)
Diff to previous 10621
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 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/inc/TGeoVolume.h
File length: 12163 byte(s)
Diff to previous 10342
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 10342 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 18 15:28:24 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 12240 byte(s)
Diff to previous 10313
From Andrei Gheata:
- new TGeoManager::SetVisDensity() to set treshold for invisible volumes
by density. By default is 0, meaning the feature is disabled (one sees
everything)
- additional cleanup in TGeoPainter. 3D viewing is now possible in
parallel with raytracing.
- minor fixes in automatic visible depth computation

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/inc/TGeoVolume.h
File length: 12277 byte(s)
Diff to previous 9933
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 9933 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 7 08:15:57 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 12261 byte(s)
Diff to previous 8565
From Andrei Gheata:
Transparency is now filled into TBuffer3D. One can change interactively
transparency at the level of TGeoVolume (context menu). Default value is 0.

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/inc/TGeoVolume.h
File length: 12031 byte(s)
Diff to previous 7929
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 7929 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 18 12:31:55 2004 UTC (11 years ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 11514 byte(s)
Diff to previous 7451
Speed improvements in many functions. Speed is about 25% in case of CMS ECAL

Revision 7451 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 20 08:46:33 2003 UTC (11 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 11505 byte(s)
Diff to previous 7064
From Andrei Gheata:
- fix in pcon and pgon safety for points exactly on boundaries
- new class TGeoVolumeAssembly inheriting from TGeoVolume and
representing an assembly of volumes. This helps grouping togeather a set
of nodes (using the usual TGeoVolumeAssembly::AddNode()) without the
definition of a container. When positioning an assembly in other volume,
this will just position its own nodes inside this, without being
integrated to the logical hierarchy. The class is not well documented,
but a detailed description will go to the users guide.

Revision 7064 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 8 09:22:18 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10961 byte(s)
Diff to previous 6725
From Andrei Gheata:
Fix to a problem reported by  Ilektra Christidi.

  The problem was that this calorimeter has 1.3E9 nodes and I did not
imagined that this can happen in real life. The cache produced a crash
since it tried to create an array 2 times this size. Now there is a
protection that will just disable physical node id tracking during
CDUp/Down in case there are too many nodes. I had also to introduce a
new data member in TGeoVolume (I increased the class version) in order
to fasten-up node counting (all the physical tree was parsed before).

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/inc/TGeoVolume.h
File length: 10789 byte(s)
Diff to previous 6563
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 6563 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 7 13:32:39 2003 UTC (11 years, 8 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10698 byte(s)
Diff to previous 6304
New version of the geometry package from Andrei:

4 new files:
  geom/inc/TVirtualGeoTrack.h
  geom/src/TVirtualGeoTrack.cxx
  geompainter/inc/TGeoTrack.h
  geompainter/src/TGeoTrack.cxx

This new version adds support for track visualization. Adding tracks is a user task
and can be done using :
  TGeoManager::AddTrack() for primary tracks. The manager class knows
about the current primary and provides utility methods to
retreive/change this. Users has to handle only TVirtualGeoTracks.
Secondaries can be added to their primary :
  TVirtualGeoTrack::AddDaughter()
Points (x,y,z,tof) can be associated with a track :
  TVirtualGeoTrack::AddPoint()

  Providing tracks to the modeller and adding points are users tasks.
Track names should be supplied by users after creation :
    TVirtualGeoTrack::SetName() - note that tracks are not tnamed
objects, but their names are globally handled by the TGeoManager. The
usage of ROOT default particle names are recommended for tracks since it
triggers special colors/line attributes.
Tracks are drawable/pickable objects. Drawing options are :
  - default - only current track drawn
  - /D      - track and first level daughters
  - /*      - track and all descendents
  - /N<name> - only tracks from particles with given <name>

If points with time of flight are supplied, the drawing range tmin,tmax
can be specified :
  TGeoManager::SetTminTmax() (if no arguments time cut is supressed)

Tracks can be animated individually or global :
  TVirtualGeoTrack::AnimateTrack(tmin,tmax,nframes,option)
  TGeoManager::AnimateTrack(tmin,tmax,nframes,option)

Animation otions are :
  /G - animate also geometry in the given time interval
  /S - save all frames as .gif files
  drawing options act as well in animation. Options can be concatenated
and should be upper case (due to /N<name>)

If tracks are defined, the geometry I/O takes them into account.
However, when loading a geometry file containing tracks, libGeomPainter
has to be loaded since it contains the class implementation definition :
    gSystem->Load("libGeom")
    gSystem->Load("libGeomPainter")
    TGeoManager::Import("mygeom.root")

Revision 6304 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 14 11:49:03 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10628 byte(s)
Diff to previous 6299
From Andrei:
Add support for positioning
parametrized boxes into : TRAP, GTRA, PARA, TRD1 and TRD2. Now in D0
there are only 793 extrusions/overlaps within 0.1 cm.

Revision 6299 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 11 16:59:47 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10628 byte(s)
Diff to previous 6136
From Andrei:
modified files in order to fully map G3-like
volume parametrization : supports divisions of parametrized volumes
(e.g. D0). D0 has one Rmin/Rmax error in the definition, but still runs.

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/geom/inc/TGeoVolume.h
File length: 10545 byte(s)
Diff to previous 6083
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/geom/inc/TGeoVolume.h
File length: 10461 byte(s)
Diff to previous 6068
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/geom/inc/TGeoVolume.h
File length: 10603 byte(s)
Diff to previous 5994
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 5994 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 27 18:04:47 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10294 byte(s)
Diff to previous 5993
add a second argument to TGeoManager::GetBranchNumbers to also return the
volume serial numbers in addition to the volume copy numbers.
Add a new data member fNumber in TGeoVolume. fNumber is the volume
serial number in the list of volumes as returned by AddVolume.

Revision 5993 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 27 13:16:26 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10096 byte(s)
Diff to previous 5972
Update to the geometry package to support copy numbers in TGeoNode.

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/inc/TGeoVolume.h
File length: 10142 byte(s)
Diff to previous 5918
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 5918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 15 18:48:16 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10890 byte(s)
Diff to previous 5883
*** empty log message ***

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/inc/TGeoVolume.h
File length: 10345 byte(s)
Diff to previous 5850
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 5850 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 7 09:48:42 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10382 byte(s)
Diff to previous 5848
Use forward declarations instead of includes.

Revision 5848 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 6 17:05:44 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10399 byte(s)
Diff to previous 5798
many changes in the geometry package.
Addition of the new class TGeoMedium

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/geom/inc/TGeoVolume.h
File length: 10165 byte(s)
Diff to previous 5729
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 5729 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 3 17:42:59 2002 UTC (12 years, 1 month ago) by rdm
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10176 byte(s)
Diff to previous 5723
still some unused argument warnings on MacOS X.

Revision 5723 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 3 16:01:41 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10194 byte(s)
Diff to previous 5621
New version of the geometry package from Andrei:
Fixes to compile with no warnings with the option -ansi -pedantic
It also includes bug fixes for Trd1,2,  cone and pcon DistToIn/Out
algorithms.

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/inc/TGeoVolume.h
File length: 10316 byte(s)
Diff to previous 5443
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/inc/TGeoVolume.h
File length: 10151 byte(s)
Diff to previous 5426
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 5426 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Oct 13 15:45:24 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10063 byte(s)
Diff to previous 5407
From Andrei:
 I have made a few corrections related to TGeoManager registration to
the browser and to the TGeoChecker::LegoPlot. Also a small fix in
TGeoPgon class. Change the default number of bins for lego plots.

Revision 5407 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 9 12:57:40 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10063 byte(s)
Diff to previous 5406
Add a tentative prototype for producing the lego plot of radiation length
in function of theta and phi.

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/inc/TGeoVolume.h
File length: 9778 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/inc/TGeoVolume.h
File length: 9778 byte(s)
Diff to previous 4956
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.

Revision 4956 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 17 13:27:59 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 9447 byte(s)
Diff to previous 4918
New version of the geometry package from Andrei. Many comments changed.

Revision 4918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 15 15:32:25 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 9418 byte(s)
Diff to previous 4874
New version of the geometry package by Andrei.
All graphics moved to geompainter (hopefully)

Revision 4874 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 10 19:24:17 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 9415 byte(s)
Diff to previous 4844
A new iteration to port the geometry package on different systems.
Progress towards ROOT naming and style conventions
Add constness in most classes (work not yet completed).

Revision 4844 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 13:50:26 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10640 byte(s)
Diff to previous 4841
Fix portability problems.

Revision 4841 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue Jul 9 13:08:12 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoVolume.h
File length: 10632 byte(s)
Add new geometry package

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