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

     =========================================================
     Geant4 - an Object-Oriented Toolkit for Simulation in HEP
     =========================================================

                      Category History file
                      ---------------------
This file should be used by G4 developers and category coordinators
to briefly summarize all major modifications introduced in the code
and keep track of all category-tags.
It DOES NOT substitute the  CVS log-message one should put at every
committal in the CVS repository !

     ----------------------------------------------------------
     * Reverse chronological order (last date on top), please *
     ----------------------------------------------------------

6th  May 2009 Peter Gumplinger (op-V09-01-11)
              G4OpBoundary::PostStepDoIt now throws a G4Exception
              EventMustBeAborted when an invalid surface normal is returned;
              addresses bug report #1060.

23th Mar 2009 Peter Gumplinger
              for complex index of refraction: (1)resample the reflectivity
              every time in the do-while of DielectricMetal, but don't
              re-calculate theFacetNormal (which has already been chosen
              in CalculateReflectivity), also (2) avoid an infinite loop by
              resetting iTE and iTM inside the do-while of GetReflectivity;
              both are bug-fixes.

14th Jan 2009 Peter Gumplinger (op-V09-01-10)
              respond to bug report 1040 by fixing G4OpBoundaryProcess.cc 

07th Nov 2008 Peter Gumplinger (op-V09-01-09)
              use new global/HEPRandom's G4RandomTools.hh

24th Oct 2008 Peter Gumplinger (op-V09-01-08)
              use local G4OpProcessSubType.hh

21st Oct 2008 Peter Gumplinger (op-V09-01-07)
              add SetProcessSubType for G4OpAbsorption, G4OpBoundaryProcess,
              G4OpRayleigh and G4OpWLS

18th Aug 2008 Peter Gumplinger (op-V09-01-06)
              use signatures G4SwapPtr(T*& and G4SwapObj(T*
              in G4OpBoundaryProcess - to work with global-V09-01-12

15th Aug 2008 Peter Gumplinger (op-V09-01-05)
              replaced G4SwapPtr with G4SwapObj for Rindex
              in G4OpBoundaryProcess - serious error since op-V09-01-00
              (see also Problem Report 1020)

4th July 2008 Peter Gumplinger (op-V09-01-04)
              In G4OpWLS now SetTouchableHandle(aTrack.GetTouchableHandle())
              for the secondaries in the DoIt.
              In G4OpBoundaryProcess.cc initialize the pointer:
              G4LogicalSurface* Surface = NULL;

27th June 2008 Peter Gumplinger (op-V09-01-03)
               In G4OpBoundaryProcess changed unsafe cast
               (G4OpticalSurface*) to dynamic_cast<G4OpticalSurface*>
               following suggestion in bug-report #1014

6th June 2008 Peter Gumplinger (op-V09-01-02)
              G4OpRayleigh, G4OpWLS = trivial name changes: 
              momentum->energy, momenta->energies

5th June 2008 Peter Gumplinger (op-V09-01-00)
              G4OpBoundaryProcess: Removed G4Swap methods - replaced by
              G4SwapPtr. Removed G4IsotropicRand method - replaced by
              G4RandomDirection. Add commented code to change absorption
              at a dielectric/metal boundary into transmission.

29th Oct 2007 Peter Gumplinger (op-V09-00-01)
              In G4OpWLS.cc allow for the MeanNumberOfPhotons to be
              different from one, in case the constant property: 
              WLSMEANNUMBERPHOTONS is provided and, if it is, sample 
              NumPhotons with G4Poisson.

15th Oct 2007 Peter Gumplinger (op-V09-00-00)
              Add capability of calculating the reflectivity off a metal
              surface by way of a complex index of refraction.
              Thanks to Sehwook Lee and John Hauptman
              (Dept. of Physics - Iowa State Univ.)

11th May 2007 Gabriele Cosmo (op-V08-03-00)
              Use call to G4GeometryTolerance instead of kCarTolerance in
              G4OpBoundaryProcess.
              Requires tag "global-V08-03-00" and related tag set.

11th May 2006 Peter Gumplinger (op-V08-00-01)
              thanks to Andreia Trindade and Pedro Rodrigues, the WLS time
              delay can now be a delta function or exponential. New classes:
              G4VWLSTimeGeneratorProfile, G4WLSTimeGeneratorProfileDelta and
              G4WLSTimeGeneratorProfileExponential

17th Feb 2006 Peter Gumplinger (op-V08-00-00)
              fix default behaviour for unified model of dielectric_metal

28th July 2005 Peter Gumplinger (op-V07-01-00)
               add G4ProcessType to all constructors

10th December 2004 Gabriele Cosmo (op-V06-02-06)
                replaced M_PI with CLHEP's pi

02nd December 2004 Peter Gumplinger (op-V06-02-05)
                migration to cmath

28th October 2004 Gabriele Cosmo (op-V06-02-04)
                Added G4OPTICAL_DEBUG flag for debug printout.

18th October 2004 Peter Gumplinger (op-V06-02-03)
                Fix bug in DielectricMetal only GetFacetNormal for
                LobeReflection.
                Migrate files to 7.0 ParticleChange method names:
                G4OpBoundaryProcess.hh, G4OpBoundaryProcess.cc,
                G4OpWLS.cc, G4OpRayleigh.cc, G4OpAbsorption.cc

27th September 2004 Peter Gumplinger (op-V06-02-02)
                Fix bug in G4PlaneVectorRand and resample
                theFacetNormal for LobeReflection in DielectricMetal

12th August 2004 Peter Gumplinger (op-V06-02-01)
                In G4OpBoundaryProcess.cc: use GetMaterial from 
                G4StepPoint directly; apply/sample reflectivity and 
                Unified model reflection parameters only once even
                for rough dielectric/metal surfaces - i.e. not again
                even when reflected ray still points toward the
                surface - fixes problem report 654.

05th August 2004 Peter Gumplinger (op-V06-02-00)
                Allow for unified model reflectivity parameters 
                to also work in case of dielectric_metal surfaces;
                addresses in part problem report 654.

26th April 2004 Peter Gumplinger (op-V06-01-01)
                Protect against NULL pointers in G4OpRayleigh.
                Do not overwrite Rayleigh scattering length
                for the material named 'Water' if it has been
                specified by the user through a call to
                AddProperty("RAYLEIGH"

21st April 2004 Peter Gumplinger (op-V06-01-00)
                Assign class members to defaults in DoIt.

17th March 2004 Peter Gumplinger (op-V06-00-03)
                Assign all class members in constructor.

24th February 2004 Gabriele Cosmo (op-V06-00-02)
                Added EOL at end of file in G4OpBoundaryProcess.cc to clear
                compilation warning in Linux-g++.

19th February 2004 Peter Gumplinger (op-V06-00-01)
                Add process status: NotAtBoundary, SameMaterial, 
                                    StepTooSmall, NoRINDEX
                Allow for a skin-surface between mother and daughter
                volumes, with the daughter skin taking precedence.

2nd February 2004 Peter Gumplinger (op-V06-00-00)
                Set theStatus = Undefined at start of DoIt
                Replace usage of 0 with NULL.
 
1st December 2003 Peter Gumplinger (op-V05-02-02)
                G4OpBoundaryProcess.cc: modified to adopt G4SurfaceProperty.
                Requires tag "materials-V05-02-00".
		Replaced usage of NULL with 0.

4th October 2003 Gabriele Cosmo (op-V05-02-01)
                Modified GNUmakefile: added dependency to new module
                "geometry/navigation".
                Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00".

23rd September 2003 Peter Gumplinger (op-V05-02-00)
                Add WLS (wavelength shifting) process
15th March 2003 Peter Gumplinger (op-V05-00-01)
                Change logic for assigning of Rindex2; bug report #444
4th February 2003 Peter Gumplinger (op-V05-00-00)
                Fix calculation of polarization for perpendicular
                incidence when Rindex1 > Rindex2; bug report #442 
12th November 2002 Peter Gumplinger (op-V04-01-01)
                Fix calculation of polarization on dielectric dielectric
                interfaces; bug report #427
28th March 2002 Peter Gumplinger (op-V04-00-01)
                Add public inline method GetStatus and make enum 
                G4OpBoundaryProcessStatus public in G4OpBoundaryProcess.hh
18th October 2001 Peter Gumplinger (op-V03-02-01)
              Avoid warnings on Linux (gcc-2.95.2) compiler
- G4OpRayleigh.cc: remove unused variable 'aMaterial' in PostStepDoIt and
                   'no_unit' in RayleighAttenuationLengthGenerator
- G4OpBoundaryProcess.cc: moved definition of E2_perp, E2_parl, E2_total
                          outside IF-statement
31st August 2001 Peter Gumplinger (op-V03-02-00)
- G4OpRayleigh.hh, G4OpBoundary.hh and G4OpAbsorption.hh: changed processName
                   to 'OpRayleigh', 'OpBoundary' and 'OpAbsorption' respectively

30th January 2001 Peter Gumplinger (op-V03-00-05)
- G4OpRayleigh.cc: allow for positiv and negative CosTheta and force the
                   new momentum direction to be in the same plane as the
                   new and old polarization vectors
                   still bug report: 207

29th January 2001 Peter Gumplinger (op-V03-00-04)
- G4OpRayleigh.cc: fix calculation of SinTheta from CosTheta
                   bug report: 207

23rd January 2001 Peter Gumplinger (op-V03-00-02)
- G4OpRayleigh.cc: Allow for Rayleigh scattering length to be defined for 
           arbitrary material through the use of G4MaterialPropertyTable.

5th October 2000  Peter Gumplinger (op-V02-00-02)
- G4OpAbsorption.cc: Comment out warning - No Absorption length specified.

3rd August 2000  Gabriele Cosmo (op-V02-00-00r)
- G4OpBoundaryProcess.cc: changed RandGauss to G4RandGauss to fix problem
  of events' reproducibility.
- Syncronized with HEAD (only CVS headers changes).

21th October 1999  Peter Gumplinger (op-V00-01-01)
- G4OpBoundaryProcess.hh and G4OpBoundaryProcess.cc have been modified
  (Fill NewMomentum/NewPolarization in DoAbsorption. These members need
  to be filled since DoIt calls aParticleChange.SetMomentumChange etc.
  upon return (thanks to: Clark McGrew)
