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

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

## 2025-02-04 John Allison (tracking-V11-03-01)
- G4RichTrajectoryPoint.hh:
  - Add accessors for Pre and PostStepPointGlobalTime.
  - This allows fast access for time windowing feature of trajectory modeling.

## 2025-01-20 John Allison (tracking-V11-03-00)
- G4VTrajectory and G4VTrajectoryPoint:
  - Add AttValues caching:
    - GetAttValues returns a shared_ptr that points to the object created by
      CreateAttValues if not already created. Thus acts as a cache.
      - Smart access function - creates on request and stores for future
        access. An invalid shared pointer means "not available". Usage:
          const auto trajectoryAttValues = aTrajectory.GetAttValues();
          if (trajectoryAttValues) { ...
        then use as a normal pointer, but do not delete - simply allow
        to go out of scope.
  - Protect copy and move constructors and copy and move assignment operators.

## 2024-10-28 Makoto Asai (tracking-V11-02-05)
- Moving check of cloned trajectory from G4Trackingmanager to G4TrackingMessenger
  to avoid unnecessary check.

## 2024-10-03 Makoto Asai (tracking-V11-02-04)
- Refining CloneForMaster() method with introducing G4ClonedTrajectory and
  G4ClonedTrajectoryPoint classes for clean and safe use of G4Allocator.
  Also G4ClonedSmoothTrajectory and G4ClonedSmoothTrajectoryPoint.
- G4RichTrajectory and G4RichTrajectoryPoint are modified to directly
  inherit G4VTrajectory and G4VTrajectoryPoint abstract base-classes to
  avoid double use of G4Allocator. And G4ClonedRichTrajectory and
  G4ClonedRichTrajectoryPoint are added.

## 2024-09-30 Makoto Asai (tracking-V11-02-03)
- G4Trajectory and G4TrajectoryPoint - Adding CloneForMaster() method for
  merging trajectories created by worker thread in suevent parallel mode.

## 2024-10-10 Gabriele Cosmo (tracking-V11-02-02)
- Fixed reported Coverity defects for use of std::move() in
  G4AdjointCrossSurfChecker.

## 2024-05-03 Ben Morgan (tracking-V11-02-01)
- Remove use of no longer supported TiMemory.

## 2023-12-11 Vladimir Ivanchenko (tracking-V11-02-00)
- G4TrackingMessenger - fixed Coverity report on memory leak at exit by
    move static thread local variable to be class member, because G4TrackingManager
    and its messenger are thread local by nature.

## 2023-09-04 Gabriele Cosmo (tracking-V11-01-02)
- Removed references to G4TouchableHistoryHandle, which is now deprecated.

## 2023-02-08 Ben Morgan (tracking V11-01-01)
- Apply standard and extended set of clang-tidy/format fixes

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

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

## 2022-11-04 Vladimir Ivanchenko (tracking-V11-00-08)
- G4SteppingManager - fixed compilation warning

## 2022-11-02 Vladimir Ivanchenko (tracking-V11-00-07)
- G4SteppingManager - removed G4Exception with JustWarning severity
    for the case if no active at rest processes exist - fix problem #2493

## 2022-06-21 Ben Morgan (tracking-V11-00-06)
- Merge `G4SteppingManager` implementation files

## 2022-06-05 Vladimir Ivanchenko (tracking-V11-00-05)
- `G4SteppingManager2`: removed check on cuts and removed dependence of
  tracking from EM physics; ApplyCut method in this place was never used and cannot be
  use consistently, because energy deposition strongly depend on particle type, physics
  models, and user requirement. It is very difficult implementing ApplyCuts here for
  all use cases, it is why the real implementation is done within EM physics classes  

## 2022-05-10 Jonas Hahnfeld (tracking-V11-00-04)
- `G4SteppingManager`:
  * Use new virtual method `GetCreatorProcess()` when processing secondaries
  * Correct ProcessDefinedStep for AtRest case

## 2022-05-04 Jonas Hahnfeld (tracking-V11-00-03)
- `G4SteppingManager`:
  * Refactor and simplify processing of secondaries
  * Use process from PostStepPoint as creator

## 2022-04-19 Jonas Hahnfeld (tracking-V11-00-02)
- Only set step status of `fGeomBoundary` on volume boundary

## 2022-01-28 Ben Morgan (tracking-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.
- Make DLL export symbol a CMake module-level compile definition to aid
  future modularization

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

---

# History entries prior to 11.0

October 25, 2021 B.Morgan (tracking-V10-07-19)
- Use G4StrUtil functions replacing deprecated G4String member functions

October 13, 2021 J. Hahnfeld (tracking-V10-07-18)
- Introduce G4VTrackingManager, an interface for custom tracking
  managers specialized for one or a small number of particle types

September 21, 2021 A. Ribon (tracking-V10-07-17)
- G4SteppingManager : Added a new, private member variable, corresponding
  to a pointer to a G4NoProcess instance, and used it in the method
  InvokeAtRestDoItProcs() to flag a stable ion at rest.
  This avoids the otherwise confusing (but correct and harmless)
  information that Radioactive Decay is the process defining the 
  last step of a stable ion at rest.

August 13, 2021 M. Asai (tracking-V10-07-16)
- G4SteppingManager2.cc : Making sure Transportation limits the step 
  if a volume boundary in a parallel world is co-limiting the step.
  Addressing to Bugzilla Report #2240.

August 4, 2021 A. Ribon (tracking-V10-07-15)
- G4RichTrajectory : migrated to the new version of G4PhysicsModelCatalog.

July 15, 2021 A. Ribon (tracking-V10-07-14)
- G4SteppingVerboseWithUnits.cc : forgotten corresponding fix
  done below (tracking-V10-07-13) for G4SteppingVerbose.

July 12, 2021 A. Ribon (tracking-V10-07-13)
- G4SteppingVerbose.cc : fixed bug that wrongly put the "Forced"
  label in the print-out information of non-forced processes,
  and vice versa, omitting it for real forced processes.
  Obviously, simulation results were not impacted by this bug,
  but the print-out was confusing and misleading.

June 21, 2021 M. Asai (tracking-V10-07-12)
- G4SteppingVerbose.hh : add explicit virtual keyward to all virtual
  methods.
- G4SteppingVerboseWithUnits.hh : add override keyword.

June 1, 2021 M. Maire (tracking-V10-07-11)
- fix a format in G4VSteppingVerboseWithUnits
     
May 25, 2021 M. Maire (tracking-V10-07-10)
- complete G4VSteppingVerboseWithUnits
  
May 4, 2021 G. Cosmo (tracking-V10-07-09)
- Export protected static symbols in G4VSteppingVerbose for DLL builds
  on Windows.

April 1, 2021 B. Morgan (tracking-V10-07-08)
- Migrate build to modular CMake API

Mar 31, 2021 G. Cosmo (tracking-V10-07-07)
- Use existing facility to find locgical volume in store, rather than
  looping through in G4AdjointCrossSurfChecker.

Mar 24, 2021 M. Asai (tracking-V10-07-05, -06)
- G4SteppingVerbose, G4STeppingManager
  : add a switch to instantiate G4SteppingVerboseWithUnits

Feb 27, 2021 M. Asai (tracking-V10-07-04)
- G4SteppingVerboseWithUnits : Cosmetic changes

Feb 24, 2021 G. Cosmo (tracking-V10-07-03)
- Removed unnecessary header inclusion in G4SteppingVerboseWithUnits
  causing extra dependencies on particles submodules.

Feb 22, 2021 M. Asai (tracking-V10-07-02)
- Introducing G4SteppingVerboseWithUnits : An alternative to
  G4SteppingVerbose with printing proper units.

Feb 4, 2021 M. Asai (tracking-V10-07-01)
- Simplify the way of defining a user-specific stepping verbose, that
  is now common to all sequential, MT and tasking modes.

Dec 16, 2020 G.Amadio (tracking-V10-07-00)
- Avoid unnecessary indirections when checking for regional stepping
  action by reusing the value of current volume in stepping manager.

Nov 12, 2020 Jonathan Madsen (tracking-V10-06-04)
- Added G4Profiler support.

Sep 9, 2020, G.Cosmo (tracking-V10-06-03)
- Fixed minor Coverity defect in G4SteppingManager::ApplyProductionCut()
  for use of potentially negative argument.

Jun 4, 2020, G.Cosmo (tracking-V10-06-02)
- Fixed minor Coverity defect for uninitialised data in G4SteppingManager.

Mar 27, 2020, G.Cosmo (tracking-V10-06-01)
- Minor c++11 revision; code cleanup and formatting.

Dec 9, 2019, B.Morgan (tracking-V10-06-00)
- Cleanup CMake build, removing obsolete granular library option and
  explicit include_directories.

Nov 26, 2019, G.Cosmo (tracking-V10-05-02)
- Fixed cases of implicit type conversions from size_t to G4int.

Mar 11, 2019, G.Cosmo (tracking-V10-05-01)
- Fixed typos in printouts and comments.

Jan 31, 2019, I.Hrivnacova (tracking-V10-05-00)
- Merged GitHub PR #4: all Boolean operators now return G4bool.

Oct 12, 2018, G.Cosmo (tracking-V10-04-02)
- G4VSteppingVerbose: reset singleton pointer in destructor.
  Addressing problem report #2095.

May 17, 2018, J.Madsen (tracking-V10-04-01)
- updated "thread-local-static-var" model to
  "function-returning-thread-local-static-reference" model
  which fixes Windows DLL + MT

Apr 2, 2018, M.Asai (tracking-V10-04-00)
- G4SteppingManager : remove unnecessary checks of process manager for
  generic ion and muonic atom.

Oct 23, 2017, K.L.Genser (tracking-V10-03-02)
- G4SteppingManager added #ifdef for the case when a particle IsMuonicAtom

Sep 12, 2017, K.L.Genser (tracking-V10-03-01)
- G4SteppingManager added a case when a particle IsMuonicAtom

Dec 22, 2016 L.Desorgher  (tracking-V10-03-00)
- Modification in G4AdjointSteppingAction for correction of a bug in the case of reverse
  track splitting.

Nov 17, 2016 L.Desorgher  (tracking-V10-02-05)
- G4AdjointSteppingAction remove a test on weight with FPE issue.

Oct 27, 2016 L.Desorgher  (tracking-V10-02-04)
- G4AdjointSteppingAction remove a print info on the weight, when stopping reverse tracking.
for the implementation of the splitting of the reverse MC tracking.

Jul 21, 2016 L.Desorgher  (tracking-V10-02-03)
- Modification of G4AdjointTrackingAction and G4AdjointSteppingAction
for the implementation of the splitting of the reverse MC tracking.

30th Jan  2016 A. Dotti   (tracking-V10-02-02)
- G4VTrajectory.cc: Added std::endl at end of ShowTrajectory.

18th Jan  2016 A. Dotti   (tracking-V10-02-01)
- New G4Multi{Stepping,Tracking}Action to allow multiple user-actions in
 the same job

27th January 2016 M. Asai (tracking-V10-02-00)
- G4SteppingManager.cc: Set OriginTouchableHandle for primary track.
  Addressing to Bug report #1773.

26th June 2015 J. Allison (tracking-V10-01-01)
- G4RichTrajectory.cc: Coverity fix.

20th May 2015 J. Allison (tracking-V10-01-00)
- Added Creator Model ID and Creator Model Name to G4Atts of G4RichTrajectory.

4th June 2014 L. Desorgher (tracking-V10-00-00)
-Corrections in G4AdjointSteppingAction and G4AdjointTrackingAction  to have
 the treatment of adj and forward tracks in the same event

29th November2013 M.Asai (tracking-V09-06-10)
- G4VTrajectory::ShowTrajectory() : add missing \\n.

28th November2013 M.Asai (tracking-V09-06-09)
- G4SteppingManager::fTouchableHistory data member is cleared in the
  destructor to avoid double-deletion in MT mode.

21st November2013 J.Perl (tracking-V09-06-08)
- G4TrackingManager : Add handling for StoreTrajectory new case 4

21st November2013 M.Asai (tracking-V09-06-07)
- G4TrackingMessenger : Move invokation with G4TransportationManager
  in G4VisCommandsSceneAdd.cc to this G4TrakingMessenger.
  Since G4TransportationManager is thread-local,
  G4VisCommandsSceneAdd.cc cannot access to G4TransportationManager.

3rd November2013 L.Desorgher (tracking-V09-06-06)
-G4AdjointTrackingAction. Change order of initialization in constructor to
  avoid compilation warning.

31th October2013 L.Desorgher (tracking-V09-06-05)
-Create G4AdjointTrackingAction and modify G4AdjointSteppingAction in order to
treat the reverse tracking of an adjoint particle and tracking of its
equivalent forward particle in the same event.This is requested for the
migration of the ReverseMC to the MT mode.

29th August 2013 M.Asai (tracking-V09-06-04)
- Add protection against null pointer for the process manager of
  secondaries in case secondaries are generated at zero kinetic energy.

11th April 2013 G.Cosmo (tracking-V09-06-03)
- Cleanup of automatic changes for MT in classes: G4RichTrajectory,
  G4RichTrajectoryPoint, G4SmoothTrajectory, G4SmoothTrajectoryPoint,
  G4Trajectory, G4TrajectoryPoint.

5th February 2013 Takashi Sasaki (tracking-V09-06-02)
- Fix for the problem report #1397. More than two AtRest
  processes are allowed. Needs checks for the results.

11th January 2013  Gabriele Cosmo (tracking-V09-06-01)
- Replace plain printout to cerr with G4Exception warning in
  G4SteppingManager::InvokeAtRestDoItProcs().
  Addressing problem report #1421.

3rd December 2012  John Allison (tracking-V09-06-00)
- Removed DrawTrajectory(G4int i_mode).

26 October 2012 Laurent Desorgher (tracking-V09-05-04)
- G4AdointSteppingAction.cc. Add test for adjoint particle reaching "out_of_the_world".

3rd July 2012  John Allison (tracking-V09-05-03)
- G4Rich/SmoothTrajectory(Point).hh:
  o Fixes for Coverity warnings.

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

24 May 2012 G.Cosmo (tracking-V09-05-01)
- Fixed trivial cases of variable shadowing.

17 January 2012 G.Cosmo (tracking-V09-05-00)
- Remove not defined method GetNavigator() and moved SetNavigator() to public.

23 September 2011 J.Allison (tracking-V09-04-06)
- G4RichTrajectoryPoint: Added Pre and PostStepPointWeight.
- Fixed bug in copy constructor (volume touchable handle was not copied).

15 September 2011 J.Allison (tracking-V09-04-05)
- G4RichTrajectoryPoint: Added Pre and PostStepPointStatus.

16 June 2011 T.Sasaki (tracking-V09-04-04)
- "Conditonally" in G4ForceCondition nore suppoted

16 June 2011 G.Folger (tracking-V09-04-03)
- stepStatus is not used, but fpSteppingManager->Stepping() improves
    performance ;-)

9 June 2011 T Sasaki(tracking-V09-04-02)
- stepStaus is no more used in G4TrackingManager.cc

20 May 2011 Ben Morgan (tracking-V09-04-01)
- CMakeLists.txt : Added G4TRACKING_ALLOC_EXPORT compiler definition via
  add_definitions so it's applied to all sources in this module.

5 May 2011 Makoto Asai (tracking-V09-04-00)
- Fixed setting of 'fWorldBoundary' step status in G4SteppingManager
  InvokePostStepDoItProcs() and DefinePhysicalStepLength().

18 November 2010 John Allison (tracking-V09-03-09)
- G4Trajectory, G4SmoothTrajectory:
  o Reverted to original interface: DrawTrajectory(G4int i_mode = 0).
    See 16 June 2010.  It seems G4Trajectory, G4SmoothTrajectory were
    not done.

27 October 2010 Gabriele Cosmo (tracking-V09-03-08)
- Restored DLL setup as originally. Withdrawn changes in last tag.

19 October 2010 Gabriele Cosmo (tracking-V09-03-07)
- Replaced G4TRACKING_ALLOC_EXPORT flag with G4ALLOC_EXPORT for DLL exported
  symbols.

6 October 2010 Hisaya Kurashige (tracking-V09-03-06)
- Modified G4SteppingManager::GetSecondary() to give const G4TrackVector*
  (co-work with track-V09-03-05)

19 July 2010 Gabriele Cosmo (tracking-V09-03-05)
- Added dummy initialisation to members in constructors in classes:
  G4AdjointSteppingAction, G4UserSteppingAction, G4UserTrackingAction
  and G4VSteppingVerbose.
- G4SteppingManager:  and use canonical form for G4Exception.
  Added protection for possible negative index in method ApplyProductionCut()
  and some printout formatting.
- Added redundant return statement after exception in G4SteppingManager2.
- Fixed restoring of output settings in G4SteppingVerbose.
- Use 0 instead of NULL where applicable.

16 June 2010 John Allison (tracking-V09-03-04)
- G4VTrajectory, G4Trajectory, G4SmoothTrajectory:
  o Reverted to original interface: DrawTrajectory(G4int i_mode = 0).
    This to prevent compiler warnings about hiding.  We will
    re-instate DrawTrajectory() at a future major release.
  o Deprecation message is printed via G4Exception only once, and only
    if a user invokes with a non-zero value of i_mode.

29 May 2010 John Allison (tracking-V09-03-03)
- G4VTrajectory:
  o Added virtual void DrawTrajectory() in preparation for i_mode migration.
- G4Trajectory and G4SmoothTrajectory: followed the above.
  o (G4RichTrajectory inherits G4Trajectory so no need to change.)

28 May 2010 John Allison (tracking-V09-03-02)
- G4VTrajectory.cc: Added explicit once-only i_mode deprecation warning.

13 May 2010 John Allison (tracking-V09-03-01 - needs greps-V09-03-00)
- G4VTrajectory.cc: Added a statement to set IsDefaultDrawTrajectory,
  to assist deprecation of i-mode trajectory drawing parameter.  After
  10.0, it can be removed.

22 Feb 2010 John Allison (tracking-V09-03-00)
- G4RichTrajectory: Fixed bug in MergeTrajectory (should not invoke
  G4Trajectory::MergeTrajectory).
- G4RichTrajectory and G4RichTrajectoryPoint:
  o Eliminated spaces in G4AttValue values.
  o G4AttValue values are "None" for attributes derived from zero pointers.

24 Nov 2009 Joseph Perl (tracking-V09-02-07)
- G4RichTrajectory: add additional attributes
- G4RichTrajectoryPoint: add additional attributes

20 Nov 2009 L.Desorgher (tracking-V09-02-06)
- Small correction in G4AdjointSteppingAction to stop the reverse tracking
  when adjoint particles reenter the adjoint source.
  Reput the Nan test removed in  tracking-V09-02-05 but now as (x<0 && x>=0).
  This Nan test is still needed in very rare case where the weight of a
  particle goes to Nan. As such the code is stable! The reason for the Nan
  weight is till under investigation.

18 Nov 2009 G.Cosmo (tracking-V09-02-05)
- Fixes to "Adjoint" classes to allow build of DLLs on Windows: renamed all
  methods and data holding "External" as keyword to "Ext".
  Cleanup of the code: use "const G4String&" instead of "G4String" wherever
  possible; use G4 types in consistent way; avoid usage of "isNan"; code
  formatting cleanup; added Geant4 disclaimer.

12 Nov 2009 J.Allison (tracking-V09-02-04)
- G4Trajectory, G4SmoothTrajectory, G4RichTrajectory:
  o Added initial kinetic energy.
- G4RichTrajectory:
  o Added final kinetic energy.
- G4RichTrajectoryPoint:
  o Added "remaining energy" at each step.

10 Nov 2009 L. Desorgher(tracking-V09-02-03)
- First commit of Adjoint classes in the tracking category
  New classes are: - G4AdjointCrossSurfChecker and G4AdjointSteppingAction

24 Sep 2009 P.Gumplinger (tracking-V09-02-02)
- Correction to G4SteppingManager::InvokeAtRestDoItProcs so G4Scintillation
  process (with an AtRestDoIt and 'Forced') will not be set to 'NotForced' when
  NofInactiveProc<MAXofAtRestLoops and when the user inactivated it on the fly.

21 Sep 2009 T.Sasaki (tracking-V09-02-01)
- Takashi's first iteration of the above

27 Feb 2009 T.Sasaki(tracking-V09-02-00)
- Fixing the problem in the the special cases of skipping voxel boundaries in
G4RegularNavigation

08 Doc 2008  M.Asai (tracking-V09-01-04)
- Fixing bug of fN2ndaries variables in G4STeppingManager2.cc

02 Oct 2008  T.Sasaki (tracking-V09-01-03)
- G4SteppingManager2.cc: PhyscalStep etc was not updated when
  any flaga for ForceCondition is set. (since begining of Geant4)

25 Sep 2008  T.Sasaki (tracking-V09-01-02)
- G4SteppingManager2.cc: Bug fix for the previous tag

24 Sep 2008  T.Sasaki (tracking-V09-01-01)
- G4SteppingManager2.cc: Bug fix for PhysicalStep

06 May 2008  T.Sasaki (tracking-V09-01-00)
- G4SteppingManager.cc: fTouchableHandle was not properly updated

08 Oct 2007 T.Sasaki (tracking-V09-00-01)
- G4SteppingManager.hh: use kCarTolerance in CalculateSafety() instead of zero

04 Oct 2007 T.Sasaki (tracking-V09-00-00)
- G4SteppingManager: fix to use kCarTolerance in Stepping() for the
  computation of 'endPointSafety'.

9th May 2007 M.Asai (tracking-V08-03-00)
- Allowing regional user stepping action.

13 November 2006 T.Sasaki (tracking-V08-01-06)
- Removed G4VSteppingVerbose::TrackBanner()  and add new methed
  G4TrackingManager::TrackBanner() for the fix.

04 November 2006 M.Asai
- Added new method G4VSteppingVerbose::TrackBanner() and moved the
  hard-coded verbosity in G4TrackingManager to this method. Also
  modified G4SteppingManager to invoke this new method.

3rd November 2006 J.Allison (tracking-V08-01-05)
- Augmented /tracking/storeTrajectory.  Now takes integer parameter:
    0 : Don't Store trajectories.
    !=0 : Store trajectories.
    1 : Choose G4Trajectory as default.
    2 : Choose G4SmoothTrajectory as default.
    3 : Choose G4RichTrajectory as default.

16 October 2006 J.Allison
- All trajectories:
  o Protect points container pointer in destructor.
  o Make G4AttDef descriptions more concise.
- G4RichTrajectory:
  o Bug fix: Create G4AttValues for user-defined creator process.
- G4VTrajectory: Improved ShowTrajectory.

27 September 2006 M.Asai (tracking-V08-01-04)
- Fix in G4SteppingManager for the treatment of trajectory update
- According fixes in the trajectory classes.

14 August 2006 M.Asai (tracking-V08-01-03)
- Fix "double-deletion" in the destructor of G4SteppingManager.

13 July 2006 T.sasaki (tracking-V08-01-02)
- Fix on G4StepingVerbose for ForceConditions

09 June 2006 T. Sasaki
- Secondary vector is now owned by G4Step and G4TrackVector class has
  been moved in the track category

15 June 2006 G. Cosmo (tracking-V08-00-04)
- Fixed implementation of static methods in G4VSteppingVerbose to be
  NOT inline. Required also to allow DLL working on Windows !

02 June 2006 G. Cosmo (tracking-V08-00-03)
- Restored original CVS headers to files...

30 May 2006 G. Cosmo (tracking-V08-00-02)
- Fixed online implementation of SetSilent() and SetSilentStepInfo()
  in G4VSteppingVerbose.

24 May 2006 T. Sasaki (tracking-V08-00-01)
- New flags are introduced in G4VSteppingVerbose to give more control
24 May 2006 T. Sasaki
- a bug fix for StepStatus when the track is outside of WorldBoundary
- New header was inserted to all of the files to check the last update
09 March 2006 T. Sasaki
- Added Silent and SilentStepInfo member to G4VStepverbose

24 November 2005 J. Allison (tracking-V07-01-05)
- Added G4RichTrajectory and G4RichTrajectoryPoint.
- Updated comments in G4VTrajectory.hh and G4VTrajectoryPoint.hh
22 November 2005 M. Asai (tracking-V07-01-04)
- Put G4Exception to the constructors of G4UsertrackingAction and G4UserSteppingAction
  to protect against their instantiation before G4VUserPhysicsList is instantiated and set to
  G4RunManager.
21 November 2005 M. Asai (tracking-V07-01-03)
- Migration to sstream.

14 November 2005 Jane Tinslay (tracking-V07-01-02)
- Modifications to G4VTrajectory::DrawTrajectory for enhanced
  trajectory drawing.

21 September 2005 T. Sasaki(tracking-V07-01-01)
- fix for fastsimulation problem in G4SteppingManager2.cc
19 July 2005 T. Sasaki (tracking-V07-01-00)
- fix for the bug in InvokeAlongStepDoItProcs()
3rd May 2005  John Allison  (tracking-V07-00-01 - needs greps-V07-00-04)
- Corrected AttDefs.
- Made use of G4AttCheck.

22 April 2005  T. Sasaki  (not included in tracking-V07-00-01)
- SetNavigator Method has been removed from G4TrackingManager

22 March 2005 John Allison (tracking-V07-00-00 - needs global-V07-00-03)
- Simplified creation of G4AttValues using G4BestUnit::operator
  G4String and G4UIcommand::ConvertToString.

07 December 2004 Gabriele Cosmo (tracking-V06-02-09)
- Implemented migration to <cmath>.

01 December 2004 Gabriele Cosmo (tracking-V06-02-08)
- Fix in G4SteppingManager::InvokePSDIP() for completing migration
  to new G4VParticleVhange interface.

18 November 2004 Joseph Perl (tracking-V06-02-07)
- G4Trajectory add HepRep attribute for magnitude of momentum
- G4SmoothTrajectory add HepRep attribute for magnitude of momentum

Nov.18,2005 T.Sasaki(tracking-V06-02-06)
- G4SteppingManager2.cc Fix on interactive on/of for AtRest processes
Nov.16,2005 T.Sasaki(tracking-V06-02-05)
- G4SteppingManager2.cc  change the track status to StopAndKill when a track looses all kinetic energy cumlatively while the AlongStep loop
Nov.10,2004 T.Sasaki(tracking-V06-02-04)
- G4SteppingVerbose forced to be singleton.
- G4SteppingManager no more issue G4Excetpion even if no atRestDoit proccesses exit.
- G4SteppingManager change the track status to G4StopButAlive if the kinetic energy becomes below zero while AlongStep loop.

Aug.27, 2004 M.Asai (tracking-V06-02-03)
- G4SteppingManager now looks at "preStepPoint" for the sensitivety of the
  volume instead of the logical volume through G4Track.

Jul.08, 2004 K. Amako  (tracking-V06-02-02)
- Modified G4SteppingVerbose.cc so that PostStep information is printed out
  even when PostStep process is triggered by AlongStep process.

Jul.06, 2004 M.Asai (tracking-V06-02-01)
- Remove the modification along tracking-V06-00-00 tag for G4SteppingManager2.cc
  and let a fix on it be on top of this.
- The fix is for incorrect total number of secondaries.

Jul.05, 2004 G.Cosmo (tracking-V06-02-00)
- Moved inlined contructors/destructors for G4Vtrajectory and G4VTrajectoryPoint
  to NOT inline. Created G4VtrajectoryPoint.cc file.
  Corrected signature of operator==() to canonical implementation.

Jun.11, 2004 G.Cosmo (tracking-V06-01-02)
- Use global flag G4TRACKING_ALLOC_EXPORT to export extern symbols for DLLs.
  Modified GNUmakefile and rearranged usage of extern symbols in classes.

Jun.09, 2004 G.Cosmo (tracking-V06-01-01)
- Adopt G4DLLIMPORT/G4DLLEXPORT technique to handle extern simbols for
  allowing support of DLLs on Windows.
- Coworks with "global-V06-01-02b".

Jun.07, 2004 G.Cosmo (tracking-V06-01-00)
- Export extern symbols for allowing support of DLLs on Windows.
  Modified files:  G4Trajectory.hh, G4TrajectoryPoint.hh,
                   G4SmoothTrajectory.hh, G4SmoothTrajectoryPoint.hh.
- GNUmakefile: added definition of GLOBLIBS for DLLs support on Windows.
- Coworks with "global-V06-01-02a".

Mar.19, 2004 M.Asai (tracking-V06-00-01)
- G4SteppingManager2.cc has been restored back to the version in
  geant4-06-00. The tag tracking-V06-00-00 was meant to be internal
  but eventually it was included in the reference tag.

Jan.20, 2004 M.Asai (tracking-V06-00-00)
- Remove obsolete operation for UserLimits in G4SteppingManager2.cc.

Dec.09, 2003 M.Asai (tracking-V05-02-05)
- G4SteppingManager.hh : Fix problem in SetUserAction().

Nov.18, 2003 M.Asai (tracking-V05-02-04)
- G4TrackingManager.cc: Move the invokation of PreUserTrackingAction
  after SetInitialStep, so that geometrical infomation is available
  at PreUserTrackingAction.

Nov.10, 2003 G.Cosmo (tracking-V05-02-03)
- G4SteppingManager.cc: renamed method LocateGlobalPointAndSetup(p,v,history) to
  to ResetHistoryAndLocate(p,v,history) according to changes in G4Navigator.

Oct.4, 2003 G.Cosmo (tracking-V05-02-02)
- GNUmakefile:
  o added dependency to new module "geometry/navigation".
  o replaced "digits+hits" with "digits_hits".
- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".

Sept. 25, 2003 H.Kurashige (tracking-V05-02-01)
- modify GNUMakefile for processes/cuts category

Sept. 19, 2003 V.Ivanchenko (tracking-V05-02-00)
- migrade to model variant of EM physics

May 23, 2003 M.Asai (tracking-V05-01-01)
- Clean up unused variables in trajectory classes.

May 21, 2003 M.Asai (tracking-V05-01-00)
- Clean up unused variables in user action classes.

Apr 11, 2003 M.Asai (tracking-V05-00-03)
- Recover "ApplyCuts" under "cuts-per-region"

Apr 10, 2003 T.Sasaki (tracking-V05-00-02)
- G4SteppingManger2.cc: Fix for the uninitilized variable
Mar 17, 2003, G.Cosmo (tracking-V05-00-01)
- G4SteppingVerbose.cc: fixed retrieval of phys-volume name, adding
  check for NULL pointer for post-step physical volume returned.

Dec 16, 2002, G.Cosmo (tracking-V05-00-00)
- Merged branch "geant4-04-01-ref-02-cuts-branch" to HEAD.
  Included development for 'cuts-by-region':
  o Modified implementation of stepping to cope with new scheme for
    cuts and regions.

Dec 12, 2002, G.Cosmo (tracking-V04-01-15)
- G4SteppingVerbose.cc: undo change introduced in tag "tracking-V04-01-07", where
  call to CopyState() in TrackingStarted() method was commented out, probably by
  mistake (?).
  The patch fixes the crash observed while running largeN test on test14.

Dec 12, 2002, G.Cosmo (tracking-V04-01-14)
- Corrected problem introduced in the last tag and concerning the usage of abs()
  (not defined of the std namespace!), causing compilation error on Windows.

Dec 6, 2002, J.Allison (tracking-V04-01-13)
- Last minute fix to G4VTrajectory::DrawTrajectory.

Dec 6, 2002, J.Allison (tracking-V04-01-12)
- Fixed unprotected pointer in G4SmoothTrajectoryPoint::CreateAttValues.

Dec 4, 2002, T.Sasaki (tracking-V04-01-11)
- static Get/SetInstnce methods has moved to .cc from .hh.

Nov 18, 2002, M.Asai (tracking-V04-01-10)
- Tagged.

Nov 11, 2002, J.Allison
- Restored G4SmoothTrajectory::DrawTrajectory.

Nov 8, 2002, M.Asai (tracking-V04-01-09)
- Tagged for Geant4 5.0 release

Nov 8, 2002 J.Generowicz
- Bodies introduced into SmoothTrajectory(Point) classes

Nov 8, 2002, J.Allison
- Implemented default Show/DrawTrajectory in G4VTrajectory.
- Augmented GetAttDefs and CreateAttValues in G4(Smooth)Trajectory(Point).

Nov 07, 2002, T,Sasaki (tracking-V04-01-07, tracking-V04-01-08)
- Fix for the problem with optical processes
Nov 05, 2002, T,Sasaki (tracking-V04-01-06)
- clean up G4SteppingManager.hh and G4VSterppinVerbose.cc

Nov 05, 2002, M.Asai (tracking-V04-01-05)
- tagged.

Nov 05, 2002, J.Generowicz
- Renamed aTrajectory(Point)Allocator to aSmoothTrajectory(Point)Allocator
  in the SmoothTrajectory(Point) classes.

Nov 01, 2002, M.Asai (tracking-V04-01-04)
- Merge tracking-V04-01-03 and tracking-V04-01-02.

Nov 1, 2002, J.Allison  (tracking-V04-01-03 - does not include V04-01-02)
- Canonical tag of traj03 (see below).

Oct 31, 02 T. Sasaki (tracking-V04-01-02)
- G4SteppingManager.hh/cc
 o new ForceCondition flag StronglyForced was implemented

Oct 28, 2002, J.Allison  (traj03)
- Changed GetAttDefs return signature to map.
- Changed GetAttValues to CreateAttValues.
- Improved descriptions.

Oct 24, 02 J.Allison (traj02)
- Implemented simple versions of G4Trajectory::GetAttDefs/Values.

Oct 16, 02 J.Allison (traj01)
- Added GetAttDefs to G4VTrajectory, etc., and small corrections.

Sep 03, 02 M.Asai
- Start working for trajectory related issues
  o Modification made : G4VTrajectory, G4VTrajectoryPoint, G4Trajectory, G4TrajectoryPoint
  o Introduced : G4SmoothTrajectory, G4SmoothTrajectoryPoint

Aug 21, 02 M.Asai (tracking-V04-01-01)
- G4TrackingManager.cc
  o Set fpTrajectory pointer to zero when the trajectory is deleted.

Aug 13, 02 M.Asai (tracking-V04-01-00)
- G4TrackingManager.hh, G4TrackingManager.cc
  o Re-implement EventAborted() method to ensure this command
    properly works even at the stepping phase.

Apr 25, 02 M.Asai (tracking-V04-00-05)
- G4TrackingManager.cc
  o Implement EventAborted() method

Feb 07. 02 T.Sasaki (tracking-V04-00-04)
- G4SteppingManager.cc
  o Withdrawal of the fix in tracking-V04-00-02

Feb 04, 02 G.Cosmo (tracking-V04-00-03)
- G4SteppingManager.hh
  o moved 'SizeOfSelectedDoItVector' to global scope again, to allow porting on
    WIN-VC compiler. As private member, the following error is reported:
    - illegal pure syntax, must be '= 0' -
    - 'SizeOfSelectedDoItVector' : pure specifier can only be specified for functions -

Feb 03, 02 T.Sasaki and H.Kurashige
- G4SteppingManager2.cc
  o fix for extra steps when the ApplyCuts flag is set

Jan 23, 02 T.Sasaki(tracking-V04-00-02)
- G4SteppingManager.cc
  o safe comparison between floating numbers (0.0->DBL_MIN)

Jan 22, 02 M.Asai (tracking-V04-00-01)
- G4SteppingManager.cc
  o Issue G4Exception if a primary track starts outside of the world.

Jan 21, 02 T.Sasaki (tracking-V04-00-00)
- G4SteppingManager[.hh.cc]:
  o Fixed a bug for particles below threshold. Avoid double steps.
    If any of decay process might not set the GoodForTracking flag
    properly, the particle will be killed.
  o moved static variable SizeOfSelectedDoItVector from the global
    to class scope.

Dec 06, 01 G.Cosmo (tracking-V03-02-05)
- G4SteppingVerbose.cc: removed trigraph warning on Linux-g++.

Nov 27, 01 J.Apostolakis (tracking-V03-02-04)
  Correction to the use the touchable Handle for secondary tracks,
       when it is available.
  Now the direction is used in locating a particle (primary or
   secondary) in SetInitialStep. This is in order to assist in
   starting particles that are on/near-to boundaries in the correct
   volume.

Nov 27, 01 J.Apostolakis (tracking-V03-02-03)
  Initial step now uses the touchable Handle of the secondary track,
when it exists and is valid.

  To be useful this tag depends the tag track-V03-02-07,
   which enables touchable handles in secondaries.

Nov 08, 01 G.Cosmo (tracking-V03-02-02)
- Introduced changes for reference-counted touchables (T.Sasaki).
- Removed warnings from Linux-g++ (R.Chytracek).
- Some reformatting (R.Chytracek).

Oct 11, 01 G.Cosmo (tracking-V03-02-00)
- G4VSteppingVerbose.hh: removed redundant inclusion of RW wrapper header.

Jun 06, 01 G.Cosmo (tracking-V03-01-02)
- G4SteppingManager.cc: explicitly initialise values to zero in STL
  collections fSelectedAtRestDoItVector, fSelectedAlongStepDoItVector, and
  fSelectedPostStepDoItVector in G4SteppingManager default constructor.
  This overcomes warnings detected on HP-aCC.

May 10, 01 T.Sasaki (tracking-V03-01-01)
- fix for a suspneded track's vertex info.

May 03, 01 T.Sasaki/J.Allison (tracking-V03-01-00)
- G4TrackingMessenger* messenger moved to the class scope in G4TrackingManager.
- Changes for greps-V03-01-01 (elimination of RW) in G4Trajectory.cc.

Feb 09, 01 T.Sasaki (tracking-V03-00-05)
- Fix for linux etc.

Feb 08, 01 T.Sasaki (tracking-V03-00-03)
- STL migration: get rid of most of RW vectors

Feb 05, 01 G.Cosmo (tracking-V03-00-02)
- STL migration for G4OrderedTable and G4DataVector.
  Modified files: G4VSteppingVerbose.hh.

Jan 12, 01 T.Sasaki (tracking-V03-00-01)
- correction of class description

Nov 04, 00 T.Sasaki (tracking-V02-00-02)
- G4TrackingManager.icc has been modified for new biasing schme
- Descriptions are added too header files

Aug 30, 00 T.Sasaki (tracking-V02-00-01)
- Protection for no AtRestDoIt procs.

June 2, 00 M.Asai (tracking-01-01-01)
- Add SetUserTrackInformation(G4VUserTrackInformation*) to
  G4TrackingManager
- Fix problems in deleteing Touchable in G4SteppingManager (Hisaya)

Hune 1, 00 H.Kurashige
- Add "const" to all G4VTouchable pointer

Jan 23, 00 T.Sasaki
- GetCurrentValue() in G4TrackingMessenger.cc have a return value
- SetUserAction in G4SteppingManager.hh protected null pointers

Oct 22, 99 T.Sasaki G4SteppingMangaer.cc fixed the UserLmit problem

Oct 13, 99 T.Sasaki updated G4SteppingVerbose and G4VSteppingVerbose

Jun 29, 99 G.Folger have the ctor always assign a SteppingVerbose to fVerbose

Apr 15, 99 M.Asai (tracking-01-00-03)
- Make arguments in user action classes take const pointers.
- Make trajectory and trajectory point as derivable classes.

Mar 23, 99 T.Sasaki    (tracking-01-00-02)
- Fix for precision problem of safety in SteppingManager by John Apostolakis
- G4VSteppingVerbose is introduced

Feb 18, 99 T.Sasaki (tracking-01-00-01)
- ShowStep() method was moved from G4Step to G4SteppingVerbose

Nov 25, 98 T.Sasaki    (tracking-00-04-03)
- Fix to G4SteppingManager.cc to set proper 2ndary numbers.

Nov 17 ,98 H.Kurashige (tracking-00-04-01)
- Fixed treatment of safety in case of ApplyCuts flag is ON

August 25, 98 G.Cosmo (tracking-00-02-01)
- Minor fix to G4SteppingManager.hh, G4SteppingVerbose.hh
  and G4TrackVector.hh.
  Angle brackets should be used for inclusion of RW classes!

July  1, 98 K. Amako
- Tag for tracking-00-07-02. This includes the following features.
- Because J. Apostolakis changed  the way to calcluate safety in the
  transportation AlongStepGPIL, the way to set safety of the PostStepPoint
  was modified. Except the first step, the safety of the PreStepPoint
  is also valid in this scheme.
- The coherent energy cut scheme is implemented. This means that
  the energy of a secondary particle is checked against the energy
  cut value and also safety. Also the 'GoodForTracking' flag is
  checked. A warning message will be issued if a secondary particle
  has illegal status (i.e. below energy cut and 'GoodForTracking' is off).
  Because processes don't set properly the 'GoodForTracking' yet, this
  waning message is temporary suppressed in the current tag.

June 22, 98 J.Apostolakis

- Added fix to implementation of new scheme of 'Safety'.

June 16, 98 P.Urban                      -- recorded by J. Apostolakis

- Added changes for tracking optimisation.  (Merged from branch)
- tagged tracking-00-06-03.

June 11, 98 G.Cosmo (tracking-00-06-02)
- Tagged tracking-00-06-02.
  Includes changes by P.Mora de Freitas and M.Asai which were missing in
  the previous tag.

June 6, 98  M.Asai
- GNUmakefile is modified to correspond to the new "digits+hits" structure.

Jun  3, 98  P.Mora de Freitas/M.Verderi
- Implement new scheme of 'Safety' where it becomes the 'range within
  the assumptions of all processes are valid'. In the G4SteppingManager
  GetPIL loop the safety becomes "competitive" like the step limitation.
  This means that at the begining of every step the G4SteppingManager
  will initialize it to DBLMAX and that processes can only decrease it.

May 22, 98  T.Sasaki
- Verbose codes are separated from SteppingManager. 2 files are aded.
April 21, 98 G.Cosmo (tracking-00-05-01)
- Tagged.

April 12, 98 H.Kuraashige
- Implement new scheme of 'Particle Change'. Please see
  particle_change.asc in geant4alpha/documents/particles+matter/.
  G4SteppingManager.hh,  .cc have been modified.

April 9, 98 G.Cosmo
- Porting on DEC-cxx 6.0.
  Removed meaningless usage of "const" qualifier from functions
  return type for basic types by value. Modified files: G4Trajectory.hh

March 18, 1998 K. Amako
  Add following information to G4Track:
     1.Momentum direction at the start point (vertex position) of the track
     2.Kinetic energy at the start point (vertex position) of the track
     3.Pointer to the process which created the current track
  Due to this, the following files have modififed and committed.
     1.NewDesignDoc.txt
     2.G4Track.hh, G4Track.cc
     3.G4SteppingManager.cc

January  29, 97 K. Amako
  Following changes have been done and committed/tagged to cvs.
  Tag# is tracking-00-03-01.
    - G4SteppingManager.cc: Corrected so that the verbose
      'AlongStepDoItAllDone' is invokded after the 'safety' update.
    - G4SteppingManager.cc: Added a comment in the 'G4Step Information'
      table of the verbose output of 'AlongStepDoIt (process by process)'
      so that 'safety' value in it is not updated yet.
    - G4TrackingMessanger.cc: Help for verbose has been updated.


December 19, 97 G. Cosmo - (alpha03)

- Created.
