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

Log of /trunk/geom/geom/inc/TVirtualGeoPainter.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: 8613 byte(s)
Diff to previous 39018
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 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: 8570 byte(s)
Diff to previous 35698
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 35698 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 07:37:08 2010 UTC (4 years, 4 months ago) by agheata
File length: 8466 byte(s)
Diff to previous 31454
Replaced sprintf with TString manip.

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: 8466 byte(s)
Diff to previous 27749
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 27749 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 10 15:23:52 2009 UTC (5 years, 10 months ago) by brun
File length: 8367 byte(s)
Diff to previous 25123
From Andrei:
 New method void TGeoManager::CheckBoundaryErrors(Int_t ntracks, Double_t radius). Checks how much the point propagated from a random position and direction to the boundary given by FindNextBoundary() has to be pushed forward or pulled backward to numerically cross (or not cross) the boundary. The optional radius can be used to limit the search volume. The method generates a reference with the points with pushes/pulls lower than 1E-5. This can be played back using the method: void TGeoManager::CheckBoundaryReference(Int_t icheck). If icheck is non-negative, the shape for which the crossing failed is drawn with the starting point in red and the extrapolated point to boundary (+/- failing push/pull) in yellow.

Currently the method gives a distribution with tails at ~1E-5. Investigating these I could not find other than truncation errors effects (that can get surprisingly big) in very rare cases and which need further in-depth investigation to see if they can be due to flaws in shape algorithms or they are just numerical "accidents". There is no obvious error left (at least in case of ALICE geometry)

Revision 25123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 12 09:59:46 2008 UTC (6 years, 5 months ago) by brun
File length: 8208 byte(s)
Diff to previous 22923
From Andrei:
- outline sampling points used for overlap checking were wrongly generated in case navigation/drawing methods were invoked before CheckOverlaps()
- new method TGeoManager::SetNmeshPoints(npoints) can be used to modify the number of mesh points used in overlap checking. Default value is 1000.
- prototype of TGeoPhysicalNode::Align(TGeoMatrix *, TGeoShape *, Bool_t check, Double_t ovlp) changed - last parameter added. Representing the overlap tolerance in case the physical node is aligned with check=true option. Default value 0.001 (10 microns). In this case only the overlaps of the aligned object (or daughters if an assembly) are reported.
- Checking only overlaps of a single node possible by calling: TGeoManager::SetCheckedNode(TGeoNode *node). User responsibility to restore checked node to NULL after the check.

Revision 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: 8093 byte(s)
Diff to previous 20882
move geom, geombuilder, geompainter and gdml to geom meta directory.

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/TVirtualGeoPainter.h
File length: 8093 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/TVirtualGeoPainter.h
File length: 8093 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/TVirtualGeoPainter.h
File length: 7920 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/TVirtualGeoPainter.h
File length: 7979 byte(s)
Diff to previous 19652
remove :$ from tag line

Revision 19652 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 20 14:00:56 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7989 byte(s)
Diff to previous 16573
From Andrei:
Extend functionality of overlap checker and performance analyzer by introducing a new function:
void CheckGeometryFull(Int_t ntracks=10000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")

The method is doing a 4 stage check:
- if option contains 'o': Optional overlap checkings (by sampling and by mesh).
- if option contains 'b': Optional boundary crossing check + timing per volume.

STAGE 1: extensive overlap checking by sampling per volume. Stdout need to be checked by user to get report, then TGeoVolume::CheckOverlaps(0.01, "s") can be called for the suspicious volumes.

STAGE2 : normal overlap checking using the shapes mesh - fills the list of overlaps.

STAGE3 : shooting NRAYS rays from VERTEX and counting the total number of crossings per volume (rays propagated from boundary to boundary until
geometry exit). Timing computed and results stored in a histo.

STAGE4 : shooting 1 mil. random rays inside EACH volume and calling FindNextBoundary() + Safety() for each call. The timing is normalized by the number of crossings computed at stage 2 and presented as percentage.
  One can get a picture on which are the most "burned" volumes during
transportation from geometry point of view. Another plot of the timing per  volume vs. number of daughters is produced.

 All histos are saved in the file statistics.root

Revision 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/TVirtualGeoPainter.h
File length: 7839 byte(s)
Diff to previous 16276
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 16276 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 15 10:23:07 2006 UTC (8 years, 4 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7819 byte(s)
Diff to previous 15523
From Mihaela:
Fix problem with the reference to TF1 by moving the graphics code to TGeoPainter

Revision 15523 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 23 11:55:15 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7714 byte(s)
Diff to previous 15395
From Andrei and matevz Tadel:
a patch allowing to paint volumes/nodes with a pre-defined global transformation.

Revision 15395 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 11 12:56:48 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7652 byte(s)
Diff to previous 14832
From Andrei:
1. Mixtures components can now also be other materials/mixtures:
  TGeoMixture::AddElement(TGeoMaterial *mat, Double_t weight);
2. When elements are added via TGeoMixture::AddElement(TGeoElement *elem,...), the list of elements is kept.
3. Some fixes related to visualization within TGeoPainter

Revision 14832 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 25 09:38:27 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7604 byte(s)
Diff to previous 14635
From Andrei:
few modifications including a fix to a serious problem: in my last patch
for TGeoPatternFinder.cxx class I removed by mistake a line resulting in the fact that
no division on Z axis is seen anymore by tracking!!


Few other modifications:
- TGeoManager::Edit() to invoke the geometry builder plugin if existing (Mihaela)
- few fixes in the painter for the case when the geometry is not closed
- a small correction in TGeoManager related to MANY's

Revision 14635 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 11 11:21:45 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7543 byte(s)
Diff to previous 14409
From Andrei:
diff needed by Mihaela for the geometry builder: possibility to draw a
shape.

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/TVirtualGeoPainter.h
File length: 7243 byte(s)
Diff to previous 13282
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 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/TVirtualGeoPainter.h
File length: 6884 byte(s)
Diff to previous 11664
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

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/TVirtualGeoPainter.h
File length: 6883 byte(s)
Diff to previous 10621
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 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/TVirtualGeoPainter.h
File length: 6803 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/TVirtualGeoPainter.h
File length: 7347 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/TVirtualGeoPainter.h
File length: 7418 byte(s)
Diff to previous 9311
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 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/inc/TVirtualGeoPainter.h
File length: 8072 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/inc/TVirtualGeoPainter.h
File length: 8071 byte(s)
Diff to previous 8163
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 8163 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 9 14:03:34 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 8023 byte(s)
Diff to previous 7569
From Andrei Gheata:
I have attached the new files and all modifications done by Mihaela to
include the new shape TGeoXtru representing the old TXTRU shape.
Currently she implemented the Contains() method. The shape can be also
visualized in the pad or x3d (see atached macro). The only limitation in
x3d is that the end-polygons are not decomposed into convex polygons, so
in case the section of the TGeoXtru is concave the drawing is not well
handled.
  I also included a minor modification in TGeoManager.h needed by FLUKA
(that now can perform tracking and completers gAlice->Run() with TGeo!!!)

Revision 7569 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 11 15:44:28 2003 UTC (11 years, 2 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7858 byte(s)
Diff to previous 7172
From Andrei Gheata
- TGeoPgon::DistToIn() - new algorithm 50-200% faster than the old one
(depending on the number of edges) fixing the existing pgon problems
- TGeoPgon::ComputeNormal() - corrected a wrong sign
- TGeoManager::Safety() corrected in case of MANY geometries
- Bug fix raytracing + a minor fix in the calling sequence (now there is
a similar behavior of TGeoVolume:Raytrace/Draw)

Revision 7172 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 29 09:55:29 2003 UTC (11 years, 4 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7807 byte(s)
Diff to previous 7121
New considerable speed-up of the ray tracing algorithm.
Alice can be drawn in 14.5s instead of 1400s.

-Add bit kVisOnScreen in TGeoAtt.
-Replace calls to TGeoPainter::IsOnScreen by calls to TGeoAtt::TestBit(TGeoAtt::kVisOnScreen)
-delete function TVirtualGeoPainter::IsOnScreen and TGeoPainter::IsOnScreen
-In TGeoNode replace call to TGeoPainter::IsOnScreen by TGeoAtt::TestBit(TGeoAtt::kVisOnScreen)

Revision 7121 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 21 08:27:34 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7873 byte(s)
Diff to previous 7022
From Andrei Gheata:
- computation of normals to all primitive shapes, except TGeoCompositeShape
- improved TGeoTorus algorithms
- ray tracing feature : works as TGeoVolume::Draw() except that the
volume is ray-traced according to current visualization settings. All
features from a normal drawing are preserved : picking, zooming,
rotating,... The time for producing the ray-traced image scales with the
surface of the current pad (in pixels) and to the number of visible
nodes on screen. The current image can be clipped with any other shape,
defined in the reference frame of the current drawn volume. It works like:
    TGeoTubeSeg *clip = new TGeoTubeSeg(params...);
    gGeoManager->SetClippingShape(clip);
    someVolume->Raytrace();
    ...
    gGeoManager->SetClipping(kFALSE/kTRUE); to disable/enable clipping.
  If the clipping shape is changed, the old one is automatically deleted.

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/inc/TVirtualGeoPainter.h
File length: 7625 byte(s)
Diff to previous 6847
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 6847 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 7 21:04:26 2003 UTC (11 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7458 byte(s)
Diff to previous 6759
Fix compiler warnings

Revision 6759 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 23 12:31:50 2003 UTC (11 years, 7 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 7473 byte(s)
Diff to previous 6563
Fix some compiler warnings with icc.

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/TVirtualGeoPainter.h
File length: 7445 byte(s)
Diff to previous 6136
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 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/TVirtualGeoPainter.h
File length: 6918 byte(s)
Diff to previous 6114
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 6114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 12 17:20:55 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 6842 byte(s)
Diff to previous 6085
From Andrei:
"I managed to change completely the way to draw overlaps. Now class
TGeoOverlap has line and 3D attributes and paints by itself without
affecting the geometry at all. It prints the object stats when activated
in the pad."

Revision 6085 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 11 08:48:21 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 6696 byte(s)
Diff to previous 6068
From Andrei;
add method TGeoManager::PrintOverlaps
fix compilation warnings

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/TVirtualGeoPainter.h
File length: 6647 byte(s)
Diff to previous 6038
New version from Andrei and Mihaela:
 - several implementations of method Safety for shapes
 - few bug fixes in safety computation (phi segmented shapes)
 - volumes have now an unique ID that you can get with GetNumber()
 - Mihaela implemented an overlap checker that can be called either for
all geometry :
    TGeoManager::CheckOverlaps(Double_t ovlp=0.1) or just for a given
volume. OVLP is the lower overlapping limit. The checker looks for the
following errors in the geometry definition :
  1 - nodes extruding their mother - can be visualised with
TGeoManager::DrawExtrusion(char *mother, char *node) which draws mother
in blue and extruding daughter in red
  2 - ONLY brothers overlapping to each other - can be  visualized with
TGeoManager::DrawOverlap(char *volume, char *node1, char *node2) - node1
will appear in red and node2 in blue.
  These methods can be called only after CheckOverlaps() that prints the
list of overlaps. They are all in the context menu of both TGeoVolume
and TGeoManager.

Revision 6038 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 31 16:38:23 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 6201 byte(s)
Diff to previous 5848
New version of the geometry package from Andrei:
 - new algorithms for computing safety for tubes, cones, pcon
 - TGeoChecker::CheckPoint() modified so that a "safety ball" is drawn
when one uses it. - global tracking modified such that the distances for most of the
shapes (except pgon and arb8) are computed only if the safety to these
shapes is smaller than a refference value.

 There is one limitation in case global safety is computed : the value
fSafety hold by TGeoManager does not represent the real safety, but the
minimum safety value among those calculated for the checked nodes.
Therefore if some node is "backwards" w.r.t the current direction, it
will be ignored in safety computation. I do not know if this affects
tracking, but I guess not. In short words, the global safety depends on
the current direction - for instance after just exiting a volume it
might happen that safety is not a very small value.

Revision 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/TVirtualGeoPainter.h
File length: 6142 byte(s)
Diff to previous 5621
many changes in the geometry package.
Addition of the new class TGeoMedium

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/TVirtualGeoPainter.h
File length: 6129 byte(s)
Diff to previous 5454
Following improvements by Andrei Gheata:

1. gpad - containing a modified src/TPad.cxx (notification to TView
class when resizing the pad and having perspective view)
2. base - containing modified TView.h/.cxx
3. geom, geompainter - modifications to geometry classes (perspective
view support + some bug fixes in shape algorithms)

 New features :
 - First implementation of TGeoChecker::CheckGeometry() by Mihaela : it
can be called from the volume context menu and for the time being just
draws the boundary intersections not matching on the way back and forth
(no histogram generated). Anyway, we discovered by using it that we have
to correct several bugs in the shapes DistToIn/Out algorithms ... :-(
- Perspective view fully implemented. Activated with TView(11) - this is
the default now for the new geometry classes. For all other views
(instantiated usually with TView(1)) one can switch parralel/perspective
from TView context menu.
- Navigation inside geometries based on perspective view : just draw
some geometry, then double-click on volumes in the pad - you will get a
nice grab-focus effect (specially if the number of volumes on screen is
relatively small)
- navigation keys : zoom in/out, move left/right/up/down exactly like in x3d
- resizing of pad and drawing of axes in TView supported - aspect ratio
always kept.

Revision 5454 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 22 07:43:12 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 5979 byte(s)
Diff to previous 5407
A few fixes to avoid compiler warnings

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/TVirtualGeoPainter.h
File length: 5980 byte(s)
Diff to previous 5367
Add a tentative prototype for producing the lego plot of radiation length
in function of theta and phi.

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/TVirtualGeoPainter.h
File length: 5698 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/TVirtualGeoPainter.h
File length: 5695 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/TVirtualGeoPainter.h
File length: 5421 byte(s)
Diff to previous 4939
New version of the geometry package from Andrei. Many comments changed.

Revision 4939 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 16 17:11:26 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/inc/TVirtualGeoPainter.h
File length: 5370 byte(s)
Diff to previous 4918
*** empty log message ***

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/TVirtualGeoPainter.h
File length: 5364 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/TVirtualGeoPainter.h
File length: 2651 byte(s)
Diff to previous 4841
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 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/TVirtualGeoPainter.h
File length: 2107 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