Log of /trunk/geom/geom/src/TGeoVolume.cxx
Parent Directory
Revision
48992 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 28 15:26:26 2013 UTC (21 months, 3 weeks ago) by
rdm
File length: 102503 byte(s)
Diff to
previous 48001
From Lifeng Sun:
The attached patchset fixes a bunch of typo in the source:
0001-succes-success.patch
0002-preceed-preced.patch
0003-informations-information.patch
0004-childs-children.patch
0005-avaliable-available.patch
0006-writeable-writable.patch
0007-comand-command.patch
0008-unkown-unknown.patch
0009-wierd-weird.patch
0010-wheter-whether.patch
0011-unecessary-unnecessary.patch
0012-splitted-split.patch
0013-registerd-registered.patch
0014-recieve-receive.patch
0015-processsing-processing.patch
0016-ouput-output.patch
0017-mutiple-multiple.patch
0018-lenght-length.patch
0019-interupted-interrupted.patch
0020-independant-independent.patch
0021-inconsistant-inconsistent.patch
0022-expresion-expression.patch
0023-explicitely-explicitly.patch
0024-enviroment-environment.patch
0025-deafult-default.patch
0026-continous-continuous.patch
0027-completly-completely.patch
0028-commited-committed.patch
0029-choosen-chosen.patch
0030-backgroud-background.patch
0031-auxilliary-auxiliary.patch
0032-authentification-authentication.patch
0033-appropiate-appropriate.patch
0034-an-other-another.patch
0035-environement-environment.patch
0036-targetting-targeting.patch
0037-suppported-supported.patch
0038-paramater-parameter.patch
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: 102465 byte(s)
Diff to
previous 46484
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: 101078 byte(s)
Diff to
previous 42999
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
42999 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 14 13:42:55 2012 UTC (2 years, 11 months ago) by
agheata
File length: 100783 byte(s)
Diff to
previous 42982
Thread data is now pre-allocated when calling gGeoManager->SetMaxThreads(). This adds ~20MB for ALICE geometry per 100 threads, but avoids atomic allocations and thread locking. All run-time geometry locks removed. Thread id stored now using static thread__ allocator, faster and lock free for subsequent calls issued by the same thread.
Revision
42982 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 13 10:21:23 2012 UTC (2 years, 11 months ago) by
agheata
File length: 99790 byte(s)
Diff to
previous 42459
Added support structure TGeoStateInfo to communicate stateful navigation data internally. Fully removed locking from TGeoManager and TGeoVoxelFinder.
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: 97678 byte(s)
Diff to
previous 38238
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
36632 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 12 15:57:07 2010 UTC (4 years, 2 months ago) by
agheata
File length: 96104 byte(s)
Diff to
previous 36535
Fixed dynamic computation of assembly bounding boxes during alignment. The bounding box needs to be valid at all times, still does not need to be recomputed if no node is added or misaligned
Revision
35047 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 27 14:38:41 2010 UTC (4 years, 4 months ago) by
agheata
File length: 96631 byte(s)
Diff to
previous 33670
Bounding box for assemblies is now computed dynamically when needed instead of after every AddNode operation.
The patch reduces the number of calls to TGeoShapeAssembly::ComputeBBox from 4.8 million to 12700 (!) in ALICE and gains 40% speedup in initialization time (~30sec).
Thanks to Matevz for spotting this. Also added Matevz's code for improving access by index to PNEntries.
Revision
33670 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 31 14:45:23 2010 UTC (4 years, 7 months ago) by
agheata
File length: 96602 byte(s)
Diff to
previous 32930
Fixed support for divisions in the GDML parser. Basically everything was wrong, including the number of divisions parameter.
Revision
32930 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 9 16:18:32 2010 UTC (4 years, 9 months ago) by
pcanal
File length: 95481 byte(s)
Diff to
previous 29393
Prefer the use of InheritsFrom(TClass*) over InheritsFrom(const char*) as long as
it does not increase the library dependencies.
Revision
29393 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 8 07:44:49 2009 UTC (5 years, 6 months ago) by
brun
File length: 95460 byte(s)
Diff to
previous 27731
From Andrei:
fixes an incoherency while navigating in assembly volumes by correctly storing the index of the next crossed daughter to the assembly. The effect was that in some rare cases assembly volumes appeared in tracking with GEANT4.
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: 95445 byte(s)
Diff to
previous 25777
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
25777 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 10 10:37:48 2008 UTC (6 years, 3 months ago) by
brun
File length: 95424 byte(s)
Diff to
previous 23478
From Andrei:
While debugging the interfaces with G4/FLUKA, i found a couple of bugs related to TGeoNavigator::FindNextBoundaryAndStep(). One problem was affecting crossing boundaries within divided volumes (sometimes a step was made in the mother volume and few division cells were skipped). The other problem was wrongly returning the top node even if the point was correctly located.
Both problems are fixed by the patch. This will certainly improve the situation for the problems reported both with TFluka and g4root interfaces, as well as rare problems when computing the material budget in ALICE (reconstruction). Does not affect G3 navigation that works using FindNextBoundary()
Revision
20341 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 15 09:47:45 2007 UTC (7 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 95650 byte(s)
Diff to
previous 19826
From Andrei:
some fixes for some array access violations in pcon, pgon and xtru spotted by Federico. Some protections were missing in correlation of the usage of TMath::BinarySearch() (numeric exception cases on boundaries).
Revision
19777 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 10 14:28:49 2007 UTC (7 years, 4 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 95592 byte(s)
Diff to
previous 19650
From Andrei:
a diff with a new class TGeoUniformVoxels that is supposed to increase navigation speed. For the moment it does not - there is still some work to be done - so it is not yet used. The patch contains also a fix for the problem of visualization of daughters of composites.
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/src/TGeoVolume.cxx
File length: 95545 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/src/TGeoVolume.cxx
File length: 95505 byte(s)
Diff to
previous 18125
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
17726 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 6 14:22:28 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 95649 byte(s)
Diff to
previous 17561
In the Streamer functions replace the lines like
TPad::Class()->ReadBuffer(b, this, v, R__s, R__c);
TPad::Class()->WriteBuffer(b,this);
by
b.ReadClassBuffer(TPad::Class(), this, v, R__s, R__c);
b.WriteClassBuffer(TPad::Class(),this);
Revision
17561 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 29 15:10:49 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 95641 byte(s)
Diff to
previous 17244
-Add include "TROOT.h" in all implementation files that were assuming
that TROOT was included via TClass.h
-In TClass.h:
--Remove the include of TROOT.h
--add the following static member
static IdMap_t *fgIdMap; //Map from typeid to TClass pointer
--add the following functions:
static void AddClass(TClass *cl);
static void RemoveClass(TClass *cl);
--Replace the inline definitions of GetClass functions by
template <typename T> TClass* GetClass( T** /* dummy */) { return GetClass((T*)0); }
template <typename T> TClass* GetClass(const T** /* dummy */) { return GetClass((T*)0); }
-In TClass.cxx:
--Instead of forwarding the calls to gROOT->GetClass, move the code
originally in TROOT in the TClass::GetClass functions
--Move class TMapTypeToTClass from TROOT to TClass.
Revision
17063 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 6 15:09:11 2006 UTC (8 years, 1 month ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 95232 byte(s)
Diff to
previous 16758
From Andrei:
a patch that implements the method:
TGeoNode *TGeoVolume::ReplaceNode(TGeoNode *nodeorig,
TGeoShape *newshape=0,
TGeoMatrix *newpos=0,
TGeoMedium *newmed=0)
The method allows replacing an existing daughter of a volume with another one. Providing only the node to be replaced will just create a new volume for the node but having exactly the same parameters as the old one. This helps in case of divisions for decoupling a node from the logical hierarchy so getting new content/properties.
For non divided volumes, one can change the shape and/or the position of the daughter.
Revision
16680 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 3 21:22:32 2006 UTC (8 years, 2 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 93463 byte(s)
Diff to
previous 16589
From Andrei:
1. Possibility to export/import TGeoVolume objects in a similar way as we
can do it for TGeoManager class. Note that for the moment only the .root and
.C formats are supported (for .gdml I don't know how to do it). One can now
import several volumes from file(s) and connect them to the same TGeoManager
object:
Exporting is straightforward:
module1->Export("file.root"); // by default file is overwritten
module2->Export("file.root","","update"); // to the same file
Importing will append the volume to the current TGeoManager or will create
one:
TGeoManager *geom = new TGeoManager("myGeom", "");
TGeoVolume *top = geom->MakeBox(...);
geom->SetTopVolume(top);
TGeoVolume *module1 = TGeoVolume::Import("file.root", "MOD1"); //
name of volume or key (depending on export usage)
TGeoVolume *module2 = TGeoVolume::Import("file.root", "MOD2");
top->AddNode(module1, 1, new TGeoTranslation(0,0,100));
top->AddNode(module2, 1, new TGeoTranslation(0,0,-100));
geom->CloseGeometry(); // One should close himself the geometry
2. Fix in the overlap checker and functionality extension:
TGeoVolume::CheckOverlaps(Double_t ovlp, Option_t *option)
uses now option="d" or option="d<number>" to perform overlap checking by
sampling the volume with <number> random points (default 1 mil.). It
produces also a picture showing in red the overlapping region and estimates
the volume of the overlaps.
3. TGeoMaterial class takes now as optional arguments the material state,
temperature and pressure for compatibility with GEANT4
4. Few modifications of some navigation flags needed to run correctly G4
navigation interface.
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/src/TGeoVolume.cxx
File length: 88700 byte(s)
Diff to
previous 16556
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
16192 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 1 15:56:39 2006 UTC (8 years, 4 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 84403 byte(s)
Diff to
previous 16094
From Andrei:
I fixed a minor incompatibility of TGeoVolume::SavePrimitive with the modifications in TGeoPainter. The problem was that when saving as .C a canvas containing a drawn volume, the later was not drawn when running the generated macro.
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/TGeoVolume.cxx
File length: 84052 byte(s)
Diff to
previous 15395
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
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/src/TGeoVolume.cxx
File length: 84044 byte(s)
Diff to
previous 15183
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
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/TGeoVolume.cxx
File length: 83877 byte(s)
Diff to
previous 14611
From Federico Carminati:
"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."
Revision
14534 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 3 16:19:32 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 82067 byte(s)
Diff to
previous 14409
From Andrei:
- TGeoXtru shapes with polygone vertices defined counter-clockwise in XY
plane were not valid (Andreas) - fixed
- TGeoVolume::SaveAs() works now correctly even in case of assemblies
(Ivana) - fixed by Mihaela
- Some minor precision problems fixed in divisions
- minor fix in navigation in assemblies; assemblies defined as overlapping
now forbidden
- fix for automatic re-voxelization after un-alignment
Revision
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/src/TGeoVolume.cxx
File length: 81431 byte(s)
Diff to
previous 14336
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
14336 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by
pcanal
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 80093 byte(s)
Diff to
previous 14259
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning: This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined. Simply add the
proper include directive.
Revision
14259 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 14 15:16:35 2006 UTC (8 years, 10 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 80073 byte(s)
Diff to
previous 14240
From Andrei:
a modification and a fix:
- Changed behavior of TGeoVolume::Browse() and TGeoNode::Browse(). The title of the
volume may be used to store user info, so the browser will change it ONLY if not
touched by user. Additional info provided for volumes: shape type, type of volume,
division type
- Fix for a problem found by Christian for nested assemblies: if an assembly for which
the content was not defined yet was added as daughter of another assembly, this
resulted in a wrong bounding box. Now even if this is the case, it is automatically
corrected by the loop TGeoManager::CloseGeometry() -> TGeoVolume::Voxelize(). The
problem did not seem to affect current ALICE geometry.
Revision
13960 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 31 14:02:36 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 79166 byte(s)
Diff to
previous 13875
From Andrei:
1. TGeoManager::SetNodeSelectable(flag); - allows user to make nodes selected in the
pad rather that volumes(default)
2. TGeoManager::ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew); - allows
replacement of all occurances of VORIG with VNEW in the geometry tree. VORIG is not
removed from the list of volumes, but all nodes referencing it as their volume or
mother will reference instead VNEW.
3. static TGeoVolumeAssembly::MakeAssemblyFromVolume(TGeoVolume *vorig); - creates a
sort of clone of a normal volume (same daughters inside), but this will be an
assembly. This method can be used togeather with ReplaceVolume() to change some
virtual conainers in a closed geometry with assemblies.
4. TGeoVolume::RemoveNode(TGeoNode *node) - will safely remove a daughter node of a
volume, even if the geometry is closed. Geometry is valid for navigation afterwards.
Revision
13864 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 19 11:23:08 2006 UTC (9 years ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 76365 byte(s)
Diff to
previous 13297
From Andrei:
- new TGeoNode::CheckOverlaps() allows checking overlaps for a whole geometry branch.
- fix in the paint mechanism when raytracing for a problem mentioned by Ivana (when
raytracing a volume without having a pad created it did not work)
Revision
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/TGeoVolume.cxx
File length: 74514 byte(s)
Diff to
previous 12670
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
12669 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 6 12:34:57 2005 UTC (9 years, 4 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72419 byte(s)
Diff to
previous 12267
From Andrei:
a small patch that:
- fixes new method TGeoManager::FindNextBoundaryAndStep() in case of assemblies
and adds computation of safety as option
- fixes initialization of a data member in TGeoPhysicalNode
The new raytracing is a bit faster and much less error-prone due to fixes in the
navigation related to MANY's.
Revision
12201 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 27 13:09:47 2005 UTC (9 years, 6 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72389 byte(s)
Diff to
previous 12048
From Andrei Gheata & Peter Hristov
- The previous patch was still not working properly when one of of the
overlapping partners did not required raw tessalization. The attached patch
definitely fixes the problem: The preference of the viewer (local) is preserved
at TGeoPainter level, but the correct matrix is injected in
TGeoShape::FillBuffer3D. Everything works now.
- Memory leak fix (severe) found by Peter in defining some names in TGeoVolume
class !!!
Revision
12048 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 14 15:47:02 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72248 byte(s)
Diff to
previous 12025
From Andrei Gheata:
Named constructors for volumes, materials and media strip trailing blanks. Some getters at
the level of TGeoManager using FindObject also strip trailing blanks. This cannot be fully
generalized since the user can always iterate himself and get into problems if the query
string contains blanks.
Revision
12025 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 13 12:17:32 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72222 byte(s)
Diff to
previous 11921
From Andrei Gheata:
New developments related to assemblies. Assemblies were up to now just
a collection of nodes that could be handled together only during build
time(TGeoVolumeAssembly class).
When positioning an assembly as node in some container volume,
what happened was just that all components of the assembly were directly
put into this container (with the big disadvantage of creating a very
flat structure at the level ofthis container).
With the new implementation, an assembly volume has a shape
(TGeoShapeAssembly) that derives from TGeoShape and implements all
required navigation functionality. Practically, this behaves as the
union of all shapes positioned in the assembly, but it is not
represented as a composite shape and uses voxelization.
An assembly volume creates an hierarchical level and it geometrically
insulates the structure from the rest (as a normal volume). Physically,
a point that is INSIDE a TGeoShapeAssembly is always inside one of
the components, so a TGeoVolumeAssembly does not have a medium. Due to
the self containment of assemblies, they are very practical to use when
a container is hard to define due to possible overlaps during positioning.
For instance, it is very easy now to create honeycomb structures without
using the "MANY" (overlapping) feature that is quite expensive in
performance.
To create an assembly volume, one should:
TGeoVolume *vol = new TGeoVolumeAssembly(name);
vol->AddNode(vol1, 1, ...)
vol->AddNode(vol2, 1, ...)
....
The creation of the TGeoShapeAssembly for the assembly volume is
completely transparent to users. Its bounding box is recomputed after
the addition of a node. Users do not have to create TGeoShapeAssembly
themselves. One can even replace a container in his existing code
(if this needed to be positioned as overlapping) with an assembly, by
just replacing:
TGeoVolume *container = new TGeoVolume(name, shape, medium);
with:
TGeoVolume *container = new TGeoVolumeAssembly(name);
then replace:
some_mother_vol->AddNodeOverlap(container,1,...)
with:
some_mother_vol->AddNode(container,1,...)
One cam define assembly(assembly(assembly(...))) Usage of assemblies
does NOT imply any penalty in navigation performance in itself.
Assemblies can also be used to regroup existing flat structures of
nodes thus highly optimizing the performance.
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/TGeoVolume.cxx
File length: 72922 byte(s)
Diff to
previous 11666
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
11666 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 10:05:54 2005 UTC (9 years, 9 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72958 byte(s)
Diff to
previous 11664
From Andrei Gheata:
few add-ons in TGeoVolume. When several pads contained
different geometries, moving mouse between them failed because
gGeoManager is still used in TGeoShape::ShapeDistancetoPrimitive. Now
the gGeoManager pointer is correctly set (if altered by a different
geometry/external change) in TGeoVolume::Draw, TGeoVolume::DrawOnly,
TGeoVolume::DistancetoPrimitive, TGeoVolume::Raytrace,
TGeoVolume::RandomPoints and TGeoVolume::RandomRays. It behaves now
correctly.
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/src/TGeoVolume.cxx
File length: 72548 byte(s)
Diff to
previous 11492
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
11487 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 5 08:54:12 2005 UTC (9 years, 9 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72304 byte(s)
Diff to
previous 11485
From Mihaela Gheata:
some additional fixes. CMS muon is now ok (some rotations in
TGeoCombiTrans were not registered)
I also fixed SavePrimitive for composite shapes - tested for csgdemo.C
(the logic there was not at all working). I hope it works also with lhcb
- if not, please send me the geometry file. There is also a fix in
TGeoXtru::SavePrimitive.
For testing SaveAs, you should regenerate the tested geometries (not
importing the .root file generated before these changes). Otherwise some
matrices can still get wrong.
Revision
11485 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 4 15:00:39 2005 UTC (9 years, 9 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 72214 byte(s)
Diff to
previous 11077
From Mihaela Gheata:
I attached the diffs for few fixes that I made for SavePrimitive:
- fix in TGeoCone::SavePrimitive
- Added support for gsposp in TGeoVolume (now works with ALICE geometry)
- fix in TGeoCombiTrans for correctly registering rotation component.
- modified TGeoManager::Export() to export geometry as C++ macro:
for file names ending with .root work as before
other extensions (e.g. .C) saves as C++ macro
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/src/TGeoVolume.cxx
File length: 71542 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/src/TGeoVolume.cxx
File length: 65424 byte(s)
Diff to
previous 10563
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
10563 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 19 06:39:54 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 64828 byte(s)
Diff to
previous 10411
In TGeoVolume::Draw use the TEnv variable Viewer3D.DefaultDrawOption
as an option to Draw. If this environment variable is defined
in system.rootrc (or .rootrc), it is used to specify the default value
when drawing a volume.
For example, if this variable is set to "ogl", the TViewerOpenGL viewer
will be used by default to draw TGeo objects instead of TPad.
Revision
10368 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 21 08:09:41 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 64683 byte(s)
Diff to
previous 10342
From Andrei Gheata:
a fix (found by Andreas) in TGeoVolume that affected
TFluka. Materials for divisions were not declared as "used" thus never
seen by FLUKA in case the corresponding medium was not used by any other
volume.
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/src/TGeoVolume.cxx
File length: 64614 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/src/TGeoVolume.cxx
File length: 64599 byte(s)
Diff to
previous 10264
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
10264 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 8 15:09:55 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 64184 byte(s)
Diff to
previous 9855
Add a new member in TGeoManager
fMaxVisNodes; //maximum number of visible nodes.
with the corresponding Getter and Setter (in menu).
The default value is 10000.
Based on this value, the maximum number of visible levels is computed
when drawing a volume.
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/TGeoVolume.cxx
File length: 64078 byte(s)
Diff to
previous 7952
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
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/src/TGeoVolume.cxx
File length: 62255 byte(s)
Diff to
previous 7451
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
7451 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 20 08:46:33 2003 UTC (11 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 62094 byte(s)
Diff to
previous 7326
From Andrei Gheata:
- fix in pcon and pgon safety for points exactly on boundaries
- new class TGeoVolumeAssembly inheriting from TGeoVolume and
representing an assembly of volumes. This helps grouping togeather a set
of nodes (using the usual TGeoVolumeAssembly::AddNode()) without the
definition of a container. When positioning an assembly in other volume,
this will just position its own nodes inside this, without being
integrated to the logical hierarchy. The class is not well documented,
but a detailed description will go to the users guide.
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/TGeoVolume.cxx
File length: 59605 byte(s)
Diff to
previous 7065
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
7064 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 8 09:22:18 2003 UTC (11 years, 5 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 59570 byte(s)
Diff to
previous 6725
From Andrei Gheata:
Fix to a problem reported by Ilektra Christidi.
The problem was that this calorimeter has 1.3E9 nodes and I did not
imagined that this can happen in real life. The cache produced a crash
since it tried to create an array 2 times this size. Now there is a
protection that will just disable physical node id tracking during
CDUp/Down in case there are too many nodes. I had also to introduce a
new data member in TGeoVolume (I increased the class version) in order
to fasten-up node counting (all the physical tree was parsed before).
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/TGeoVolume.cxx
File length: 59109 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/src/TGeoVolume.cxx
File length: 45182 byte(s)
Diff to
previous 6304
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/src/TGeoVolume.cxx
File length: 42341 byte(s)
Diff to
previous 6113
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
6113 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 12 14:49:38 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 41976 byte(s)
Diff to
previous 6083
From andrei:
TGeoManager.cxx :
- removed obsolete MakeCopyNodes() from MakeXXX()
TGeoTube.cxx :
- allow placing parametrized tubes in more shapes.
TGeoVolume.cxx:
- wrong divisioning issue now a Fatal() instead of Error()
- corection in handling divisions of parametrizes shapes - it
affected EMCAL where some node where duplicated
Revision
6083 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 10 17:23:14 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 41866 byte(s)
Diff to
previous 6068
From Andrei:
- new files TGeoOverlap.h/cxx in geompainter directory. Contains one
base class and 2 derived, describing overlaps. The CheckOverlaps()
methods in TGeoManager and TGeoVolume fills a list of these objects
which is held by TGeoManager class and appears in the browser as
"Illegal overlaps". The elements in this list are ordered according the
overlapping distance, big comes first and extrusions before node
overlaps. Double-clicking triggers drawing. Points in the
overlapping/extruding region are paint in red, while the 2 candidates in
bleu/green. The list of overlaps is dynamic and changes whenever a check
is done per volume.
- volumes with invalid shapes post a warning (see ATLAS)
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/TGeoVolume.cxx
File length: 42825 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/src/TGeoVolume.cxx
File length: 40242 byte(s)
Diff to
previous 5994
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
5994 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 27 18:04:47 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 40348 byte(s)
Diff to
previous 5993
add a second argument to TGeoManager::GetBranchNumbers to also return the
volume serial numbers in addition to the volume copy numbers.
Add a new data member fNumber in TGeoVolume. fNumber is the volume
serial number in the list of volumes as returned by AddVolume.
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/TGeoVolume.cxx
File length: 40620 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/TGeoVolume.cxx
File length: 38527 byte(s)
Diff to
previous 5918
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/TGeoVolume.cxx
File length: 37418 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
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/TGeoVolume.cxx
File length: 35820 byte(s)
Diff to
previous 5780
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
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/src/TGeoVolume.cxx
File length: 35485 byte(s)
Diff to
previous 5443
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
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/TGeoVolume.cxx
File length: 34320 byte(s)
Diff to
previous 5419
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
5419 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 11 16:41:54 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geom/src/TGeoVolume.cxx
File length: 34313 byte(s)
Diff to
previous 5407
From Andrei,
- bug fix in TGeoPgon for finding next boundary
- bug fix in retrieving saved paths (affected "Where am I?" for MANY
geometries
- support for tracking algorithm with MANY's
- improvements in raytracing and lego plots.
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/TGeoVolume.cxx
File length: 33698 byte(s)
Diff to
previous 5381
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/TGeoVolume.cxx
File length: 33047 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.
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.