# Category geomdiv 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!

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

## 2023-05-09 Gabriele Cosmo (geomdiv-V11-01-00)
- Applied clang-tidy fixes (readability, modernization, performance, ...).

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

---

# History entries prior to 11.0

October 29th, 2021 G.Cosmo (geomdiv-V10-07-04)
- G4ReplicatedSlice: added protection against null pointer for mother
  physical-volume in constructor.

October 14th, 2021 G.Cosmo (geomdiv-V10-07-03)
- Make G4PVDivision and G4ReplicatedSlice inherit from G4PVReplica
  rather than G4VPhysicalVolume, in order to have instances properly
  cloned in MT mode. Coworks with "geomvol-V10-07-05".

September 24th, 2021 P.Arce (geomdiv-V10-07-02)
- Fix bug in G4ParameterisationTrd for division along X.
  Debug messages cleaning.
  
August 18th, 2021 G.Cosmo (geomdiv-V10-07-01)
- Bring internal interactive test for divisions up-to-date.
  No functional changes.

March 30th, 2021 B.Morgan (geomdiv-V10-07-00)
- Migrate sources.cmake to modular build API

December 10th, 2019     B.Morgan (geomdiv-V10-06-00)
- Cleanup CMake build, removing obsolete granular library options and
  explicit include_directories.

October 23rd, 2019      J.Apostolakis (geomdiv-V10-05-02)
- Added new virtual VolumeType() method in Physical Volume types.
  Requires and coworks with geommng-V10-05-11 and geomvol-V10-05-05.

September 19th, 2019    G.Cosmo (geomdiv-V10-05-01)
- G4PVDivision: added missing implementation of alternative constructor.
- Implemented minor c++11 revision; code cleanup and formatting.

June 13th, 2019         G.Cosmo (geomdiv-V10-05-00)
- Return correct value for multiplicity in G4PVDivision and G4ReplicatedSlice.
  Addressing problem report #2168.

March 22nd, 2017        G.Cosmo (geomdiv-V10-03-00)
- Updated ExDivision unit test.

May 13th, 2016          G.Cosmo (geomdiv-V10-02-00)
- Updated unit tests.

September 9th, 2015     G.Cosmo (geomdiv-V10-01-07)
- Set as unsupported divisions of polycone and polyhedra in MT-mode.

September 9th, 2015     G.Cosmo (geomdiv-V10-01-06, 05)
- Use thread-local pointer for rotation matrix as member of the class
  G4VDivisionParameterisation and set it as suto-delete.
  Removed unnecessary thread-local verbose flag.
  Addressing problem reports #1743 and #1758.
- Migrated unit test-suite ExDivisions to multi-threading.

September 4th, 2015     G.Cosmo (geomdiv-V10-01-04)
- Fix for use of rotation matrix in G4VDivisionParameterisation in MT-mode,
  to address problem reports #1743 and #1758.

August 6th, 2015        G.Cosmo (geomdiv-V10-01-03)
- Checked for potential never-ending loops. No issues found.

June 2nd, 2015          G.Cosmo (geomdiv-V10-01-02)
- Delete rotation matrix in destructor.

June 2nd, 2015          P.Arce (geomdiv-V10-01-01)
- Avoid creation/deletion of rotation matrix in G4VDivisionParameterisation
  for ChangeRotMatrix(). Addressing problem report #1743.

April 30th, 2015        G.Cosmo (geomdiv-V10-01-00)
- Fixed Coverity defect in G4ReplicatedSlice for uninitialised pointer.

March 5th, 2014         G.Cosmo (geomdiv-V10-00-00)
- Added missing dependency to graphics_reps.

October 29th, 2013      T.Nikitina (geomdiv-V09-06-04)
- Split G4Polycone into G4GenericPolycone and optimised.
  Coworks with tag "geom-specific-V09-06-22".

August 27th, 2013       G.Cosmo (geomdiv-V09-06-03)
- Added G4Ellipsoid among solids enabled for parameterisation.

March 22nd, 2013        G.Cosmo (geomdiv-V09-06-02)
- Use dynamic instead of static cast in singleton accessor implementation
  for G4PVDivisionFactory.

March 21st, 2013        A.Dotti (geomdiv-V09-06-01)
- Corrected definition of G4PVDivisionFactory singleton accessor for MT.

February 22nd, 2013     G.Cosmo (geomdiv-V09-06-00)
- Cleanup of changes for multi-threading in G4PVDivisionFactory.
- Corrected composed cout in exceptions for G4ParameterisationBox and
  G4ParameterisationTrd.

June 12th, 2012         G.Cosmo (geomdiv-V09-05-01)
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

May 14th, 2012          G.Cosmo (geomdiv-V09-05-00)
- Fixed spurious cases of hidden variable visibility, detected with
  '-Wshadow' compilation option on gcc compiler in G4ParameterisationCons.

August, 11th, 2011      G.Cosmo (geomdiv-V09-04-04, geomdiv-V09-04-03)
- Defined scheme for warnings/errors coding:
  + 1xxx for warnings, 0xxx for errors.
  Code numbering:
  + 0001: not supported or implemented features;
  + 0002: invalid setup/construct;
  + 0003: invalid run condition;
  + 1001: incorrect setup; automatically adapted.
  + 1002: notification.

August, 10th, 2011      G.Cosmo (geomdiv-V09-04-02, geomdiv-V09-04-01)
- Migrated to new G4Exception scheme for warnings and errors.

July, 14th, 2011        G.Cosmo (geomdiv-V09-04-00)
- Optimise initialization of phi angles in parameterisation for tubs and cons.

November, 9th, 2010     M.Asai (geomdiv-V09-03-02)
- Introducing G4ReplicatedSlice, allowing for gaps in between divided daughter
  volumes.

September, 6th, 2010    G.Cosmo (geomdiv-V09-03-01)
- Removed obvious else statement in constructors of G4PVDivision.

July, 2nd, 2010         G.Cosmo (geomdiv-V09-03-00)
- Improved logic in G4PVDivision constructors and in method
  G4PVDivisionFactory::CreatePVDivision() in case of invalid construct.
- Properly initialise Boolean flag 'bDivInTrap' in G4VParameterisationTrd
  constructor.
- G4ParameterisationTrd: disabled unreachable error message in method
  G4ParameterisationTrdX::CheckParametersValidity().
- Removed uninitialised member in G4ParameterisationTrdX and correction in
  method ComputeSolid().
- Get rid of unnecessary virtual specification for leaf classes in the
  hierarchy...

May, 20th, 2009         I.Hrivnacova (geomdiv-V09-02-00)
- Allow for generic divisions along Z for polyhedras and polycones; now
  divisions can happen along z-axis with width and offset, which fulfil the
  condition that division does not span over more than one segment.
- Fixed initialization of division in Phi for polyhedras to not take into
  account user defined width.
- Fixed initialization of arrays in unit test: changed polycone definition
  so that division does not give exception and added polyhedra, which was
  not present.

December, 3rd, 2008     P.Arce  (geomdiv-V09-01-02)
- Added division along X of TRD (that results in TRAP's).
  Changed G4PVDivision to allow divisions solids to have type different
  than mother.

August, 18th, 2008      T.Nikitina  (geomdiv-V09-01-01)
- Corrected initialisation for 'fnReplicas' and 'fwidth' data members in
  CheckAndSetParameters(), to make use of precomputed values retrieved from
  parameterisations; simplified method signature.

July, 25th, 2008        I.Hrivnacova  (geomdiv-V09-01-00)
- Corrected error message in G4VDivisionParameterisation::CheckNDivAndWidth().

May, 18th, 2007         G.Cosmo  (geomdiv-V08-03-01)
- Use kAngTolerance from G4GeometryTolerance class.
- Coworks with tag "global-V08-03-03".

May, 11th, 2007         G.Cosmo  (geomdiv-V08-03-00)
- Use call to G4GeometryTolerance instead of kCarTolerance constant in
  G4VDivisionParameterisation.
- Requires tag "global-V08-03-00" and related tag set.

June 8th, 2006          G.Cosmo  (geomdiv-V08-00-03)
- Added CLHEP namespace to unit tests where missing.

March 7th, 2006         P.Arce  (geomdiv-V08-00-02)
- Revised text in G4Exceptions thrown by various classes.

February 3rd, 2006      G.Cosmo  (geomdiv-V08-00-01)
- Cache information about axis of division and provided accessor method
  GetDivisionAxis() in G4PVDivision.

January 10th, 2006      G.Cosmo  (geomdiv-V08-00-00)
- Added missing setting of mother-logical pointer in constructors of
  G4PVDivision. Fixes problem report #829.
- Added checks for illegal constructs of G4PVDivision (NULL pointer to
  mother logical and self-placement).
- Fixed check for generic construct in G4ParameterisationPolycone and
  G4ParameterisationPolyhedra: allow it for the automatic replicated instance.

November 16th, 2005     J.Apostolakis  (geomdiv-V07-01-02)
- Adapted to revision of G4VPhysicalVolume that identifies some
  regular structures: added two methods for G4PVDivision (IsRegularStructure()
  and GetRegularStructureId()).

November 9th, 2005      G.Cosmo  (geomdiv-V07-01-01)
- Migration to <sstream> from deprecated <strstream> for the
  unit test ExDivisions.

November 2nd, 2005      G.Cosmo  (geomdiv-V07-01-00)
- Protected case of generic construct for G4Polyhedra and G4Polycone
  currently NOT supported for divisions.
- Coworks with tag "geom-specific-V07-01-05".

June 6th, 2005          G.Cosmo  (geomdiv-V07-00-00)
- Fixed compilation problems on unit test.

December 2nd, 2004      G.Cosmo  (geomdiv-V06-02-02)
- Implemented migration to <cmath> for standard mathematical functions.

August 26th, 2004       G.Cosmo  (geomdiv-V06-02-01)
- G4PVDivision.cc: removed unnecessary debub printout in
  CheckAndSetParamenters().

June 15th, 2004         G.Cosmo  (geomdiv-V06-02-00)
- Removed unnecessary forward declaration of HepTransform3D from
  G4ParameterisationBox.hh and G4VDivisionParameterisation.hh.

May 17th, 2004          G.Cosmo  (geomdiv-V06-01-01)
- Corrected handling of offset in Z for reflection.

May 13th, 2004          G.Cosmo  (geomdiv-V06-01-00)
- Added support for reflection of divided volumes (courtesy of I.Hrivnacova):
  o Added concrete istance of division-factory G4PVDivisionFactory
    for the creation of volume divisions on demand.
  o Enhanced unit-test suite "ExDivisions" to support reflections with
    additional input argument for positioning type (normal/reflected).
  o Coworks with tags: geommng-V06-01-00, geomvol-V06-01-00 and
                       geom-bool-V06-01-00.

Nov 19th, 2003          G.Cosmo  (geomdiv-V05-02-07)
- Moved verbose output between G4DIVDEBUG compilation flag.
- Added testing framework for divisions to be used also as base for user's example.
- General cleanup.

Nov 18th, 2003          P.Arce  (geomdiv-V05-02-06)
- Added divisions in X and Y for G4Para.
- Added divisions in Z for G4Polycone and G4Polyhedra.
- Fixed handling of offsets and added more checks.

Nov 4th, 2003           G.Cosmo  (geomdiv-V05-02-05)
- Fixes in the logic of resetting parameters in ComputeDimension() for
  polycones and polyhedra. Requires tag "geom-specific-V05-02-05".
- Implementation NOT yet complete for division in Z for polycones and
  for division in Phi and Z for polyhedra.

Oct 31st, 2003          P.Arce  (geomdiv-V05-02-04)
- First implementation for G4Polyhedra.

Oct 31st, 2003          G.Cosmo  (geomdiv-V05-02-03a)
- Fixed compilation errors on Windows.

Oct 24th, 2003          G.Cosmo  (geomdiv-V05-02-03)
- Completed implementation for Para, Trd. (by P.Arce)
- Corrections for cons and tubs.
- First trial implementation for polyhedra.
- Migrated calls to G4Exception to new scheme.
- Added G4Orb to dummy parameterisations.

Sep 30th, 2003          G.Cosmo  (geomdiv-V05-02-02)
- Removed concrete implementation of Setup() method, according to
  changes made to base class G4VPhysicalVolume.
- Updated GNUmakefile for unit tests, according to new structure
  introduced in "geometry-V05-02-00".

Jul 4th, 2003           G.Cosmo  (geomdiv-V05-02-01)
- Removed useless test header...

Jun 16th, 2003		G.Cosmo  (geomdiv-V05-02-00)
- Code cleanup and restructured.
- Created.
  Original implementation by P.Arce Dubois (University of Cantabria, CMS).
