[root] / trunk / geom / geom / src / TGeoArb8.cxx Repository:
ViewVC logotype

Log of /trunk/geom/geom/src/TGeoArb8.cxx

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: 65788 byte(s)
Diff to previous 48534
Large scale cleanup in shapes navigation interfaces adding const modifier for point and direction parameters passed as input arguments.

Revision 48534 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 11 16:24:59 2013 UTC (23 months, 1 week ago) by agheata
File length: 65656 byte(s)
Diff to previous 44507
Precision fix for ComputeNormal. The Z planes are selected in case safetyZ is within 10 times the tolerance (before was 1)

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: 65652 byte(s)
Diff to previous 41649
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 41649 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 31 12:27:16 2011 UTC (3 years, 2 months ago) by agheata
File length: 65407 byte(s)
Diff to previous 40318
Fix the coordinates of vertices for TGeoGtra so that it degenerated into a TGeoTrap when the twist angle is 0.

Revision 40318 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 21 08:22:23 2011 UTC (3 years, 6 months ago) by agheata
File length: 66518 byte(s)
Diff to previous 40317
Removed printouts

Revision 40317 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 21 08:18:00 2011 UTC (3 years, 6 months ago) by agheata
File length: 66581 byte(s)
Diff to previous 40136
Numerical fix when the top or the bottom of the Arb8 collapses to a single point

Revision 40136 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 5 12:02:28 2011 UTC (3 years, 6 months ago) by agheata
File length: 66095 byte(s)
Diff to previous 39183
Allow tolerance when computing twist

Revision 39183 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 13 14:06:17 2011 UTC (3 years, 8 months ago) by agheata
File length: 66075 byte(s)
Diff to previous 39122
DistFromOutside working correctly for points which are inside the shape at 1E-8 close to Z boundaries

Revision 39122 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 6 11:22:11 2011 UTC (3 years, 8 months ago) by agheata
File length: 66373 byte(s)
Diff to previous 39108
Small fix in DistToPlane

Revision 39108 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 5 12:04:21 2011 UTC (3 years, 8 months ago) by agheata
File length: 66263 byte(s)
Diff to previous 39102
TGeoGtra::Safety now correctly calls TGeoArb8::Safety instead of TGeoTrap::Safety

Revision 39102 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 4 16:36:37 2011 UTC (3 years, 8 months ago) by agheata
File length: 66012 byte(s)
Diff to previous 39021
New safety test for shapes added. Fix for TGeoArb8::Safety()

Revision 39021 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 25 14:25:40 2011 UTC (3 years, 9 months ago) by agheata
File length: 65954 byte(s)
Diff to previous 39018
Fixed TGeoArb8::DistFromInside when point is on the boundary. Extended TGeoChecker::CheckShape to detect errors when starting from boundaries

Revision 39018 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 25 09:38:31 2011 UTC (3 years, 9 months ago) by agheata
File length: 65771 byte(s)
Diff to previous 38311
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 38311 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 7 10:13:57 2011 UTC (3 years, 10 months ago) by agheata
File length: 64621 byte(s)
Diff to previous 34059
Fix for TGeoTrap::DistFromOutside for points inside close to Z boundary (Christian Hammann)

Revision 34059 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 22 13:04:36 2010 UTC (4 years, 7 months ago) by agheata
File length: 64423 byte(s)
Diff to previous 34055
Fixed wrong initialization

Revision 34055 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 22 12:30:11 2010 UTC (4 years, 7 months ago) by agheata
File length: 64420 byte(s)
Diff to previous 27731
Fixed algorithm of normal computation for ARB8 shapes having a twist. Thanks to Tatiana Nikitina who is porting this shape to GEANT4 and who spotted the problem.

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: 62091 byte(s)
Diff to previous 27466
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 27466 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 17 12:53:37 2009 UTC (5 years, 11 months ago) by brun
File length: 61751 byte(s)
Diff to previous 27455
From Andrei:
- Fix in twisted ARB8 DistFromInside/Outside algorithms which now take into account boundary errors.
- Added a check for malformed polygon definition for ARB8 and XTRU shapes which may have non-consecutive segments that are crossing each other.

Revision 27455 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 16 11:22:21 2009 UTC (5 years, 11 months ago) by brun
File length: 61057 byte(s)
Diff to previous 27434
From Andrei:
- Protection added in TGeoArb8::DistFromInside() which could wrongly return the distance to one of the Z endcaps when starting from lateral boundaries. Removed unnecesarry intermediat truncations in computations of distance to inside/outside
- TGeoUnion::DistFromInside() fixed to give the full distance to outside rather than the one from the current component.

Revision 27434 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 12 14:01:16 2009 UTC (5 years, 11 months ago) by brun
File length: 60047 byte(s)
Diff to previous 24997
From Andrei:
- Truncation errors better taken into account when propagating to boundaries.
- A fix for TGeoXtru::DistFromInside() in case propagation to outside fails.
- A very important protection in TGeoArb8 that checks if the vertices are defined clockwise. It posts an error message if this is not the case and automatically fixes the wrong shapes event if geometry is loaded from file.

Revision 24997 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 31 12:04:25 2008 UTC (6 years, 5 months ago) by brun
File length: 59093 byte(s)
Diff to previous 24893
From Andrei:
fixes an I/O problem for TGeoArb8: the data member fTwist is not persistent so it has to be recomputed when loading the geometry from file. Introduced custom Streamer that calls ComputeTwist() after reading. Affected safety computation for twisted TGeoArb8-s (3 shapes like this in alice) that in this case was wrongly assuming planarity of shape surfaces.

Revision 24893 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 18 15:08:05 2008 UTC (6 years, 6 months ago) by brun
File length: 58748 byte(s)
Diff to previous 24870
From Andrei:
a fix in safety computation of
TGeoArb8::Safety(point, inside) when 'inside' was not matching the real point position.

Revision 24870 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 17 16:30:58 2008 UTC (6 years, 6 months ago) by brun
File length: 59098 byte(s)
Diff to previous 24461
From Andrei:
new development related to overlap checking. This generates not only the shape mesh vertices but some 1000 points on the shape outline/surface. This is implemented for all important shapes except TGeoPcon (which works using the old method).

Revision 24461 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 21 15:44:53 2008 UTC (6 years, 7 months ago) by brun
File length: 59087 byte(s)
Diff to previous 24419
Fix compilation warning on windows

Revision 24419 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 20 13:40:38 2008 UTC (6 years, 7 months ago) by brun
File length: 59084 byte(s)
Diff to previous 22923
From Andrei:
a patch that unifies the overlap checking methods by sampling via the standard. There is also a new method introduced to sample points on shapes surface - implemented only for TGeoBBox for the  moment.

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

Revision 21301 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 10 16:21:50 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 57118 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/src/TGeoArb8.cxx
File length: 57094 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/src/TGeoArb8.cxx
File length: 57094 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/src/TGeoArb8.cxx
File length: 57145 byte(s)
Diff to previous 19617
remove :$ from tag line

Revision 19617 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 13 16:00:32 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 57155 byte(s)
Diff to previous 17356
From Andrei:
Patch for several complex shapes where it is faster to check first if the bounding box is crossed when coming from outside.

Revision 17356 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 16 09:04:50 2007 UTC (8 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 56988 byte(s)
Diff to previous 17306
Remove dependencies on TROOT.h

Revision 17306 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 12 16:03:17 2007 UTC (8 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 57007 byte(s)
Diff to previous 17294
   TMath::Abs, TMath::Min, TMath::Max, TMath::Sign, TMath::Range
These functions are unfortunately not defined in a standard way in std::

This include is referenced by a new version of TMath.h.
As a result, TMath.h is back compatible with the previous version.

TMathBase.h is used in place of TMath.h in all the classes
that will go into the future miniCore library.
TMath.h and the TMath implementation will go into a new math sub-directory.

TString.h uses TMathBase.h instead of TMath.h.
As a result, it was necessary to include "TMath.h" in some classes
assuming that TMath was included via TString and using other functions
than the ones defined in TMathBase.h
 ----------------------------------------------------------------------

Revision 17294 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 11 10:21:31 2007 UTC (8 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 56988 byte(s)
Diff to previous 15764
From Andrei:
fix for an unitialized variable in TGeoTrap::Safety.

Revision 15764 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 11 09:14:05 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 56920 byte(s)
Diff to previous 15742
From Andrei Gheata:
- addition of SetParameters method to TGeoTrap and TGeoGtra
- protection in TGeoPgon for SetParameters
- protection in TGeoPgon for tracking (rays quasi-parralel to Z plane)

Revision 15742 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 9 05:27:55 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 53300 byte(s)
Diff to previous 15672
From Eddy:
Fix many typos in comments

Revision 15672 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 3 16:10:46 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 53295 byte(s)
Diff to previous 15172
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 15172 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 24 17:11:54 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 53271 byte(s)
Diff to previous 15134
Fix coding conventions violations

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/src/TGeoArb8.cxx
File length: 53201 byte(s)
Diff to previous 13981
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 13981 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 3 09:08:32 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 52586 byte(s)
Diff to previous 13297
From Andrei:
a patch for the problem found by Mohammad:
TGeoArb8::SetDz() added
TGeoArb8::SetDimensions() fixed

Revision 13297 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 21 09:31:47 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 52526 byte(s)
Diff to previous 13282
From Andrei:
a patch fixing:
- memory leak found by Federico
- last code rule violations

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/src/TGeoArb8.cxx
File length: 52532 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/src/TGeoArb8.cxx
File length: 52446 byte(s)
Diff to previous 12629
From Andrei & Mihaela:
a diff containing the implementation of TGeoShape::Capacity. There are also
few other fixes (see below):

Mihaela:

New method:
  Double_t TGeoShape::Capacity() const;
implemented for all supported shapes. The algorithms provide analytical computation of
shape capacity in [cm^3]. All algorithms are accurate with 2 exceptions:
- TGeoCtub : the formula is just an approximation due to the difficulties to integrate
over the phi angle in the general case.
- TGeoCompositeShape: the computation of the capacity is done by sampling, with an
accuracy of 1%.

Based on this method I extended the implementation of TGeoVolume::Weight(Double_t
precision, Option_t *option). The default value of option is now "va" meaning: verbose
+ analytical. Removing "a" from the default option performs computation of volume
weight using the old algorithm of sampling. I have checked the 2 ways of computing the
weight one against the other and they are consistent.

Andrei:

- fixed a memory leak related to TGeoShapeAssembly ownership
- fixed some tracking problems for assemblies (when the top volume was an assembly)

Revision 12629 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 4 15:16:12 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51815 byte(s)
Diff to previous 11785
Fix coding conventions violations.

Revision 11785 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 13 16:20:38 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51806 byte(s)
Diff to previous 11272
From Mihaela Gheata:
a patch with some fixes in SavePrimitive:

- shapes have now unique pointer names
- matrices used in composite shapes get registered to TGeoManager
- fix in TGeoCompositeShape::SavePrimitive, added
TGeoBoolNode::SavePrimitive

Revision 11272 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 9 18:19:27 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51713 byte(s)
Diff to previous 11204
From Richard Maunder:

Changes to viewer infrastructure (TBuffer3D,TVirtualViewer3D) to
support:

i) Proper shape specific (sphere, tube, etc) descriptions in TBuffer3D
derived classes - c.f. abuse of raw tesselation blocks before.
ii) On demand filling of buffer sections as required by viewer.
iii) Support for local/master frame shapes descriptions & child object
rejection.
iv) Template/placed shapes ids - enabling viewer to detect/receive
common shapes once and just obtain the new position and id of the
duplicate.

Cleans up all producer (g3d/geom) code so no longer has an viewer
specific knowledge - Paint() methods replaced with
GetBuffer3D/FillBuffer3D methods which complete requested sections of
the buffer.

All viewer specific code now sits on the viewer implementation side of
TVirtualViewer3D. Added a TViewer3DPad class for performing the 3D draws
into pad. In future this should be merged with TView/TView3D possibly.

TBuffer3D is now stripped of functional code (aside from memory
management) and various viewer passback options there previously.
Enforced one way passing a const & to viewer.

Buffers (various types) are held as single static inside producer
function e.g. TGeoShape::GetBuffer3D (c.f. single generic buffer type
fetched from pad previously).

For g3d and geom shapes the top level geometry painter (TNode /
TGeoPainter) controlls painting process, requesting shapes to fill
buffer and passing to 3D viewer.

Exceptions are g3d's TPolyLine3D, TPolyMarker3D & TMarker3DBox. These
are 'standalone' shapes - no controlling 'painter' object. They still
implement Paint(), fill buffer and add to viewer directly.

3D viewer still held / created by pad - and pad has it's own viewer
object (TViewer3DPad).

NOTE:

1. Current scheme supports one 3D viewer only - pad, x3d or OpenGL. This
means that pad goes blank when x3d/OGL is spawned, and is updated again
when it is closed. To be revisited - need to support multiple viewers,
of multiple types - which implies explicit naming or pad controlling
enumeration.

2. OGL viewer now responds correct to modifications in pad, without
having to be reinvoked (as previously). x3d is still decoupled (as
previously) so does not rebuild - too difficult to get working.

Revision 11204 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 28 20:52:43 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51698 byte(s)
Diff to previous 11031
In calls to SavePrimitive replace comments in arguments such as
   */*option*/
by
   * /*option*/

Revision 11031 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 3 16:58:57 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51695 byte(s)
Diff to previous 11028
Fix from Andrei to fix a compilation problem on Solaris.

Revision 11028 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 3 11:40:39 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 51671 byte(s)
Diff to previous 10683
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 10683 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 5 16:47:22 2004 UTC (10 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 44062 byte(s)
Diff to previous 10682
Minor fix in TGeoArb8::SafetyToFace

Revision 10682 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 5 16:39:24 2004 UTC (10 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 44061 byte(s)
Diff to previous 10681
Some speed optimisations in functions computing distances and safety.

Revision 10681 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 5 08:19:08 2004 UTC (10 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 44062 byte(s)
Diff to previous 10498
Optimize speed of TGeoArb8::DistFromInside

Revision 10498 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 8 09:56:24 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 42182 byte(s)
Diff to previous 8691
From Andrei Gheata:
Change names of TGeo functions with confusing names
DistToIn    ->   DistFromOutside
DistToOut ->   DistFromInside
It should be much less confusing since it specifies where the starting
point is supposed to be.

Revision 8691 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 26 13:06:33 2004 UTC (10 years, 9 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 42139 byte(s)
Diff to previous 8565
From Andrei Gheata:
- TGeoManager: possibility to clear/delete the list of physical nodes
- TGeoArb8: Implementation of Safety() (even if shape is twisted) -
Finally all primitive shapes have full implementation of all navigation
methods: Contains(), DistToIn(), DistToOut(), Safety(), ComputeNormal()

Revision 8565 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 13 07:04:42 2004 UTC (10 years, 9 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37630 byte(s)
Diff to previous 7938
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 7938 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 19 13:45:04 2004 UTC (11 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37589 byte(s)
Diff to previous 7932
Fix correct indentation (due to TABs problems)

Revision 7932 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 18 16:33:14 2004 UTC (11 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37583 byte(s)
Diff to previous 7930
Fix a compiler warning

Revision 7930 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 18 16:19:37 2004 UTC (11 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37589 byte(s)
Diff to previous 7929
A few more sepeed improvements

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/src/TGeoArb8.cxx
File length: 37403 byte(s)
Diff to previous 7725
Speed improvements in many functions. Speed is about 25% in case of CMS ECAL

Revision 7725 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 11 10:37:35 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37269 byte(s)
Diff to previous 7724
Fix a typo

Revision 7724 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 11 10:34:55 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 37291 byte(s)
Diff to previous 7123
From Andrei

  kBig removed, accessible via inline : TGeoShape::Big()
  kDegRad, kRadDeg changed everywhere with TMath::RadToDeg(),
TMath::DegToRad()

Revision 7123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 21 10:17:16 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 36795 byte(s)
Diff to previous 7121
A few fixes by Andrei to solve portability problems, in particular under Windows.

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/src/TGeoArb8.cxx
File length: 36781 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/src/TGeoArb8.cxx
File length: 36636 byte(s)
Diff to previous 6725
From Andrei GHeata:

- TGeoManager::FindNormal(Bool_t forward=kTRUE)  = global algorithm for
finding the normal to the next/previous crossed surface, from the
current global point/direction. The current point does not necessary
need to be close to the surface, and the normal direction is always
returned so that its dot product with the current direction is positive
defined. One can get the normal after its computation with:
    Double_t *TGeoManager::GetNormal()

- Normal computation algorithms for box, arb8, trap, gtra, cone in the
corresponding shape classes.

- New primitive shape fully implemented, from visualization to
computation of distances (except the normal computation, missing also
for several other shapes). Class name: TGeoTorus, representing a torus
segment with :
    - R - radius of the circle representing the torus axis
    - Rmin - inner radius    (like a donut having a hole in the middle)
    - Rmax - outer radius (Rmin < Rmax < R)
    - Phi1 - start phi
    - Dphi - phi range

- Some unused obsolete methods removed from the TGeoShape class.
- modifications in TGeoIdentity default ctor to initialize gGeoIdentity
- TGeoMaterial::IsMixture(),
   TGeoMaterial::FindDuplicateMaterial(const TGeoMaterial *mat)

- several other minor changes

Revision 6725 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 17 09:13:56 2003 UTC (11 years, 7 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 35636 byte(s)
Diff to previous 6304
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 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/src/TGeoArb8.cxx
File length: 35510 byte(s)
Diff to previous 6137
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 6137 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 17 13:23:55 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 33550 byte(s)
Diff to previous 6085
Replace several delete xxx by delete [] xxx;

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/src/TGeoArb8.cxx
File length: 33544 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/src/TGeoArb8.cxx
File length: 33584 byte(s)
Diff to previous 5981
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 5981 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 24 08:38:50 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 33710 byte(s)
Diff to previous 5972
From Andrei:
fix warnings aboit unused arguments

Revision 5972 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 23 14:25:37 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 33701 byte(s)
Diff to previous 5946
From Andrei:
- all shape classes : changed the prototype for Safety() method.
Eliminated validity checking in Divide() methods that are now globally
handled by TGeoVolume::Divide(). Added methods
TGeoShape::GetAxisName/Range(Int_t iaxis) which are used by the new
global division mechanism.
- safety for TGeoTrap now computed (pcon, pgon not yet)
- TGeoVolume : eliminated unnecesarry Divide() prototypes. The new
Divide() prototype is backwards compatible (old macros works with it)
but supports an option in order to allow all G3 division types. More
description in TGeoVolume::Divide().
- TGeoManager : Only one prototype for G3-like divisions left,
supporting all G3 options and also being able to assign to the division
volumes a medium different than the one of the divided volume. New
FindNode(x,y,z) implemented. New IsSameLocation(x,y,z) with the same
functionality as GINVOL.

Revision 5946 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 20 14:35:48 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31439 byte(s)
Diff to previous 5883
Several updates to the geometry pacjage by Andrei:
TGeoManager :
- added getter for current direction;
- dummy cache option by default
TGeoNodeOffset
- set the name for parametrized divisions; minor fix in allocating the
space for the name (safer now)
TGeoPatternFinder :
- the getter for the matrix of a divided node will return the updated
matrix (before one had to do TGeoNodeOffset::cd() first, now
TGeoNodeOffset::GetMatrix() does this in one go)
Shape classes :
- protection for wrong division range slightly modified

Revision 5883 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 12 14:49:32 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31107 byte(s)
Diff to previous 5848
New version of TGeo classes from Andrei:
-TGeoManager - added G3-like prototypes for building geometry
-TGeoPatternFinder - added parameters of a division (fStart, fStep, fEnd)
-TGeoVolume - fix in TGeoVolumeMulti::AddVolume() to update existing
  nodes for all volumes in list
  several shapes supporting divisions - using TGeoVolumeMulti for divisions
-TGeoVoxelFinder - fixed dtor

Revision 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/src/TGeoArb8.cxx
File length: 30945 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/src/TGeoArb8.cxx
File length: 30947 byte(s)
Diff to previous 5788
From Andrei:
attached the last version, with bug fixes in tracking. Now you can do
lego plots for everything in alice. It does not do extra steps (except
very seldom in ITS in som very thin tubes - 1 extra step to cross). Much
more stable. I temporarly disabled TGeoVolume::CheckGeometry from the
context menu of volumes since it seems to have a bug that I need to fix.
 Much better version in computing distances.

Revision 5788 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 10 14:34:50 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31112 byte(s)
Diff to previous 5723
From Andrei:
solved some extra bugs so that all lego plots in non-MANY volumes
looks fine.

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/src/TGeoArb8.cxx
File length: 31233 byte(s)
Diff to previous 5443
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 5443 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 21 15:21:13 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31124 byte(s)
Diff to previous 5406
Upgrade of the geom classes by Andrei:
- improvements in the drawing mechanism (nodes can also be made
invisible, having higher priority than volumes;
- possibility of simple phi cut in TGeoManager::SetPhiRange(phimin, phimax)
  - by default the phi range is (0, 360) - no cut performed
 - setting different values for phimin, phimax will make invisible the
nodes having the origin in this range;

- documentation updated for TGeoArb8 class (picture in /gif directory)

Revision 5406 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 8 16:17:49 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31288 byte(s)
Diff to previous 5354
new version of the geometry package from Andrei:
- bug fix in the destructor of TGeoPatternCylPhi
- several modifications in the default constructors of shapes.
- several corrections and "v" feature added to I/O
- removed base class for finders

 Now you can save voxels and retreive them with no problem. You can use :
  gGeoManager->Export("filename", "", "v") to do that. The size of files
without/with voxelization are :
    Exp           no voxels saved             voxels saved
ALICE            404227                        719703
CMS               550440                       1275590
ATLAS         1858198                      3335166

Be careful, the files TGeoFinder.h and TGeoFinder.cxx have been removed.
Suggest doing:

rm geom/src/*.o geom/src/G__*

Revision 5354 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 27 16:16:06 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 31004 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/src/TGeoArb8.cxx
File length: 26695 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/src/TGeoArb8.cxx
File length: 24750 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/src/TGeoArb8.cxx
File length: 24669 byte(s)
Diff to previous 4851
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 4851 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 16:54:24 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 24614 byte(s)
Diff to previous 4848
Fix compilation problems for HP-UX/aCC

Revision 4848 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 14:33:25 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 24614 byte(s)
Diff to previous 4847
Remove unused variables or statements

Revision 4847 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 14:27:57 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoArb8.cxx
File length: 24612 byte(s)
Diff to previous 4841
Fix portability problems (alpha/cxx)

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/src/TGeoArb8.cxx
File length: 24560 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