Log of /trunk/geom/geom/inc/TGeoMatrix.h
Parent Directory
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: 24588 byte(s)
Diff to
previous 44557
Added possibility to prevent known overlaps produced by misalignment by assignig priority to one of the candidates. This is not using the error prone AddNodeOverlap method, but composite shapes. One has to create the unprioritized shape as the subtraction of the original one and the shape of the node to prioritize, then position this composite shape colume with identity matrix. The prioritized volume should be added as node using the same local matrix as the one used in the subtraction operation. The matrix itself has to be declared shared via SetShared() method. Added few parameters to the RandomRays method.
Revision
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: 24351 byte(s)
Diff to
previous 40116
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
40116 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 4 12:00:32 2011 UTC (3 years, 6 months ago) by
agheata
File length: 24326 byte(s)
Diff to
previous 34744
Allow creating and accessing transparently a different list of navigators for each calling thread. Must be initialized via TGeoManager::SetMultiThread()
Revision
34744 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 7 06:16:36 2010 UTC (4 years, 5 months ago) by
brun
File length: 24262 byte(s)
Diff to
previous 25524
From Artur Szostak:
There is a mechanism in GCC 4.6.0 that will allow one to effectively prevent the false positive warnings for -Weffc++ from appearing in software that builds against ROOT, with the -Weffc++ flag set, such as AliRoot. I propose using the mechanism, which will make the development in AliRoot much more pleasant.
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/TGeoMatrix.h
File length: 22593 byte(s)
Diff to
previous 15672
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
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/TGeoMatrix.h
File length: 20291 byte(s)
Diff to
previous 14832
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
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/TGeoMatrix.h
File length: 20271 byte(s)
Diff to
previous 14093
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
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/TGeoMatrix.h
File length: 20226 byte(s)
Diff to
previous 13282
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
12883 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 3 06:54:51 2005 UTC (9 years, 3 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 20608 byte(s)
Diff to
previous 12795
From Andrei:
new class TGeoScaledShape + the modifications
needed to compile it. There are also some minor fixes.
A scaled shape can be any basic or composite shape for which you
apply a scaling transformation. If a volume has a scaled shape it
does not imply that its nodes are scaled (the scale applies ONLY
to the shape itself). To define a scaled shape:
TGeoShape *non_scaled = ...; // define a shape
TGeoScale *scale = new TGeoScale(sx,sy,sz);
// sx,sy,sz are scaling factors on each axis (non-zero)
TGeoShape *scaled_shape = new TGeoScaledShape(non_scaled, scale);
// the scaled shape is ready to use
Revision
12795 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 21 12:12:12 2005 UTC (9 years, 4 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19958 byte(s)
Diff to
previous 11076
From Andrei:
a small change in TGeoRotation needed by Cvetan. It is backward compatible
and adds extra functionality to TGeoRotation::GetPhiRotation(Bool_t fixX=kFALSE)
The meaning of fixX is:
- if the rotation is a pure Z rotation, fixX does not matter;
- fixX = true: result is the phi angle of the projection of the rotated X axis in the
un-rotated XY
- fixX = false: result is the phi angle of the projection of the rotated Y axis - 90
degrees
Revision
11076 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 9 13:30:27 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19940 byte(s)
Diff to
previous 11028
From Mihaela Gheata;
- divisions supporting SavePrimitive
- main SavePrimitive loop implemented at level of TGeoVolume
- user interface: TGeoVolume::SaveAs(const char *filename); having *MENU*
- can be called from the browser for any volume:
the resulting file will have a geometry starting with the selected
volume as TOP.
- should work with TPad::SavePrimitive(ofstream out, Option_t *option)
- not tested however
From Andrei:
I did some changes in TGeoCombiTrans to support a shared rotation matrix.
I also fixed a bug in TGeoTube::GetMakeRuntimeShape (and tube segment)
that produced wrong shapes in case one of the initial parameters was negative.
Revision
11028 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 3 11:40:39 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19852 byte(s)
Diff to
previous 10914
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
10914 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 13 12:07:48 2005 UTC (10 years ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19466 byte(s)
Diff to
previous 9928
From Andrei Gheata:
According to Ivana's observations/patch, RotateX,Y,Z methods of TGeoMatrix derived classes
perform the corresponding rotations with respect with the master frame. Works now for
TGeoTranslation, TGeoRotation, TGeoCombiTrans and TGeoHMatrix.
Revision
9928 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 6 16:42:33 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19253 byte(s)
Diff to
previous 9914
From Andrei
-SetBit(kIsReflection) in TGeoShape::paint when the object has a reflection matrix.
-Exploded view works again.
-Set TGeoVolume instead of TGeoShape when filling TBuffer3D
-Modify rootgeom.C ("R" problem). TGeoArb8 allowing definition of vertices in any order.
Revision
9887 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 3 12:28:46 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 19078 byte(s)
Diff to
previous 7988
From Andrei Gheata;
- assignment operators and ctors(const TGeoMatrix&) for all
transformation types; any type can be assigned to another
ex: TGeoRotation r("name", 10,20,30);
TGeoHMatrix h = r; (h(r) also works)
TGeoCombiTrans c = h; (c(h) also)
- strict checking of IsTranslation() and IsRotation() used to optimize
TGeoHMatrix::LocalToMaster/MasterToLocal which is heavily used by
navigation (was not really the case before)
- operator == at the level of TGeoMatrix class. Some limitations due to:
rot * rot.Inverse() != identity due to arithmetic errors (1E-14)-
the IsRotation() flag for the result remains set. Could be fixed by a
checking procedure but this would be too much time consuming. Therefore
== is guaranteed to work only after assignment/copy operations.
Revision
7988 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 23 16:34:13 2004 UTC (11 years ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 18125 byte(s)
Diff to
previous 7952
From Andrei Gheata:
I took a look to the way a rotation is
interpreted from Euler angles and I found that the computation of matrix
elements is not as it supposed to be, resulting in a confusing violation
of the documented convention.
This is why I fixed it (putting also in the computation of the inverse
matrix)
I touched also TGeoManager.cxx, fixing a warning (variable not used)
Revision
7352 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 25 14:50:40 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 17629 byte(s)
Diff to
previous 7121
From Andrei Gheata:
few modifications in TGeoMatrix class:
- few extra setters
- new methods RotateX/Y/Z()
- a source of memory leaks in TGeoCombiTrans eliminated (the rotation
component is now owned by the class, it can only be copied from other
rotation)
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/TGeoMatrix.h
File length: 16915 byte(s)
Diff to
previous 6725
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
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/TGeoMatrix.h
File length: 16926 byte(s)
Diff to
previous 6563
New version of the geometry package from Andrei/Mihaela
TGeoArb8 - pictures added
TGeoBBox - doc, pictures
TGeoCache - id array for physical nodes
TGeoCompositeShape - doc added
TGeoCone - pictures, bug fiz in Z divisions, correction in 'safety'
TGeoEltu - pict. added
TGeoManager - registration of matrices, unique volume id's
TGeoMatrix - copy ctors., = and * operators, improvements, extensive doc.
TGeoNode - doc added
TGeoPara - pictures
TGeoPatternFinder - registration of pattern matrices
TGeoPcon - fix in Z divisions, fix in 'safety', pictures
TGeoPgon - same as Pcon
TGeoShape - doc added
TGeoSphere, Trd1,2, Tube - pictures added
TGeoVolume - doc updated
TGeoChecker - doc., improvement of extrusions checker by Mihaela
TGeoPainter - does not create polygons array in X3dBuffers when drawing
in pad
TGeoTrack - compilation warnings fixed
Revision
6563 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 7 13:32:39 2003 UTC (11 years, 8 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoMatrix.h
File length: 16112 byte(s)
Diff to
previous 5381
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
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/TGeoMatrix.h
File length: 16138 byte(s)
Diff to
previous 5307
New version of the geometry package by Andrea & Mihaela Gheata
New features:
-I/O for all geometry classes. For example, to save/restore a geometry structure,
TFile f("mygeom.root","recreate");
gGeoManager->Write("mygeom");
and to read it back;
TFile f("mygeom.root");
f.Get("myGeom");
gGeoManager->CloseGeometry();
-Composite shapes fully implemented (no visualisation yet).
A composite shape is built out of basic shapes and transformations via
a simple formula mechanism, eg assuming a TGeoTube "tub1" and a TGeoMatrix "r1",
we can build a composite shape with:
TGeoCompositeShape *comp = new TGeoCompositeShape("comp",formula); where
char* formula="tub1+tub1:r1"
This will create the union of a tube with itself rotated.
The operators recognized by the geometry formula parser are "+","-","*"
for union, subtraction and intersection respectively. The colon ":" can be
used to specify a transformation for a given component.
-The voxelisation in cylindrical coordinates added as an optional optimisation
algorithm.
-Some bug fixes and several improvements in the tracking-related algorithms.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.