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

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

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

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 48001 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 13 09:45:31 2012 UTC (2 years, 1 month ago) by agheata
File length: 102504 byte(s)
Diff to previous 47228
Fixes for missed shapes when resizing thread data arrays via TGeoManager::SetMaxThreads

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 46484 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 12 07:23:03 2012 UTC (2 years, 3 months ago) by agheata
File length: 102398 byte(s)
Diff to previous 44557
Removed check by name for AddNode if a node with same name exists.

Revision 44557 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 5 09:25:52 2012 UTC (2 years, 7 months ago) by agheata
File length: 102394 byte(s)
Diff to previous 44507
Large chunk of coverity fixes

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 42459 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 10 17:02:27 2011 UTC (3 years, 1 month ago) by agheata
File length: 99834 byte(s)
Diff to previous 42321
Restored old style locking since the new one by Stefan was not really safe

Revision 42321 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 30 12:46:10 2011 UTC (3 years, 1 month ago) by agheata
File length: 100008 byte(s)
Diff to previous 41959
Avoid locking if the thread data was already alocated for all threads. (S. Lohn)

Revision 41959 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 14 10:48:45 2011 UTC (3 years, 2 months ago) by agheata
File length: 99850 byte(s)
Diff to previous 41274
Lock methods ClearThreadData

Revision 41274 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 7 12:10:43 2011 UTC (3 years, 3 months ago) by agheata
File length: 99808 byte(s)
Diff to previous 41234
Thread safe TGeoManager. Clean-up thread data at the end. Navigators cleaned-up.

Revision 41234 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 6 15:48:52 2011 UTC (3 years, 3 months ago) by agheata
File length: 99765 byte(s)
Diff to previous 41087
Thread safe volume assemblies. Cleanup of thread data.

Revision 41087 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 30 23:23:44 2011 UTC (3 years, 3 months ago) by pcanal
File length: 97684 byte(s)
Diff to previous 40333
Use TDirectory::TContext to set/restore the gDirectory/gFile state rather than just gFile

Revision 40333 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 22 15:19:15 2011 UTC (3 years, 6 months ago) by agheata
File length: 97729 byte(s)
Diff to previous 40117
SetOption now implemented

Revision 40117 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 4 12:17:06 2011 UTC (3 years, 6 months ago) by agheata
File length: 97713 byte(s)
Diff to previous 39796
Fixed reflection factory for assemblies - affects G4 interface

Revision 39796 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 17 13:52:42 2011 UTC (3 years, 7 months ago) by agheata
File length: 97650 byte(s)
Diff to previous 39018
Coverity fix

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 38238 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 28 08:48:16 2011 UTC (3 years, 10 months ago) by agheata
File length: 96129 byte(s)
Diff to previous 36632
Small navigation corrections. Assembly shapes do not need to be reflected in case of G4Root (only their content)

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 36535 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 8 14:41:54 2010 UTC (4 years, 2 months ago) by agheata
File length: 96077 byte(s)
Diff to previous 35702
Changed Form() to TString::Format() everywhere

Revision 35702 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 09:10:38 2010 UTC (4 years, 4 months ago) by agheata
File length: 95978 byte(s)
Diff to previous 35698
Another set of Dangerous_coding Coverity fixes

Revision 35698 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 07:37:08 2010 UTC (4 years, 4 months ago) by agheata
File length: 96347 byte(s)
Diff to previous 35697
Replaced sprintf with TString manip.

Revision 35697 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 07:26:26 2010 UTC (4 years, 4 months ago) by agheata
File length: 96340 byte(s)
Diff to previous 35645
Replaced sprintf's in names with normal TString manips.

Revision 35645 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 13:01:49 2010 UTC (4 years, 4 months ago) by agheata
File length: 96723 byte(s)
Diff to previous 35644
Fixed possible string overflow

Revision 35644 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 12:55:59 2010 UTC (4 years, 4 months ago) by agheata
File length: 96769 byte(s)
Diff to previous 35640
Fixed possible (not really...) string overflow

Revision 35640 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 12:38:24 2010 UTC (4 years, 4 months ago) by agheata
File length: 96781 byte(s)
Diff to previous 35130
Fixed unused variables

Revision 35130 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 3 15:47:23 2010 UTC (4 years, 4 months ago) by agheata
File length: 96714 byte(s)
Diff to previous 35047
Fixed memory leak when misaligning geometry. The leaked nodes are now garbage collected in the destructor of TGeoManager

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 23478 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 23 14:36:55 2008 UTC (6 years, 9 months ago) by brun
File length: 95192 byte(s)
Diff to previous 22923
From Andrei:
Fix many shadowed variables.

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

Revision 21494 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 19 15:50:40 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95198 byte(s)
Diff to previous 21425
Update to the class docs and index.txt files.

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/src/TGeoVolume.cxx
File length: 94867 byte(s)
Diff to previous 20882
From Andrei:
Improve the documentation layout such that THtml makes a better rendering.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95650 byte(s)
Diff to previous 20341
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 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 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95528 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95582 byte(s)
Diff to previous 19777
remove :$ from tag line

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 18125 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 1 10:32:31 2007 UTC (7 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95765 byte(s)
Diff to previous 18074
Replace last occurences to statements like
      Myclass::Class()->WriteBuffer(R__b,this);
by
      R__b.WriteClassBuffer(MyClass::Class(),this);

Revision 18074 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 23 11:11:51 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95756 byte(s)
Diff to previous 17726
From Andrei:
a patch in TGeoVolume::MakeCopyNodes that correcly sets the mother volume pointer in nodes that are copied. Prevents a crash in G4root when some container volumes are transformed in assemblies (ITS)

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 17244 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 21 13:32:32 2006 UTC (8 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 95622 byte(s)
Diff to previous 17063
From Andrei:
gsposp handled properly

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 16758 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 14 09:19:28 2006 UTC (8 years, 2 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 93466 byte(s)
Diff to previous 16680
Fix a problem visible on 64 bits machines

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 16589 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 20 21:07:40 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 88722 byte(s)
Diff to previous 16573
Add an optional argument Option_t *option="" to all SaveAs functions.

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 16556 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 19 11:47:35 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 84443 byte(s)
Diff to previous 16555
Fix a side-effect of declaring SaveAs const

Revision 16555 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 19 10:58:25 2006 UTC (8 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 84430 byte(s)
Diff to previous 16192
Make all SaveAs functions const.

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 16094 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 23 15:37:23 2006 UTC (8 years, 5 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 84074 byte(s)
Diff to previous 15742
From Andrei:
Fix bug reported at:
http://savannah.cern.ch/bugs/?func=detailitem&item_id=19269

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

Revision 15672 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 3 16:10:46 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/geom/src/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 15183 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 16:26:25 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 84040 byte(s)
Diff to previous 15172
From Andrei,

 This patch fixes the range problem mentioned in the forum message.

 http://root.cern.ch/phpBB2/viewtopic.php?t=3479

Revision 15172 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 24 17:11:54 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 84016 byte(s)
Diff to previous 15134
Fix coding conventions violations

Revision 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geom/src/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 14611 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 10 08:38:43 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 82128 byte(s)
Diff to previous 14534
From Andrei:
- Navigation in assembly + MANY do not post warnings anymore
- Fixes in SavePrimitive (from Mihaela) for TGeoHMatrix and TGeoVolume when having
several with the same name.

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 14240 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 13 11:03:36 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 79503 byte(s)
Diff to previous 14016
From Andrei & Philippe
Fix a possible double delete problem in TGeoVoxelFinder

Revision 14016 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 9 11:48:45 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 79307 byte(s)
Diff to previous 13973
From Andrei:
Fix a problem in  TGeoManager::Weight

Revision 13973 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 1 16:31:42 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 79120 byte(s)
Diff to previous 13960
From Andrei,

Fix a minor problem with a printf statement

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 13875 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 20 13:00:40 2006 UTC (9 years ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 76304 byte(s)
Diff to previous 13864
From Andrei:
Minor fix for the ray tracing algorithm.

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

Revision 13282 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 18 16:07:59 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 75476 byte(s)
Diff to previous 13271
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

Revision 13271 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 17 13:17:55 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/geom/src/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 12670 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 6 16:45:48 2005 UTC (9 years, 4 months ago) by rdm
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 73158 byte(s)
Diff to previous 12669
from Bertrand:
small changes to allow visibility via checkboxes using the new
TGListTree when browsing geometries.

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 12267 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 6 12:50:59 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 72392 byte(s)
Diff to previous 12201
From Andrei Gheata:
Increase the number of digits to something more than maxinteger
when encoding the volume copy number into the volume name.

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 11921 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 31 18:35:05 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 73263 byte(s)
Diff to previous 11882
From Andrei Gheata:
a small fix for max. dept computation that was failing when
building several geometry in the same session (due to usage of statics)

Revision 11882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:54:56 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 73285 byte(s)
Diff to previous 11785
From Andrei Gheata:
There was a missing protection for the maximum allowed geometry depth which
was fixed to 30 (in your case was 70). Now this depth is automatically
computed (and not limited).

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 11492 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 5 13:38:23 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 72488 byte(s)
Diff to previous 11487
From Andrei Gheata:
- raytracing problem fixed
- extrusions/overlaps now visible in GL
- minor modification in geodemo.C

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 11077 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 9 14:33:37 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 72095 byte(s)
Diff to previous 11076
A TGeoVolume object drawn in a canvas can be saved via TCanvas::SaveAs.

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 10411 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 26 08:15:00 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 64681 byte(s)
Diff to previous 10368
From Andrei Gheata & Andreas Morsch
The previous fix in TGeoVolume::Divide was not correct.
The medium of the current volume was flagged by mistake.

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 9855 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 30 07:04:39 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 64186 byte(s)
Diff to previous 9331
From Andrei Gheata & B.Nilsen
New set of getters in TGeoXtru.
Improved error messages in the other classes.

Revision 9331 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 28 08:46:47 2004 UTC (10 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 64173 byte(s)
Diff to previous 8565
From Andrei Gheata;
Fix for a back incompatibility in TGeoMaterial.
few other modifications for setting some
material flags and cleaning-up the element table at the end.

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 7952 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 20 15:44:33 2004 UTC (11 years ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 62345 byte(s)
Diff to previous 7569
Several improvements from Andrei GHeata.

additional option "i" (reset by default) to CloseGeometry() to have the
node id array built or not.

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 7326 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 23 10:33:15 2003 UTC (11 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 59569 byte(s)
Diff to previous 7123
From Andrei:
  - one fix in TGeoIntersection::DistToIn() plus few minor changes
  - changed TGeoManager::FindNode() and FindNormal() to cope with G3
interface
  - few other minor changes

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

Revision 7121 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 21 08:27:34 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/src/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 7065 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 8 09:31:26 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 59572 byte(s)
Diff to previous 7064
Comment one line calling a new function SetRayTracing not yet implemented
in TVirtualGeoPainter.

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 6304 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 14 11:49:03 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 44294 byte(s)
Diff to previous 6299
From Andrei:
Add support for positioning
parametrized boxes into : TRAP, GTRA, PARA, TRD1 and TRD2. Now in D0
there are only 793 extrusions/overlaps within 0.1 cm.

Revision 6299 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 11 16:59:47 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 44125 byte(s)
Diff to previous 6294
From Andrei:
modified files in order to fully map G3-like
volume parametrization : supports divisions of parametrized volumes
(e.g. D0). D0 has one Rmin/Rmax error in the definition, but still runs.

Revision 6294 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 11 09:58:38 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 42399 byte(s)
Diff to previous 6136
- Main containers of TGeoManager changed from TList to TObjArray to fix
geometry building/IO speed problems for very large geometries
- stressgeom.cxx fixed to cope with this change

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 5993 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 27 13:16:26 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 40302 byte(s)
Diff to previous 5972
Update to the geometry package to support copy numbers in TGeoNode.

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 5918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 15 18:48:16 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 38375 byte(s)
Diff to previous 5897
*** empty log message ***

Revision 5897 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 13 16:01:06 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 37428 byte(s)
Diff to previous 5883
Fix by Andrei for warnings due to unused arguments

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 5848 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 6 17:05:44 2003 UTC (12 years ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 35591 byte(s)
Diff to previous 5798
many changes in the geometry package.
Addition of the new class TGeoMedium

Revision 5798 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 11 17:10:20 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geom/src/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 5780 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 10 07:52:33 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 35692 byte(s)
Diff to previous 5723
Fixes by Andrei for the legoplot option.

Revision 5723 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 3 16:01:41 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 35564 byte(s)
Diff to previous 5621
New version of the geometry package from Andrei:
Fixes to compile with no warnings with the option -ansi -pedantic
It also includes bug fixes for Trd1,2,  cone and pcon DistToIn/Out
algorithms.

Revision 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 5407 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 9 12:57:40 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 34313 byte(s)
Diff to previous 5406
Add a tentative prototype for producing the lego plot of radiation length
in function of theta and phi.

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 5381 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 3 13:19:09 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 33061 byte(s)
Diff to previous 5354
From Andrei; Bug fixes related to I/O

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.

Revision 4956 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 17 13:27:59 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 31577 byte(s)
Diff to previous 4918
New version of the geometry package from Andrei. Many comments changed.

Revision 4918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 15 15:32:25 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 31276 byte(s)
Diff to previous 4874
New version of the geometry package by Andrei.
All graphics moved to geompainter (hopefully)

Revision 4874 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 10 19:24:17 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 71502 byte(s)
Diff to previous 4845
A new iteration to port the geometry package on different systems.
Progress towards ROOT naming and style conventions
Add constness in most classes (work not yet completed).

Revision 4845 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 13:59:44 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 71415 byte(s)
Diff to previous 4841
fix portability problems

Revision 4841 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue Jul 9 13:08:12 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoVolume.cxx
File length: 71430 byte(s)
Add new geometry package

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9