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

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

## 2024-10-08 Jonas Hahnfeld (transport-V11-02-00)
- Introduce `TRANSPORTATION_WITH_MSC` process sub type

## 2023-01-26 John Apostolakis (transport-V11-01-02)
- Added a method to set both warning & important energies in G4TransporationParameters
  Added method to report lock errors.
  Improve reporting of inconsistent changes of 'warning' & 'important' energies
    (not only enforce warning_E < important_E but also warn about violations.)

## 2023-01-25 John Apostolakis (transport-V11-01-01)
- Fix unwanted change of default looper parameters.
  ( Reversed inadvertent creation of G4TransportationParameters in
    calls to G4Transportation constructor.)

## 2023-01-09 Jonas Hahnfeld (transport-V11-01-00)
- Fix compilation warning about unused variable without `G4VERBOSE`.

## 2022-11-25 Gabriele Cosmo (transport-V11-00-10)
- Removed debug printouts in G4Transportation.

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

## 2022-11-10 John Apostolakis (transport-V11-00-08)
- New class G4TransporationParameters to hold looper parameters & others.
  This is a class to be created in master and hold the values of all looper 
  parameters for G4Transportation and derived classes.
  * G4Transporation's  constructor checks for the existence of a default 
    instance. If found, its values will be assigned to the corresponding
    data members of G4Transporation.
    This behaviour is inherited by subclasses (using this constructor).
  * The (default) 'instance' of G4TransportationParameters should be
    shared by all threads, and used for all particle types.
    These values could be subsequently changed - e.g. in User Actions.
  * The G4TransporationParameters object (instance) is current unique.
    ( Future extensions are envisioned that allow an object of this  
      to be associated with a separate instance of G4Transportation assigned 
      to one or more particle types, e.g. electrons, or muons and positrons. )

## 2022-10-05 Gabriele Cosmo (transport-V11-00-07)
- Fixed compilation warnings on Intel/icx compiler for variables set
  but not used.

## 2022-05-18 Gabriele Cosmo (transport-V11-00-06)
- `G4Transportation`, `G4CoupledTransportation`: fixed misuse of bitwise '|'
  operator instead of logical.

## 2022-05-11 Jonas Hahnfeld (transport-V11-00-05)
- `G4Transportation`: Remove non-working check for any field
- Remove `PUBLIC` dependency on `G4magneticfield`, `G4navigation`

## 2022-04-24 Vladimir Ivanchenko (transport-V11-00-04)
- moved G4UserSpecialCuts to physics_lists/constructors/limiters
- GNUmakefile, source.cmake - removed dependence on electromagnetic/utils 

## 2022-04-20 Jonas Hahnfeld (transport-V11-00-03)
- `G4CoupledTransportation`: Set flags from `G4Transportation`
  * Replace `fFirstStepInAnyVolume` with `fFirstStepInVolume`
  * Replace `fAnyGeometryLimitedStep` with `fGeometryLimitedStep`
  * Remove wrong check in case of zero steps
- `G4Transportation`:
  * Remove wrong check in case of zero steps
  * Set step status on volume boundary

## 2022-01-17 Jonas Hahnfeld (transport-V11-00-02)
- Remove useless `const_cast` of `G4VSensitiveDetector`

## 2022-01-05 Jonas Hahnfeld (transport-V11-00-01)
- `G4CoupledTransportation`:
  * Use new constant `G4TransportationManager::kMassNavigatorId`
  * Inherit from `G4Transportation`, remove duplicated variables and methods

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

---

# History entries prior to 11.0

Sep 23rd 2021, Alberto Ribon transport-V10-07-03
----------------------------
- Added PARALLEL_WORLD_PROCESS to G4TransportationProcessType
  (to avoid hardwired value "491" in the constructor of class
   G4ParallelWorldProcess).

Apr 16th 2021, Ben Morgan transport-V10-07-02
-------------------------
- Migrate build to modular CMake API

Feb 24th 2021, G. Cosmo transport-V10-07-01
-----------------------
- Enable setting of smooth curved trajectories to particle-change in
  G4CoupledTransportation::AlongStepDoIt(), which was commented out by
  mistake. Based on discussion in Geant4 Forum thread #4271.

Dec 16th 2020, G. Amadio transport-V10-07-00
------------------------
- Limit reporting of number of calls to G4Transportation::AlongStepDoIt()
  to when either G4VERBOSE or G4DEBUG_TRANSPORT is defined, which allows to
  avoid using a thread local variable for a slight performance gain.

Oct 26th 2020, G. Amadio & J.Apostolakis transport-V10-06-00
----------------------------------------
- A substantial reorganisation of G4Transportation::AlongStepGPIL
  to use values already in cache, reduce the number of branches, and
  use extra local variables for track properties to avoid indirections.
  The method is one of the heaviest in many types of simulation workloads.
  Profiling identified a persistent reduction in misses of instruction-TLB
  loads after these changes.

Nov  1st 2019, J.Apostolakis transport-V10-05-02
----------------------------
- Optimisation in G4Transportation and G4CoupledTransportation:
  Avoid calling user field manager's ConfigureForTrack method,
  except if particle is charged, or forces from magnetic moment
  or gravity are enabled.

  * Introduces new common 'flag' in G4(Coupled)Transportation
      to enable gravity fields.
    The following static method must be called if the application uses
    gravity fields:
       G4Transportation::EnableGravity(G4bool useGravity)

- Added flag in G4Transportation/G4CoupledTransportation to
   silence warning about looping tracks.

Aug 15th 2019, D.Sorokin transport-V10-05-01
------------------------
- Enable relaxing of delta chord condition (to reduce looping particle
    issue) for tracks below 'important' energy threshold.

Aug 15th 2019, J.Apostolakis transport-V10-05-00
----------------------------
- G4Transportation and G4CoupledTransportation: fix issues related to
    resetting of looper flag and other state for field propagation.
    * Replaced check for 'Global' field with check for any field.
      This is needed to ensure that propagator-in-field state is
      reset when the setup inludes only local fields.
    * Ensure that looping flag is reset (false) when a force is not exerted
      in G4CoupledTransportation::AlongStepGetPhysicalInteractionLength
      ( Before it was overwritten afterwards. )

   Addresses bugzilla Problem report 2144.
   Thanks to Richard T. Jones (U. Conn) and Laurie Nevay (RHUL) of the
     GlueX experiment team.

Nov 9th  2018, J.Apostolakis transport-V10-04-13
----------------------------
- G4Transportation and G4CoupledTransportation:
    Added method SetLowLooperThresholds for low-E applications.
    Added method ReportLooperThresholds method to print the values.
- G4CoupledTransportation: Additional statistics for loopers
     (to be same as G4Transportation).
- G4TransportationLogger: New ReportLooperThresholds() method.

Nov 9th  2018, G.Cosmo transport-V10-04-12
----------------------
- Use G4cout to print statistics from G4[Coupled]Transportation.

Nov 8th  2018, J.Apostolakis transport-V10-04-11, 10
----------------------------
- G4[Coupled]Transportation: Added extra simple statistics, print stats
  at destruction:
   * New stats: non-electrons loopers killed (sum E, number, max E & its pdg)
   * Record statistics for non-electron loopers killed:
     - total energy
     - maximum energy and the PDG of the type of that track
   * Statistics now printed by a new method,
      and are printed also if verbose = 0  ( was > 0 )
   * Description method, to print key parameters (i.e. for loopers)

Nov 8th  2018, J.Apostolakis transport-V10-04-09
----------------------------
- G4Transportation & G4CoupledTransportation:
  Summary:
     Restored old default energy thresholds for loopers - but only stable particles killed.
  Full information:
  * Added method SetHighLooperThresholds() to restore old default
    parameters for killing looping particles:
     - warning energy to 100 MeV ( particles below this killed silently )
     - important energy to 250 MeV ( above, tracks are given multiple chances)
  * Default constructors now use these high values.
  * Added checks in SetMethods of looper parameters for the presence of Logger
     to report error if logger is missing.
  * New auxiliary methods PushThresholdsToLogger(), ReportMissingLogger()

Nov 7th  2018, J.Apostolakis transport-V10-04-08, 07
----------------------------
- G4Transportation & G4CoupledTransportation:
  * Adjusted killing of looping particles, to apply only to stable particles.
  * Unstable particles will be propagated indefinitely.
  * Added Printing the maximum energy and sum of energies of particles 'saved'
    in G4(Coupled)Transportation destructor.

July 9th  2018, G.Cosmo transport-V10-04-06
-----------------------
- Minor code cleanup in G4[Coupled]Transportation classes.
  Use G4Exception for warnings, instead of streaming to cout/cerr.

June 15th  2018, G.Cosmo transport-V10-04-05
------------------------
- Fixed Coverity warnings...

June 15th  2018, G.Cosmo transport-V10-04-04
------------------------
- Fixed compilation errors on Windows.

June 14th  2018, J.Apostolakis transport-V10-04-03
------------------------------
- New class G4TransportationLogger to consolidate reports from the
  Transportation processes. First step: it now issues the warning Exception
  for looping tracks. Added information on material density, step length.
- G4Transportation and G4CoupledTransportation: changed default threshold from
  0 to 1 keV for warning when abandoning looping tracks.
  Tracks with less energy do not get reported.
  Use G4TransportationLogger to report looping tracks.

June  8th  2018, J.Apostolakis transport-V10-04-02
------------------------------
- Fixed and improved reporting of looping tracks.
  Now issues warning and provides information about position and momentum,
  in addition to energy and its value at pre-step point.

June  8th  2018, G.Cosmo transport-V10-04-01
------------------------
- Some code cleanup in G4Transportation and G4CoupledTransportation.
  Removed few global static symbols introduced in previous tag.

June  7th 2018, J.Apostolakis transport-V10-04-00
-----------------------------
- G4Transportation & G4CoupledTransportation: changed default values of two
  thresholds related to the killing of looping particles:
     'Important' Energy: particles with MORE energy are killed ONLY after
                         multiple steps (fThresholdTrials) marked as 'looping'.
     'Warning'   Energy: particles with LESS energy are killed SILENTLY
     Intermediate value: particles between these energies are killed after
                         one 'looping step' (with warning.)
  New values:  Warning_Energy= 0. Important_Energy= 1.0 * MeV
  NOTES:
   1) This can happen if a track's propagation in field requires a large
      number of integration steps.  ( Default number is 1000, and it is
      accessed by G4PropagatorInField's  Get/Set MaxLoopCount() methods.)
   2) Usually the material is vacuum or very low density material.
      And particles have either low momentum or momentum with a very small
      component along the direction of the magnetic field (zero or nearly zero).

  Improved reporting of the issue of dropped particles (above 'warning'
  threshold'):
    * Provide the type of particle and the position, in addition to
      the energy (already).
    * added recommendations for users if they see the warning.
      (these are printed only for the first 5 warnings).
  Addressing problem report #2063.

November 22st 2017, V.Ivanchenko transport-V10-03-04  (internal)
--------------------------------
- G4NeutronKiller: moved virtual methods from inline to source,
  do not use generic <int> type, should not affect any result.

November 1st 2017, J.Apostolakis transport-V10-03-03
--------------------------------
- Small changes in G4Transportation - early set of 'First' flag.

August 28th 2017, G.Cosmo        transport-V10-03-02
--------------------------
- Make appropriate setting/use of verbosity from base class G4VProcess,
  instead of re-defining/using local verbosity flag in G4Transportation
  and G4CoupledTransportation.
  Addressing problem report #1999.

August 28th 2017, G.Cosmo        transport-V10-03-01
--------------------------------
- Fixed use of G4DEBUG_TRANSPORT flag in G4CoupledTransportation.

August 25th 2017, J.Apostolakis transport-V10-03-00
--------------------------------
- G4CoupledTransportation & G4Transportation: obtain equation of motion
    using dedicated method of ProgatorInField.
    Smaller code, and future proof.

February 12th 2015, J.Apostolakis transport-V10-01-03
--------------------------------
- G4CoupledTransportation:: Made SignifyStepInAnyVolume 'flag' static.
    Stoped using IsLastStepInVolume for step limitation.

January 20th 2015, J.Apostolakis transport-V10-01-02
--------------------------------
- G4CoupledTransportation: Added ability to identify first step in a volume in either
    the mass geometry or in any geometry.  Also added flag for last step in a volume
    in the mass geometry.
    Extends fix of tag transport-V10-01-00.

  Since it is not clear whether user wants/needs to identify the first/last in
    any geometry or just in the mass geometry, allowing this to be a choice:
  Configurable: whether the flag represents a first/last step in mass geometry
  or any geometry (currently the default - what was the case for last step before).
  Also depends in geomnav-V10-01-02 and track-V10-01-00.
  Addresses Bugzilla issue #1032.

January 10th 2014, M.Kelsey transport-V10-01-01
---------------------------
- G4Transportation.cc, G4CoupledTransportation: In
  AlongStepGetPhysicalInteractionLength(), initialize restMass data member
  using G4DynamicParticle (as is used in DoIt), not G4ParticleDefinition.
  Resolves inconsistent kinematics when dynamic mass is measurably different
  from "PDG" mass.

December 17th 2014, J.Apostolakis transport-V10-01-00
---------------------------------
- G4Transportation: Added ability to identify last step in volume for the case of
   propagation in field.
   Requires use of tags in navigation (geomnav-V10-01-02) and track (track-V10-01-00) .
   Addresses Bugzilla issue #1032.

November 21st 2014, J.Apostolakis transport-V10-00-06
--------------------------------- (corrected version of transport-V10-00-04)
- Added initialization of G4CoupledTransportation data members (fixes Coverity issue 15280)
  Renamed data member, to make its name canonical.

October 15th 2014, M.Asai transport-V10-00-05
-------------------------
- G4CoupledTransportation is reverted to transport-V10-00-03.
- G4Transportation and G4CoupledTransportation : made data member
  fUseMagneticMoment and its set method EnableUseMagneticMoment()
  static.

May   27st 2014, V.Ivanchenko transport-V10-00-03
------------------------------
- G4UserSpecialCuts - fixed trivial Coverity report

May   21st 2014, J.Apostolakis transport-V10-00-02
------------------------------
- Revised  AlongStepDoIt methods of G4Transportation and
   G4CoupledTransportation:
   * Adapted to revised signature for G4FieldTrack constructors,
     which now take PDG spin.
   * Changed to use different constructor for G4FieldTrack (no Velocity)
   * Adapted to revised signature of G4ChargeState constructor (PDG spin is
     now 3rd argument and mandatory. )

NOTE: Requires tag field-V10-00-03 of geometry/magneticfield


March 14th 2014, J.Apostolakis transport-V10-00-01
------------------------------
- Fix time in case of zero step, in G4CoupledTransportation.
  This caused a 'going back in time' error, when a zero step occurred
  in particular at the boundary of a parallel world volume when scoring.

  > Corrects Issue 1017 in the Geant4 Problem reporting System
    http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1017

  NOTE: Requires tag geomnav-V10-00-01

October 18th 2013, J.Apostolakis transport-V09-06-07
--------------------------------
- Initialize missing data members in G4CoupledTransportation constructor
  Addresses issue identified by Coverity.

May 13th, 2013, G.Cosmo          transport-V09-06-06
-----------------------
- Removed left-over assert() calls in G4CoupledTransportation.

May 9th, 2013, J.Apostolakis     transport-V09-06-05
----------------------------
- Added protection to revised G4CoupledTransportation for case that chord
  finder (or field manager) is not defined.

May 8th, 2013, P.Gumplinger, J.Apostolakis transport-V09-06-04
------------------------------------------
- Adapted G4Transportation and G4CoupledTransportation to use G4ChargeState
  for charge/spin/magnetic moment, and to message the equation of motion
  directly with it.
  The tag(s) above co-work with and requires the following tags:
  had-binary-V09-06-05, geomnav-V09-06-06 and field-V09-06-04.

Mar. 22nd, 2013, G. Cosmo transport-V09-06-03
-------------------------
- Removed unnecessary static local variables in G4Transportation and
  G4CoupledTransportation.

Mar. 21st, 2013, A. Dotti transport-V09-06-02
-------------------------
- Correcting initialisation of thread-local pointers in G4Transportation
  and G4CoupledTransportation for MT.

Feb. 26th, 2013, G.Cosmo transport-V09-06-01
------------------------
- Removed unused data members in G4Transportation and G4CoupledTransportation.
  Some code cleanup.

Feb. 6th, 2013, G.Cosmo transport-V09-06-00
-----------------------
- G4Transportation.cc, G4CoupledTransportation.cc:
    Corrected condition for warning message in AlongStepDoIt().
    Code cleanup on MT changes.

Jan. 15th, 2013, A.Dotti
------------------------
- Merged changes for multi-threading through automatic process.
  Modified files: G4Transportation.cc and G4CoupledTransportation.cc.

Jul. 12th, 2011, J.Apostolakis transport-V09-05-02
------------------------------
- G4Transportation.cc:
    Corrected issues with initialisation of data members reported by Coverity.
    Renamed data member endpointdistance to fEndPointDistance (to conform).

Jul. 5th, 2012 Gabriele Cosmo transport-V09-05-01
-----------------------------
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

Jun. 7th, 2012 Gabriele Cosmo transport-V09-05-00
-----------------------------
- Fixed spurious cases of hidden variable visibility, detected with
  '-Wshadow' compilation option on gcc compiler.

Nov. 4th, 2011, J.Apostolakis transport-V09-04-13
-----------------------------
- Turned off tracking for magnetic moment - by default.
  It can be enabled in
    G4Transportation, G4CoupledTransportation
  by using the new method EnableUseMagneticMoment().
  Should ensure particles with a moment are not affected
  unless user needs this.

Nov. 4th, 2011, J.Apostolakis transport-V09-04-12
-----------------------------
* Reduce overhead of the addition of Gravity
- G4Transportation: Revised condition for gravity field (version 1).
  G4CoupledTransportation: Revised the field-detection condition,
   with improved logic to cope with ConfigureForTrack (for any field) (v2).
  Deleted dependence on G4UniformGravityField in both.
  Tag coworks with field-V09-04-05

Nov. 1st, 2011, P.Gumplinger transport-V09-04-11
-----------------------------
- add condition to the condition, gravity != NULL, that the particle's mass is
  also restMass != 0.0. Modify G4CoupledTransportation.cc according to
  G4Transportation.cc

Oct. 28th, 2011, P.Gumplinger transport-V09-04-10
-----------------------------
- allow for spin tracking of neutral particles with a magn. moment;
  allow for uniform gravity field tracking of neutral particles;
  tag coworks with field-V09-04-03.

Oct. 28th, 2011, P.Gumplinger transport-V09-04-09
-----------------------------
- remove all special reverence and logic regarding "opticalphoton" from code
  in G4Transportation.cc and G4CoupledTransportation.cc

Aug. 8th, 2011, H.Kurashige  transport-V09-04-08
---------------------------
- Modify calculation of deltaTime for optical photon in Transportation (and CoupledTransportation)
  Use the updated velocity obtained from G4Track::CalculateVelocityForOpticalPhoton
  instead of the initial velocity of the step.
  (see problem #1239)
  [ This is because the velocity at the initial point can refer to
  a previous volume.  If the PreStepPoint was on a surface, we
  the previous step was in another volume, which shared this
  PreStepPoint --> and its velocity would be wrong. ]

July 6th, 2011, H.Kurashige  transport-V09-04-07
---------------------------
- Modify G4Transportation (and CoupledTtansportation)
  to propose the final local time rather than the global time
  so that local time can be updated properly.
  (see problem #1224)
  [ This adapts to the recent change in Tracking, which made
  the change of LocalTime trigger the change of Global Time
  (instead of vice-versa). ]

June 10th, 2011, J.Apostolakis  transport-V09-04-06
------------------------------
- Fix for invalid safety passed to SafetyHelper.

June 10th, 2011, J.Apostolakis  transport-V09-04-05
------------------------------
- Fix G4Transportation::AlongStepDoIt
  Use only initial velocity to update time. An estimate of velocity
  at endpoint is not yet available. (finalVelocity still= initial)
    ==> It will be updated later in the tracking sequence, when
        energy loss is applied, and it will be available to
	Transportation only in the PostStepDoIt()

May 26th, 2011, H.Kurashige  transport-V09-04-04
---------------------------
- Define ProcessSubType for processes under transportation category
- Change process type of G4NeutronBuilder to fGeneral

January 26th, 2011, G.Cosmo  transport-V09-04-03
---------------------------
- Simplified implementation of G4CoupledTransportation::EndTracking(), to
  avoid unnecessary static pointer definition.

January 21th, 2011, V.Ivanchenko  transport-V09-04-02
--------------------------------
- G4UserSpecialCuts - fixed compilation problem

January 21th, 2011, V.Ivanchenko  transport-V09-04-01
--------------------------------
- G4UserSpecialCuts: fixed bug in energy tracking cut; changed order
  of checks: 1st energy tracking cut, 2nd track length, 3d time cut,
  4th range for charged particles with non-zero mass; removed unnecessary
  string comparisons.

January 4th, 2011, M.Asai  transport-V09-04-00
-------------------------
- G4CoupledTransportation: added EndTracking() method to reset the
  activated navigator list.

September 13th, 2010, J.Apostolakis  transport-V09-03-01
-----------------------------------
- Improvement to G4Transportation: copy current safety to SafetyHelper each
  time it is computed (it used to be copied only when it was recalculated at
  end of step).

September 13th, 2010, J.Apostolakis  transport-V09-03-00
----------------------------------
- Retagged - to propose for testing.

November 17th, 2009, J.Apostolakis  transport-V09-02-00
----------------------------------
- G4Transportation:
  o Fix: Update the Step flag which identifies the Last Step in a volume
     It is now done for the linear steps (no charge or no field)

November 26th, 2008, J.Apostolakis  transport-V09-01-03
----------------------------------
- G4CoupledTransportation:
  o Fix: initialise new data member (in constructor) - found by STT

November 21st, 2008, J.Apostolakis  transport-V09-01-02
----------------------------------
- G4Transportation & G4CoupledTransportation:
  o Performance improvement/correction
     Avoid to compute safety at end of step for neutral particles

November 21st, 2008, J.Apostolakis  transport-V09-01-01
----------------------------------

- G4Transportation & G4CoupledTransportation:
  o Push value & origin of safety to SafetyHelper
     only when its value comes from ComputeSafety

January 17th, 2008, J.Apostolakis  transport-V09-01-00
---------------------------------
- G4Transportation & G4CoupledTransportation:
  o Clear state of all Chord Finders using G4FieldManagerStore.
- Syncronised with files on the HEAD.
- Requires co-working tag "field-V09-01-00" (or "field-V09-00-03").
  Functionality corresponding to tag "transport-V09-00-52".

November 27th, 2007, J.Apostolakis  transport-V09-00-08
----------------------------------
- G4CoupledTransportation
  o Added updating of particle-looping flag (was commented out.).

November 10th, 2007, J.Apostolakis  transport-V09-00-07
----------------------------------
- G4Transportation:
  o Put back the default for short step optimisation to 'on'.

November 9th, 2007, J.Apostolakis  transport-V09-00-06
---------------------------------
- G4Transportation:
  o Update the SafetyHelper using the safety calculated by Navigator.

November 27th, 2007, J.Apostolakis  transport-V09-00-05a
----------------------------------
- G4CoupledTransportation
  o Added updating of particle-looping flag (was commented out.)
- Also called "transport-V09-00-51" to make it canonical.

November 8th, 2007, J.Apostolakis  transport-V09-00-05
---------------------------------
- G4Transportation:
  o Created new method (and class member) for flag on Short StepOptimisation.
    * When it is true, the optimisation is 'on' steps shorter than the
      safety will not call G4Navigator - so long as the particle goes straight
      ie it is not charged or there is no field.
    * Retained the default value as 'off' - as since changed in
      transport-V09-00-02 following Alex's suggestion.

November 8th, 2007, J.Apostolakis  transport-V09-00-04
---------------------------------
- G4Transportation (AlongStepGPIL):
  o Moved the call to ConfigureForTrack before the check whether
    fieldMgr has 0 field ptr, in order to enable it to be called
    even if the field manager points to a zero field.
    Needed to enable a user to switch a global field on (off was possible),
    as a track goes between volume (or regions) of a setup.
    [ Response to request of Atlas/ZM. ]
    Note: this ordering already existed in G4CoupledTransportation.

October 12th, 2007, J.Apostolakis  transport-V09-00-03
---------------------------------
- G4CoupledTransportation:
  o Improves condition for flag that regulates Relocating when only
    any geometry (including a parallel geometry) limits the step.
    New PathFinder method required.
- Requires and co-works with tag geomnav-V09-00-03

October 4th, 2007, J.Apostolakis  transport-V09-00-02
--------------------------------
- G4CoupledTransportation:
  o First fix for problem in condition for Relocating when only a parallel
    geometry limited the step.
  o Change of condition for recalculation safety (from Alex Howard) used,
    as currently it improves stability.

September 25th, 2007, J.Apostolakis  transport-V09-00-01
-----------------------------------
- G4Transportation:
  Modification to disable 'optimisation' in G4Navigator for small linear
  step  (ie when a track does less than the safety).
    * Relevant only if there is no field, or the particle is neutral
    * Temporary measure (in current form) to improve comparison
        old / new Transportation  (single/old vs coupled with pathfinder).

July 12th, 2007, J.Apostolakis  transport-V09-00-00
------------------------------
- Retagged to enable testing of new developments
  (which were not included in release 9.0)

June  6th, 2007, G.Cosmo        transport-V08-03-14
-----------------------
- Includes G4Transportation and G4CoupledTransportation implementations
  as in tag "transport-V08-03-11":
  o Corrected bug in ComputeSafety() introduced in "transport-V08-03-10".
  o Reinitialise SafetyHelper state from G4PathFinder::PrepareNewTrack().
  o Should fix the problem seen in test33 and reported by system testing.
- All the rest is kept as in tag "transport-V08-03-12".

June  1st, 2007, A.Howard       transport-V08-03-13
------------------------
- Renamed classes associated with old biasing scheme with suffix 8:
  G4ProcessPlacer8, G4VProcessPlacer8, G4VSamplerConfigurator8,
  G4WeightCutOffProcess8, G4SamplingPostStepAction8, G4VSampler8,
  G4WeightCutOffConfigurator8
- Includes same G4CoupledTransportation as transport-V08-03-12

********** transport-V08-03-12 was used for Geant4 9.0 ***************

May 31st, 2007, A.Howard      transport-V08-03-12
------------------------
- Archived classes for old biasing scheme, now replaced in module
  processes/biasing. Removed classes:
  G4MImportanceConfigurator, G4MScoreConfigurator, G4MScoreProcess,
  G4MWeightWindowConfigurator, G4MassGCellFinder, G4MassGeometrySampler,
  G4MassImportanceProcess, G4MassWeightWindowProcess,
  G4PImportanceConfigurator, G4PScoreConfigurator, G4PScoreProcess,
  G4PWeightWindowConfigurator, G4ParallelGCellFinder,
  G4ParallelGeometrySampler, G4ParallelImportanceProcess, G4ParallelTransport,
  G4ParallelTransportConfigurator, G4ParallelWWnTransportProcess,
  G4ParallelWeightWindowProcess, G4PlaceOfAction, G4ProcessPlacer,
  G4SamplingPostStepAction, G4VProcessPlacer, G4VSampler,
  G4VSamplerConfigurator, G4WeightCutOffConfigurator.
- Classes are kept on the HEAD for testing purposes.
- Tag does NOT include changes from tags "transport-V08-03-00" to
  "transport-V08-03-11" inclusive.

May 29th, 2007, A.Howard/J.Apostolakis  transport-V08-03-11
--------------------------------------
- G4CoupledTransportation:
  o Corrected treatment of time integration (made flags do as in original
    Transport).
  o Again use momentum change flag in particle-change (optimisation).
  o Also reset looping counter when no field or charge is present.
- Corrected names in Transport, Coupled Transport. (J.Apostolakis)

May 29th, 2007, J.Apostolakis  transport-V08-03-10
-----------------------------
- Gone back to G4CoupledTransportation.
  o G4Transportation is now the original (what was called G4Transportation8
    since "transport-V08-03-03").
  o G4Transportation8 still exists, to enable code that utilises it to compile
    (transitional). Expect that G4Transportation8 will be taken away asap.

May 29th, 2007, J.Apostolakis  transport-V08-03-04
-----------------------------
- G4Transportation. Refined relocation:
  o Full (re)location only if any geometry limited the step.
  o Fast relocation otherwise.
- Renamed & new data members: f(Mass,Any)GeometryLimitedStep.

May 25th, 2007, J.Apostolakis  transport-V08-03-03
-----------------------------
- G4Transportation
  o Fix for case of zero proposed step: missed to set end position. (A.Howard)
- G4Transportation8
  o Fixed StartTracking() to reset number of looping steps and
    to clear propagator state (safety issue in case of overlaps).

May 18th, 2007, J.Apostolakis  transport-V08-03-02
-----------------------------
- G4Transportation:
  o Corrected full safety at step start, to protect against negative value.
  o Obtain the endMassSafety from new saved value in G4PathFinder.
- G4Transportation8:
  o Small cleanup, and hints for saving Safety to helper.

May 13th, 2007, A.Howard       transport-V08-03-01
------------------------
- G4VTrackTerminator:
  o Use call to G4GeometryTolerance instead of kCarTolerance.
  o Requires tag "global-V08-03-00" and related tag set.

May 9th, 2007, J.Apostolakis  transport-V08-03-00
----------------------------
- G4Transportation (hh,icc,cc)
  o Renamed G4CoupledTransportation to G4Transportation
  o Merged changes on branch used to bring in CoupledTransportation,
    porting changes in G4Transportation since the creation of
    CoupledTransportation.
  o Also merged branch used for fixes in G4Transportation.cc (1.60.2, 1.60.4)
    for convergence to Release 9.0.
- Renamed G4Transportation to G4Transportation8
- G4ProcessPlader changed to reflect these revisions. (A.Howard)

May 8th, 2007, G.Cosmo  transport-V08-02-03
----------------------
- Use call to G4GeometryTolerance instead of kCarTolerance in
  G4VTrackTerminator.
- Requires tag "global-V08-03-00" and related tag set.

May 2nd, 2007, J.Apostolakis  transport-V08-02-02
----------------------------
- G4CoupledTransportation:
  o Make treatment of mass and full safety coherent (to-dos remain in
    G4PathFinder).
  o Added storing of full safety in state; retrieve it after compute step
    from PathFinder; calculate them same way at start of step.
  o Put back in the code for treating looping particles.

February 15th, 2007, J.Apostolakis  transport-V08-02-01
----------------------------------
- G4Transportation: protection against velocity=0 in AlongStep (invalid).

February 15th, 2007, J.Apostolakis  transport-V08-02-00
----------------------------------
- G4Transportation: call PropagatorInField to clear state for new track
   --> addresses reliabilitiy problem seen by Atlas.  This fix is related
       to overlaps, clearing the safety value (which is multivalued due
       to the overlaps, and thus can become invalid for a new track in
       an overlap region.)

November 22nd, 2006, J.Apostolakis  transport-V08-01-04
---------------------------------
- Add new classes G4NeutronKiller and G4NeutronKillerMessenger
  (created by V. Ivantchenko)

November 22nd, 2006, J.Apostolakis  transport-V08-01-03
---------------------------------
- G4CoupledTransportation:
  o AlongStepGPIL() now returns an estimate for the safety for all geometries
    to make up for the fact that some other processes only have PostStep GPILs
    which cannot currently influence safety.
- NOTE: Fix / Workaround for deficiency of others.

November 13th, 2006, J.Apostolakis  transport-V08-01-01
---------------------------------
- Updated G4CoupledTransportation to use new signature of
  G4PathFinder::ComputeStep that added  new argument
  at the end: currentVolume.

June 2nd, 2006, J.Apostolakis  transport-V08-00-02
-----------------------------
- Added new class G4CoupledTransportation, a revised version of Transportation,
  for use in 'coupled' parallel navigation in different geometries.
- Includes non-revisions for migration to sstream (Nov 2005).

Feb.  6th, 2006, J.Apostolakis/P.MoraDeFreitas transport-V08-00-01
----------------------------------------------
- Corrected problem with suspended tracks - PR# 802.
- Added StartTracking() method which takes over responsibility to
  clear the state for a new track, and to message other relevant
  component to clear their state (problem report and proposed revision
  by P.MoraDeFreitas).

Jan. 16th, 2006, J.Apostolakis transport-V08-00-00
------------------------------
- G4Transportation:
  o The particle's charge is now taken from the dynamic particle, so that
    it can take into account changes from the interaction of an ion with
    matter (eg stripping e-). (V.Ivantchenko)

Nov. 21st, 2005, M.Asai transport-V07-01-00
-----------------------
- Migration to <sstream>.
- Fix a warning message in G4ParallelTransport.

May 10th, 2005, J.Apostolakis transport-V07-00-01
-----------------------------
- Added process type to G4Transportation

Mar. 7th, 2005, M.Asai transport-V07-00-00
----------------------
- Added virtual to destructors of G4StepLimiter and G4UserSpecialCuts.

Dec. 7th, 2004, G.Cosmo transport-V06-02-05
-----------------------
- Implemented migration to <cmath>.

Nov. 23th, 2004, J.Apostolakis transport-V06-02-04
------------------------------
- Added Threshold energy for not abandoning stuck particles quickly.

Oct. 19th, H.Kurashige transport-V06-02-03
----------------------
- Migrated processes to new G4VParticleChange interface.

Sep. 9th, M.Maire
-----------------
- Apply tracking cut only if Rmin or Emin > DBL_MIN in G4UserSpecialCuts.

Oct. 8th, M.Asai transport-V06-02-02
----------------
- A protection is added in G4Transportation.cc for an application with
  parameterized volume but without any EM process.

Aug. 27th, M.Asai transport-V06-02-01
-----------------
- A pointer to sensitive detector is added in G4ParticleChangeForTransport.
- G4Transportation takes care of this pointer.

Jul. 26th, M.Asai transport-V06-02-00
-----------------
- Introduce G4UserStepLimit to handle MaxAllowedStep in G4UserLimits.

Feb. 5th, M.Asai transport-V06-00-00
----------------
- Fixed a bug in G4UserSpecialCuts related to charged geantino

Nov. 26th, G.Cosmo transport-V05-02-07
------------------
- Replaced mis-typed class name G4SplittingAndRussianRouletePostStepDoIt
  with G4SamplingPostStepAction and updated classes accordingly.
- Adopt new G4Exception scheme.
- Header inclusions and code cleanup.

Nov. 14th, G.Cosmo transport-V05-02-06
------------------
- G4Transportation.cc:
  o Added inclusion of G4ChordFinder.hh, after latest changes to field.

Oct. 4th, G.Cosmo transport-V05-02-05
-----------------
- Modified GNUmakefile:
  o added dependency to new module "geometry/navigation".
- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".

Sep. 25th, H.Kurashige transport-V05-02-04
----------------------
- modify GNUmakefile to use processes/cuts category
- migrate to model variant of EM physics in G4UserSpecialCuts (V.Ivantchenko)

Aug. 27th, M.Dressel transport-V05-02-03
--------------------
- cleanup of header file inclusions

Aug. 19th, M.Dressel transport-V05-02-02
--------------------
- rename G4ImportancePostStepDoIt to
  G4SplittingAndRussianRouletePostStepDoIt since it is also used in
  weight window biasing

Aug. 19th, M.Dressel transport-V05-02-01
--------------------
- first implementation of weight window technique

Jul, 31st, P.Gumplinger  transport-V05-02-00
-----------------------
- G4Transportation.cc:
  o Use the finalVelocity to update TofF for optical photons.

Jul, 17th, J.Apostolakis
------------------------
- G4Transportation.cc:
  o Attempt to correct photon problem - by using the velocity from
    current medium for massless particles.

Jun, 25th, J.Apostolakis
------------------------
- G4Transportation[.hh.icc]:
  o Added verbosity level to control the printing of warnings (see below).

Jun, 21st, J.Apostolakis  transport-V05-01-06
------------------------
G4Transportation:
- Added warning when energy changes from propagation in magnetic field
  (or other field that conserves energy) due to the inaccuracy of
  numerical integration of the equations of motion.

Jun, 21st, J.Apostolakis  transport-V05-01-05
------------------------
- G4Transportation:
  o Use new method of PropagatorInField to simplify choice of
    global/local field.
  o Activated the new capability of a (user derived) field manager to
    configure itself with different accuracy parameters depending on
    track's energy, particle identity, or other property.
- Notes:
  o Requires tags "field-V05-01-04" and "geomvol-V05-01-03"
  o Includes updates of files to use <std> in place of "g4std",
    as made at the CVS HEAD.

Jun, 13th, M.Dressel       transport-V05-01-04
--------------------
- Added to put the delete fImportancePostStepDoIt in G4MassImportanceProcess
  and G4ParallelImportanceProcess.

Jun, 13th, M.Dressel       transport-V05-01-03
--------------------
- Fixed bug created by last bug fix in G4MassImportanceProcess
  and G4ParallelImportanceProcess.

Jun, 12th, M.Dressel       transport-V05-01-02
--------------------
- Fixed "'this' : used in base member initializer list" in
  src\G4MassImportanceProcess.cc, src\G4ParallelImportanceProcess.cc

Jun, 4th, G.Cosmo          transport-V05-01-01
-----------------
- Fixes for inclusion of <strstream> in G4ParallelImportanceProcess.cc
  and G4ParallelTransport.cc in view  of the g4std wrappers migration.

May, 13th, J.Apostolakis   transport-V05-01-00
------------------------
- Fixes to G4Transportation.cc to accomodate incorrect and
  missing functionality for two use cases:
  o a local field when no global field exists  (it was not seen)
  o overriding an existing global field by a 'zero' field
    by creating a local field manager that has a null G4Field pointer
    (a use case which did not exist.)
  Further work to verify these use cases work is required.

Apr, 7th, V.Ivanchenko     transport-V05-00-04
-----------------
- Migration to "cuts by region" for G4UserSpecialCuts.

Apr, 3rd, G.Cosmo          transport-V05-00-03
-----------------
- Cleared pedantic warnings and some cosmetic cleanups...

Jan, 14th, M.Asai          transport-V05-00-02
-----------------
- Consolidated transport-V05-00-01 tag for G4Transportation.cc

Jan, 7th, M.Asai           transport-V05-00-01
----------------
- Fix in G4Transportation.cc for updating material-cut-couple.

Dec, 16th, G. Cosmo        transport-V05-00-00
-------------------
- Merged branch "geant4-04-01-ref-02-cuts-branch" to HEAD.
  Included development for 'cuts-by-region' in G4Transportation.cc.

Nov, 20th, J. Apostolakis  transport-V04-01-05
-------------------------
- Tagged.
   Tag requires:   geomvol-V04-01-06 and tracking-V04-01-10
      and is dependent also on greps-V04-01-01 and track-V04-01-01.

Nov, 8th, J.Generowicz
- Copy auxiliary smooth trajectory point from PIF to ParticleChange

Nov,  4th 2002 M.Dressel transport-V04-01-04
-----------------------------------------------------
- remove G4std:: where it does not belong to
- replace str() functions

Oct  31st, 2002 M.Dressel transport-V04-01-03
-----------------------------------------------------
- bug fix in G4MassGeometrySampler and G4ParallelGeometrySampler

Oct  28th, 2002 M.Dressel transport-V04-01-02
-----------------------------------------------------
- bug fix in G4MassGeometry

Oct  22th, 2002 M.Dressel internal_7_transport-V04-01-01
--------------------------------------------------------
- moving G4CellStoreScorer, G4TrackLogger
  to digits+hits/detector
- resolving G4SLRawValues

Oct  16th, 2002 M.Dressel internal_6_transport-V04-01-01
--------------------------------------------------------
- changes recomanded by codewizrd
- added GCellFinder concept

Oct  10th, 2002 M.Dressel transport-V04-01-01-internal-5
--------------------------------------------------------
- changing sampler concept: instead of separat samplers for
  all combinations of importance sampling, scoring, wieght roulette
  for parallel and mass geometry there are two Samplers now
  for the mass and parallel geometry: G4MassGeometrySampler
  and G4ParallelGeometrySampler.
- Introduction of Configurators to setup the processes.

Sep  18th, 2002 M.Dressel transport-V04-01-01-internal-4
--------------------------------------------------------
- tagging a version before reducing the number of Samplers

Sep  2th, 2002 M.dressel  transport-V04-01-01-internal-3
-----------------------------------------
    code cleanup for code-wizard

Aug  29th, 2002 M.Dressel int-1-V04-01-01
-----------------------------------------
- adopted to changes in int-2-geombias-V04-01-01:
     renaming of G4PTouchableKey to G4GeometryCell
     changing  G4VIStore and G4IStore
     and dependants

Aug  13th, 2002 M.Dressel transport-V04-01-01
----------------------------------------------
- added G4CellStoreScorer,  G4VTrackTerminator and changed the sampler
  classes in order to use the G4VTrackTerminator (if necessary) to
  kill a track.
- coworks with geombias-V04-01-01

July 18th, 2002 M.Dressel
-------------------------
- bug fix in G4TrackLogger

July 11th, 2002 M.Dressel internal-2-transport-V04-01-01
--------------------------------------------------------
- moved the standard scoring classes to run because
  they need G4EventManager.

July 10th, 2002 M.Dressel internal-1-transport-V04-01-01
--------------------------------------------------------
- add classes for standard scoreing. Remove G4ScorePrinter and G4Scorer.
  G4StandardScorer and G4StandardScoreTable may be used as replacement.
  The source file G4StandardScorer.cc may be found in
  extended/examples/B09/src because it needs to acces the
  G4EventManager.

Jun   13, 2002 M.Dressel transport-V04-00-09
---------------------------------------------
- add classes for creating and printing tallies.

May   31, 2002  M.Dressel transport-V04-00-08
--------------------------------------------------------
- made weight window sampling to apply only at inital track step 1.

May   31, 2002  M.Dressel transport-V04-00-07
--------------------------------------------------------
- bug fix in G4PArallelScoreSampler.cc and remove Warning from
  ParallelTransport.

May   31, 2002  M.Dressel transport-V04-00-06
--------------------------------------------------------
- renaming of the Manager classes to Sampler classes
- substitution of G4ParallelManager inside the Sampler classes

May   30, 2002  M.Dressel
--------------------------------------------------------
- chamged G4VImportanceScoreConstructor to G4VSampler

May   30, 2002  M.Dressel
--------------------------------------------------------
- all the ImportanceScoreManagers derive form
  G4VImportanceScoreConstructor

May   30, 2002  M.Dressel internal-3-transport-V04-00-05
--------------------------------------------------------
- changes in Importance Manager constructors, G4ImportanceAlgorithm as
  pointer

May   29, 2002  M.Dressel internal-2-transport-V04-00-05
--------------------------------------------------------
- bug fix in G4PImportanceWWindowScoreManager.cc
  and G4ParallelImportanceManager.hh.

May   24, 2002  M.Dressel internal-1-transport-V04-00-05
-------------------------
- Change in G4VProcessPlacer and G4ProcessPlacer: add member function
  RemoveProcess to properly remove a process.
- Add classes for wieght window biasing.


May   02, 2002  M.Dressel
-------------------------
- Change in G4ProcessPlacer: set process vector via process manager not
  directly.
- Change in G4ParallelTranport: use StartTracking to signal inital step.
  This should help to locate "suspended" tracks.

April 24, 2002  G.Cosmo - transport-V04-00-05
-----------------------
- Added G4DEBUG_TRANSPORT flag in GNUmakefile and (on suggestionh of
  J.Apostolakis) replaced to G4VERBOSE in G4Transportation::PostStepDoIt()
  for extra-check on volume boundary.
  Issues addressed by problem report #130 should now be resolved.

April 10, 2002  M.Dressel - transport-V04-00-04
-------------------------
- Added comments to headers of transportation classes and managers for
  importance biasing, to fullfill Software Reference Manual.

Apr 9, 2002 G.Cosmo
-------------------
- Added liability disclaimer to scorer classes and minor cosmetics.

Apr 8, 2002 M.Dressel - transport-V04-00-03
---------------------
- Resolved compilation problems on HP-aCC.

Apr 4, 2002 M.Dressel - transport-V04-00-02
---------------------
- Cleaned compilation problems for G4std/std.

Apr 4, 2002 M.Dressel - transport-V04-00-01
---------------------
- Resolved compilation problems on SUN-CC and Linux-egcs.

Mar  28, 2002 M.Dressel - transport-V04-00-00
-----------------------
- First implementation of transportation classes and managers for importance
  biasing and scoring. Co-works with "geometry-V04-00-01".

Mar  25, 2002 G.Cosmo
---------------------
- Added dependency to new module geometry/biasing in GNUmakefile.

Dec   8, 2001 J.Apostolakis - transport-V03-02-07
---------------------------
- Activated the killing of 'looping' particles -- to be used also to
  abandon (kill) particles that are stuck (eg at boundaries).
  [ Fix for problems of stuck particles reported by CMS (P.Arce),
    and Atlas (A.Del'Acqua, A.Rimoldi) ]

Nov  28, 2001 J.Apostolakis - transport-V03-02-06
---------------------------
- Fix for the new updating of the time for fields -- correcting previous
  tag.  By keeping account whether the field changes the energy (and
  therefore the velocity) in the field manager.

  Requires and co-works with
   - "field-V03-02-07"
   - "geomvol-V03-02-02"
  in order to compile (let alone have any effect.)

Nov  10, 2001 J.Apostolakis - transport-V03-02-05
---------------------------
- Motivated by the use case of an Electric Field,
   * in order to achieve reasonable accuracy in time integration,
   * and to enable fields that vary with the global time
  changed Transportation to try to obtain the delta_time from FieldTrack.
  Co-works with and requires "field-V03-02-03" to have any effect.

Nov   9, 2001   G. Cosmo - transport-V03-02-04
------------------------
- Fix in G4Transportation.cc for initialisation of touchable handle.

Nov   8, 2001   G. Cosmo - transport-V03-02-03
------------------------
- Introduced changes to G4Transportation for reference-counted
  touchables (R.Chytracek). Added methods GetFreeTouchable() and
  SetTheOtherTouchableFree(G4VTouchable*).

Nov   6, 2001   J. Apostolakis - transport-V03-02-02
------------------------------
- Added protection in G4Transportation::AlongStepGPIL for messaging
  "ResestStepEstimate" of ChordFinder for the case there is no global field.
  ** NOTE this is not a perfect resolution (see NOTE in log file). **
  --> Thanks to Radovan Chytracek for reporting this problem (move to file log)

Aug  16, 2001   J. Apostolakis - transport-V03-02-01
------------------------------
- Tagged. (This tag requires field-V03-02-00)

Aug  16, 2001   J. Apostolakis
------------------------------
- Erasing state information from previous track at the first step of
  each track.  (-> this is required to ensure repeatability)
  This should eliminate any non-repeatability due to the propagation
  in field.
  ( Requires updated version of G4ChordFinder )

Jul  19, 2001   G. Cosmo  transport-V03-02-00
------------------------
- Synchronised with CVS HEAD after introduction of warrenty disclaimer.
- Modified author list in G4Transportation (P.Gumplinger).

Apr  11, 2001   J. Apostolakis   transport-V03-01-02
------------------------------
- Corrected the last update of G4Transportation.cc, which overwrote the
  value of the spin in the cases where a particle was not charged (eg photon)
  or a charged particle was not in a field.

Apr  11, 2001   P. Gumplinger   transport-V03-01-01
-----------------------------
- Updated G4Transportation.cc to make spin tracking work correctly:
  o Replaced the line originally commented out:
      // fTransportEndPolarization= aFieldTrack.GetSpin() ; // Not yet possible
    with:
      fTransportEndSpin = aFieldTrack.GetSpin();
  o Added to the AlongStepDoIt() the following call:
      fParticleChange.SetPolarizationChange(fTransportEndSpin);

Mar  19, 2001   J. Apostolakis  transport-V03-00-01
------------------------------
- G4Transportation modified to use new FieldTrack, and get Kinetic
  Energy from it.
  This new FieldTrack together with changes in associated Equation of Motion
  classes implement the momentum vector as independent variable in place of
  the velocity.
  So this tag requires
  - new geometry/magneticfield tag "field-V03-00-01",  and
  - new geometry/volumes  tag "geomvol-V03-00-03" for new
    G4PropagatorInField ().

Feb  27, 2001   J. Apostolakis  (transport-V03-00-00)
------------------------------
- G4Transportation.cc:
  *   Modified calculation of energy at the end of field step
       to make it more accurate at low velocities,
       (while remaining correct at high gammas).
  This improves the energy determination.
  Together with electromagnetic/standard tag  "stand-V03-00-03"
  this addresses the main problem in propagating in an electric field
  (Problem report # 108 )

Sep  22, 2000   V. Grichine	(transport-V02-00-00)  [recorded by G.Cosmo]
---------------------------
- G4Transportation.cc:
  o added formula for Tkin corresponding directly to
    relativistic definition of Tkin = Etot - mc^2 = mc^2(gamma -1),
    where gamma is a particle Lorentz factor.
  o general cosmetics.

Jun  19, 2000   J. Apostolakis  (transport-V01-01-02)
------------------------------
- G4Transportation.cc: Set the True Step Length in G4Transportation.cc
- Cosmetic:  updated other files to the head, as there were no differences
  from it (CVS headers).

May  15, 2000   J. Apostolakis	(transport-V01-01-01)
------------------------------
- G4Transportation.cc:  Set the material in materialChange, in order to get
  correct behaviour for volumes that parameterise the material.
  (Fix is dependant on changes to particleChangeForTransport and StepPoint)
- Modified setting of touchable change, in order to preserve const-ness where
  it exists.

Nov  25, 1999   J. Apostolakis  (transport-V00-01-01)
------------------------------
- G4Transportation.cc: Added protection for the case of a zero step (when
  there is a field)
- G4UserSpecialCuts: protection to use min range and min kinE only for
  charged particles.

June  9, 1999   J. Apostolakis  (transport-01-00-02)
------------------------------
- Added a protection so that full relocation is not used for very small moves.

Dec   4, 1998   J. Apostolakis  (transport-00-04-01)
------------------------------
- The Velocity Vector for Transport in a magnetic field is now set correctly.
  (previously the scalar velocity was automatically promoted to a 3-vector)

Nov  25, 1998  J. Apostolakis
-----------------------------
- Added the direction to  LocateGlobalPointAndUpdateTouchable.

Nov  19, 1998   J. Apostolakis  (transport-00-03-04)
------------------------------
- Fixes:
  1) The final energy is set equal to the initial energy, because
     the PropagatorInField does not calculate it correctly yet.  NEEDS Fix
  2) If the requested step size is zero and safety is zero,  the
     step is now considered geometry limited.  (This can happen
     if a discrete process tries to take a  step that is very small
     compared to the mean free path.)  Problem observed by Laszlo in EM tests.
  3) PostStepGetInteractionLength now returns DBL_MAX, not kInfinity.

Nov  11, 1998   J. Apostolakis  (transport-00-03-03)
------------------------------
- Changes to accomodate new interface of Field:
  G4PropagatorInField and G4FieldTrack.

Oct  30, 1998  J. Apostolakis   (transport-00-03-02)
-----------------------------
- In the case of magnetic field, a flag that determines whether the
  geometry limited the step was not set.

Sep  16, 1998  J. Apostolakis   (transport-00-03-01)
-----------------------------
- Checks whether the particle is out of the world volume,
  if so it has exited and must be killed.

Aug  28, 1998  J. Apostolakis
-----------------------------
- The PostStepGetPhysicalInteractionLength has fixed (to return kInf)
  The boolean flags for touchables are now initialised. & Other small fixes ?
  Test code for non-relocating case added (for debugging).

June 08, 1998   J. Apostolakis  (trans-06-04)
------------------------------
- Corrected Safety computation for the case of the field (adding endpoint
  distance instead of curve length.)
- Added PostStepDoIt method that tries to relocate the particle using
  G4ParticleChangeForTransport
- Transportation is no longer a G4ContinuousProcess.

June 08, 1998   J. Apostolakis  (trans-06-03)
------------------------------
- Modified it to recomputate Safety at the start of a step.  To do this
  it uses the previous step's  calculated safety and endpoint.

June 08, 1998   J. Apostolakis  (trans-06-02)
------------------------------
- Modified it to add re-computation of Safety at the endpoint of a step,
  when the safety would become negative.  This is done to allow processes
  to benefit from a realistic (geometrical) value of the safety.  The
  request to do this was from EM physics

June 03, 1998   J. Apostolakis  (trans-06-01)
------------------------------
- The safety we is now generalised to mean the limit of assumption of all
  processes. The AlongStepGPIL input value is not the remainder from the
  previous step's geometrical safety.
  So the transportation must recalculate the starting point's safety here.
  As a zeroeth order approximation we set it to zero.

April 17, 1998  M. Maire      [recorded by John Apostolakis]
------------------------
- A new process, G4UserSpecialCuts, was added to allow the
  user an alternative method to set some user cuts.

April 15, 1998  H. Kurasige   [recorded by John Apostolakis]
---------------------------
- The transportation does the absolute minimum required to conform to
  the new scheme for ParticleChange: G4VParticleChange is used in signature.
  [ But default G4ParticleChange is still used ].

April 14, 1998  John Apostolakis
--------------------------------
- History file Created
