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

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

Parent Directory Parent Directory


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

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: 12681 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: 12675 byte(s)
Diff to previous 35859
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 35859 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 29 13:59:30 2010 UTC (4 years, 3 months ago) by brun
File length: 12670 byte(s)
Diff to previous 31454
From Andrei:
make a datamember protected instead of private

Revision 31454 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 30 07:39:14 2009 UTC (5 years, 1 month ago) by brun
File length: 12659 byte(s)
Diff to previous 27731
From Andrei:
new class TGeoIterPlugin. 
This is an ABC for user plugins that need to call some arbitrary code during 
geometry hierarchy iteration. The first use case (requested in Savannah #57591)
is to dynamically change the color of volumes in selected paths, but not the 
color of the same volume in other paths. This use case is already implemented 
in TGeoPainter and an example of usage is given in the tutorials files 
$ROOTSYS/tutorials/geom/iterplugin.cxx and runplugin.C.

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: 11141 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: 11173 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/TGeoNode.h
File length: 11173 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/TGeoNode.h
File length: 11239 byte(s)
Diff to previous 21301
From Andrei:
Improve the documentation layout such that THtml makes a better rendering.

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/inc/TGeoNode.h
File length: 10513 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 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/TGeoNode.h
File length: 10662 byte(s)
Diff to previous 20416
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 20416 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 19 14:56:15 2007 UTC (7 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 10662 byte(s)
Diff to previous 19826
From Andrei:
some modifications to the progress bar and included it when calling gGeoManager->CheckOverlaps()

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/TGeoNode.h
File length: 10595 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/TGeoNode.h
File length: 10644 byte(s)
Diff to previous 18553
remove :$ from tag line

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/inc/TGeoNode.h
File length: 10654 byte(s)
Diff to previous 15672
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 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/TGeoNode.h
File length: 10633 byte(s)
Diff to previous 15316
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 15316 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 2 16:00:43 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 10634 byte(s)
Diff to previous 15134
From Andrei:
a patch fixing the registration of TGeoManager in the browser  . There is also a fix in TGeoNode::Browse

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/TGeoNode.h
File length: 10617 byte(s)
Diff to previous 14534
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 14534 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 3 16:19:32 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 10176 byte(s)
Diff to previous 14093
From Andrei:
- TGeoXtru shapes with polygone vertices defined counter-clockwise in XY
plane were not valid (Andreas) - fixed
- TGeoVolume::SaveAs() works now correctly even in case of assemblies
(Ivana) - fixed by Mihaela
- Some minor precision problems fixed in divisions
- minor fix in navigation in assemblies; assemblies defined as overlapping
now forbidden
- fix for automatic re-voxelization after un-alignment

Revision 14093 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 23 13:23:08 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 10177 byte(s)
Diff to previous 14006
From Andrei:
- simplification of TGeoOverlap class: derived classes TGeoNodeOverlap and
TGeoExtrusion removed
- The overlap checker perform the check also for assembly candidates
- Improvements in TGeoIterator class
- Minor fix in TGeoVoxelFinder class

Revision 14006 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 8 11:03:06 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 9666 byte(s)
Diff to previous 13960
From Andrei:
 implementation of a geometry iterator (TGeoIterator) with a
detail description in the source file (TGeoNode.cxx). Multi-purpose usage,
but it is intended for being able to check overlaps between assemblies and
also to decouple TGeoPainter from TGeoManager.

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/TGeoNode.h
File length: 8195 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/TGeoNode.h
File length: 8003 byte(s)
Diff to previous 13282
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 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/TGeoNode.h
File length: 7948 byte(s)
Diff to previous 11473
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

Revision 11473 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 1 13:53:18 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 7945 byte(s)
Diff to previous 11272
First attempt to introduce new Timur's code supporting composite shapes.
This code must still be validated on non Linux platforms.

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/inc/TGeoNode.h
File length: 7891 byte(s)
Diff to previous 7929
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 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/TGeoNode.h
File length: 7942 byte(s)
Diff to previous 6725
Speed improvements in many functions. Speed is about 25% in case of CMS ECAL

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/TGeoNode.h
File length: 7873 byte(s)
Diff to previous 5993
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 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/TGeoNode.h
File length: 7790 byte(s)
Diff to previous 5946
Update to the geometry package to support copy numbers in TGeoNode.

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/inc/TGeoNode.h
File length: 7611 byte(s)
Diff to previous 5848
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 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/TGeoNode.h
File length: 7605 byte(s)
Diff to previous 5443
many changes in the geometry package.
Addition of the new class TGeoMedium

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/TGeoNode.h
File length: 7492 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/inc/TGeoNode.h
File length: 7094 byte(s)
Diff to previous 5367
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 5367 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 30 20:44:36 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 6978 byte(s)
Diff to previous 5354
A few changes in several classes in order to restore a TGeoManager.

Implement two new functions in TGeoManager
Int_t TGeoManager::Export(const char *filename, const char *name, Option_t *option)
{
   // Export this geometry on filename with a key=name
   // By default the geometry is saved without the voxelisation info.
   // Use option 'v" to save the voxelisation info.

TGeoManager *TGeoManager::Import(const char *filename, const char *name, Option_t *option)
{
   //static function
   //Import in memory from filename the geometry with key=name.
   //if name="" (default), the first TGeoManager object in the file is returned.
   //Note that this function deletes the current gGeoManager (if one)
   //before importing the new object.

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/TGeoNode.h
File length: 6977 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.

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/TGeoNode.h
File length: 6862 byte(s)
Diff to previous 4878
New version of the geometry package by Andrei.
All graphics moved to geompainter (hopefully)

Revision 4878 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 11 09:05:22 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TGeoNode.h
File length: 6927 byte(s)
Diff to previous 4874
Change the default argument value for the lastybin/lastxbin when
making Projections or Profiles from 9999 to -1.
The previous default value was not acceptable for 2-d or 3-d histograms
having more than 10,000 bins along Y.

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/TGeoNode.h
File length: 6879 byte(s)
Diff to previous 4867
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 4867 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 22:52:16 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/geom/inc/TGeoNode.h
File length: 7154 byte(s)
Diff to previous 4844
use Riosfwd.h in header instead of "fstream.h" and "iostream.h" and use
Riostream.h instead of "fstream.h" and "iostream.h" in source. Hope this
fixes Robert Hatcher's problem.

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/TGeoNode.h
File length: 7182 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/TGeoNode.h
File length: 7167 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