$Id: History,v 1.132.2.1 2009/03/03 13:30:34 gcosmo Exp $
-------------------------------------------------------------------

     =========================================================
     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 *
     ----------------------------------------------------------

19-02-09 V.Ivanchenko (materials-V09-01-21)
G4MaterialStoppingICRU73 - added 4 forgotten materials from ICRU'73
G4SimpleMaterialStoppingICRU73 - fixed density of Mo and number of materials.

11-12-08 G.Cosmo (materials-V09-01-20)
- Added dummy default constructor in G4OpticalSurface and G4SurfaceProperty.
- Removed debug printout function Overwrite().

14-11-08 G.Cosmo (materials-V09-01-19)
- Added SetName() method to G4Element, G4Isotope, G4Material for use
  in detector persistency. Use "const G4String&" for accessors, instead
  of implicit copy...

02-11-08 V.Ivanchenko (materials-V09-01-18)
- G4IronStoppingICRU73, G4MaterialStoppingICRU73,
  G4SimpleMaterialStoppingICRU73: fixed inline methods.

24-10-08 V.Ivanchenko (materials-V09-01-17)
- G4IronStoppingICRU73, G4MaterialStoppingICRU73,
  G4SimpleMaterialStoppingICRU73: renamed ICRU'73 data classes and inlined
  accessors.

20-10-08 V.Ivanchenko (materials-V09-01-16)
- G4IronStopping, G4MaterialStopping, G4SimpleMaterialStopping: added 
  ICRU'73 data on stopping powers 25 keV/n - 10 MeV/n

13-08-08 V.Ivanchenko (materials-V09-01-15)
- G4Material: use array size defined in material constructor, extend it if
  a component is a compound material 

07-08-08 V.Ivanchenko (materials-V09-01-14)
- G4NistElementBuilder: use best known parameterisation for total
  binding energy of atoms, use standard masses for lightest stable isotopes
- G4NistManager and G4NistElementBuilder: added method 
  GetTotalElectronBindingEnergy().
- G4Isotope: use AtomicMass instead of NuclearMass.
- G4Element: use G4int(fZeff) everywhere in the class.

23-07-08 V.Ivanchenko (materials-V09-01-13)
- G4NistManager: fixed bug introduced in tag (-11).

21-07-08 P.Gumplinger (materials-V09-01-12)
- G4SurfaceProperty and G4OpticalSurface, make them truly polymorphic.

17-07-08 V.Ivanchenko (materials-V09-01-11)
- G4NistManager: added inline methods to speed up EM computations.

16-07-08 P.Gumplinger (materials-V09-01-10)
- G4SurfaceProperty changed method name from DumpInfo to DumpTableInfo.

08-07-08 V.Ivanchenko (materials-V09-01-09)
- G4IonisParamMat - added fMeanEnergyPerIon and Set/Get methods

27-06-08 G.Cosmo (materials-V09-01-08)
- Added virtual destructor to G4OpticalSurface and derivated.
  Addresses problem report #1014.

05-06-08 P.Gumplinger (materials-V09-01-07)
- G4MPVEntry, G4MaterialPropertyVector, G4MaterialPropertiesTable -
  trivial name changes: momentum->energy, momenta->energies

04-06-08 V.Ivanchenko (materials-V09-01-06)
- G4NistElementBuilder - provided unique name for each isotope of an element
                         (P.Gumplinger)
- G4IonisParamElm - added Fermi velocity and L-factor (both used for 
                    parameterizations of the effective charge and 
                    stragling of ions);
- G4IonisParamMat - use Fermi velocity and L-factor from G4IonisParamElm

02-06-08 V.Ivanchenko (materials-V09-01-05)
- G4Element - extended printput of errors and warnings; more safe check
              of consistence between Z and A in the constructor

28-04-08 V.Ivanchenko (materials-V09-01-04)
- G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder 
  added better comments
     
17-03-08 mma (materials-V09-01-03)
- G4Material : cout << NuclearInteractionLength
     
11-03-08 mma (materials-V09-01-02)
- G4IonisParamMat - remove NistManager dependence
     
10-03-08 mma (materials-V09-01-01)
- G4IonisParamMat - add Birks constant
  
06-03-08 V.Ivanchenko (materials-V09-01-00)
- G4NistMaterialBuilder - use correct dimension for the density for
  ConstructNewMaterial methods
- G4Material - improve G4cerr printout

11-12-07 G.Cosmo (materials-V09-00-08)
- Made GetZ13() and GetLOGA() in G4NistManager not inlined (since they
  handle static data), to allow for building of DLLs on WIN32-VC platform.

30-10-07 V.Ivanchenko (materials-V09-00-07)
- G4NistManager and G4NistMaterialBuilder - set default state kStateSolid
                (before was kStateUndefined) - this modification keep 
                existing user code unchanged

28-10-07 V.Ivanchenko (materials-V09-00-06)
- G4NistManager and G4NistMaterialBuilder - extended interfaces to build 
                new materials: added G4State, temperature, pressure 
                (gasses are allowed), because of default values for
                these extra parameters no interface change to users

18-10-07 V.Ivanchenko (materials-V09-00-05)
- G4NistManager - added deletion of isotopes (fixed problem of double 
                  deletion); added precomputed Z^1/3 and log(A)
- G4Material - move registration in MaterialTable from constructors
               to InitialisePointers; added Imean to printout
- G4Element  - do not delete isotopes; move registration in ElementTable 
               from constructors to ComputeDerivedQuantities

01-10-07 V.Ivanchenko (materials-V09-00-04)
- G4SandiaTable - fixed memory leak

01-10-07 V.Ivanchenko (materials-V09-00-03)
- G4SandiaTable - separated computations of tables photo-absobtion 
                  coeffitients for photo-electric effect and PAI model; 
                  added fMatSandiaMatrixPAI ordered table; 
                  general cleanup, reduce number of static variables;

27-09-07 V.Ivanchenko (materials-V09-00-02)
- G4IonisParamMat - add comutation and get methods for parameters of
  ion inonisation: Fermi energy, effective Z, effective L-factor;
  they will not be recomputed at each step 

27-07-07 V.Ivanchenko (materials-V09-00-01)
- G4NistManager - simplified logic of Print methods
- G4NistElementBuilder  - added protection to Print method
- G4NistMaterialBuilder - modified FindOrBuildMaterial method - NIST
                          material is built even user create a material
                          with the same name, so NIST materials 
                          parameters cannot be substituted
- G4Material, G4Element - fix destructors, now all materials and elements
  are deleted at the end of a run

26-07-07 V.Ivanchenko (materials-V09-00-00)
- G4Nistmanager provide destruction of all materials and elements
- G4NistElementBuilder - for given Z build only one Nist element
     and allow user create other elements with given Z (HP physics
     requirement)

19-06-07 V.Ivanchenko (materials-V08-03-02)
- G4SandiaTable - comment out destruction of G4OrderedTable

15-06-07 V.Ivanchenko (materials-V08-03-01)
- G4SandiaTable - fixed non-initilised pointer in constructor, int -> G4int

14-06-07 V.Ivanchenko (materials-V08-03-00)
- G4SandiaTable - added deletion of elements of the table in destructor

14-08-07 V.Ivanchenko (materials-V08-03-00a)
- G4NistElementBuilder - protection (Z>=limitNumElements) inside BuildElement
                         (Mokka request)

02-05-07 V.Ivanchenko (materials-V08-02-02)
- G4NistManager and G4NistElementBuilder - add GetNistFirstIsotopeN
  and GetNumberOfNistIsotopes methods

25-04-07 P.Gumplinger (materials-V08-02-01)
- add file G4SurfaceProperty.cc, modify G4SurfaceProperty.hh to provide
  a static G4SurfacePropertyTable akin to G4MaterialTable
  add G4Exception to SetGROUPVEL when E_photon <= 0

10-07-06 V.Ivanchenko (materials-V08-02-00)
- G4Material - fill fAtomVector in the case, when material is built
  from Element mass fractions
- G4NistMaterialBuilder - add liquids O2 and N2
- G4NistElementBuilder - add protection Z<=101

27-06-06 V.Ivanchenko (materials-V08-01-01)
- Add methods to access vector of names of NIST elements and materials 
  (ILC requirement)
- Add methods GetAtomicMass, AddIsotopeMass - return atom mass amd 
  nuclear mass in G4 units
- Add GetTotalBindingEnergy method to G4AtomicShells
- Add Get/SetNaturalAbandancesFlag (requirement of hadronic group)

27-06-06 V.Ivanchenko (materials-V08-01-00)
- G4NistMaterialBuilder - fix graphite desctription

11-05-06 V.Ivanchenko (materials-V08-00-03)
- G4NistManager and G4NistMaterialBuider - add warning flag to control cout
- G4NistElementBuilder - do not subtract mass of electrons from NIST mass

02-05-06 V.Ivanchenko (materials-V08-00-02)
- G4NistManager and G4NistElementBuider - add G4IsotopeAbundance method
- G4NistElementBuilder - subtract mass of electrons from NIST mass

18-03-06 V.Ivanchenko (materials-V08-00-01)
- G4NistMaterialManager - fix bug in regime of combine material definition:
                          partially via NIST DB, partially by user 

09-03-06 V.Ivanchenko (materials-V08-00-00)
- G4NistMaterialBuilder - Add method  ConstructNewGasMaterial
- G4Material - minor change of printout
- G4NistManager - add method GetAtomicMassAmu(Z)
     
22-11-05 G.Cosmo (materials-V07-01-03)
- Additional minor changes needed for direct object persistency.

18-11-05 G.Cosmo (materials-V07-01-02)
- Additional minor changes needed for direct object persistency.
  Temporary solution, pending improvements in the external client
  persistency tool.

15-11-05 mma (materials-V07-01-01)
- G4bool warning=true in GetMaterial(), GetElement(), GetIsotope().
  
09-11-05 G.Cosmo (materials-V07-01-00)
- Added fake default constructor for isotopes, elements, materials and
  relevant related classes, for usage of direct object persistency of
  detector description.

31-10-05 V.Ivanchenko
- G4NistMaterialBuilder: add chemical formulas for number of materials,
  add temperature and presure explicitly for each material, that will
  allow to have other than STP parameters for gases

22-06-05 V.Ivanchenko (materials-V07-00-07)
- change 1 -> 1.0 for water density

08-06-05 V.Ivanchenko (materials-V07-00-06)
- take the head of subdirectory - murge tags 04 and 05

16.05.05 P.Gumplinger (materials-V07-00-05)
- Add SetGROUPVEL() courtesy of Horton-Smith (bug report #741)
     
13-05-05 V.Ivanchenko (materials-V07-00-04)
- add acknowledgement in the Nist classes
     
10-05-05 mma (materials-V07-00-03)
- add a missing coma in G4IonisParamMat::FindMeanExcitationEnergy() - Bug#746

01-04-05 mma (materials-V07-00-02)
- G4Element: new data member fIndexZ to count the number of elements with same Z
     
31.03.05 mma
- G4Isotope: make A optional (taken from Nist data base by default) 
- warning in GetMaterial(materialName) and GetElement(elementName)

18.03.05 S.Sadilov (materials-V07-00-01)
- Fixed compilation problem on Windows for G4NistElementBuilder.
     
22.02.05 mma (materials-V07-00-00)
- new classes G4NistManager, G4NistMessenger
  deleted G4NistMaterialManager
       
11.02.05 mma 
- new classes G4NistElementBuilder, G4NistMaterialBuilder, G4NistMaterialManager
  and test/G4NistMaterialTest1.cc, G4NistMaterialTest2.cc
	 
07.12.04 G.Cosmo - materials-V06-02-02
         Implemented migration to <cmath>.

06.09.04 V.Ivant - materials-V06-02-01 
         Recalculate ionisation parameters after set of new
         mean ionisation potential; added factor 2 to shell correction term.
     
19.07.04 mma - materials-V06-02-00
         Put a protection in G4AtomicShells::GetNumberOfShells(Z)
	 
13.05.04 P.Gumplinger - materials-V06-01-01
         Added new utility method ConstPropertyExists(const char * key)
         returning true/false according to the existance of the 'key' in
         the table G4MaterialPropertiesTable.
     
05.03.04 V.Grichine - materials-V06-01-00 
         new methods for old sorting algorithm for PAI model
	 
03.02.04 V.Ivant - materials-V06-00-01
         Fix problem of destructor of G4SandiaTable
     
22.01.04 mma - materials-V06-00-00
         G4Material.cc: proper STL handdling of theElementVector (Hisaya)

01.12.03 P.Gumplinger - materials-V05-02-00
         Added base class G4SurfaceProperty.
         G4OpticalSurface[.hh.cc]: modified to inherit from G4SurfaceProperty.

18.06.03 G.Cosmo - materials-V05-01-01
         G4Isotope.cc G4Element.cc, G4Material.cc: removed usage of
         G4USE_STD_NAMESPACE after g4std migration.

19.05.03 G.Cosmo - materials-V05-01-00
         G4Isotope.cc: fixed bug in operator=.
         Fixes problem report #429. (M.Maire)
         G4SandiaTable.cc: cleared trivial pedantic warning.

05.11.02 P.Gumplinger - materials-V04-01-03
         Add constant material properties to the G4MaterialPropertiesTable

29.10.02 V.Ivanchenko - materials-V04-01-02
         G4IonisParamMat: Add Set and Find MeanExcitation energy methods.
         
17.10.02 V.Ivanchenko - materials-V04-01-01
         G4IonisParamElm.cc: Fix excitation energy interpolation.
    
06.08.02 M.Maire - materials-V04-01-00
         Remove constructors with chemical formula 
	      
06.05.02 M.Maire - materials-V04-00-03
         Remove the check of the ideal gas state equation
	     
16.04.02 M.Maire - materials-V04-00-02
         G4StaticSandiaData: bug fixed in Pb: comma after  15.861
	 G4Exception put in constructor with chemical formula 
	      
22.02.02 M.Maire - materials-V04-00-01
         fIndexTable renewed in G4Material, G4Element, G4Isotope.

22.01.02 M.Verderi - materials-V04-00-00
	 Fixed G4MaterialPropertyVector::AddElement() which wasn't make use
	 of G4MPVEntry ordering in the G4std::vector<G4MPVEntry*> MPV vector.
	 This happens since the STL migration (while method "insert" of Rogue-Wave
	 was taking care about.)
	 Changes in G4MaterialPropertyVector.hh, G4MaterialPropertyVector.cc
	 and test/testMaterialPropertyVector.cc

29.11.01 G.Cosmo - materials-V03-02-07
         Fixed declaration of ostream attributes to use standard 'fmtflags'
         type for ANSI compilers. Fixes compilation error on gcc-3.0.2.
         Modified files: G4Isotope.cc, G4Element.cc, G4Material.cc.

28.11.01 G.Cosmo - materials-V03-02-06
         Fixed bug in G4MaterialPropertyVector::RemoveElement() for the
         initialisation of a local pointer. Fixes compilation problem on VC++.

31.10.01 M.Maire - materials-V03-02-05 
         New function G4Materials::SetChemicalFormula().

17.10.01 G.Cosmo - materials-V03-02-04
         Removed all static inline methods in G4Isotope, G4Element,
         G4Material and G4SandiaTable. Now placed in respective .cc files.
         Fixed memory leak in G4SandiaTable::ComputeMatSandiaMatrix(),
         for deletion of temporary vectors Z, tmp1, tmp2.
         Moved definitions of G4IsotopeVector and G4ElementVector,
	 G4ElementTable and G4MaterialTable to the appropriate headers.
         Replaced NULL with 0 whereever needed.

19.09.01 G.Cosmo - materials-V03-02-03
         Fixed initialisation of STL collections in costructors and assignment
         operators. Fixes warnings detected on HP-aCC.
     
14.09.01 M.Maire - materials-V03-02-02
         G4Isotope,Element,Material: IndexInTable is obtained dynamically
	 via GetIndex(). An Isotope,Element,Material can be deleted.
	 fCountUse counts the nb of materials which reference a given element.
	 (idem for elements->isotope) 

31.08.01 P.Gumplinger - materials-V03-02-01
         Fix printing of property name and check for NULL property vector 
         pointer in G4MaterialPropertiesTable:DumpTable; and correct warning
         message in RemoveEntry method.
         Improve printing in G4MaterialPropertyVector::DumpVector.

17.07.01 M.Verderi - materials-V03-02-00
	 Complete migration to STL. Tag proposed for testing.

06.06.01 G.Cosmo - materials-V03-01-01
         Explicitly initialise to zero values of G4DataVector used to create
         sandia-matrix in method ComputeMatSandiaMatrix().
         This fix clears warnings detected on HP-aCC.
         Coworks with tag "global-V03-01-01".

18.05.01 G.Cosmo - materials-V03-01-00
         Cleared pedantic warnings detected by Linux-g++ with ISO/ANSI setup.
     
03.05.01 M.Maire
         precision(prec) at begin/end of operator<<  Isotope,Element,Material
     
02.05.01 Marc+mma
         protection added in G4Element::AddIsotope() against no coherent Z

03.04.01 M.Maire - materials-V03-00-07
         removed warning to cerr in GetIsotope(name), GetElement(name),
	 and GetMaterial(name).
         fnulcof added as data member in G4SandiaTable.
     
22.03.01 M.Maire - materials-V03-00-06
         revision of destructor, copy constructor, assignement operator in
	 G4IonisParamElm, G4IonisParamMat, G4Isotope, G4Element, G4Material
	      
22.02.01 M.Maire - materials-V03-00-05
         G4SandiaTable : protection added in GetSandiaCofForMaterial(energy)
	            
Feb     16, 01 M.Maire - materials-V03-00-04
               G4SandiaTable : major bug in GetSandiaCofPerAtom (units!).
	       redesign of ComputeMatSandiaMatrix.
	       Include materials-V03-00-02 
	       
Feb     05, 01 G.Cosmo - materials-V03-00-03
               STL migration for G4OrderedTable and G4DataVector.
               Modified files: G4SandiaTable.cc.
               NOTE: this tag does not include changes in materials-V03-00-02.

Jan     28, 01 M.Maire - materials-V03-00-02
               new method G4Material::GetNuclearInterLength()
	  
Jan     16, 01 V.Ivanchenko - materials-V03-00-01
               IonisParamElm.cc : excitation potential is tabulated
               according ICRU Report #37.
	       
Jan     16, 01 L.Urban  - materials-V03-00-00
               bug fixed in IonisParamMat.cc : E100eV instead of E100keV
               This bug affected the values of the density correction
               parameters in the energy loss (dE/dx) computation,
               its effect was quite big (~ 3-5 % error in dE/dx
               in the energy range 1 MeV - 50 MeV !!!)
	       
Nov     09, 00 V.Grichine - materials-V02-00-01
               included test/ directory which was not tagged.

August  04, 00 V.Grichine - materials-V02-00-00
               G4SandiaTable.cc: fixed initialization of pointers in
	       constructor and corrected deletion of fPhotoAbsorptionCof
	       in destructor.

June    15, 00 G.Cosmo  - materials-V01-01-00
               fixed usage of pow(double,double) in G4SandiaTable.
     
March   03, 00 M.Maire  - materials-V01-00-00
               const char* everywhere in G4MaterialPropertiesTable
	       
Nov     16, 99 G.Cosmo  - materials-V00-01-03
               Removed useless inclusion of RW tphdict.h from
	       G4MaterialPropertiesTable.hh. This tag includes the global
	       migration RWT->G4RWT (still CVS headers are different on the HEAD).

Nov     09, 99 P.Gumpliger  - materials-V00-01-02
               changes to comments for Software Reference Manual in
	       G4MPVEntry.hh, G4MaterialPropertyVector.hh, G4OpticalSurface.hh.
	       Migrated G4MaterialPropertiesTable from RW dictionary to STL map.

July    28, 99 M.Maire  - materials-V00-01-00
               new G4Material constructor with chemical formula
	                 
August  13, 98 M.Maire  - materials-00-02-01
               new static method G4Material::GetMaterial(name)     
     
July    17, 98 M.Maire  - materials-00-01-04
               correction in ComputeDensityCorrection() for gas
               (G4IonisParamMat.cc)    
     
July    10, 98 M.Maire  - materials-00-01-03
               Ionisation parameters put in a subclass
               coworks with em-00-01-03
                   
July     8, 98 M.Maire  - materials-00-01-02
               restored G4MaterialTable, ElementTable, ElementVector 
               to be compatible with pre-beta01-02
               
July     7, 98 M.Maire  - materials-00-01-01
               continue cleanup: Elements and Materials
               new output formats: operator<< overloaded
               
June    30, 98 M.Maire  - materials-00-07-01
               new method AddMaterial() for mixture of mixtures.
               start the cleanup of the category. G4Isotope done. 
               G4IsotopeTable typedef directly include in G4Isotope.hh
               G4MaterialTest.cc illustrate all possible case to 
               define materials.
               
     
June    06, 98 M.Maire  - materials-00-06-01
               new G4AtomicShells class (Vladimir)
               kState = kVacuum removed (minimal lower density set
                                         by default)

April   17, 98 M.Maire  - materials-00-05-01
 
April   08, 98 G.Cosmo
- Added fixes for DEC-cxx 6.0 compiler, related to for-loop index
  declarations. Modified G4SandiaTable.cc.

March     5, 98 M.Maire - materials-00-04-01

January  29, 98 M.Maire - materials-00-03-01

December 19, 97 G.Cosmo - (alpha03)
- Created.

