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

Log of /trunk/geom/geom/inc/TGeoPhysicalNode.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: 5815 byte(s)
Diff to previous 25123
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 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: 5815 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: 5794 byte(s)
Diff to previous 22428
move geom, geombuilder, geompainter and gdml to geom meta directory.

Revision 22428 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 3 18:17:03 2008 UTC (6 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5794 byte(s)
Diff to previous 21425
From Federico:
Changes to support the gcc -weffc++ compiler option.

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

Revision 21211 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 5 16:00:57 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5320 byte(s)
Diff to previous 20882
From Andrei:
adds a global matrix pointer to TGeoPNEntry objects - needed by the alignment framework in ALICE.

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/TGeoPhysicalNode.h
File length: 5219 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5219 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/TGeoPhysicalNode.h
File length: 5276 byte(s)
Diff to previous 19650
remove :$ from tag line

Revision 19650 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 20 08:49:08 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5286 byte(s)
Diff to previous 18135
From Andrei:
- TGeoPNEntry class has now an additional pointer to the original matrix, which is set in the class ctor and works provided that all PNEntry objects are created BEFORE applying any alignment. The getter for this original (LOCAL) matrix of the last TGeoNode in the branch is:
   TGeoMatrix *TGeoPNEntry::GetMatrixOrig()

- Modified method:
   TGeoPNEntry * TGeoManager::SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1);
 If UID is provided, one can do a (fast) retrieval by UID (based on binary search):
   TGeoPNEntry *TGeoManager::GetAlignableEntryByUID(Int_t uid) const;

The UID mapping becomes persistent with the geometry. To retrieve the number of entries having (or not) uid's defined, I modified:
   Int_t TGeoManager::GetNAlignable(Bool_t with_uid=kFALSE) const

- Added method TGeoOverlap::SampleOverlap(Int_t npoints) for overlaps/extrusions in the context menu of overlaps. This normally produces a picture of the overlap having random red points in the overlapping region. Helps a lot to check how big the overlap is (prints the volume of the overlapping region) and to validate if the overlap is valid or not.

- TGeoVolume::CheckOverlaps(Double_t ovlp, Option_t *option) produces now overlap objects in the list of overlaps of TGeoManager in case option="s" (sampling). Very useful for doing an extensive check on ovelaps as an alternative to the fast method.
 Note: when checking assembly vs. assembly (or volume) only one overlap is reported (the check does not show which node in the assembly produced the overlap). A graphical output giving hints is still provided in this case.

Revision 18135 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 2 08:52:03 2007 UTC (7 years, 10 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5060 byte(s)
Diff to previous 17910
From Andrei:
TGeo: - implementation of TGeoManager::CdNext() allowing positioning the current state to the next entered volume - used by g4root interface
 - implementation of TGeoManager::RefreshPhysicalNodes() that need to be called after applying misalignment to ideal geometry to update the node pointers so they will reflect the new geometry objects created. This will also lock geometry. TGeoPhysicalNode is now a TNamed.
 - adjustments in G4 root to deal with MANY's and assemblies by using TGeoManager::CdNext()

Revision 17910 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 12 17:14:47 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 5055 byte(s)
Diff to previous 17885
From Andrei:
The matrix is now owned by the user. There is still has the possibility to delegate ownership to TGeoManager by calling RegisterYourself().

Revision 17885 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 12 10:22:13 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 4990 byte(s)
Diff to previous 16298
From Andrei:
a modification in TGeoPNEntry class making fMatrix data member const.

Note that there is a small trick however made to register this matrix to TGeoManager (e.g. the manager will own the matrix when cleaning-up)

Revision 16298 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 19 14:37:13 2006 UTC (8 years, 4 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 4977 byte(s)
Diff to previous 15134
From Mihaela:
some changes in the class TGeoPNEntry (needed for alignment purposes):

1. Constructor of TGeoPNEntry performs a check upon definition of a symbolic link to a physical node. The check is done redundantly also upon creation of a physical node starting from a symbolic link to prevent mis-usage of these objects in-between geometries.
2. Allows storage of an additional user-defined TGeoHMatrix. The matrix should be created by the user but
once TGeoPNEntry::SetMatrix() is called becomes owned by TGeoManager.

Revision 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 4774 byte(s)
Diff to previous 14895
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 14895 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 2 18:25:35 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 4442 byte(s)
Diff to previous 14003
From Andrei:
TGeoPNEntry
============
Generic aligneable objects are represented now by the new class TGeoPNEntry.
This is just a TNamed that stores as name the unique identifier and as title
the corresponding path in the geometry. They correspond each to a
TGeoPhysicalNode object to which they have a pointer (for fast access).
These generic aligneable objects should be created during the geometry
creation stage using the following interface in the TGeoManager class:

TGeoPNEntry *TGeoManager::SetAlignableEntry(const char *unique_name, const
char *path)
====================================================================

Ex:
AliTPCv2::CreateGeometry()
{
... geom. creation
   // at the end of this, several generic aligneable objects
   // declarations. The name should be unique and the path VALID for the
   // detector version AliTPCv2
   gGeoManager->AddAligneable("TPC_Sect1", "ALIC_1/TPC_M_1/TPMW_2/...");
   ... again and again, maybe in a loop
}
====================================================================

Access methods:
   const char *TGeoPNEntry::GetPath();  // returns the path
   TGeoPhysicalNode * TGeoPNEntry::GetPhysicalNode();  // returns pointer to
physical node

 These can be also created after the geometry is closed. Upon creation the
consistency of the path cannot be checked (geometry not closed), so no
physical node is actually created by SetAlignableEntry(). This is done later
(see below).
 Internally TGeoManager stores these objects in a persistent THashList. The
following methods (in TGeoManager) allow fast retreival by unique_name and
looping the existing objects:

    TGeoPNEntry *TGeoManager::GetAlignableEntry(const char *name) const;
    TGeoPNEntry *TGeoManager::GetAlignableEntry(Int_t index) const;
    Int_t        TGeoManager::GetNAlignable() const;

The physical nodes corresponding to a given TGeoPNEntry can be created by:
    TGeoPhysicalNode  *TGeoManager::MakeAlignablePN(const char *name);
    TGeoPhysicalNode  *TGeoManager::MakeAlignablePN(TGeoPNEntry *entry);

Using these methods instead of TGeoManager::MakePhysicalNode gives the
additional flexibility of accessing physical nodes by a path-independent
identifier. The access is also faster due to hashing.

Revision 14003 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 8 05:05:06 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 3667 byte(s)
Diff to previous 13282
From Andrei
a patch for being able to include TGeoPhysicalNode.h

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

Revision 12592 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 2 13:54:38 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 3615 byte(s)
Diff to previous 8648
From Andrei:
a rather big patch containing a fix for the sphere mesh from Mihaela
as well as several other small fixes related to navigation + new methods. Before
doing it I included your code checker-related changes.

Mihaela:
- all sphere types (according rmin,rmax,theta1,theta2,phi1,phi2) have now the
minimum needed set of points/segments/polygons. For instance, the spheres with
rmin=0 does not have anymore the mesh for the inner sphere. Also, if there is no
phi segmentation, you do not have anymore the polygons related to the phi
slices.
- ongoing work for the same for cones (not in this patch)

Andrei:
- memory leak in TGeoPhysicalNode::Align() (hopefully) fixed. Original (ideal)
matrix now kept.
- several fixes in TGeoManager::Safety, TGeoManager::SearchNode for properly
checking all extrusions types MANY->ONLY or ONLY->MANY for all current branch.
- fix for overlapping flag bookkeeping when moving up from a divided node. The
number of MANY's in the current branch is now kept as data member of
TGeoManager. Changes in TGeoCache according to this
- Prototype for TGeoManager::FindNextDaughterBoundary() changed to return
crossed daughter index
- new method TGeoManager::FindNextBoundaryAndStep() that in addition to
computing the distance to next boundary propagates current point and finds the
new location. Changes in the raytracing algorithm to use this - seem to work
properly, but I still have to double-check some geometries.

Revision 8648 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 22 14:07:15 2004 UTC (10 years, 9 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 3454 byte(s)
Diff to previous 8565
From Andrei Gheata:
- TGeoXtru navigation now fully implemented by Mihaela
- Improvements in the ray-tracing algorithm
- Added TGeoShape::GetNmeshVertices() to be used by visualization and by
the overlap checker in case of composite shapes (currently the checker
does not work with composites)
- I have created a new demo macro (see /tutorials/geodemo.C in the
attachment) to replace /tutorials/geoshapes.C. Functionality:

  - all previous functionality of geoshapes.C
  - new shapes examples added: TGeoTorus, TGeoXtru, TGeoCompositeShape
  - can call rootgeom.C
  - ray-tracing can be switched on/off
  - comments can be switched on/off
  - demonstrates alignment

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/TGeoPhysicalNode.h
File length: 3220 byte(s)
Diff to previous 8260
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 8260 - (view) (download) (as text) (annotate) - [select for diffs]
Added Thu Feb 19 15:00:41 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/geom/inc/TGeoPhysicalNode.h
File length: 3107 byte(s)
from Andrei
modifications for the inclusion of the new class
TGeoPhysicalNode (new files TGeoPhysicalNode.h/.cxx). This represents a
branch of the geometry tree (represented by a path) and can be
visualized in addition to the default visualization. They will be used
also for aligning the geometry, but this is not yet implemented.

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