# Category g3tog4 History

See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!

-------------------------------------------------------------------------------

## 2022-12-12 Ben Morgan (g3tog4-V11-01-00)
- Remove obsolete GNUmakefile scripts

## 2022-11-16 Gabriele Cosmo (g3tog4-V11-00-04)
- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.

## 2022-10-07 Gabriele Cosmo (g3tog4-V11-00-03)
- Fixed compilation warnings on Intel/icc compiler for deprecated conversion
  of string literal to char* in G3EleTable.
- Fixed compilation warning on Intel/icx compiler for variable set
  but not used in clparse source code.

## 2022-10-05 Ben Morgan (g3tog4-V11-00-02)
- Replace sprintf with std::to_string to address macOS 13 deprecation warnings.

## 2022-01-28 Ben Morgan (g3tog4-V11-00-01)
- Replace `geant4_global_library_target` with direct file inclusion and
  call to `geant4_add_category` to define library build from source modules.

## 2021-12-10 Ben Morgan (g3tog4-V11-00-00)
- Change to new Markdown History format

---

# History entries prior to 11.0

g3tog4-V10-07-04 15-November-2021 I.Hrivnacova
- Fixed Coverity: uninitialized variable in G3EleTable.cc

g3tog4-V10-07-03 25-October-2021 B.Morgan
- Use G4StrUtil functions replacing deprecated G4String member functions

g3tog4-V10-07-02 18-October-2021 B.Morgan
- Use std::string member functions from G4String in place of synonyms

g3tog4-V10-07-01 29-June-2021 G.Cosmo
- Fixed compilation error in G3EleTable when c++20 is enabled.

g3tog4-V10-07-00 1-April-2021 B.Morgan
- Migrate build to modular CMake API

g3tog4-V10-06-01 28-May-2020 B.Morgan
- Remove obsolete G4brep module dependency

g3tog4-V10-06-00 9-December-2019 B.Morgan
- Cleanup CMake build, removing obsolete granular library option and
  explicit include_directories.

g3tog4-V10-05-01 31-January-2019 I.Hrivnacova
- Merged GitHub PR #4: all Boolean operators now return G4bool.

g3tog4-V10-05-00 19-December-2018 G.Cosmo
- Fixed shadowing compilation warning in G3toG4MakeSolid.

g3tog4-V10-04-00 9-November-2018 G.Cosmo
- G3Division: fixed printout typo.

g3tog4-V10-03-00 8-May-2017 G.Cosmo
- Fixed compilation warning on gcc-7.1 in
  G4gsdvn::G4CreateCloneVTEWithDivision().

g3tog4-V10-01-00 2-Feb-2015 G.Cosmo
- Fix to sources.cmake script to include missing dependency on external library.

g3tog4-V10-00-01 29-Jan-2014 G.Cosmo
- Remove inline specification for G3VolTableEntry::operator==()
  in sorce file.

g3tog4-V10-00-00 29-Jan-2014 G.Folger
- remove BREPS/include from sources.cmake

g3tog4-V09-06-00 09-Mar-2013 G.Cosmo
- Fixed missing inclusion of assert.h in G3Division.cc.

g3tog4-V09-05-02 05-Jul-2012 G.Cosmo
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

g3tog4-V09-05-01 06-Jun-2012 G.Cosmo
- Fixed spurious cases of hidden variable visibility, detected with
  '-Wshadow' compilation option on gcc compiler.

g3tog4-V09-05-00 14-Dec-2011 G.Cosmo
- Fixed minor Coverity defects.

g3tog4-V09-04-07 22-Nov-2011 G.Cosmo
- Fixed compilation warnings in build DLLs on Windows when using
  internal CLHEP.

g3tog4-V09-04-06 16-Nov-2011 B.Morgan
- Added G3toG4Defs.hh to sources.cmake

g3tog4-V09-04-05 16-Nov-2011 G.Cosmo
- Fixed signature in PG4gsdet() for unresolved symbol in building DLLs
  on Windows.

g3tog4-V09-04-04 15-Nov-2011 G.Cosmo
- Added export flag for extern symbols to allow for generation of DLLs
  on Windows with CMake.

g3tog4-V09-04-03 11-Nov-2011 G.Folger
- make safe to compile with -j and drop compilation of fortran

g3tog4-V09-04-02 06-Jul-2011 G.Cosmo
- Fixed Coverity defects.
- Use canonic indexed form for G4Exception.

g3tog4-V09-04-01 13-May-2011 G.Cosmo
- Fixed compilation warnings from gcc-4.6.0 for variables set but not used.

g3tog4-V09-04-00 13-Apr-2011 G.Folger
- Fixed signature for PG4gsxyzin all G4gsxyz.cc to be G4String *,
  was G4String[] as used in clparse.cc. Fixes Windows linking problem.

g3tog4-V09-01-01 17-Nov-2008 G.Cosmo
- Fixed compilation warning for gcc-4.3.X in clparse.cc .

g3tog4-V09-01-00 23-Jun-2008 G.Cosmo
- GNUmakefile: clean Fortran objects in 'lib' target before building
  the libraries.

g3tog4-V07-01-01 14-Nov-2005 G.Cosmo
- Implemented migration to <sstream> from deprecated <strstream>.
- GNUmakefile: moved call to 'cernlib' to 'bin' target.

g3tog4-V07-01-00 05-Nov-2005 G.Cosmo
- G3EleTable.cc: corrected inclusion of <strstrem> in implementation.
  Temporary solution pending migration to <sstream>.
  Fixes compilation problem on gcc/AMD64.

g3tog4-V07-00-01 26-May-2005 G.Cosmo
- Initialise local pointer variable 'mothLV' in method
  G3toG4BuildTree::G3toG4BuildPVTree().

g3tog4-V07-00-00 06-Apr-2005 J.Allison
- GNUmakefile: corrected order for graphics_reps and intercoms in the
  definition of GLOBLIBS.

g3tog4-V06-02-00 07-Dec-2004 G.Cosmo
- Implemented migration to <cmath>.

g3tog4-V06-01-02 17-Jun-2004 G.Cosmo
- GNUmakefile: added definition of GLOBLIBS.

g3tog4-V06-01-01 03-May-2004 G.Cosmo
- G4gsrotm.cc: commented warning about left-handled coordinates for
  rotation axes (I.Hrivnacova).

g3tog4-V06-01-00 26-Mar-2004 G.Cosmo
- Removed hardwired gSeparator constant (a character which is used
  during generation of volume names) to '_'. Now gSeparator is made non
  constant and so can be changed in case a user wants to use '_' in his
  code (I.Hrivnacova).
  Modified files: G3toG4.hh, clparse.cc.

g3tog4-V05-02-00 03-Oct-2003 G.Cosmo
- GNUmakefile:
  o replaced "digits+hits" with "digits_hits".
- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".

g3tog4-V05-01-00 04-Jun-2003 G.Cosmo
- Fixes for inclusion of <strstream> in G3EleTable.cc, G3PartTable.cc
  and G4gsmixt.cc in view of the g4std wrappers migration.

g3tog4-V05-00-01 03-Apr-2003 G.Cosmo
- Cleared trivial strict pedantic warnings.

g3tog4-V05-00-00 27-Jan-2003 G.Cosmo
- G4gstmed[.hh.cc] (I.Hrivnacova):
  o added get functions for the medium table entries:
    G4int GetSize() const
    G3MedTableEntry* GetMTE(G4int i) const

g3tog4-V04-01-00 23-Oct-2002 G.Cosmo
- G4gsdvn.cc, G4gsposp.cc (I.Hrivnacova):
  o fix to enable larger number of clone volumes
  o fix for division defined in a mother with not yet defined parameters.

g3tog4-V03-02-03 21-Nov-2001 G.Cosmo
- Added G3G4_NO_REFLECTION flag to exclude G4ReflectionFactory if needed.
- Changed G3Division::CreatePVReplica() to return a G4PhysicalVolumesPair
  (I.Hrivnacova).

g3tog4-V03-02-02 08-Nov-2001 G.Cosmo
- Implemented reflection of CSG solids through G4ReflectionFactory class
  and G4ReflectedSolid (I.Hrivnacova).
- Added limited support for MANY volumes through adoption of boolean
  solids(I.Hrivnacova). New files: G3toG4MANY[.hh.cc], G4gsbool.cc.

g3tog4-V03-02-01 11-Oct-2001 G.Cosmo
- clparse.cc: removed inclusion of RW wrapper, moved now to G4Tokenizer.hh.
  This tag co-works with "global-V03-02-03", where STLInterface has been removed.

g3tog4-V03-02-00 16-Jul-2001 G.Cosmo
- Migration to STL vector, removed references to Rogue-Wave Tools.h++
  wrappers. Modified files:
  G3EleTable[.hh.cc], G3MatTable[.hh.cc], G3MedTable[.hh.cc],
  G3RotTable[.hh.cc], G3VolTableEntry[.hh.cc], G3SensVolVector.hh,
  G3toG4BuildTree.cc, G4gsatt.cc, clparse.cc.
- Replaced usage of "NULL" with "0".
- Replaced usage of "int" with "G4int".

g3tog4-V03-01-01 30-May-2001 G.Cosmo
- Cleared pedantic warnings detected on Linux-g++ with ISO/ANSI setup.

g3tog4-V03-01-00 15-May-2001 G.Cosmo
- G3toG4BuildTree[.hh.cc]: fix for a case of the placement a volume
                           in cloned mothers
  G3toG4BuildTree() has been split in two methods G3toG4BuildLVTree() and
  G3toG4BuildPVTree(), the first creating logical volumes only, the second
  performing placements afterwards. Doing so, all mothers are ready (their
  logical volumes are created) when a volume is put in more than one mother
  (courtesy of I.Hrivnacova).
- GNUmakefile: G4MAKESHLIB replaced with G4LIB_BUILD_SHARED.

g3tog4-V03-00-02 14-Mar-2001 G.Cosmo
- G3toG4MakeSolid.cc: fixed bug in construction of G4Sphere where theta and
  phi parameters were reversed according to G4Sphere constructor.
  Fixes problem report #230.
- G3Division.cc: correction for "PARA". Slices are placed with G4PVPlacement
  instead of G4PVReplica for this particular case (I.Hrivnacova).

g3tog4-V03-00-01 14-Feb-2001 G.Cosmo
- Added support for replicated "PARA" shapes in G3Division::CreateSolid(...)
  (I.Hrivnacova).

g3tog4-V03-00-00 25-Jan-2001 G.Cosmo
- Fixes for report #188:
  o Fixed bug in G3toG4BuildTree(G3VolTableEntry*, G3VolTableEntry*)
    when positioning volume copies. Index is now decremented.
  o Added -DG3G4DEBUG to CPPFLAGS in GNUmakefile.

g3tog4-V02-00-05 28-Nov-2000 G.Cosmo
- Fixed bug in G3toG4BuildTree::ClearG3PosCopy(G4int). Entry in vector was
  not properly destroyed.

g3tog4-V02-00-04 24-Nov-2000 G.Cosmo
- Added protection against multiple positiong of the same physical volume
  and added methods ClearG3PosCopy(G4int) and ClearDivision()in
  G3VolTableEntry (I.Hrivnacova).
- Removed useless G3toG4Debug global method and file.
  Replaced verbosity by G3G4DEBUG flag.
- Moved global function G3CalcParamsFn(...) from G3CalcParams.cc to
  G3NegVolPars.cc and removed obsolete class/files G3CalcParams[.hh.cc].
- Added class description comments for the Software Reference
  Manual (I.Hrivnacova).

g3tog4-V02-00-03 01-Aug-2000 G.Cosmo
- Fixed initialisation of pDPhi for CONS in G3toG4MakeSolid.cc (I.Hrivnacova).
- Updated README file and removed src/README.

g3tog4-V02-00-02 26-Jul-2000 G.Cosmo
- Fixed definition of G4TMPDIR in GNUmakefile.
  (The GNUmakefile needs to be completely rewritten to conform to the
  standard format in G4...)

g3tog4-V02-00-01 24-Jul-2000 G.Cosmo
- Moved tests clGeometry and cltog4 from source/g3tog4/test to
  examples/extended/g3tog4. Default build mechanism is now used.
- Fixed bug to g3tog4/GNUmakefile for allowing building of shared
  libraries. Removed targets for building tests now moved to different
  area. Adapted to work with granular libraries mechanism.
- Fix in destructor for G3RotTable (I.Hrivnacova).
- Added handling of ELTU solid, affected files: G3toG4MakeSolid.cc
  and G3CalcParams.cc (I.Hrivnacova).

g3tog4-V02-00-00 21-Jul-2000 G.Cosmo
- Fixed G3toG4PhysicsList::ConstructMesons() for test/clGeometry,
  by removing obsolete call to G4RhoZero.

g3tog4-V01-01-00 05-Apr-2000 G.Cosmo
- Added include path to directory geometry/solids/specific.
  Modified files: g3tog4/GNUmakefile, g3tog4/test/GNUmakefile.

g3tog4-V01-00-00a 07-Mar-2000 J.Allison
- Changed char* to const char* where ISO compiler warned.

g3tog4-V01-00-00 02-Mar-2000 G.Cosmo
- included fixes by Ivana:
  o G3VolTable:
  - added tests VTD.size()>0
  - corrected G3VolTable::GetVTE()
  - added back G3VolTable::Clear()
  o G3Pos:
  - added G3Pos::GetOnly()
  o G3Division:
  - corrected G3Division::CreateSolid() for
    the case ( shape == "TUBS") && ( fIAxis == 1 )
- fixed warnings for extraneous semicolons on DEC (ISO mode).
- syncronized with HEAD (mainly CVS headers changed from the recent
  ISO-ANSI C++ migration.

06-Dec-1999 W.Lockman
- removed G3fillParams.cc
- G3Eletable.cc: cast double Z to int
- added G3toG4Debug() global function (yuch)
- removed G4.cc.omit
- made sure all header files are protected with #ifndef ... #endif
- G3toG4BuildTree.cc: avoid placement of the top-level logical volume

g3tog4-V00-01-cand03 05-Dec-1999  G.Cosmo
- Merged HEAD of main trunk with tag "wsl-991205" which now includes
  updates by Ivana&Pedro, as well as RW->G4RW migration, STL map
  migration and integration work by B.Lockman.

g3tog4-br4_0_1fixes-iv2-99nov11    12-Nov-1999  J. Apostolakis
- Tag of new fixes from consolidation of changes by Ivana & Pedro,
  as these fixes were on November 11th, at 15:00

g3tog4-br4_0_1fixes-iv1-99nov02    12-Nov-1999  J. Apostolakis
- Tag of fixes from consolidation of changes by Ivana & Pedro,
  as these fixes were on November 2nd.

Summary of changes to be added here (to be obtained from Ivana, Pedro)

g3tog4-4_0_1-fixes-branch  Branch for fixes
- Changes introduced and tested by Ivana Hrivnacova and Pedro Arce
  based on geant4-00-01

g3tog4-V00-01-02 22-Nov-1999 Lockman
- g3test.F renamed to g3test.F.save
- G3RotTable::get now returns a pointer to a G4RotationMatrix thru an upcast
- G4BuildTree : now get G4RotationMatrix* rather than G3toG4Rotationmatrix*

g3tog4-V00-01-01 20-Oct-99 Allison
- G3MatTable.cc: introduced G4String matid (a(3,lngth)) to help STL Interface.

g3tog4-V00-01-00 28-Jul-1999 Lockman
- Commented out "Deleted..." in destructors.

g3tog4-01-01-00 19-Jul-1999 Lockman
- G3matTable, G3MedTable, G3RotTable: convert from lists G4RWTPtrOrderedVector
  to G4RWTPtrHashDictionary to allow for noncontiguous indices
- G3RotTable::Put,Get->put,get.
- G3toG4BuildGeom, G4gsrotm: put,get signature change

g3tog4-01-00-06 28-May-1999 Lockman
- ~G3Mat,MedTable: do not destroy G4Material Objects in list. Do a clear()
  of the list, not clearAndDestroy, then delete the list.
- ~G3Rot,Vol,Part,EleTable: standardize printout, fix deallocation
- G3VolTable: changed PutVTE to take a VolTableEntry*; added ListVTE method
- G3toG4MakeSolid: added G4bool* OKAxis
- VolTableEntry: added _OKAxis[3] to store which axes may be divided;
  added AddMother(VolTableEntry*), GetMother(), _Mother.
- G3toG4MakeSolid: set OKAxis
- G3toG4EventAction: BeginOfEventAction, EndOfEventAction signature mods
- G3toG4RunAction: BeginOfRunAction, EndOfRunAction signature mods
- G3toG4PhysicsList: SetCuts signature mod
- G3toG4PrimaryGeneratorAction: randomize paricle direction

27-May-1999 Cosmo
- Fixed circular dependencies in G3Pos - VolTableEntry - G3VolTable.
- Added default empty constructor to G3Vol.
- Removed cleantest from "clean" target in GNUmakefile.

g3tog4-01-00-05 Lockman
- G3G4Interface: G4Strings passed by reference in G4gspos, G4gsposp
- G3PartTable: now uses G4RWTPtrHashDictionary instead of RWGDList
- G3RotTable: method name "get" changed to "Get". Space for unit rotation
  matrix at element 0 in G4RWTPtrOrderedVector. This matrix is instantiated
  in G4BuildGeom prior to call list read.
- G3VolTable: many new methods to handle VolTableEntry and G3Pos objects.
  removed GetPV method.
- G3toG4.hh: removed G3NegVolPars method
- G3DetTable: commented out some G4cerr's
- G3EleTable: some minor internal changes
- G3PartTable: convert to use G4RWTPtrHashDictionary
- Added G3Pos class
- Added G3toG4BuildTree which calls G4LogicalVolume and G4PVPlacement based on
  G3VolTable
- G4BuildGeom: invokes G3toG4BuildTree to build VolTableEntry tree
- G4ggclos: invokes G3Vol.SetFirstVTE() to find top-level VolTableEntry
- G4makevol: Broke off creation of solids into G3toG4MakeSolid
- G4gsatt: currently a stub
- G4gsdvn: currently a stub
- G4gsdvn2 currently a stub
- G4gsdvt: currently a stub
- G4gsdvt2 currently a stub
- G4gsmixt:added some messages to warn about faulty mixt weights
- G4gspos: removed G4PVPlacement calls (now done in G3toG4BuildTree)
- G4gsposp:removed some unneeded headers
- G4makevol: broke off solids stuff into G3toG4BuildTree
- G4gsvolu: G4makevol(...) now returns void
- G4VolTableEntry: now is a node tree
- clparse: remove some commented out lines
- cltog4:  minor changes
- G3toG4.hh make SSVT the mother. Its also not the first volume
- Added testmodel.dat to test divided/deferred volumes.

17-May-1999 Lockman
- converted G3PartTable to RWTPtrhaswhDictionary
- reinstituted VolTableEntry and G3VolTable G4RWTPtrHashDictionary. Creation of
  logical volume now done in G3VolTable::PutLV
- G4makevol.cc: added interface to G4Hype

g3tog4-01-00-04 11-May-1999 Lockman
- G3VolTable: greatly simplified. No longer keep a private logical/physical
  volume store. Use G4LogicalVolumeStore and G4PhysicalVolumeStore instead.
  Still keep track of the G3toG4 logical/physical mother.
- G3toG4RotationMatrix.hh: replace forward declaration of G4RotationMatrix
  with header file

g3tog4-01-00-03  6-May-1999 Lockman
- G3MatTable, G3RotTable, G3MedTable: updated to use G4RWTPtrOrderedVector
  instead of G4RWTPtrHashDictionary

g3tog4-01-00-02  5-May-1999 Lockman
- temporarily comment out G4gsdv* code
- G4gstmed: now just store a link between tracking medium number and assoicated
  G4Material pointer
- replaced rw/gdlist with G4RWTPtrHashDictionary
- replaced iostream.h with G4ios.hh everywhere
- added G3EleTable to manage elements in G3toG4
- tog4.F, g3routines.F: generate gsmixt instructions in call list
- clGeometry.cc: cleaned up and added some default commands
- added G3toG4EventAction and EventActionMessenger classes to draw tracks
- GNUmakefile: clean now cleans g3tog4 and all subdirectories      / 24-Apr-1999 Lockman
- GNUmakefile: cleanf: $(RM) now runs quietly
- GNUmakefile: re-enabled libF target
- README: updated instructions on how to configure environment and make
- G4BuildGeom.cc: replace checkLogVol with checkVol which prints out logical
  volumes and their physical daughters
- G4makevol: use G4LogicalVolume(solid, material, name) constructor.
- test/GNUmakefile: define INCFLAGS
- test/README: modified and shortened
- test/src/G3toG4DetectorConstruction.cc: add SimpleConstruct() method
  for testing; set visibility of daughters, mother.
- test/include/G3toG4DetectorMocnstruction.hh: added private _lv, _pv
- test/src/G3toG4RunAction.cc: set tracking/verbose 1, run/verbose 1

g3tog4-01-00-01 20-Feb-1999 Bill Lockman
- G4makevol.cc: use G4Polycone, G4Polyhedra classes instead of BREP equivalents
- clGeometry.cc: protect vis code; removed templates stuff
- cltog4.cc: removed templates stuff

g3tog4-00-03-04 12-Nov-1998 Bill Lockman
- G3medtable: dynamically instantiate a G4FieldManager(field*) object and
  pass it to G4LogicalVolume by pointer.
- adapt G3toG3PhysicsList.* from N02

g3tog4-00-03-03 02-Nov-1998 Bill Lockman
- src: Added G3toG4RotationMatrix class, remove G3toG3SetRotation class;
- test: add parity.dat to test parity inversions

g3tog4-00-03-02 05-Oct-1998 Bill Lockman
- GNUmakefile, test/GNUmakefile mods by John Allison

g3tog4-00-03-01 21-Sep-1998 BIll Lockman
- svtwaf.dat: shrank size of svt mother volume just enclose the detectors.

g3tog4-00-02-02 17-Sep-1998 Bill Lockman
- implemented G4 capitalization convention for class names. g3tog4->G3toG4.
- clGeometry.cc: introduced G3toG4VisManager class;
  added RunManager->Initialize
- added G3toG4SetRotation class to set rotation matrix elements directly,
  including improper rotations (parity transforms). Check for orthonormality
  and left-handedness.

g3tog4-00-02-01 21-Aug-1998 Bill Lockman
- GNUmakefile: removed 'bin' dependence from 'first' target

g3tog4-00-01-02 16-Jul-1998 Bill Lockman
- Mods to test/GNUmakefile by B. Lockman to link

g3tog4-00-01-01 07-Jul-1998 Gabriele Cosmo
- Several updates to test/GNUmakefile by J.Allison
- Removed obsolete tag g3tog4-00-07-00.

g3tog4-00-07-00 29-Jun-1998 Bill Lockman
- GNUmakefile:
- added an 'examples' target to build the examples in test/
- example/*/cltog4.* moved to test/. Removed all files in example from repo.
- test/GNUmakefile: added G4EXLIB=true flag
- test/clGeometry.cc, cltog4.cc: replaced #include "*.cc" with "*.hh"

g3tog4-00-06-06 26-Jun-1998 Gabriele Cosmo
- Again changes to GNUmakefiles according to the new structure in
  processes/electromagnetic. (by J.Allison)

g3tog4-00-06-05 23-Jun-1998 Bill Lockman
- GNUmakefile:
- uncommented cernlibs function (John, did you comment this ???)
o build only the global processes library, not the processes sublibraries
o build the global digits+hits library
- example and test GNUmakefiles: link against global processes library
- removed test/GNUmakefile.G4VIS_USE, superceded by visualization/G4VIS_USE.gmk
- modified include paths in example/, test/ to include detector/include,
  hits/include
- src/G4gsmate: if G3 vacuum state encountered (dens<G3_input_density), set
  dens=0; if Z < 1, set Z=1, A=2.

g3tog4-00-06-04 22-Jun-1998 John Allison
- Changed GNUmakefiles to use G4VIS_USE.gmk.
- Introduced G4BASE in GNUmakefiles.

g3tog4-00-06-03 14-Jun-1998 Bill Lockman
- temporarily removed VACUUM from call list. This material causes SetCuts to
  go into an infinite loop
- removed proton from macro files
- if Z<1, set Z=1, A=2.
- renamed test/clGeometry.g4macro to test/clGeometry.x
- added example/cltog4.x.
- example/cltog4.cc always runs in batch, no graphics.

g3tog4-00-06-02 12-Jun-1998 Bill Lockman
- simplified xlf include path
- treat as vacuum (A=2, Z=1, dens=0) if input density < 1.e-15 g/cm3
- G4makevol: assert Rmin>=0 && Rmax>=Rmin

g3tog4-00-06-00 07-Jun-1998 Bill Lockman
- added G4VisAttributes.hh header file to clGeometry.cc to define
  stream operator for G4VisAttributes&

g3tog4-00-05-05 23-Apr-1998 Bill Lockman
- test/svtwaf.dat: took out PCON mother, replaced with TUBS.

g3tog4-00-05-04 21-Apr-1998 Bill Lockman
- tog4.F: Increased iia array dimension from 1k to 10k.

09-Apr-1998 Bill Lockman
- G4BuildGeom.cc: set vis attribute of top level volume to invisible
- test/src/clGeometry.cc: instantiate MyVisManager
- rename g4geom.cc to g4geom.cc.main
- in svtwaf.dat, make volume SSVD a G4Tubs instead of a PCON. Otherwise,
  can't close the geometry.
- GNUmakefile: remove EXEC_BUILD = true
- example/GNUmakefile: add EXEC_BUILD = true

09-Apr-1998 Gabriele Cosmo
- Porting on DEC-cxx 6.0:
  > fixed warnings about meaningless usage of the
    "const" qualifier. Fixed files:
    G3VolTable.hh, G3VolTable.cc
  > fixed problem of partial override of G4VPVParameterisation class.
    Files: G3CalcParams.hh, G3CalcParams.cc

07-Apr-1998 Bill Lockman
- GNUmakefile: Fbinobjects was misspelled => rztog4.d was not made.
- src/rztog4.F: check for existence of .rz file before continuing.
- src/G4makevol.cc: include G4BREPSolidPolyhedra.hh and G4BREPSolidPCone.hh
  instead of .h

HEAD April 2, 98 G.Barrand
- G4VIS_USE_OPENINVENTOR -> G4VIS_USE_OIX in makefiles.

26-Mar-1998 Bill Lockman
- GNUmakefile: do not include rztog4.o in libG3toG4F.a, but explicitly in
  link command. See README for what the different phony targets (all, lib, bin,
  libC libF) do. In general, for both the top-level Makefile and the example
  makefiles, gmake all will build everything, including the external libraries.
  gmake all from the top-level makefile will additionally build both example
  executables as well as rztog4. From the example directory, gmake all will
  build the external libraries, the libG3toG4.a and libG3toG4.a libraries,
  and the example executable executable.
- G4makevol.cc: added commented-out #include "G4BREPSolidPCone.hh" and
#include "G4BREPSolidPolyhedra.hh" (will convert in alpha06 release)

26th March 1998  John Allison
- Changed G4VisManager to MyVisManager in clGeometry.cc for vis-00-05-01
  and later.

25-Mar-1998 Gabriele Cosmo
- Cleaned up warnings on DEC

g3tog4-00-04-02 06-Mar-1998 Bill Lockman
- Modified example and test GNUmakefiles to synch with latest G4 mods (mainly
  vis and G4PhysicsList)
- test/clGeometry.cc use new method for instantiating vis manager
- broke off g3tog4DetectorConstruction executable code into .cc
- added g3tog4RunAction from test_skeleton
- added g3tog4PhysicsList from test_skeleton, dumped Process- and ParticleList
- updated example/GNUmakefile and cltog4.cc to synch with latest G4 changes

30th January 1998  Gabriele Cosmo (g3tog4-00-03-02)
- Modified order of link in test/GNUmakefile (G4intercoms)

27th January 1998  John Allison
- Simplyfied include GNUmakfile.G4VIS_USE in test/GNUmakefile.
- New way of instantiating G4VisManager in test/src/clGeometry.cc.

20-Jan-1998  Bill Lockman
- GNUmakefile: in 'ext', do only geometry (BREPS) and visualization (global)
- example/GNUmakefile: remove include GNUmakefile.common, replace with required
	rules. Do not use default clean rule - it removes the $G4SYSTEM soft
	links
- test/GNUmakefile: remove include GNUmakefile.common, replace with required
	rules. Do not use default clean rule - it removes the $G4SYSTEM soft
	links
- test/clGeometry.g4macro: modified
- test/include/g3tog4DetectorConstruction.hh: modified a comment
- test/src/clGeometry.cc: added an optional 3rd argument, a terminal type
- test/src/g3tog4PrimaryGeneratorAction.cc: changed some gun defaults

22-Dec-1997  Bill Lockman
added example/src, moved cltog4.cc there. Cleaned up g3tog4 makefiles.

20-Dec-1997  John Allison:
Changed ifdef OPENGL_WIDGET to ifdef G4VIS_USE_OPENGLXM in test/GNUmakefile.
Also eliminated LOADLIBS += -lGLw.  (GLw is not used, I think.)
(These flags need tidying in all GNUmakefiles -JA)

g3tog4-00-02-03 12-Dec-1997 Lockman:
test/GNUmakefile: visualization code and library path cloned from run/example2.
test/src/clGeometry: added #include "G4VisRegisterGraphicsSystems.icc";
protect all visualization code inside #ifdef VISUALIZE_CLGEOMETRY...#endif

18 Nov 1997 B. Lockman:
src/G4gsmate.cc: changed | to ||
src/G3gsdetv.cc: currently disable
test/src/, include: updated g3tog4*.cc and *.hh from run/example1
g3tog4.F : commented out call to code generator
Removed G3G4Init.cc, G3Mother.cc, G3Mother.hh
GNUmakefile: 	if SLAC env. variable is set, use cernlib -v 95a, otherwise
		use pro
example/GNUmakefile: updated pattern rules to build .d.
test/GNUmakefile: remove pattern rules, replace with include GNUmakefile.common
include/G3G4Interface.hh: G4BuildGeom now returns G4LogicalVolume*
include/G3VolTable.hh: added static G4LogicalVolume* mothLV; getLVx(G4String&)
		now returns G4LogicalVolume* corresponding to a name, using
		G4LogicalVolumeStore class; removed getTopVol method
src/G3VolTable.cc: removed G3Mother; Mother corresponds to the first volume
		placed by G3toG4 (set by method setMother in in putLV.
src/G4BuildGeom.cc returns G4LogicalVolume* of first volume placed by G3toG4
src/G4gsatt.cc,G4gsdetv.cc,G4gsdv*.cc: replaced getLV(name) with getLVx(name)
src/G4gspos*.cc: use G4PVPlacement constructor which places volume inside
		Logical mother volume.
src/G4makevol.cc: check that LV is not already placed; if so, do not place it.
		Removed references to G3MOther; added G3Bound to chek the
		radial bounds on PCON and PGON volumes
src/clparse.cc: removed GlobalMotherVolume and SubsystemMotherVolume logic.
src/g3tog4.F: remove ctop(G3G4Init)
test/src/g3tog4DetectorConstruction: G4LogicalVolume* G4BuildGeom; place
top-level volume.

08-Nov 1997 B. Lockman
cltog4.cc, clGeometry.cc: update to follow skeleton.cc pattern
G4makevol.cc: check parameters of PGON, PCON, adjust if necessary
tog4.F: new rz reader from Vladimir Berejnoi.

21-Jul 1997 G. Cosmo
G3toG4.hh: commented out extern declaration of min(). Porting on HP-UX10.

16-Jul 1997 B. Lockman
G3Mother.cc: set the vis attributes of the mother to be invisible
G4makevol.cc: commented out the forward declaration class G4RWTValVector<double>;

17-Jun-1997  T. Wenaus
- GNUmakefile mod to exclude g4geom.cc from library
- G3VolTable mod to add putLV(name, lvol) method for case when nothing
  other than lvol pointer is known about the volume
- src/clparse.cc mods to use g3tog4 in the context of a Geant4
  application of which g3tog4 is just a component:
  - G4LogicalVolume* GlobalMotherVolume if non-null points to the
    global mother to be used by g3tog4
  - G4LogicalVolume* SubsystemMotherVolume is loaded with the lvol
    immediately under the g3tog4 global mother (second gsvolu definition
    during the parsing)

12-Jun-1997  B. Lockman
G3Mother.cc: set the vis attributes of the mother to be invisible

28-May-1997  B. Lockman
g3tog4/GNUmakefile : split lib into 'libf' and 'libc'
test,example/GNUmakefile : make libc target in to level makefile instead of lib
src/clGeometry.cc : made cltog4.cc a short version of clGeometry.cc

20-May-1997  B. Lockman
- test/GNUmakefile : added run to include path
- test/src/clGeometry.cc : add particle and hit generation

05-May-1997  B. Lockman
- src/clparse.cc: G3G4Init no longer calls G4Setup (G3Setup instantiates a
  fixed-shape world volume. This is now handled in G3Mother, based on the
  information in the call list file.) G3G4Init now just opens clparse.out.

- src/G4makevol.cc : SingletonMother->Instance(G4LogicalVolume* lvol)

- src/G4BuildGeom returns G3Vol.getPV() (see below)

- G3Mother : Singleton class whose data memebers _instance and _LV are
  initialized from a call in G4Makevol

o src/G3Mother::Instance(G4LogicalVolume * LV) stores the pointer to the
  singleton object (_instance) and the pointer to the logical mother volume
  (_instance->_LV); places mother volume; store pointer to physcal mother
  volume in G3VolTable: G3Vol.setMother(motherWorldPhys)

- src/G3VolTable.cc :

o G4LogicalVolume* G3VolTable::getLV() returns the pointer to the top-level
  logical mother volume

o G4VPhysicalVolume* G3VolTable::getPV() returns the pointer to the top-level
  physical mother volume

- test/src/clGeometry.cc:

o geometry is now closed in G4BuildGeom when G3ggclas is called

03-May-1997  B. Lockman
- summary : got rid of artifical top level volume, replaced with top level
  logical volume defined in call list file; place it.

- src/G3Mother.cc, include/G3Mother.hh : singleton class to hold copy of
  mother volume name. Can be accessed from anywhere

- src/G3VolTable.cc, include/G3VolTable.hh : added getTopVol(), returns a
  pointer to the top level logical volume

- src/G3makevol.cc: fill singleton class

- src/G4BuildGeom.cc: invoke getTopVol, create top level physical volume
  from logical volume, no longer done in G4Setup.

02-May-1997  B. Lockman
- src/jshape.F: translate HYPE, ELTU and CTUBS shape numbers into names
- src/G4gsdv*.cc: call G4gsvolu with zeronpars

28-Apr-1997  B. Lockman :
- example,test/GNUmakefile :
o added 'ext' target which depends on g4ext (phony) and 'all'. The former
  simply runs the 'ext' target in the top-level GNUmakefile.

25-Apr-1997  B. Lockman :
- src/G4gsdvn2.cc: fixed array overrun
- src/G4gspos, G4gsposp, G4gsvolu: fixed some small memory leaks
- src/rztog4.F : added optional second argument to specify the call list file
- src/clparse.cc : G4bool _debug (local) controls printing of each read line
- test/src/clGeometry.cc :  define world volume for tracking : G4TransportationManager::getTransportationManager()->getNavigatorForTracking()->SetWorldVolume( pGeometries );



24-Apr-1997  B. Lockman :
-test/src/clGeometry.cc:
o instantiated a geometry before G4VisManager

23-Apr-1997  B. Lockman :
- GNUmakefile:
o added 'all' to 'ext' dependencies. gmake ext now builds all the
  needed libraries and makes the rztog4 executable. cltog4 executable is made
  by example/GNUmakefile; clGeometry executable is made by test/GNUmakefile.
o added lG4run to library list in all three GNUmakefiles

- src/G4gsvolu:
o changed 'delete param' to 'delete [] param'

02-Apr-1997  B. Lockman :
- phase out GNUmakefile-ext. Replace with 'ext' target in GNUmakefile; also
  added a 'geom' target which updates geometry/, including STEP and BREPS,
  and merges all .o files into geometry/$G4SYSTEM/libG4geometry.a. Thus:
    using         prototype/GNUmakefile      g3tog4/GNUmakefile
                  ---------------------------------------------
  either type:         "gmake"     followed by   "gmake ext"
      or type:         "gmake vis" followed by   "gmake geom"
                  ---------------------------------------------
  where 'ext' updates particle+matter, global, interfaces, visualization and
  geometry, including BREPS and STEP,
  and 'geom' updates geometry only, including BREPS and STEP

- example/: added cltog4.cc, removed from src/.
07-Apr-1997  B. Lockman
- GNUmakefiles: particle+matter/GNUmakefile global target now produeces
  libraries in particles, processes, management and materials. Modify library
  path accordingly.
- src/G4makefile: Updated to construct G4Para.

31-Mar-1997  B. Lockman :
- src/G4gsrotm.cc:
o Incorporated proper coordinate-system rotation calculated from Euler angles.
  The convention in Geant3 is to specify the roation matrix as a rotation of
  the coordinate system, not a rotation of the body, as was done in Geant3.
  The c.s. rotation matrix is the transpose of the body rotation matrix.

27-Mar-1997  B. Lockman :
- moved cltog4.cc from src to example so that it doesnt get put into g3tog4
  library. Thus, libG3toG4.a will contain no main routine. This avoids
  conflicts with mains in other packages (like visualization/test). Added
  GNUmakefile to example to build cltog4 target. Commented cltog4 target in
  g3tog4/GNUmakefile.

20-Mar-1997  B. Lockman :
- src/G4makevol.cc:
o G4BREPSolidPCone, Polyhedra require the number of sections = nz -1
- GNUmakefile :
o removed -include ../global/GNUmakefile.common
o added clean_libs, clean (doesnt remove $G4SYSTEM/), clean-all (removes
  $G4SYSTEM)
o put in libG3toG4.a target, depends on ../$(G4SYSTEM)/libG3toG4.a. Rule is to
  run ../GNUmakefile which now just makes the libraries
o typing 'gmake' will make 'all' target
  typing 'gmake lib' or 'gmake bin' will make the libraries and binaries
o remove binaries before rebuilding
- src/GLKludge.cc , include/GLKludge.hh : currently G4BREPSolidPCone and
  G4BREPSolidPolyhedra cant handle cases where z[i] = z[i-1], add 10 microns
  to z[i] as a temporary kludge if z[i] <= z[i-1]

19-Mar-1997  B. Lockman :
- GNUmakefile-ext:
o currently builds geometry global target using geometry/GNUmakefile.test

18-Mar-1997  B. Lockman :
- GNUmakefile-ext:
o updating of external packages needed by g3tog4 now done in
  GNUmakefile-ext. Invoke 'global' target in packages supporting this.
  This target removes the libraries in the lower level
  package directories and consolidates them in the top-level package
  directories, simplifying the library path somewhat in GNUmakefile and
  example/GNUmakefile. This also makes the libraries defined here
  compatable with those defined in visualization/test/GNUmakefile.
o added a clean_libs target to remove all libraries (invoked from the command
  line; 'all' does not depend on it)

Mar 16 '97 TW
- GNUmakefile:
o minor typo fix CPPFLAGS -> $(CPPFLAGS)
o consolidated histories back into this file; please keep this file a
  single comprehensive history of g3tog4 package modifications.

14-Mar-1997 Lockman:
- GNUmakefile:
o Added vpath %.a to provide library search path
o make cltog4 dependent on all the libraries in G4LIBS

11-Mar-1997  B. Lockman :
- GNUmakefile:
o added tracking, intercoms to library path ;
  now update BREPS, STEP, CSG targets in GNUmakefile-ext

04-Mar-1997  B. Lockman :
- GNUmakefile:
o added LDFLAGS variable to allow user to specify link options from
  from the cmd line

17-Jan-1997  B. Lockman :
- GNUmakefile:
o updated include path to include BREPS, STEP and graphics_reps.
o updated library path to include BREPS, STEP libraries
o Added phony BREPS and STEP targets to insure these packages are
  compiled (really should be done in the top-level GNUmakefile)

15-Jan-1997  B. Lockman :
- GNUmakefile:
o rewrote include path after directory restructuring
o rewrote library path after directory restructuring
- g3routines.F : run-time formatting of call list file implemented.
- mztog4.F, rztog4.F : put tog4 into a separate file
- tog4.F : dimensioned orig, fact to 5000


29-Oct-1996  B. Lockman :
- GNUmakefile:
o rewrote include path after directory restructuring
o rewrite library path after directory restructuring

02-Oct-1996  B. Lockman :
- GNUmakefile:
o in making/updating libG3toG4F.a, run ranlib on this library, not
  libG3toG4.a

01-Oct-1996  B. Lockman :
- GNUmakefile:
o modified FCFLAGS to replace -I with  -WF,-I to define cpp include
  path for xlf compiler
o added -d option for xlf compiler to write intermediate .f file
o added -g option to produce debug symbols
o added $(fsources) (*.f filobals.hhles) to 'all' dependencies
o moved 'all' rule to below definition of $(cernlibs) so that
  $(fsources) is defined
o defined pattern rule to move .f files to $(G4SYSTEM)
o moved -include ../global/GNUmakefile.common after explicit rules
  and before pattern rules definition. This file defines the
  variables $(sources) (src/*.cc) and $(dependencies) (corresponding
  .d files) as well as some pattern rules (which are redefined
  locally)

Sep 24 '96 TW
- completion of handling of all cases of Indexing via individual logical
  volume objects created for each instantiation, with physical volume list
  of the instantiations kept in the G3Vol data structure and used to
  place daughters in the logical volume of each instantiation.
  (Temporary, pending a proper G4 implementation of Indexed placement.)
- turn off geometry optimisation (takes forever for big geometries!!)

Sep 15 '96 TW
- G4Cons incorporated
- Indexed GSVOLUs via negative length parameters finished (G3CalcParamsFn
  extended)

Sep 10 '96 TW
- implementation of gspos (-ve params), gsposp via G4PVPlacement;
  G3Vol structure keeps track of G4LogicalVolumes created and placed
  for G3 parametrised volume invocations. (no G4PVIndexed, originally
  foreseen)
- G4Trd implemented
- G4PVReplica, G4PVParameterised implemented
- placeholder solid eliminated; NPAR=0 cases handled as described
- cltog4 interface improved
- clparse inactive geometry calls instated; all now active
- GSDV* routines fully implemented
- $$$ pending rot matrix handling question (no access to matrix);
  GSROTM otherwise updated
- GNUmakefile fixes & improvements

Sep 3 '96  TW
- GNUmakefile fix for $G4SYSTEM directory creation

Aug 25 '96  T. Wenaus
- begin this mod history
- update G3toG4 code for class structure mods since last update (12/95)
- update the GNUmakefile to properly compile source in src/, example/
  and build executables rztocl, cltog4, and (if example code present)
  g4geom in $G4SYSTEM)/
- add .d file generation for Fortran code and code in example/
