Changeset 1192 for trunk


Ignore:
Timestamp:
Nov 19, 2009, 2:53:25 PM (15 years ago)
Author:
garnier
Message:

update par rapport a CVS

Location:
trunk/source/processes/electromagnetic/lowenergy
Files:
264 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/lowenergy/GNUmakefile

    r961 r1192  
    1 # $Id: GNUmakefile,v 1.7 2008/11/20 12:06:28 alechner Exp $
     1# $Id: GNUmakefile,v 1.8 2009/06/18 16:18:41 mantero Exp $
    22# --------------------------------------------------------------------
    33# GNUmakefile for electromagnetic sub-library.  John Allison, 25/6/98.
     
    3131            -I$(G4BASE)/materials/include
    3232
     33
    3334include $(G4INSTALL)/config/common.gmk
     35
     36
  • trunk/source/processes/electromagnetic/lowenergy/History

    r1066 r1192  
    1 $Id: History,v 1.372 2009/06/02 15:38:13 alechner Exp $
     1$Id: History,v 1.402 2009/11/12 15:48:41 alechner Exp $
    22-------------------------------------------------------------------
    33
     
    1717     * Reverse chronological order (last date on top), please *
    1818     ----------------------------------------------------------
     19
     2012.11.2009, A. Lechner tag emlowen-V09-02-64
     21            -G4IonParametrisedLossModel:
     22             *) Moved from original ICRU 73 classes to new class (G4Ion-
     23                StoppingData), which is capable of reading stopping power data
     24                files stored in G4LEDATA (requires G4EMLOW6.8): With the new
     25                tables the upper energy limit of ICRU 73 stopping powers is
     26                increased to 1 GeV/nucleon.
     27             *) Decision logic concerning stopping power scaling for heavy ions
     28                was entirely moved to class G4IonDEDXScalingICRU73.
     29             *) Introduced function for switching off scaling for heavy ions.
     30             *) Removed nuclear stopping from model since dedicated process is
     31                available in standard EM package.
     32             *) Minor fixes were applied in energy loss computation.
     33            - G4VIonDEDXScalingAlgorithm: Introduced additional argument for
     34              energy scaling function.
     35            - G4IonDEDXScalingICRU73: See model above. Adapted function
     36              according to interface changes in G4VIonDEDXScalingAlgorithm
     37            - G4IonDEDXHandler: Adapted function according to interface
     38              changes in G4VIonDEDXScalingAlgorithm. Using new build methods
     39              defined in G4VIonDEDXTable (contained in material package).
     40
     4112.11.2009, S. Incerti tag emlowen-V09-02-63
     42            -removed memory leak in G4DNACrossSectionDataSet.cc
     43
     4412.11.2009, S. Incerti tag emlowen-V09-02-62
     45            -added protection for secondary electron energy computation in
     46            G4DNABornIonisationModel.cc
     47            -proposed a faster computation of cross section max value
     48
     4911.11.2009, A. Mantero tag emlowen-V09-02-61
     50            PIXE code cleaning for the Dec review and update of G4hLowEnIonisation
     51            in order to use new PIXE developments.
     52
     5305.11.2009, G. Cosmo, tag emlowen-V09-02-60
     54            replaced usage of M_PI with pi from CLHEP, to fix compilation
     55            errors on Windows.
     56
     5703.11.2009, S. Incerti, tag emlowen-V09-02-59
     58            modified low energy limit of e- elastic Champion Geant4-DNA model
     59            to be used with G4LEDATA version 6.8
     60
     6102.11.2009, S. Incerti, tag emlowen-V09-02-58
     62            extended coverage of e- ionisation Geant4-DNA model
     63            to be used with G4LEDATA version 6.8
     64
     6523.10.2009, L. Pandola, tag emlowen-V09-02-57
     66            Switch atomic deexcitation on (by default) in Livermore PhotoElectric and
     67            Ionisation. It was on also for the former LowEnergy processes. It has been
     68            accidentally switched off since tag emlowen-V02-02-27, probably.
     69
     7022.10.2009, L. Pandola, tag emlowen-V09-02-56
     71            Added ActivateAuger() method to Penelope Compton and Ionisation, so that
     72            all Penelope models have the same interface.
     73
     7421.10.2009, L. Pandola, tag emlowen-V09-02-55
     75            Cleaning up of Penelope Photoelectric, Compton and Ionisation
     76            (atomic deexcitation flag now referred to G4VEmModel). Deexcitation now
     77            is by default active in Penelope models.
     78
     7927.09.2009, N. Karakatsanis, tag emlowen-V09-02-54
     80            Added fixes to
     81            G4ecpssrKCrossSection.cc
     82            G4BremsstrahlungCrossSectionHandler.cc
     83            G4CrossSectionHandler.cc
     84            G4DNACrossSectionDataSet.cc
     85            G4eIonisationCrossSectionHandler.cc
     86
     8725.09.2009, N. Karakatsanis, tag emlowen-V09-02-53
     88            New implementation for data loading and interpolation methods
     89            LoadData method now loads the data from G4EMLOW dataset and, then, calculates
     90            the respective logarithmic values during initialization
     91            Both data formats (original and logarithmic) are loaded to EM datasets and used
     92            later by interpolation methods to perform faster calculations. 
     93            LoadNonLogData method implements the old version for data loading and interpolation
     94
     9524.09.2009, F.Longo, tag emlowen-V09-02-52
     96            implemented protection for infinite loops in Rayleigh
     97            process. 
     98
     9930.08.2009, S. Incerti, tag emlowen-V09-02-51
     100            Extended high energy coverage of proton ionisation
     101            (G4DNABornIonisationModel.cc) and excitation
     102            (G4DNABornExcitationModel.cc)
     103            Decreased temporarily high energy coverage of electron
     104            ionisation from 30 keV to 20 keV (G4DNABornIonisationModel.cc)
     105            The new data files are provided by Z. Francis.
     106            *** From now on G4LEDATA 6.7 should be used ***
     107
     10813.08.2009, S. Incerti, tag emlowen-V09-02-50
     109            Added G4_WATER NIST material to Geant4-DNA models
     110
     11113.08.2009, S. Incerti, tag emlowen-V09-02-49
     112            Added verbose condition to all Geant4-DNA models
     113
     11411.08.2009, S. Incerti, tag emlowen-V09-02-48
     115            Bug fix in G4DNABornIonisationModel (energy deposit was
     116            commented in last reference tag)
     117
     11806.08.2009, A. Lechner, tag emlowen-V09-02-47
     119            Bug fix in G4IonDEDXHandler (access of physics vector was
     120            corrected, in compliance with new version of G4PhysicsVector
     121            where hidden bin no longer exists).
     122
     12306.08.2009, A. Lechner, tag emlowen-V09-02-46
     124            Bug fix in G4IonDEDXScalingICRU73 (initialization of cached values)
     125
     12624.07.2009, V. Ivanchenko, tag emlowen-V09-02-45
     127            G4AtomicShell class is moved to utils subdirectory
     128
     12923.07.2009, V. Ivanchenko, tag emlowen-V09-02-44
     130            G4VeLowEnergyLoss, G4eLowEnergyLoss, G4hLowEnergyLoss
     131            are adapted to modifications in G4PhysicsVector
     132
     13323.07.2009, V. Ivanchenko, tag emlowen-V09-02-43
     134            Fixed path to G4LEDATA in G4ecpssrKCrossSection,
     135            G4ecpssrLCrossSection, G4DNACrossSectionDataSet;
     136            removed debug cout
     137
     13826.06.2009, A. Mantero, tag emlowen-V09-02-41
     139            Compilation errors removal.
     140
     14125.06.2009, A. Mantero, tag emlowen-V09-02-40
     142            Design update, Bug Fixes and models update for
     143            atomic shell hadronic CS calulation.
    19144
    2014502.06.2009, A.Lechner, tag emlowen-V09-02-39
  • trunk/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh

    r1055 r1192  
    2626//
    2727// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh

    r1055 r1192  
    2626//
    2727// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh

    r1055 r1192  
    2525//
    2626// $Id: G4AugerData.hh
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh

    r1055 r1192  
    2626//
    2727// $Id: G4BremsstrahlungParameters.hh,v 1.10 2006/06/29 19:33:06 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4CompositeEMDataSet.hh,v 1.12 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4CompositeEMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3538//
    3639// -------------------------------------------------------------------
     
    7477  virtual const G4DataVector& GetEnergies(G4int componentId) const { return GetComponent(componentId)->GetEnergies(0); }
    7578  virtual const G4DataVector& GetData(G4int componentId) const { return GetComponent(componentId)->GetData(0); }
     79  virtual const G4DataVector& GetLogEnergies(G4int componentId) const { return GetComponent(componentId)->GetLogEnergies(0); }
     80  virtual const G4DataVector& GetLogData(G4int componentId) const { return GetComponent(componentId)->GetLogData(0); }
     81
    7682  virtual void SetEnergiesData(G4DataVector* x, G4DataVector* data, G4int componentId);
     83  virtual void SetLogEnergiesData(G4DataVector* xData,
     84                                  G4DataVector* data,
     85                                  G4DataVector* xLogData,
     86                                  G4DataVector* Logdata,
     87                                  G4int componentId);
    7788
    7889  virtual G4bool LoadData(const G4String& fileName);
     90  virtual G4bool LoadNonLogData(const G4String& fileName);
     91
    7992  virtual G4bool SaveData(const G4String& fileName) const;
    8093
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeDecrease.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionChargeDecrease.hh,v 1.2 2008/07/14 20:47:32 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONCHARGEDECREASE_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeDecreasePartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionChargeDecreasePartial.hh,v 1.2 2008/07/14 20:47:32 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONCHARGEDECREASEPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeIncrease.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionChargeIncrease.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONCHARGEIncrease_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeIncreasePartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionChargeIncreasePartial.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONCHARGEIncreasePARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeTransferCH.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionChargeTransferCH.hh,v 1.3 2008/03/25 16:00:20 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionChargeTransferExp.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionChargeTransferExp.hh,v 1.2 2008/03/25 16:00:20 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionElasticChampion.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionElasticChampion.hh,v 1.1 2008/07/15 19:56:50 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionElasticScreenedRutherford.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionElasticScreenedRutherford.hh,v 1.1 2007/10/12 23:07:10 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionElasticScreenedRutherfordHE.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionElasticScreenedRutherfordHE.hh,v 1.1 2008/06/27 20:09:54 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONELASTICSCREENEDRUTHERFORDHE_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionElasticScreenedRutherfordLE.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionElasticScreenedRutherfordLE.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONELASTICSCREENEDRUTHERFORDLE_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionExcitationBorn.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionExcitationBorn.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONEXCITATIONBORN_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionExcitationBornPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionExcitationBornPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONEXCITATIONBORNPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionExcitationEmfietzoglou.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionExcitationEmfietzoglou.hh,v 1.3 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONEXCITATIONEMFIETZOGLOU_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionExcitationEmfietzoglouPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionExcitationEmfietzoglouPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONEXCITATIONEMFIETZOGLOUPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionExcitationMillerGreenPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionExcitationMillerGreenPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONEXCITATIONMILLERGREENPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionHandler.hh,v 1.9 2006/06/29 19:33:10 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationBorn.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionIonisationBorn.hh,v 1.3 2008/12/18 13:01:22 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929
    3030#ifndef G4CROSSSECTIONIONISATIONBORN_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationBornElectron.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionIonisationBornElectron.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationBornPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionIonisationBornPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONIONISATIONBORNPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationBornPartialElectron.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionIonisationBornPartialElectron.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationRudd.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionIonisationRudd.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONIONISATIONRUDD_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionIonisationRuddPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionIonisationRuddPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4CROSSSECTIONIONISATIONRuddPARTIAL_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionKill.hh

    r1055 r1192  
    2626//
    2727// $Id: G4CrossSectionKill.hh,v 1.1 2007/11/09 20:26:47 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionPsCreationChampion.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionPsCreationChampion.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4CrossSectionPsCreationChampionPartial.hh

    r1055 r1192  
    2525//
    2626// $Id: G4CrossSectionPsCreationChampionPartial.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNABornExcitationModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNABornExcitationModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNABornIonisationModel.hh

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNABornIonisationModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4DNABornIonisationModel.hh,v 1.3 2009/06/26 10:15:19 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    3838#include "G4Electron.hh"
    3939#include "G4Proton.hh"
     40//#include "G4DNAGenericMoleculeManager.hh"
     41#include "G4DNAGenericIonsManager.hh"
     42
    4043#include "G4LogLogInterpolation.hh"
    4144
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAChampionElasticModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAChampionElasticModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAChargeDecrease.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAChargeDecrease.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAChargeIncrease.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAChargeIncrease.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNACrossSectionDataSet.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4DNACrossSectionDataSet.hh,v 1.6 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4DNACrossSectionDataSet.hh,v 1.7 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Riccardo Capra <capra@ge.infn.it>
     
    3232// History:
    3333// -----------
    34 // 30 Jun 2005  RC         Created
    35 // 14 Oct 2007  MGP        Removed inheritance from concrete class G4ShellEMDataSet
     34// 30 Jun 2005  RC                  Created
     35// 14 Oct 2007  MGP                 Removed inheritance from concrete class G4ShellEMDataSet
     36// 15 Jul 2009  N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                  to enhance computing performance of interpolation
    3638//
    3739// -------------------------------------------------------------------
     
    7981  { return GetComponent(componentId)->GetData(0); }
    8082
     83  virtual const G4DataVector& GetLogEnergies(G4int componentId) const
     84  { return GetComponent(componentId)->GetLogEnergies(0); }
     85
     86  virtual const G4DataVector& GetLogData(G4int componentId) const
     87  { return GetComponent(componentId)->GetLogData(0); }
     88
    8189  virtual void SetEnergiesData(G4DataVector* x, G4DataVector* values, G4int componentId);
    8290
     91  virtual void SetLogEnergiesData(G4DataVector* x,
     92                                  G4DataVector* values,
     93                                  G4DataVector* log_x,
     94                                  G4DataVector* log_values,
     95                                  G4int componentId);
     96
    8397  virtual G4bool LoadData(const G4String & argFileName);
     98  virtual G4bool LoadNonLogData(const G4String & argFileName);
     99
    84100  virtual G4bool SaveData(const G4String & argFileName) const;
    85101 
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNADingfelderChargeDecreaseModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNADingfelderChargeDecreaseModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNADingfelderChargeIncreaseModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNADingfelderChargeIncreaseModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAElastic.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAElastic.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAEmfietzoglouExcitationModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAEmfietzoglouExcitationModel.hh,v 1.1 2009/01/12 14:26:02 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAExcitation.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAExcitation.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAGenericIonsManager.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4DNAGenericIonsManager.hh,v 1.3 2006/06/29 19:34:16 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4DNAGenericIonsManager.hh,v 1.4 2009/06/10 13:32:58 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929
    3030#ifndef   G4DNAGENERICIONSMANAGER_HH
     
    4343   static G4DNAGenericIonsManager *      Instance(void);
    4444   G4ParticleDefinition *                GetIon(const G4String & name);
    45    
     45
    4646  private:
    4747                                         G4DNAGenericIonsManager();
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAIonisation.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAIonisation.hh,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAMillerGreenExcitationModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAMillerGreenExcitationModel.hh,v 1.1 2009/01/12 14:26:03 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.hh

    r1055 r1192  
    2626//
    2727// $Id: G4DNAProcess.hh,v 1.5 2007/11/09 16:20:04 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author:  Maria Grazia Pia (Maria.Grazia.Pia@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAProcess.icc

    r1055 r1192  
    2626//
    2727// $Id: G4DNAProcess.icc,v 1.12 2009/01/20 07:50:28 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNARuddIonisationModel.hh

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNARuddIonisationModel.hh,v 1.1 2009/01/12 14:26:03 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4DNARuddIonisationModel.hh,v 1.3 2009/06/26 09:42:32 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    3636
    3737#include "G4DNAGenericIonsManager.hh"
     38//#include "G4DNAGenericMoleculeManager.hh"
    3839#include "G4DNACrossSectionDataSet.hh"
    3940#include "G4Electron.hh"
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DNAScreenedRutherfordElasticModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4DNAScreenedRutherfordElasticModel.hh,v 1.1 2009/01/12 14:26:03 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DopplerProfile.hh

    r1055 r1192  
    2626//
    2727// $Id: G4DopplerProfile.hh,v 1.2 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4DummyFinalState.hh

    r1055 r1192  
    2626//
    2727// $Id: G4DummyFinalState.hh,v 1.2 2007/10/07 12:52:18 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4EMDataSet.hh,v 1.12 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4EMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3538//
    3639// -------------------------------------------------------------------
     
    6972              G4bool random=false);
    7073
     74  G4EMDataSet(G4int argZ,
     75              G4DataVector* xData,
     76              G4DataVector* data,
     77              G4DataVector* xLogData,
     78              G4DataVector* Logdata,
     79              G4VDataSetAlgorithm* algo,
     80              G4double xUnit=MeV,
     81              G4double yUnit=barn,
     82              G4bool random=false);
     83
    7184  virtual ~G4EMDataSet();
    7285 
     
    8396  virtual const G4DataVector& GetEnergies(G4int /* componentId */) const { return *energies; }
    8497  virtual const G4DataVector& GetData(G4int /* componentId */) const { return *data; }
     98  virtual const G4DataVector& GetLogEnergies(G4int /* componentId */) const { return *log_energies; }
     99  virtual const G4DataVector& GetLogData(G4int /* componentId */) const { return *log_data; }
     100
    85101  virtual void SetEnergiesData(G4DataVector* xData, G4DataVector* data, G4int componentId);
     102  virtual void SetLogEnergiesData(G4DataVector* xData,
     103                                  G4DataVector* data,
     104                                  G4DataVector* xLogData,
     105                                  G4DataVector* Logdata,
     106                                  G4int componentId);
     107
    86108
    87109  virtual G4bool LoadData(const G4String& fileName);
     110  virtual G4bool LoadNonLogData(const G4String& fileName);
     111
    88112  virtual G4bool SaveData(const G4String& fileName) const;
    89113
     
    111135  G4DataVector* energies;            // Owned pointer
    112136  G4DataVector* data;                // Owned pointer
     137  G4DataVector* log_energies;        // Owned pointer
     138  G4DataVector* log_data;            // Owned pointer
    113139
    114140  G4VDataSetAlgorithm* algorithm;    // Owned pointer
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateChargeDecrease.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateChargeDecrease.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATECHARGEDECREASE_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateChargeIncrease.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateChargeIncrease.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATECHARGEIncrease_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateChargeTransferProton.hh

    r1055 r1192  
    2626//
    2727// $Id: G4FinalStateChargeTransferProton.hh,v 1.2 2008/03/25 16:00:20 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateElasticBrennerZaider.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateElasticBrennerZaider.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEELASTICBRENNERZAIDER_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateElasticChampion.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateElasticChampion.hh,v 1.1 2008/07/15 19:56:50 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateElasticScreenedRutherford.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateElasticScreenedRutherford.hh,v 1.3 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEELASTICSCREENEDRUTHERFORD_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateExcitationBorn.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateExcitationBorn.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEEXCITATIONBORN_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateExcitationEmfietzoglou.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateExcitationEmfietzoglou.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEEXCITATIONEMFIETZOGLOU_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateExcitationMillerGreen.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateExcitationMillerGreen.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEEXCITATIONMILLERGREEN_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateIonisationBorn.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateIonisationBorn.hh,v 1.4 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#ifndef G4FINALSTATEIONISATIONBORN_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateIonisationRudd.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStateIonisationRudd.hh,v 1.4 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateKill.hh

    r1055 r1192  
    2626//
    2727// $Id: G4FinalStateKill.hh,v 1.1 2007/11/09 20:26:47 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStateProduct.hh

    r1055 r1192  
    2626//
    2727// $Id: G4FinalStateProduct.hh,v 1.5 2009/01/20 07:50:28 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FinalStatePsCreationChampion.hh

    r1055 r1192  
    2525//
    2626// $Id: G4FinalStatePsCreationChampion.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh

    r1055 r1192  
    2626//
    2727// $Id: G4FluoTransition.hh,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4IonDEDXScalingICRU73.hh

    r1066 r1192  
    3737// First implementation: 10. 05. 2009
    3838//
    39 // Modifications:
    40 //
     39// Modifications: 12. 11. 2009 - Moved all decision logic concerning ICRU 73
     40//                               scaling for heavy ions into this class.
     41//                               Adapting ScalingFactorEnergy class according
     42//                               to changes in base class (AL).
    4143//
    4244// Class description:
     
    5355#include "globals.hh"
    5456#include "G4VIonDEDXScalingAlgorithm.hh"
     57#include "G4Material.hh"
     58#include "G4ParticleDefinition.hh"
    5559#include <vector>
    5660
     
    5963
    6064 public:
    61    G4IonDEDXScalingICRU73(G4int minAtomicNumberIon,
    62                           G4int maxAtomicNumberIon,
    63                           G4int atomicNumberReference,
    64                           G4int massNumberReference);
     65   G4IonDEDXScalingICRU73(G4int minAtomicNumberIon = 19,
     66                          G4int maxAtomicNumberIon = 102);
    6567   ~G4IonDEDXScalingICRU73();
    6668
     
    6870   // Returns scaling factor for a given ion.
    6971   G4double ScalingFactorEnergy(
    70            const G4ParticleDefinition* particle);      // Projectile (ion)
     72             const G4ParticleDefinition* particle,     // Projectile (ion)
     73             const G4Material* material);              // Target material
    7174                                                         
    7275
     
    8790             const G4Material*);              // Target material
    8891
    89    void AddException(G4int atomicNumberIon);
    90 
    9192 private:
    92    void UpdateCache(
     93   void UpdateCacheParticle(
    9394             const G4ParticleDefinition* particle);    // Projectile (ion)
    9495
    95    void CreateReferenceParticle();
     96   void UpdateCacheMaterial(
     97             const G4Material* material);              // Target material
     98
     99   void CreateReferenceParticles();
    96100 
    97101   G4double EquilibriumCharge(
     
    106110   G4int maxAtomicNumber;
    107111
    108    // Vector with atomic numbers excepted from scaling procedure
    109    std::vector<G4int> excludedAtomicNumbers;
    110    G4bool excludedIon;
    111 
    112    // Some properties of reference particles are stored for faster access
    113    G4ParticleDefinition* reference;
    114    G4int atomicNumberRef;
    115    G4int massNumberRef;
    116    G4double atomicNumberRefPow23;
    117    G4double chargeRef;
    118    G4double massRef;
     112   // Some properties of reference particle (Fe) are stored for faster access
     113   G4ParticleDefinition* referenceFe;
     114   G4int atomicNumberRefFe;
     115   G4int massNumberRefFe;
     116   G4double atomicNumberRefPow23Fe;
     117   G4double chargeRefFe;
     118   G4double massRefFe;
     119
     120   // Some properties of reference particle (Ar) are stored for faster access
     121   G4ParticleDefinition* referenceAr;
     122   G4int atomicNumberRefAr;
     123   G4int massNumberRefAr;
     124   G4double atomicNumberRefPow23Ar;
     125   G4double chargeRefAr;
     126   G4double massRefAr;
     127
     128   // Flag indicating the use of Fe ions as reference particles
     129   G4bool useFe;
    119130
    120131   // Some properties of projectiles are stored for faster access
     
    125136   G4double cacheCharge;
    126137   G4double cacheMass;
     138
     139   // Material pointer
     140   const G4Material* cacheMaterial;
    127141};
    128142
    129143// ###########################################################################
    130144
    131 inline void G4IonDEDXScalingICRU73::UpdateCache (
    132             const G4ParticleDefinition* particle) {    // Projectile (ion)
     145inline void G4IonDEDXScalingICRU73::UpdateCacheParticle (
     146            const G4ParticleDefinition* particle) {   // Projectile (ion)
    133147
    134148  if(particle != cacheParticle) {
     
    139153     cacheCharge = particle -> GetPDGCharge();
    140154     cacheMass = particle -> GetPDGMass();
    141 
    142155     cacheAtomicNumberPow23 = std::pow(G4double(cacheAtomicNumber), 2./3.);
    143 
    144      excludedIon = false;
    145      size_t nmb = excludedAtomicNumbers.size();
    146      for(size_t i = 0; i < nmb; i++) {
    147        
    148         if(cacheAtomicNumber == excludedAtomicNumbers[i])
    149            excludedIon = true;
    150      }
     156  }
     157}
     158
     159// ###########################################################################
     160
     161inline void G4IonDEDXScalingICRU73::UpdateCacheMaterial (
     162            const G4Material* material) {            // Target material
     163
     164  if(cacheMaterial != material) {
     165
     166     cacheMaterial = material;
     167
     168     useFe = true;
     169
     170     size_t nmbElements = material -> GetNumberOfElements();
     171     if( nmbElements > 1 ) useFe = false;
     172
     173     if( material -> GetName() == "G4_WATER" ) useFe = true;   
    151174  }
    152175}
     
    175198// ###########################################################################
    176199
    177 inline void G4IonDEDXScalingICRU73::AddException(G4int atomicNumber) {
    178 
    179   if(atomicNumber >= minAtomicNumber &&
    180      atomicNumber <= maxAtomicNumber) {
    181 
    182      excludedAtomicNumbers.push_back( atomicNumber );
    183   }
    184 }
    185 
    186 // ###########################################################################
    187 
    188200#endif
  • trunk/source/processes/electromagnetic/lowenergy/include/G4IonParametrisedLossModel.hh

    r1055 r1192  
    3838//
    3939// Modifications: 03. 02. 2009 - Bug fix iterators (AL)
    40 //                11. 03. 2009 - Introduced new table handler (G4IonDEDXHandler)
     40//                11. 03. 2009 - Introduced new table handler(G4IonDEDXHandler)
    4141//                               and modified method to add/remove tables
    42 //                               (tables are now built in initialisation phase),
     42//                               (tables are now built in init. phase),
    4343//                               Minor bug fix in ComputeDEDXPerVolume (AL)
    44 //
     44//                12. 11. 2009 - Added function for switching off scaling
     45//                               of heavy ions from ICRU 73 data
     46//
     47//
    4548// Class description:
    4649//    Model for computing the energy loss of ions by employing a
     
    170173   G4bool RemoveDEDXTable(const G4String& name);
    171174
     175   // Function which allows to switch off scaling of stopping powers of heavy
     176   // ions from existing ICRU 73 data
     177   void DeactivateICRU73Scaling();
     178
    172179   // Function checking the applicability of physics tables to ion-material
    173180   // combinations (Note: the energy range of tables is not checked)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4LinInterpolation.hh,v 1.3 2006/06/29 19:35:45 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4LinInterpolation.hh,v 1.4 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
    3535//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3638// -------------------------------------------------------------------
    3739// Class description:
     
    6163                     const G4DataVector& data) const;
    6264
     65  G4double Calculate(G4double point, G4int bin,
     66                     const G4DataVector& energies,
     67                     const G4DataVector& data,
     68                     const G4DataVector& log_energies,
     69                     const G4DataVector& log_data) const;
     70
    6371  G4VDataSetAlgorithm* Clone() const;
    6472
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LinLogInterpolation.hh

    r819 r1192  
    3030// History:
    3131// -----------
    32 // 27 May 2002   VI        Created
     32// 27 May 2002   VI                  Created
     33//
     34// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     35//                                   to enhance computing performance of interpolation
    3336//
    3437// -------------------------------------------------------------------
     
    5760                     const G4DataVector& data) const;
    5861
     62  G4double Calculate(G4double point, G4int bin,
     63                     const G4DataVector& energies,
     64                     const G4DataVector& data,
     65                     const G4DataVector& log_energies,
     66                     const G4DataVector& log_data) const;
     67
    5968  virtual G4VDataSetAlgorithm* Clone() const { return new G4LinLogInterpolation; }
    6069
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LinLogLogInterpolation.hh

    r819 r1192  
    2929// History:
    3030// -----------
    31 // 27 May 2002   VI        Created
     31// 27 May 2002   VI                  Created
     32//
     33// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     34//                                   to enhance computing performance of interpolation
    3235//
    3336// -------------------------------------------------------------------
     
    5659                     const G4DataVector& data) const;
    5760
     61  G4double Calculate(G4double point, G4int bin,
     62                     const G4DataVector& energies,
     63                     const G4DataVector& data,
     64                     const G4DataVector& log_energies,
     65                     const G4DataVector& log_data) const;
     66
    5867  virtual G4VDataSetAlgorithm* Clone() const;
    5968
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermoreBremsstrahlungModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4LivermoreBremsstrahlungModel.hh,v 1.2 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermoreComptonModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermoreComptonModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermoreGammaConversionModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermoreGammaConversionModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermoreIonisationModel.hh

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreIonisationModel.hh,v 1.2 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4LivermoreIonisationModel.hh,v 1.3 2009/10/23 09:28:37 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    3333// 12 Jan 2009   L. Pandola   1st implementation. Migration from EM process
    3434//                            to EM model. Physics is unchanged.
    35 //
     35// 23 Oct 2009   L. Pandola   remove un-necessary methods to manage atomic
     36//                            deexcitation (done by G4VEmModel)
     37//
    3638// -------------------------------------------------------------------
    3739//
     
    100102                 
    101103  void SetVerboseLevel(G4int vl) {verboseLevel = vl;};
    102   void SetUseAtomicDeexcitation(G4bool val){fUseAtomicDeexcitation = val;};
    103   G4bool GetSetUseAtomicDeexcitation(){return fUseAtomicDeexcitation;};
     104  G4int GetVerboseLevel(){return verboseLevel;};
    104105
    105106  void ActivateAuger(G4bool);
     
    121122
    122123  G4bool isInitialised;
    123   G4bool fUseAtomicDeexcitation;
    124124 
    125125  G4int verboseLevel;
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermorePhotoElectricModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermorePhotoElectricModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedComptonModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermorePolarizedComptonModel.hh,v 1.3 2009/05/02 15:20:52 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermorePolarizedRayleighModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermorePolarizedRayleighModel.hh,v 1.3 2009/05/02 15:20:52 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LivermoreRayleighModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LivermoreRayleighModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4LogLogInterpolation.hh,v 1.6 2008/12/09 13:28:02 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4LogLogInterpolation.hh,v 1.7 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3538//
    3639// -------------------------------------------------------------------
     
    6164                     const G4DataVector& data) const;
    6265
     66  G4double Calculate(G4double point, G4int bin,
     67                     const G4DataVector& energies,
     68                     const G4DataVector& data,
     69                     const G4DataVector& log_energies,
     70                     const G4DataVector& log_data) const;
     71
    6372  virtual G4VDataSetAlgorithm* Clone() const;
    6473
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh

    r1055 r1192  
    2727// -------------------------------------------------------------------
    2828// $Id: G4LowEnergyBremsstrahlung.hh,v 1.37 2006/06/29 19:35:55 gunter Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LowEnergyCompton.hh,v 1.24 2008/11/04 10:14:00 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh

    r1055 r1192  
    2626//
    2727// $Id: G4LowEnergyGammaConversion.hh,v 1.15 2006/06/29 19:35:59 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh

    r1055 r1192  
    2626// -------------------------------------------------------------------
    2727// $Id: G4LowEnergyIonisation.hh,v 1.41 2006/06/29 19:36:01 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh

    r1055 r1192  
    2626//
    2727// $Id: G4LowEnergyPhotoElectric.hh,v 1.28 2006/06/29 19:36:03 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh

    r1055 r1192  
    2626//
    2727// $Id: G4LowEnergyPolarizedCompton.hh,v 1.10 2008/05/02 13:04:41 flongo Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// ------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh

    r1055 r1192  
    2525//
    2626// $Id: G4LowEnergyPolarizedRayleigh.hh,v 1.5 2006/06/29 19:36:07 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh

    r1055 r1192  
    2626//
    2727// $Id: G4LowEnergyRayleigh.hh,v 1.16 2006/06/29 19:36:09 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030//
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PaulKCrossSection.hh

    r966 r1192  
    2525//
    2626//
     27// History:
     28// -----------
     29//  21 Apr 2008   H. Abdelohauwed - 1st implementation
     30//  29 Apr 2009   ALF  Major Design Revision
     31//
     32// -------------------------------------------------------------------
     33
     34// Class description:
     35// Low Energy Electromagnetic Physics, Cross section, p ionisation, K shell
     36// Further documentation available from http://www.ge.infn.it/geant4/lowE
     37
     38// -------------------------------------------------------------------
    2739
    2840
     
    3042#define G4PAULKCROSSSECTION_HH 1
    3143
     44//#include "G4VDataSetAlgorithm.hh"
    3245#include "globals.hh"
     46#include <map>
    3347
     48class G4VDataSetAlgorithm;
     49class G4VEMDataSet;
    3450
    3551class G4PaulKCrossSection
     
    4258  virtual ~G4PaulKCrossSection();
    4359                             
    44   G4double CalculateKCrossSection(G4int zTarget,G4int zIncident, G4double energyIncident);
     60  G4double CalculateKCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident);
    4561                                   
    4662 
    47 
    48    
    49 
    5063private:
    5164
     
    5467  G4PaulKCrossSection & operator = (const G4PaulKCrossSection &right);
    5568
     69  G4VDataSetAlgorithm* interpolation;
     70
     71  std::map< G4int , G4VEMDataSet* > protonDataSetMap;
     72
     73  std::map< G4int , G4VEMDataSet* > alphaDataSetMap;
     74 
     75
    5676};
    5777
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeAnnihilationModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4PenelopeAnnihilationModel.hh,v 1.1 2008/11/04 10:14:56 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlung.hh

    r1055 r1192  
    2727// -------------------------------------------------------------------
    2828// $Id: G4PenelopeBremsstrahlung.hh,v 1.8 2006/06/29 19:36:15 gunter Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: L.Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungAngular.hh

    r1055 r1192  
    2727// -------------------------------------------------------------------
    2828// $Id: G4PenelopeBremsstrahlungAngular.hh,v 1.3 2006/06/29 19:36:17 gunter Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: L.Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungContinuous.hh

    r1055 r1192  
    2727// -------------------------------------------------------------------
    2828// $Id: G4PenelopeBremsstrahlungContinuous.hh,v 1.4 2008/12/09 15:04:05 pandola Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: L.Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungModel.hh

    r1058 r1192  
    2525//
    2626// $Id: G4PenelopeBremsstrahlungModel.hh,v 1.2 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeCompton.hh

    r1055 r1192  
    2525//
    2626// $Id: G4PenelopeCompton.hh,v 1.11 2008/03/26 15:30:19 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeComptonModel.hh

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeComptonModel.hh,v 1.1 2008/10/28 08:50:21 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4PenelopeComptonModel.hh,v 1.3 2009/10/21 14:56:47 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    3333// 02 Oct 2008   L. Pandola   1st implementation. Migration from EM process
    3434//                            to EM model
     35// 21 Oct 2009   L. Pandola   Remove un-necessary methods and variables to handle
     36//                            AtomicDeexcitationFlag - now demanded to G4VEmModel
     37//                            Add ActivateAuger() method and deexcitationManager
    3538//
    3639// -------------------------------------------------------------------
     
    4851#include "G4DataVector.hh"
    4952#include "G4ParticleChangeForGamma.hh"
     53#include "G4AtomicDeexcitation.hh"
    5054
    5155class G4ParticleDefinition;
     
    5357class G4MaterialCutsCouple;
    5458class G4Material;
    55 //class G4PhysicsTable;
    5659
    5760class G4PenelopeComptonModel : public G4VEmModel
     
    8184                                 G4double maxEnergy);
    8285
    83   void SetUseAtomicDeexcitation(G4bool value){fUseAtomicDeexcitation = value;};         
    84   G4bool GetUseAtomicDeexcitation(){return fUseAtomicDeexcitation;};
    85 
    8686  void SetVerbosityLevel(G4int lev){verboseLevel = lev;};
    8787  G4int GetVerbosityLevel(){return verboseLevel;};
     88
     89  void ActivateAuger(G4bool);
    8890
    8991protected:
     
    113115  G4double fIntrinsicHighEnergyLimit;
    114116
    115   G4bool fUseAtomicDeexcitation;
    116 
    117117  G4int verboseLevel;
    118118
    119119  G4bool isInitialised;
    120120
    121  
     121  G4AtomicDeexcitation deexcitationManager;
    122122
    123123};
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversion.hh

    r1055 r1192  
    2626//
    2727// $Id: G4PenelopeGammaConversion.hh,v 1.2 2006/06/29 19:36:25 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: L. Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversionModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4PenelopeGammaConversionModel.hh,v 1.1 2008/10/28 08:50:21 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisation.hh

    r1055 r1192  
    2626// -------------------------------------------------------------------
    2727// $Id: G4PenelopeIonisation.hh,v 1.5 2006/06/29 19:36:33 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: L. Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisationModel.hh

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeIonisationModel.hh,v 1.1 2008/12/04 14:12:09 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4PenelopeIonisationModel.hh,v 1.3 2009/10/21 14:56:47 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    3333// 26 Nov 2008   L. Pandola   1st implementation. Migration from EM process
    3434//                            to EM model. Physics is unchanged.
     35// 21 Oct 2009   L. Pandola   Remove un-necessary methods and variables to handle
     36//                            AtomicDeexcitationFlag - now demanded to G4VEmModel
     37//                            Add ActivateAuger() method
    3538//
    3639// -------------------------------------------------------------------
     
    8689                               G4double kineticEnergy,
    8790                               G4double cutEnergy);
    88                                  
    89 
    90   void SetUseAtomicDeexcitation(G4bool value){fUseAtomicDeexcitation = value;};         
    91   G4bool GetUseAtomicDeexcitation(){return fUseAtomicDeexcitation;};
    92 
     91                               
    9392  void SetVerbosityLevel(G4int lev){verboseLevel = lev;};
    9493  G4int GetVerbosityLevel(){return verboseLevel;};
    9594
     95  void ActivateAuger(G4bool);
    9696
    9797protected:
     
    108108  G4double fIntrinsicHighEnergyLimit;
    109109
    110   G4bool fUseAtomicDeexcitation;
    111 
    112110  G4int verboseLevel;
    113111
     
    121119                                     G4int Z,G4double electronVolumeDensity);
    122120  void CalculateDiscreteForPositrons(G4double kinEnergy,G4double cutoffEnergy,
    123                                      G4int Z,G4double electronVolumeDensity);
     121                             G4int Z,G4double electronVolumeDensity);
    124122
    125123  G4AtomicDeexcitation deexcitationManager;
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectric.hh

    r1055 r1192  
    2626//
    2727// $Id: G4PenelopePhotoElectric.hh,v 1.4 2006/06/29 19:36:35 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: L.Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectricModel.hh

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopePhotoElectricModel.hh,v 1.1 2008/10/28 08:50:21 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     26// $Id: G4PenelopePhotoElectricModel.hh,v 1.2 2009/10/21 10:47:02 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    3333// 08 Oct 2008   L. Pandola   1st implementation. Migration from EM process
    3434//                            to EM model
     35// 21 Oct 2009   L. Pandola   Remove un-necessary methods and variables to handle
     36//                            AtomicDeexcitationFlag - now demanded to G4VEmModel
    3537//
    3638// -------------------------------------------------------------------
     
    8284                                 G4double maxEnergy);
    8385
    84   void SetUseAtomicDeexcitation(G4bool value){fUseAtomicDeexcitation = value;};         
    85   G4bool GetUseAtomicDeexcitation(){return fUseAtomicDeexcitation;};
    86 
    8786  void SetVerbosityLevel(G4int lev){verboseLevel = lev;};
    8887  G4int GetVerbosityLevel(){return verboseLevel;};
     
    9796  G4PenelopePhotoElectricModel(const G4PenelopePhotoElectricModel&);
    9897
    99   G4double SampleElectronDirection(G4double ene);
     98  G4double SampleElectronDirection(G4double energy);
    10099
    101100  //Intrinsic energy limits of the model: cannot be extended by the parent process
     
    103102  G4double fIntrinsicHighEnergyLimit;
    104103
    105   G4bool fUseAtomicDeexcitation;
    106104  G4int verboseLevel;
    107105  G4bool isInitialised;
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleigh.hh

    r1055 r1192  
    2626//
    2727// $Id: G4PenelopeRayleigh.hh,v 1.5 2006/06/29 19:36:37 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleighModel.hh

    r1055 r1192  
    2525//
    2626// $Id: G4PenelopeRayleighModel.hh,v 1.1 2008/10/28 08:50:21 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh

    r1055 r1192  
    2626//
    2727// $Id: G4RangeNoTest.hh,v 1.4 2006/06/29 19:36:47 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh

    r1055 r1192  
    2626//
    2727// $Id: G4RangeTest.hh,v 1.4 2006/06/29 19:36:49 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4RayleighScattering.hh

    r1058 r1192  
    2626//
    2727// $Id: G4RayleighScattering.hh,v 1.2 2009/03/18 13:45:51 pandola Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030//------------------ G4RayleighScattering physics process -----------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4SemiLogInterpolation.hh,v 1.4 2006/06/29 19:36:51 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4SemiLogInterpolation.hh,v 1.5 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3538//
    3639// -------------------------------------------------------------------
     
    6164                     const G4DataVector& data) const;
    6265
     66  G4double Calculate(G4double point, G4int bin,
     67                     const G4DataVector& energies,
     68                     const G4DataVector& data,
     69                     const G4DataVector& log_energies,
     70                     const G4DataVector& log_data) const;
     71
    6372  virtual G4VDataSetAlgorithm* Clone() const;
    6473
  • trunk/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh

    r1055 r1192  
    2626//
    2727// $Id: G4ShellData.hh,v 1.7 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4ShellEMDataSet.hh,v 1.12 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4ShellEMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
    35 //  9 Mar 2008   MGP        Cleaned up unreadable code modified by former developer
    36 //                          (Further clean-up needed)
     34// 31 Jul 2001   MGP                 Created
     35//  9 Mar 2008   MGP                 Cleaned up unreadable code modified by former developer
     36//                                   (Further clean-up needed)
     37// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     38//                                   to enhance computing performance of interpolation
    3739//
    3840// -------------------------------------------------------------------
     
    7577  virtual const G4DataVector& GetEnergies(G4int componentId) const { return GetComponent(componentId)->GetEnergies(0); }
    7678  virtual const G4DataVector& GetData(G4int componentId) const { return GetComponent(componentId)->GetData(0); }
     79  virtual const G4DataVector& GetLogEnergies(G4int componentId) const { return GetComponent(componentId)->GetLogEnergies(0); }
     80  virtual const G4DataVector& GetLogData(G4int componentId) const { return GetComponent(componentId)->GetLogData(0); }
     81
    7782  virtual void SetEnergiesData(G4DataVector* energies, G4DataVector* data, G4int componentId);
     83  virtual void SetLogEnergiesData(G4DataVector* energies,
     84                                  G4DataVector* data,
     85                                  G4DataVector* log_energies,
     86                                  G4DataVector* log_data,
     87                                  G4int componentId);
    7888
    7989  virtual G4bool LoadData(const G4String& fileName);
     90  virtual G4bool LoadNonLogData(const G4String& fileName);
     91
    8092  virtual G4bool SaveData(const G4String& fileName) const;
    8193
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4VCrossSectionHandler.hh,v 1.14 2006/06/29 19:37:01 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4VCrossSectionHandler.hh,v 1.15 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 16 Sep 2001   MGP           Created
    35 // 26 Sep 2001   V.Ivanchenko  Hide copy constructor and assignement operator
    36 // 18 Apr 2002   V.Ivanchenko  Move member function ValueForMaterial to public
    37 // 21 Jan 2003   V.Ivanchenko  Cut per region
     34// 16 Sep 2001   MGP                Created
     35// 26 Sep 2001   V.Ivanchenko       Hide copy constructor and assignement operator
     36// 18 Apr 2002   V.Ivanchenko       Move member function ValueForMaterial to public
     37// 21 Jan 2003   V.Ivanchenko       Cut per region
     38// 15 Jul 2009   N.A.Karakatsanis   New methods added for loading logarithmic data
     39//                                  to enhance computing performance of interpolation
    3840//
    3941// -------------------------------------------------------------------
     
    9799  void LoadData(const G4String& dataFile);
    98100
     101  void LoadNonLogData(const G4String& dataFile);
     102
    99103  void LoadShellData(const G4String& dataFile);
    100104
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4VDataSetAlgorithm.hh,v 1.7 2006/06/29 19:37:07 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4VDataSetAlgorithm.hh,v 1.8 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New calculation method added to support interpolation
     37//                                   from datasets with pre-calculated logarithmic data
    3538//
    3639// -------------------------------------------------------------------
     
    5558  virtual ~G4VDataSetAlgorithm() { }
    5659 
    57 
    5860  virtual G4double Calculate(G4double point, G4int bin,
    5961                             const G4DataVector& energies,
    6062                             const G4DataVector& data) const = 0;
     63
     64  virtual G4double Calculate(G4double point, G4int bin,
     65                             const G4DataVector& energies,
     66                             const G4DataVector& data,
     67                             const G4DataVector& log_energies,
     68                             const G4DataVector& log_data) const = 0;
    6169
    6270  virtual G4VDataSetAlgorithm* Clone() const = 0;
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4VEMDataSet.hh,v 1.12 2008/03/17 13:45:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// $Id: G4VEMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 // 31 Jul 2001   MGP        Created
     34// 31 Jul 2001   MGP                 Created
     35//
     36// 15 Jul 2009   N.A.Karakatsanis    New methods added for loading logarithmic data
     37//                                   to enhance computing performance of interpolation
    3538//
    3639// -------------------------------------------------------------------
     
    6669  virtual const G4DataVector& GetEnergies(G4int componentId) const = 0;
    6770  virtual const G4DataVector& GetData(G4int componentId) const = 0;
     71  virtual const G4DataVector& GetLogEnergies(G4int componentId) const = 0;
     72  virtual const G4DataVector& GetLogData(G4int componentId) const = 0;
     73
    6874  virtual void SetEnergiesData(G4DataVector* x, G4DataVector* data, G4int component=0) = 0;
     75  virtual void SetLogEnergiesData(G4DataVector* x,
     76                                  G4DataVector* data,
     77                                  G4DataVector* Log_x,
     78                                  G4DataVector* Log_data,
     79                                  G4int component=0) = 0;
    6980 
    7081  virtual G4bool LoadData(const G4String& fileName) = 0;
     82  virtual G4bool LoadNonLogData(const G4String& fileName) = 0;
     83
    7184  virtual G4bool SaveData(const G4String& fileName) const = 0;
    7285
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VIonDEDXScalingAlgorithm.hh

    r1058 r1192  
    3535// First implementation: 11. 03. 2009
    3636//
    37 // Modifications:
    38 //
     37// Modifications: 12. 11. 2009 - Added second argument (material) to energy
     38//                               scaling function (AL)
    3939//
    4040// Class description:
     
    6464   // Returns scaling factor for a given ion.
    6565   virtual G4double ScalingFactorEnergy(
    66              const G4ParticleDefinition*)     // Projectile (ion)
     66             const G4ParticleDefinition*,     // Projectile (ion)
     67             const G4Material*)               // Target material
    6768                 { return 1.0; }
    6869
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh

    r1055 r1192  
    2525//
    2626// $Id: G4VLowEnergyDiscretePhotonProcess.hh,v 1.4 2006/06/29 19:37:13 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyTestableDiscreteProcess.hh

    r1055 r1192  
    2626//
    2727// $Id: G4VLowEnergyTestableDiscreteProcess.hh,v 1.3 2006/06/29 19:37:17 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh

    r1055 r1192  
    2626//
    2727// $Id: G4VRangeTest.hh,v 1.3 2006/06/29 19:37:21 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh

    r1055 r1192  
    2626//
    2727// $Id: G4VeLowEnergyLoss.hh,v 1.9 2006/06/29 19:37:23 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// 3.4.2000 Veronique Lefebure:
  • trunk/source/processes/electromagnetic/lowenergy/include/G4WaterExcitationStructure.hh

    r1055 r1192  
    2626//
    2727// $Id: G4WaterExcitationStructure.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4WaterIonisationStructure.hh

    r1055 r1192  
    2626//
    2727// $Id: G4WaterIonisationStructure.hh,v 1.1 2007/11/08 20:38:40 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh

    r1055 r1192  
    2525//
    2626// $Id: G4eBremsstrahlungSpectrum.hh,v 1.8 2006/06/29 19:37:33 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eCrossSectionExcitationEmfietzoglou.hh

    r1055 r1192  
    2626//
    2727// $Id: G4eCrossSectionExcitationEmfietzoglou.hh,v 1.1 2007/05/02 17:18:48 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eCrossSectionScreenedRutherford.hh

    r1055 r1192  
    2626//
    2727// $Id: G4eCrossSectionScreenedRutherford.hh,v 1.2 2007/10/12 12:26:34 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh

    r1055 r1192  
    2525//
    2626// $Id: G4eIonisationCrossSectionHandler.hh,v 1.7 2009/01/29 08:13:27 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh

    r1055 r1192  
    2626//
    2727// $Id: G4eIonisationParameters.hh,v 1.8 2006/06/29 19:37:38 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh

    r1055 r1192  
    2525//
    2626// $Id: G4eIonisationSpectrum.hh,v 1.7 2006/06/29 19:37:40 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh

    r1055 r1192  
    2626//
    2727// $Id: G4eLowEnergyLoss.hh,v 1.14 2006/06/29 19:37:42 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc

    r1055 r1192  
    2626//
    2727// $Id: G4eLowEnergyLoss.icc,v 1.8 2006/06/29 19:37:44 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// ---------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyIonisation.hh

    r819 r1192  
    5050// 26 Feb    2002 V.Ivanchenko Add initialMass for GenericIons
    5151// 21 Jan    2003 V.Ivanchenko Cut per region
     52// 03 Oct    2009 ALF added SelectShellIonisationCS
    5253// ------------------------------------------------------------
    5354 
     
    175176  // This method switch on/off simulation of the fluorescence of the media.
    176177
     178  void SelectShellIonisationCS(G4String);
     179
     180
    177181  G4VParticleChange* AlongStepDoIt(const G4Track& trackData ,
    178182                                   const G4Step& stepData ) ;
     
    260264                                                  G4double hMass,
    261265                                                  G4double eLoss);
     266
    262267
    263268  G4int SelectRandomAtom(const G4MaterialCutsCouple* couple,
     
    314319  std::vector<G4VEMDataSet*> zFluoDataVector;
    315320  G4bool theFluo;
    316   G4bool expFlag;
    317321};
    318322
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh

    r1055 r1192  
    2626//
    2727// $Id: G4hLowEnergyLoss.hh,v 1.17 2006/06/29 19:37:58 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// $Id:
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc

    r1055 r1192  
    2626//
    2727// $Id: G4hLowEnergyLoss.icc,v 1.3 2006/06/29 19:38:00 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// $Id:
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExp.hh

    r1055 r1192  
    4545// -------------------------------------------------------------------
    4646// $Id: G4hShellCrossSectionDoubleExp.hh,v 1.3 2006/06/29 19:38:12 gunter Exp $
    47 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     47// GEANT4 tag $Name: emlowen-V09-02-64 $
    4848
    4949#ifndef G4HSHELLCROSSSECTIONDOUBLEEXP_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExpData.hh

    r1055 r1192  
    4040// -------------------------------------------------------------------
    4141// $Id: G4hShellCrossSectionDoubleExpData.hh,v 1.3 2006/06/29 19:38:14 gunter Exp $
    42 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     42// GEANT4 tag $Name: emlowen-V09-02-64 $
    4343
    4444#ifndef G4hShellCrossSectionDoubleExpData_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExp.hh

    r1055 r1192  
    4545// -------------------------------------------------------------------
    4646// $Id: G4hShellCrossSectionExp.hh,v 1.3 2006/06/29 19:38:16 gunter Exp $
    47 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     47// GEANT4 tag $Name: emlowen-V09-02-64 $
    4848
    4949#ifndef G4HSHELLCROSSSECTIONEXP_HH
  • trunk/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExpData.hh

    r1055 r1192  
    3838// -------------------------------------------------------------------
    3939// $Id: G4hShellCrossSectionExpData.hh,v 1.3 2006/06/29 19:38:18 gunter Exp $
    40 // GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
     40// GEANT4 tag $Name: emlowen-V09-02-64 $
    4141
    4242#ifndef G4hShellCrossSectionExpData_HH
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc

    r1055 r1192  
    2626//
    2727// $Id: G4AtomicDeexcitation.cc,v 1.11
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
     
    295295          if(shellNum == maxNumOfShells)
    296296            {
    297 //            G4cout << "G4AtomicDeexcitation warning: No Auger transition found" <<  G4endl;
    298 //            G4cout << "Absorbed enrgy deposited locally" << G4endl;
    299               G4Exception("G4AtomicDeexcitation: No Auger transition found");
     297
     298              //G4Exception("G4AtomicDeexcitation: No Auger transition found");
    300299              return 0;
    301300            }
     
    303302        while (shellId != (transitionManager->ReachableAugerShell(Z,shellNum)->FinalShellId()) ) ;
    304303      }
    305           /*    {
    306 
    307           if(shellNum == maxNumOfShells-1)
    308             {
    309               G4Exception("G4AtomicDeexcitation: No Auger tramsition found");
    310             }
    311           shellNum++;
    312           }*/
    313    
    314 
    315304
    316305
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc

    r1007 r1192  
    2626//
    2727// $Id: G4AtomicTransitionManager.cc,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
     
    366366        }
    367367     
     368      if (totalRadTransProb > 1) {
     369      G4Exception( "Wrong Total Probability");
     370      return 0;
     371}
    368372      G4double totalNonRadTransProb= (1 - totalRadTransProb);
    369373     
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc

    r1055 r1192  
    508508          for (size_t a = 0; a <= NumberOfAuger(Z,i,id); a++) {
    509509           
    510             G4double e = StartShellEnergy(Z,i,id,a) /MeV;
     510            G4double e = StartShellEnergy(Z,i,id,a)/MeV;
    511511            G4double p = StartShellProb(Z,i,id,a);
    512512            G4int augerId = AugerShellId(Z, i, id, a);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BremsstrahlungCrossSectionHandler.cc,v 1.10 2009/03/03 11:19:18 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4BremsstrahlungCrossSectionHandler.cc,v 1.12 2009/09/27 10:47:42 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
     
    3838// Creation date: 25 September 2001
    3939//
    40 // Modifications:
     40// Modifications:
     41//
    4142// 10.10.2001 MGP Revision to improve code quality and consistency with design
    4243// 21.01.2003 VI  cut per region
    4344// 03.03.2009 LP  Added public method to make a easier migration of
    4445//                G4LowEnergyBremsstrahlung to G4LivermoreBremsstrahlungModel
     46//
     47// 15 Jul 2009   Nicolas A. Karakatsanis
     48//
     49//                           - BuildCrossSectionForMaterials method was revised in order to calculate the
     50//                             logarithmic values of the loaded data.
     51//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     52//                             respective log values and loads them to seperate data structures.
     53//                             The EM data sets, initialized this way, contain both non-log and log values.
     54//                             These initialized data sets can enhance the computing performance of data interpolation
     55//                             operations
     56//
     57//
     58//
    4559//
    4660// -------------------------------------------------------------------
     
    8397  G4DataVector* energies;
    8498  G4DataVector* cs;
     99
     100  G4DataVector* log_energies;
     101  G4DataVector* log_cs;
     102
    85103  G4int nOfBins = energyVector.size();
    86104
     
    105123
    106124      G4int Z = (G4int) ((*elementVector)[i]->GetZ());
     125
    107126      energies = new G4DataVector;
    108127      cs       = new G4DataVector;
     128
     129      log_energies = new G4DataVector;
     130      log_cs       = new G4DataVector;
     131
    109132      G4double density = nAtomsPerVolume[i];
    110133
     
    113136        G4double e = energyVector[bin];
    114137        energies->push_back(e);
     138        if (e==0.) e=1e-300;
     139        log_energies->push_back(std::log10(e));
    115140        G4double value = 0.0;
    116141
     
    123148        }
    124149        cs->push_back(value);
     150
     151        if (value==0.) value=1e-300;
     152        log_cs->push_back(std::log10(value));
    125153      }
    126154      G4VDataSetAlgorithm* algol = interp->Clone();
    127       G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,algol,1.,1.);
     155
     156      //G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,algol,1.,1.);
     157
     158      G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,log_energies,log_cs,algol,1.,1.);
     159
    128160      setForMat->AddComponent(elSet);
    129161    }
  • trunk/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4BremsstrahlungParameters.cc,v 1.19 2006/06/29 19:38:44 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4BremsstrahlungParameters.cc,v 1.20 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4CompositeEMDataSet.cc,v 1.13 2008/03/17 13:40:53 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4CompositeEMDataSet.cc,v 1.15 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3333// -----------
    3434// 1 Aug 2001   MGP        Created
     35//
     36// 15 Jul 2009   Nicolas A. Karakatsanis
     37//
     38//                           - LoadNonLogData method was created to load only the non-logarithmic data from G4EMLOW
     39//                             dataset. It is essentially performing the data loading operations as in the past.
     40//
     41//                           - LoadData method was revised in order to calculate the logarithmic values of the data
     42//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     43//                             respective log values and loads them to seperate data structures.
     44//
     45//                           - SetLogEnergiesData method was cretaed to set logarithmic values to G4 data vectors.
     46//                             The EM data sets, initialized this way, contain both non-log and log values.
     47//                             These initialized data sets can enhance the computing performance of data interpolation
     48//                             operations
    3549//
    3650// -------------------------------------------------------------------
     
    114128}
    115129
     130void G4CompositeEMDataSet::SetLogEnergiesData(G4DataVector* argEnergies,
     131                                              G4DataVector* argData,
     132                                              G4DataVector* argLogEnergies,
     133                                              G4DataVector* argLogData,
     134                                              G4int argComponentId)
     135{
     136  G4VEMDataSet * component(components[argComponentId]);
     137 
     138  if (component)
     139    {
     140      component->SetLogEnergiesData(argEnergies, argData, argLogEnergies, argLogData, 0);
     141      return;
     142    }
     143
     144  std::ostringstream message;
     145  message << "G4CompositeEMDataSet::SetEnergiesData - component " << argComponentId << " not found";
     146 
     147  G4Exception(message.str().c_str());
     148}
     149
     150
    116151G4bool G4CompositeEMDataSet::LoadData(const G4String& argFileName)
    117152{
     
    131166}
    132167
     168
     169G4bool G4CompositeEMDataSet::LoadNonLogData(const G4String& argFileName)
     170{
     171  CleanUpComponents();
     172
     173  for (G4int z(minZ); z<maxZ; z++)
     174    {
     175      G4VEMDataSet* component = new G4EMDataSet(z, algorithm->Clone(), unitEnergies, unitData);
     176      if (!component->LoadNonLogData(argFileName))
     177        {
     178          delete component;
     179          return false;
     180        }
     181      AddComponent(component);
     182    }
     183  return true;
     184}
    133185
    134186
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeDecrease.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionChargeDecrease.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionChargeDecrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionChargeDecrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeDecreasePartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionChargeDecreasePartial.cc,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionChargeDecreasePartial.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionChargeDecreasePartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeIncrease.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionChargeIncrease.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionChargeIncrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionChargeIncrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeIncreasePartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionChargeIncreasePartial.cc,v 1.2 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionChargeIncreasePartial.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionChargeIncreasePartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeTransferCH.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4CrossSectionChargeTransferCH.cc,v 1.3 2008/03/25 16:00:20 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4CrossSectionChargeTransferCH.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeTransferExp.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4CrossSectionChargeTransferExp.cc,v 1.5 2008/06/27 12:22:25 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4CrossSectionChargeTransferExp.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticChampion.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionElasticChampion.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionElasticChampion.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherford.cc

    r1007 r1192  
    2626//
    2727// $Id: G4CrossSectionElasticScreenedRutherford.cc,v 1.1 2007/10/12 23:11:41 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherfordHE.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionElasticScreenedRutherfordHE.cc,v 1.3 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionElasticScreenedRutherfordHE.cc,v 1.5 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionElasticScreenedRutherfordHE.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherfordLE.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionElasticScreenedRutherfordLE.cc,v 1.3 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionElasticScreenedRutherfordLE.cc,v 1.5 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionElasticScreenedRutherfordLE.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationBorn.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationBorn.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionExcitationBorn.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationBornPartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationBornPartial.cc,v 1.3 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionExcitationBornPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationBornPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationEmfietzoglou.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationEmfietzoglou.cc,v 1.6 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionExcitationEmfietzoglou.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationEmfietzoglou.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationEmfietzoglouPartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationEmfietzoglouPartial.cc,v 1.3 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionExcitationEmfietzoglouPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreen.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationMillerGreen.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionExcitationMillerGreen.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationMillerGreen.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionExcitationMillerGreenPartial.cc,v 1.3 2009/01/20 07:40:53 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionExcitationMillerGreenPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionExcitationMillerGreenPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4CrossSectionHandler.cc,v 1.18 2006/06/29 19:38:48 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4CrossSectionHandler.cc,v 1.21 2009/09/27 10:47:42 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3535// 19 Jul 2002   VI         Create composite data set for material
    3636// 24 Apr 2003   VI         Cut per region mfpt
     37//
     38// 15 Jul 2009   Nicolas A. Karakatsanis
     39//
     40//                           - BuildCrossSectionForMaterials method was revised in order to calculate the
     41//                             logarithmic values of the loaded data.
     42//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     43//                             respective log values and loads them to seperate data structures.
     44//                             The EM data sets, initialized this way, contain both non-log and log values.
     45//                             These initialized data sets can enhance the computing performance of data interpolation
     46//                             operations
    3747//
    3848// -------------------------------------------------------------------
     
    6676  G4DataVector* data;
    6777
     78  G4DataVector* log_energies;
     79  G4DataVector* log_data;
     80
    6881  std::vector<G4VEMDataSet*>* matCrossSections = new std::vector<G4VEMDataSet*>;
    6982
     
    95108        data = new G4DataVector;
    96109
     110        log_energies = new G4DataVector;
     111        log_data = new G4DataVector;
     112
    97113
    98114        for (size_t bin=0; bin<nOfBins; bin++)
     
    100116            G4double e = energyVector[bin];
    101117            energies->push_back(e);
     118            if (e==0.) e=1e-300;
     119            log_energies->push_back(std::log10(e));
    102120            G4double cross = density*FindValue(Z,e);
    103121            data->push_back(cross);
     122            if (cross==0.) cross=1e-300;
     123            log_data->push_back(std::log10(cross));
    104124          }
    105125
    106126        G4VDataSetAlgorithm* algo1 = interpolationAlgo->Clone();
    107         G4VEMDataSet* elSet = new G4EMDataSet(i,energies,data,algo1,1.,1.);
     127
     128//      G4VEMDataSet* elSet = new G4EMDataSet(i,energies,data,algo1,1.,1.);
     129
     130        G4VEMDataSet* elSet = new G4EMDataSet(i,energies,data,log_energies,log_data,algo1,1.,1.);
     131
    108132        setForMat->AddComponent(elSet);
    109133      }
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBorn.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionIonisationBorn.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionIonisationBorn.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionIonisationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornElectron.cc

    r1007 r1192  
    2626//
    2727// $Id: G4CrossSectionIonisationBornElectron.cc,v 1.2 2007/11/08 18:51:34 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionIonisationBornPartial.cc,v 1.5 2009/01/20 07:40:53 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionIonisationBornPartial.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionIonisationBornPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartialElectron.cc

    r1007 r1192  
    2626//
    2727// $Id: G4CrossSectionIonisationBornPartialElectron.cc,v 1.1 2007/10/15 08:57:54 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationRudd.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionIonisationRudd.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4CrossSectionIonisationRudd.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionIonisationRudd.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationRuddPartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionIonisationRuddPartial.cc,v 1.4 2008/07/14 20:47:34 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionIonisationRuddPartial.cc,v 1.5 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4CrossSectionIonisationRuddPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionKill.cc

    r1007 r1192  
    2626//
    2727// $Id: G4CrossSectionKill.cc,v 1.1 2007/11/09 20:26:12 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionPsCreationChampion.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionPsCreationChampion.cc,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionPsCreationChampion.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionPsCreationChampionPartial.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4CrossSectionPsCreationChampionPartial.cc,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4CrossSectionPsCreationChampionPartial.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNABornExcitationModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNABornExcitationModel.cc,v 1.3 2009/02/16 11:00:11 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNABornExcitationModel.cc,v 1.7 2009/08/31 14:03:29 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    4242
    4343  lowEnergyLimit = 500 * keV;
    44   highEnergyLimit = 10 * MeV;
     44  highEnergyLimit = 100 * MeV;
    4545  SetLowEnergyLimit(lowEnergyLimit);
    4646  SetHighEnergyLimit(highEnergyLimit);
     
    6060  //
    6161 
    62   G4cout << "Born excitation model is constructed " << G4endl
    63          << "Energy range: "
    64          << lowEnergyLimit / keV << " keV - "
    65          << highEnergyLimit / MeV << " MeV"
    66          << G4endl;
    67 
     62  if( verboseLevel>0 )
     63  {
     64    G4cout << "Born excitation model is constructed " << G4endl
     65           << "Energy range: "
     66           << lowEnergyLimit / keV << " keV - "
     67           << highEnergyLimit / MeV << " MeV"
     68           << G4endl;
     69  }
     70 
    6871}
    6972
     
    109112  }
    110113
    111   G4cout << "Born excitation model is initialized " << G4endl
    112          << "Energy range: "
    113          << LowEnergyLimit() / keV << " keV - "
    114          << HighEnergyLimit() / MeV << " MeV " << G4endl;
    115 
     114  if( verboseLevel>0 )
     115  {
     116    G4cout << "Born excitation model is initialized " << G4endl
     117           << "Energy range: "
     118           << LowEnergyLimit() / keV << " keV - "
     119           << HighEnergyLimit() / MeV << " MeV " << G4endl;
     120  }
     121 
    116122  if(!isInitialised)
    117123  {
     
    144150            const G4Material* material = couple->GetMaterial();
    145151
    146             size_t j = material->GetNumberOfElements();
    147             while (j>0)
     152            if (material->GetName() == "G4_WATER")
    148153            {
    149                j--;
    150                const G4Element* element(material->GetElement(j));
    151                if (element->GetZ() == 8.)
    152                {
    153                   G4double density = material->GetAtomicNumDensityVector()[j];
    154                   if (density > 0.)
    155                   {
    156                     flagMaterialIsWater = true;
    157                     densityWater = density;
    158                    
    159                     if (verboseLevel > 3)
    160                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    161                   }
    162                }
     154              G4double density = material->GetAtomicNumDensityVector()[1];
     155              flagMaterialIsWater = true;
     156              densityWater = density;
     157             
     158              if (verboseLevel > 3)
     159              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    163160            }
    164161 
    165162          }
    166    } // if(numOfCouples>0)
     163
     164    } // if(numOfCouples>0)
    167165
    168166  } // if (theCoupleTable)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNABornIonisationModel.cc

    r1058 r1192  
     1//
    12// ********************************************************************
    23// * License and Disclaimer                                           *
     
    2324// ********************************************************************
    2425//
    25 // $Id: G4DNABornIonisationModel.cc,v 1.4 2009/02/16 11:00:11 sincerti Exp $
    26 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNABornIonisationModel.cc,v 1.14 2009/11/12 03:08:58 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2728//
    2829
    2930#include "G4DNABornIonisationModel.hh"
     31//#include "G4DynamicMolecule.hh"
    3032
    3133//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     
    4749  // 4 = entering in methods
    4850 
    49   G4cout << "Born ionisation model is constructed " << G4endl;
     51  if( verboseLevel>0 )
     52  {
     53    G4cout << "Born ionisation model is constructed " << G4endl;
     54  }
    5055}
    5156
     
    100105    tableFile[electron] = fileElectron;
    101106
    102     lowEnergyLimit[electron] = 12.61 * eV;
    103     highEnergyLimit[electron] = 30. * keV;
     107    lowEnergyLimit[electron] = 11. * eV;
     108    highEnergyLimit[electron] = 1. * MeV;
    104109
    105110    // Cross section
     
    154159
    155160    lowEnergyLimit[proton] = 500. * keV;
    156     highEnergyLimit[proton] = 10. * MeV;
     161    highEnergyLimit[proton] = 100. * MeV;
    157162
    158163    // Cross section
     
    210215  }
    211216
    212   G4cout << "Born ionisation model is initialized " << G4endl
    213          << "Energy range: "
    214          << LowEnergyLimit() / eV << " eV - "
    215          << HighEnergyLimit() / keV << " keV for "
    216          << particle->GetParticleName()
    217          << G4endl;
    218 
     217  if( verboseLevel>0 )
     218  {
     219    G4cout << "Born ionisation model is initialized " << G4endl
     220           << "Energy range: "
     221           << LowEnergyLimit() / eV << " eV - "
     222           << HighEnergyLimit() / keV << " keV for "
     223           << particle->GetParticleName()
     224           << G4endl;
     225  }
     226 
    219227  //
    220228 
     
    249257            const G4Material* material = couple->GetMaterial();
    250258
    251             size_t j = material->GetNumberOfElements();
    252             while (j>0)
     259            if (material->GetName() == "G4_WATER")
    253260            {
    254                j--;
    255                const G4Element* element(material->GetElement(j));
    256                if (element->GetZ() == 8.)
    257                {
    258                   G4double density = material->GetAtomicNumDensityVector()[j];
    259                   if (density > 0.)
    260                   {
    261                     flagMaterialIsWater = true;
    262                     densityWater = density;
    263                    
    264                     if (verboseLevel > 3)
    265                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    266                   }
    267                }
     261              G4double density = material->GetAtomicNumDensityVector()[1];
     262              flagMaterialIsWater = true;
     263              densityWater = density;
     264             
     265              if (verboseLevel > 3)
     266              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    268267            }
    269268 
    270269          }
    271    } // if(numOfCouples>0)
     270
     271    } // if(numOfCouples>0)
    272272
    273273  } // if (theCoupleTable)
     
    429429    G4DynamicParticle* dp = new G4DynamicParticle (G4Electron::Electron(),deltaDirection,secondaryKinetic) ;
    430430    fvect->push_back(dp);
     431    /*
     432    // creating neutral water molechule...
     433
     434    G4DNAGenericMoleculeManager *instance;
     435    instance = G4DNAGenericMoleculeManager::Instance();
     436    G4ParticleDefinition* waterDef = NULL;
     437    G4Molecule* water = instance->GetMolecule("H2O");
     438    waterDef = (G4ParticleDefinition*)water;
     439
     440    direction.set(0.,0.,0.);
     441
     442    //G4DynamicParticle* dynamicWater = new G4DynamicParticle(waterDef, direction, bindingEnergy);
     443        G4DynamicMolecule* dynamicWater = new G4DynamicMolecule(water, direction, bindingEnergy);
     444
     445
     446        //dynamicWater->RemoveElectron(ionizationShell, 1);
     447
     448    G4DynamicMolecule* dynamicWater2 = new G4DynamicMolecule(water, direction, bindingEnergy);
     449    G4DynamicMolecule* dynamicWater3 = new G4DynamicMolecule(water, direction, bindingEnergy);
     450
     451    fvect->push_back(dynamicWater);
     452    fvect->push_back(dynamicWater2);
     453    fvect->push_back(dynamicWater3);
     454    */
    431455  }
    432456
     
    444468    else maximumEnergyTransfer = (k+waterStructure.IonisationEnergy(shell))/2.;
    445469   
     470// SI : original method
     471/*
    446472    G4double crossSectionMaximum = 0.;
    447473    for(G4double value=waterStructure.IonisationEnergy(shell); value<=maximumEnergyTransfer; value+=0.1*eV)
     
    450476      if(differentialCrossSection >= crossSectionMaximum) crossSectionMaximum = differentialCrossSection;
    451477    }
     478*/
     479
     480 
     481// SI : alternative method
     482
     483    G4double crossSectionMaximum = 0.;
     484
     485    G4double minEnergy = waterStructure.IonisationEnergy(shell);
     486    G4double maxEnergy = maximumEnergyTransfer;
     487    G4int nEnergySteps = 50;
     488
     489    G4double value(minEnergy);
     490    G4double stpEnergy(std::pow(maxEnergy/value, 1./static_cast<G4double>(nEnergySteps-1)));
     491    G4int step(nEnergySteps);
     492    while (step>0)
     493    {
     494      step--;
     495      G4double differentialCrossSection = DifferentialCrossSection(particleDefinition, k/eV, value/eV, shell);
     496      if(differentialCrossSection >= crossSectionMaximum) crossSectionMaximum = differentialCrossSection;
     497      value*=stpEnergy;
     498    }
     499//
    452500 
    453501    G4double secondaryElectronKineticEnergy=0.;
     
    552600
    553601      // SI : the following condition avoids situations where energyTransfer >last vector element
    554       if (energyTransfer <= eVecm[(*t1)].back())
     602      if (energyTransfer <= eVecm[(*t1)].back() && energyTransfer <= eVecm[(*t2)].back() )
    555603      {
    556604        std::vector<double>::iterator e12 = std::upper_bound(eVecm[(*t1)].begin(),eVecm[(*t1)].end(), energyTransfer);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChampionElasticModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAChampionElasticModel.cc,v 1.5 2009/04/29 17:25:21 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNAChampionElasticModel.cc,v 1.10 2009/11/03 15:04:25 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    4343  killBelowEnergy = 8.23*eV; // Minimum e- energy for energy loss by excitation
    4444  lowEnergyLimit = 0 * eV;
    45   lowEnergyLimitOfModel = 7 * eV; // The model lower energy is 7 eV
     45  lowEnergyLimitOfModel = 7.4 * eV; // The model lower energy is 7.4 eV
    4646  highEnergyLimit = 10 * MeV;
    4747  SetLowEnergyLimit(lowEnergyLimit);
     
    5656  // 4 = entering in methods
    5757 
    58   G4cout << "Champion Elastic model is constructed " << G4endl
    59          << "Energy range: "
    60          << lowEnergyLimit / eV << " eV - "
    61          << highEnergyLimit / MeV << " MeV"
    62          << G4endl;
    63  
     58  if( verboseLevel>0 )
     59  {
     60    G4cout << "Champion Elastic model is constructed " << G4endl
     61           << "Energy range: "
     62           << lowEnergyLimit / eV << " eV - "
     63           << highEnergyLimit / MeV << " MeV"
     64           << G4endl;
     65  }
    6466}
    6567
     
    174176    G4cout << "Loaded cross section files for Champion Elastic model" << G4endl;
    175177
    176   G4cout << "Champion Elastic model is initialized " << G4endl
    177          << "Energy range: "
    178          << LowEnergyLimit() / eV << " eV - "
    179          << HighEnergyLimit() / MeV << " MeV"
    180          << G4endl;
     178  if( verboseLevel>0 )
     179  {
     180    G4cout << "Champion Elastic model is initialized " << G4endl
     181           << "Energy range: "
     182           << LowEnergyLimit() / eV << " eV - "
     183           << HighEnergyLimit() / MeV << " MeV"
     184           << G4endl;
     185  }
    181186
    182187  if(!isInitialised)
     
    210215            const G4Material* material = couple->GetMaterial();
    211216
    212             size_t j = material->GetNumberOfElements();
    213             while (j>0)
     217            if (material->GetName() == "G4_WATER")
    214218            {
    215                j--;
    216                const G4Element* element(material->GetElement(j));
    217                if (element->GetZ() == 8.)
    218                {
    219                   G4double density = material->GetAtomicNumDensityVector()[j];
    220                   if (density > 0.)
    221                   {
    222                     flagMaterialIsWater = true;
    223                     densityWater = density;
    224                    
    225                     if (verboseLevel > 3)
    226                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    227                   }
    228                }
     219              G4double density = material->GetAtomicNumDensityVector()[1];
     220              flagMaterialIsWater = true;
     221              densityWater = density;
     222             
     223              if (verboseLevel > 3)
     224              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    229225            }
    230226 
    231227          }
    232    } // if(numOfCouples>0)
     228
     229    } // if(numOfCouples>0)
    233230
    234231  } // if (theCoupleTable)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChargeDecrease.cc

    r1058 r1192  
    2525//
    2626// $Id: G4DNAChargeDecrease.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAChargeDecrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChargeIncrease.cc

    r1058 r1192  
    2525//
    2626// $Id: G4DNAChargeIncrease.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAChargeIncrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNACrossSectionDataSet.cc

    r1007 r1192  
    2626//
    2727
    28 // $Id: G4DNACrossSectionDataSet.cc,v 1.7 2007/11/09 18:06:26 pia Exp $
    29 // GEANT4 tag $Name: geant4-09-02 $
     28// $Id: G4DNACrossSectionDataSet.cc,v 1.11 2009/11/12 10:05:30 sincerti Exp $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: Riccardo Capra <capra@ge.infn.it>
     
    3535// History:
    3636// -----------
    37 // 30 Jun 2005  RC         Created
    38 // 14 Oct 2007  MGP        Removed inheritance from concrete class G4ShellEMDataSet
     37// 30 Jun 2005  RC           Created
     38// 14 Oct 2007  MGP          Removed inheritance from concrete class G4ShellEMDataSet
     39//
     40// 15 Jul 2009   N.A.Karakatsanis
     41//
     42//                           - LoadNonLogData method was created to load only the non-logarithmic data from G4EMLOW
     43//                             dataset. It is essentially performing the data loading operations as in the past.
     44//
     45//                           - LoadData method was revised in order to calculate the logarithmic values of the data
     46//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     47//                             respective log values and loads them to seperate data structures.
     48//
     49//                           - SetLogEnergiesData method was cretaed to set logarithmic values to G4 data vectors.
     50//                             The EM data sets, initialized this way, contain both non-log and log values.
     51//                             These initialized data sets can enhance the computing performance of data interpolation
     52//                             operations
     53//
     54//
     55// -------------------------------------------------------------------
    3956
    4057
     
    6683}
    6784
    68 
    6985G4bool G4DNACrossSectionDataSet::LoadData(const G4String & argFileName)
    7086{
     
    84100
    85101  std::vector<G4DataVector *> columns;
     102  std::vector<G4DataVector *> log_columns;
     103
    86104  std::stringstream *stream(new std::stringstream);
    87105  char c;
     
    110128       
    111129                      while (i>=columns.size())
    112                         columns.push_back(new G4DataVector);
     130                        {
     131                         columns.push_back(new G4DataVector);
     132                         log_columns.push_back(new G4DataVector);
     133                        }
    113134     
    114135                      columns[i]->push_back(value);
     136
     137// N. A. Karakatsanis
     138// A condition is applied to check if negative or zero values are present in the dataset.
     139// If yes, then a near-zero value is applied to allow the computation of the logarithmic value
     140// If a value is zero, this simplification is acceptable
     141// If a value is negative, then it is not acceptable and the data of the particular column of
     142// logarithmic values should not be used by interpolation methods.
     143//
     144// Therefore, G4LogLogInterpolation and G4LinLogLogInterpolation should not be used if negative values are present.
     145// Instead, G4LinInterpolation is safe in every case
     146// SemiLogInterpolation is safe only if the energy columns are non-negative
     147// G4LinLogInterpolation is safe only if the cross section data columns are non-negative
     148
     149                      if (value <=0.) value = 1e-300;
     150                      log_columns[i]->push_back(std::log10(value));
    115151       
    116152                      i++;
     
    187223
    188224      G4DataVector::size_type j(0);
     225
     226      G4DataVector *argEnergies=new G4DataVector;
     227      G4DataVector *argData=new G4DataVector;
     228      G4DataVector *argLogEnergies=new G4DataVector;
     229      G4DataVector *argLogData=new G4DataVector;
     230
     231      while(j<maxJ)
     232        {
     233          argEnergies->push_back(columns[0]->operator[] (j)*GetUnitEnergies());
     234          argData->push_back(columns[i]->operator[] (j)*GetUnitData());
     235          argLogEnergies->push_back(log_columns[0]->operator[] (j) + std::log10(GetUnitEnergies()));
     236          argLogData->push_back(log_columns[i]->operator[] (j) + std::log10(GetUnitData()));
     237          j++;
     238        }
     239
     240      AddComponent(new G4EMDataSet(i-1, argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData()));
     241 
     242      i++;
     243    }
     244
     245  i=maxI;
     246  while (i>0)
     247    {
     248      i--;
     249      delete columns[i];
     250      delete log_columns[i];
     251    }
     252
     253  return true;
     254}
     255
     256
     257G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName)
     258{
     259  CleanUpComponents();
     260
     261  G4String fullFileName(FullFileName(argFileName));
     262  std::ifstream in(fullFileName, std::ifstream::binary|std::ifstream::in);
     263
     264  if (!in.is_open())
     265    {
     266      G4String message("G4DNACrossSectionDataSet::LoadData - data file \"");
     267      message+=fullFileName;
     268      message+="\" not found";
     269      G4Exception(message);
     270      return false;
     271    }
     272
     273  std::vector<G4DataVector *> columns;
     274
     275  std::stringstream *stream(new std::stringstream);
     276  char c;
     277  G4bool comment(false);
     278  G4bool space(true);
     279  G4bool first(true);
     280
     281  try
     282    {
     283      while (!in.eof())
     284        {
     285          in.get(c);
     286   
     287          switch (c)
     288            {
     289            case '\r':
     290            case '\n':
     291              if (!first)
     292                {
     293                  unsigned long i(0);
     294                  G4double value;
     295     
     296                  while (!stream->eof())
     297                    {
     298                      (*stream) >> value;
     299       
     300                      while (i>=columns.size())
     301                        {
     302                         columns.push_back(new G4DataVector);
     303                        }
     304     
     305                      columns[i]->push_back(value);
     306       
     307                      i++;
     308                    }
     309     
     310                  delete stream;
     311                  stream=new std::stringstream;
     312                }
     313     
     314              first=true;
     315              comment=false;
     316              space=true;
     317              break;
     318     
     319            case '#':
     320              comment=true;
     321              break;
     322     
     323            case '\t':
     324              c=' ';
     325            case ' ':
     326              if (space)
     327                break;
     328            default:
     329              if (comment)
     330                break;
     331     
     332              if (c==' ')
     333                space=true;
     334              else
     335                {
     336                  if (space && (!first))
     337                    (*stream) << ' ';
     338     
     339                  first=false;
     340                  (*stream) << c;
     341                  space=false;
     342                }
     343            }
     344        }
     345    }
     346  catch(const std::ios::failure &e)
     347    {
     348      // some implementations of STL could throw a "failture" exception
     349      // when read wants read characters after end of file
     350    }
     351 
     352  delete stream;
     353 
     354  std::vector<G4DataVector *>::size_type maxI(columns.size());
     355 
     356  if (maxI<2)
     357    {
     358      G4String message("G4DNACrossSectionDataSet::LoadData - data file \"");
     359      message+=fullFileName;
     360      message+="\" should have at least two columns";
     361      G4Exception(message);
     362      return false;
     363    }
     364 
     365  std::vector<G4DataVector*>::size_type i(1);
     366  while (i<maxI)
     367    {
     368      G4DataVector::size_type maxJ(columns[i]->size());
     369
     370      if (maxJ!=columns[0]->size())
     371        {
     372          G4String message("G4DNACrossSectionDataSet::LoadData - data file \"");
     373          message+=fullFileName;
     374          message+="\" has lines with a different number of columns";
     375          G4Exception(message);
     376          return false;
     377        }
     378
     379      G4DataVector::size_type j(0);
     380
    189381      G4DataVector *argEnergies=new G4DataVector;
    190382      G4DataVector *argData=new G4DataVector;
     
    196388          j++;
    197389        }
    198  
     390
    199391      AddComponent(new G4EMDataSet(i-1, argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData()));
    200392 
     
    211403  return true;
    212404}
    213 
    214405
    215406
     
    288479  std::ostringstream fullFileName;
    289480 
    290   fullFileName << path << '/' << argFileName << ".dat";
     481  fullFileName << path << "/" << argFileName << ".dat";
    291482                     
    292483  return G4String(fullFileName.str().c_str());
     
    349540
    350541
     542void G4DNACrossSectionDataSet::SetLogEnergiesData(G4DataVector* argEnergies,
     543                                         G4DataVector* argData,
     544                                         G4DataVector* argLogEnergies,
     545                                         G4DataVector* argLogData,
     546                                         G4int argComponentId)
     547{
     548  G4VEMDataSet * component(components[argComponentId]);
     549 
     550  if (component)
     551    {
     552      component->SetLogEnergiesData(argEnergies, argData, argLogEnergies, argLogData, 0);
     553      return;
     554    }
     555
     556  std::ostringstream message;
     557  message << "G4DNACrossSectionDataSet::SetLogEnergiesData - component " << argComponentId << " not found";
     558 
     559  G4Exception(message.str().c_str());
     560}
     561
     562
    351563void G4DNACrossSectionDataSet::CleanUpComponents()
    352564{
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNADingfelderChargeDecreaseModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNADingfelderChargeDecreaseModel.cc,v 1.3 2009/02/16 11:00:11 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNADingfelderChargeDecreaseModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    4949  // 4 = entering in methods
    5050 
    51   G4cout << "Dingfelder charge decrease model is constructed " << G4endl;
    52 
     51  if( verboseLevel>0 )
     52  {
     53    G4cout << "Dingfelder charge decrease model is constructed " << G4endl;
     54  }
    5355}
    5456
     
    185187  //
    186188 
    187   G4cout << "Dingfelder charge decrease model is initialized " << G4endl
    188          << "Energy range: "
    189          << LowEnergyLimit() / keV << " keV - "
    190          << HighEnergyLimit() / MeV << " MeV for "
    191          << particle->GetParticleName()
    192          << G4endl;
    193 
     189  if( verboseLevel>0 )
     190  {
     191    G4cout << "Dingfelder charge decrease model is initialized " << G4endl
     192           << "Energy range: "
     193           << LowEnergyLimit() / keV << " keV - "
     194           << HighEnergyLimit() / MeV << " MeV for "
     195           << particle->GetParticleName()
     196           << G4endl;
     197  }
     198 
    194199  if(!isInitialised)
    195200  {
     
    222227            const G4Material* material = couple->GetMaterial();
    223228
    224             size_t j = material->GetNumberOfElements();
    225             while (j>0)
     229            if (material->GetName() == "G4_WATER")
    226230            {
    227                j--;
    228                const G4Element* element(material->GetElement(j));
    229                if (element->GetZ() == 8.)
    230                {
    231                   G4double density = material->GetAtomicNumDensityVector()[j];
    232                   if (density > 0.)
    233                   {
    234                     flagMaterialIsWater = true;
    235                     densityWater = density;
    236                    
    237                     if (verboseLevel > 3)
    238                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    239                   }
    240                }
     231              G4double density = material->GetAtomicNumDensityVector()[1];
     232              flagMaterialIsWater = true;
     233              densityWater = density;
     234             
     235              if (verboseLevel > 3)
     236              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    241237            }
    242238 
    243239          }
    244    } // if(numOfCouples>0)
     240
     241    } // if(numOfCouples>0)
    245242
    246243  } // if (theCoupleTable)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNADingfelderChargeIncreaseModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNADingfelderChargeIncreaseModel.cc,v 1.3 2009/02/16 11:00:11 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNADingfelderChargeIncreaseModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    4949  // 4 = entering in methods
    5050 
    51   G4cout << "Dingfelder charge increase model is constructed " << G4endl;
     51  if( verboseLevel>0 )
     52  {
     53    G4cout << "Dingfelder charge increase model is constructed " << G4endl;
     54  }
    5255
    5356}
     
    175178  //
    176179 
    177   G4cout << "Dingfelder charge increase model is initialized " << G4endl
    178          << "Energy range: "
    179          << LowEnergyLimit() / keV << " keV - "
    180          << HighEnergyLimit() / MeV << " MeV for "
    181          << particle->GetParticleName()
    182          << G4endl;
     180  if( verboseLevel>0 )
     181  {
     182    G4cout << "Dingfelder charge increase model is initialized " << G4endl
     183           << "Energy range: "
     184           << LowEnergyLimit() / keV << " keV - "
     185           << HighEnergyLimit() / MeV << " MeV for "
     186           << particle->GetParticleName()
     187           << G4endl;
     188  }
    183189
    184190  if(!isInitialised)
     
    212218            const G4Material* material = couple->GetMaterial();
    213219
    214             size_t j = material->GetNumberOfElements();
    215             while (j>0)
     220            if (material->GetName() == "G4_WATER")
    216221            {
    217                j--;
    218                const G4Element* element(material->GetElement(j));
    219                if (element->GetZ() == 8.)
    220                {
    221                   G4double density = material->GetAtomicNumDensityVector()[j];
    222                   if (density > 0.)
    223                   {
    224                     flagMaterialIsWater = true;
    225                     densityWater = density;
    226                    
    227                     if (verboseLevel > 3)
    228                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    229                   }
    230                }
     222              G4double density = material->GetAtomicNumDensityVector()[1];
     223              flagMaterialIsWater = true;
     224              densityWater = density;
     225             
     226              if (verboseLevel > 3)
     227              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    231228            }
    232229 
    233230          }
    234    } // if(numOfCouples>0)
     231
     232    } // if(numOfCouples>0)
    235233
    236234  } // if (theCoupleTable)
     
    409407  if (particleDefinition == instance->GetIon("alpha+")) return instance->GetIon("alpha++");
    410408
    411   if (particleDefinition == instance->GetIon("alpha+")) return instance->GetIon("helium");
     409  if (particleDefinition == instance->GetIon("helium"))
    412410  {
    413411    if (finalStateIndex==0) return instance->GetIon("alpha+");
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAElastic.cc

    r1058 r1192  
    2525//
    2626// $Id: G4DNAElastic.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAElastic.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAEmfietzoglouExcitationModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAEmfietzoglouExcitationModel.cc,v 1.5 2009/02/16 12:46:58 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNAEmfietzoglouExcitationModel.cc,v 1.8 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    5656  if (verboseLevel > 3)
    5757
    58   G4cout << "Emfietzoglou Excitation model is constructed " << G4endl
    59          << "Energy range: "
    60          << lowEnergyLimit / eV << " eV - "
    61          << highEnergyLimit / MeV << " MeV"
    62          << G4endl;
    63  
     58  if( verboseLevel>0 )
     59  {
     60    G4cout << "Emfietzoglou Excitation model is constructed " << G4endl
     61           << "Energy range: "
     62           << lowEnergyLimit / eV << " eV - "
     63           << highEnergyLimit / MeV << " MeV"
     64           << G4endl;
     65  }
    6466}
    6567
     
    99101
    100102  //
    101  
    102   G4cout << "Emfietzoglou Excitation model is initialized " << G4endl
    103          << "Energy range: "
    104          << LowEnergyLimit() / eV << " eV - "
    105          << HighEnergyLimit() / MeV << " MeV"
    106          << G4endl;
     103  if( verboseLevel>0 )
     104  {
     105    G4cout << "Emfietzoglou Excitation model is initialized " << G4endl
     106           << "Energy range: "
     107           << LowEnergyLimit() / eV << " eV - "
     108           << HighEnergyLimit() / MeV << " MeV"
     109           << G4endl;
     110  }
    107111
    108112  if(!isInitialised)
     
    136140            const G4Material* material = couple->GetMaterial();
    137141
    138             size_t j = material->GetNumberOfElements();
    139             while (j>0)
     142            if (material->GetName() == "G4_WATER")
    140143            {
    141                j--;
    142                const G4Element* element(material->GetElement(j));
    143                if (element->GetZ() == 8.)
    144                {
    145                   G4double density = material->GetAtomicNumDensityVector()[j];
    146                   if (density > 0.)
    147                   {
    148                     flagMaterialIsWater = true;
    149                     densityWater = density;
    150                    
    151                     if (verboseLevel > 3)
    152                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    153                   }
    154                }
     144              G4double density = material->GetAtomicNumDensityVector()[1];
     145              flagMaterialIsWater = true;
     146              densityWater = density;
     147             
     148              if (verboseLevel > 3)
     149              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    155150            }
    156151 
    157152          }
    158    } // if(numOfCouples>0)
     153
     154    } // if(numOfCouples>0)
    159155
    160156  } // if (theCoupleTable)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAExcitation.cc

    r1058 r1192  
    2525//
    2626// $Id: G4DNAExcitation.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAExcitation.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAGenericIonsManager.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAGenericIonsManager.cc,v 1.5 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4DNAGenericIonsManager.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAGenericIonsManager.hh"
     
    5757G4DNAGenericIonsManager :: G4DNAGenericIonsManager()
    5858{
    59  //               name             mass          width         charge
    60  //             2*spin           parity  C-conjugation
    61  //          2*Isospin       2*Isospin3       G-parity
    62  //               type    lepton number  baryon number   PDG encoding
    63  //             stable         lifetime    decay table
    64 
     59  //               name             mass          width         charge
     60  //             2*spin           parity  C-conjugation
     61  //          2*Isospin       2*Isospin3       G-parity
     62  //               type    lepton number  baryon number   PDG encoding
     63  //             stable         lifetime    decay table
     64  //         shortlived          subType  anti_encoding
     65  //         excitation   
     66 
    6567 G4Ions *helium;
    6668 G4Ions *hydrogen;
     
    6870 G4Ions *positronium1s;
    6971 G4Ions *positronium2s;
    70 
    71  helium=     new G4Ions("helium",    3.727417*GeV,       0.0*MeV,  +0.0*eplus,
    72                                0,              +1,             0,
    73                                0,               0,             0,
    74                        "nucleus",              +2,            +4,           0,
    75                         true,                -1.0,             0,       false,
    76                               "",               0,             0.0);
     72 
     73 
     74 helium=     new G4Ions(
     75                        "helium",    3.727417*GeV,       0.0*MeV,  +0.0*eplus,
     76                        0,              +1,             0,
     77                        0,               0,             0,
     78                        "nucleus",              +2,            +4,           0,
     79                        true,                -1.0,             0,       
     80                        false,                "",               0,             
     81                        0.0);
    7782
    7883 alphaPlus=  new G4Ions("alpha+",    3.727417*GeV,       0.0*MeV,  +1.0*eplus,
     
    104109                              "",               0,             0.0);
    105110
    106  map["helium"]=helium;
     111
     112 /*
     113 // molechules construction
     114
     115 G4Ions* oxonium; // H3O -- it will become H3O+
     116 G4Ions* hydroxyl; // OH -- it will produce OH- too
     117 G4Ions* molHydrogen; // H2
     118 //G4Ions* hydroxide; // OH-
     119 G4Ions* hydroPeroxide; // H2O2
     120 G4Ions* water; // H2O -- it will become also H2O+
     121
     122
     123 G4double mass = 19.02*g/Avogadro - 11*electron_mass_c2;
     124
     125 oxonium = new G4Ions("H3O",        mass,             0,  +11.0*eplus,
     126                      0,               0,             0,
     127                      0,               0,             0,
     128                      "molecule",      0,             0,           0,
     129                      true,         -1.0,             0,
     130                      false,          "",             0,             
     131                      0.0);
     132 
     133 mass = 17.00734*g/Avogadro - 9*electron_mass_c2;
     134 
     135 hydroxyl = new G4Ions("OH",        mass,             0,  +9.0*eplus,
     136                      0,               0,             0,
     137                      0,               0,             0,
     138                      "molecule",      0,             0,           0,
     139                      true,         -1.0,             0,
     140                      false,          "",             0,             
     141                      0.0);
     142
     143 mass = 2.01588*g/Avogadro - 2*electron_mass_c2;
     144
     145 molHydrogen = new G4Ions("H2",         mass,             0,  +2.0*eplus,
     146                          0,               0,             0,
     147                          0,               0,             0,
     148                          "molecule",      0,             0,           0,
     149                          true,         -1.0,             0,
     150                          false,          "",             0,             
     151                          0.0);
     152
     153 mass = 34.01468*g/Avogadro - 18*electron_mass_c2;
     154
     155 hydroPeroxide = new G4Ions("H2O2",      mass,             0, +18.0*eplus,
     156                           0,               0,             0,
     157                           0,               0,             0,
     158                           "molecule",      0,             0,           0,
     159                           true,         -1.0,             0,
     160                           false,          "",             0,             
     161                           0.0);
     162 
     163 mass = 18.015*g/Avogadro - 10*electron_mass_c2;
     164
     165 water = new G4Ions("H2O",        mass,             0,  +10.0*eplus,
     166                    0,               0,             0,
     167                    0,               0,             0,
     168                    "molecule",      0,             0,           0,
     169                    true,         -1.0,             0,
     170                    false,          "",             0,             
     171                    0.0);
     172
     173 map["H3O" ]  =oxonium;
     174 map["OH"  ]  =hydroxyl;
     175 map["H2"  ]  =molHydrogen;
     176 map["H2O2"]  =hydroPeroxide;
     177 map["H2O" ]  =water;
     178 */
     179
     180
     181 map["helium"  ]=helium;
    107182 map["hydrogen"]=hydrogen;
    108  map["alpha+"]=alphaPlus;
    109  map["alpha++"]=G4Alpha::Alpha();
    110  map["Ps-1s"]=positronium1s;
    111  map["Ps-2s"]=positronium2s;
     183 map["alpha+"  ]=alphaPlus;
     184 map["alpha++" ]=G4Alpha::Alpha();
     185 map["Ps-1s"   ]=positronium1s;
     186 map["Ps-2s"   ]=positronium2s;
    112187
    113188}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAIonisation.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAIonisation.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNAIonisation.cc,v 1.4 2009/11/02 17:00:11 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4DNAIonisation.hh"
     
    7777    {
    7878      if(!Model()) SetModel(new G4DNABornIonisationModel);
    79       Model()->SetLowEnergyLimit(12.61*eV);
    80       Model()->SetHighEnergyLimit(30*keV);
     79      Model()->SetLowEnergyLimit(11.*eV);
     80      Model()->SetHighEnergyLimit(1.*MeV);
    8181
    8282      AddEmModel(1, Model());   
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAMillerGreenExcitationModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAMillerGreenExcitationModel.cc,v 1.3 2009/02/16 11:00:11 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNAMillerGreenExcitationModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    4949  // 4 = entering in methods
    5050 
    51   G4cout << "Miller & Green excitation model is constructed " << G4endl;
    52 
     51  if( verboseLevel>0 )
     52  {
     53    G4cout << "Miller & Green excitation model is constructed " << G4endl;
     54  }
    5355}
    5456
     
    186188
    187189  //
    188  
    189   G4cout << "Miller & Green excitation model is initialized " << G4endl
    190          << "Energy range: "
    191          << LowEnergyLimit() / eV << " eV - "
    192          << HighEnergyLimit() / keV << " keV for "
    193          << particle->GetParticleName()
    194          << G4endl;
    195 
     190  if( verboseLevel>0 )
     191  {
     192    G4cout << "Miller & Green excitation model is initialized " << G4endl
     193           << "Energy range: "
     194           << LowEnergyLimit() / eV << " eV - "
     195           << HighEnergyLimit() / keV << " keV for "
     196           << particle->GetParticleName()
     197           << G4endl;
     198  }
     199 
    196200  if(!isInitialised)
    197201  {
     
    224228            const G4Material* material = couple->GetMaterial();
    225229
    226             size_t j = material->GetNumberOfElements();
    227             while (j>0)
     230            if (material->GetName() == "G4_WATER")
    228231            {
    229                j--;
    230                const G4Element* element(material->GetElement(j));
    231                if (element->GetZ() == 8.)
    232                {
    233                   G4double density = material->GetAtomicNumDensityVector()[j];
    234                   if (density > 0.)
    235                   {
    236                     flagMaterialIsWater = true;
    237                     densityWater = density;
    238                    
    239                     if (verboseLevel > 3)
    240                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    241                   }
    242                }
     232              G4double density = material->GetAtomicNumDensityVector()[1];
     233              flagMaterialIsWater = true;
     234              densityWater = density;
     235             
     236              if (verboseLevel > 3)
     237              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    243238            }
    244239 
    245240          }
    246    } // if(numOfCouples>0)
     241
     242    } // if(numOfCouples>0)
    247243
    248244  } // if (theCoupleTable)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNARuddIonisationModel.cc

    r1058 r1192  
     1//
    12// ********************************************************************
    23// * License and Disclaimer                                           *
     
    2324// ********************************************************************
    2425//
    25 // $Id: G4DNARuddIonisationModel.cc,v 1.4 2009/02/16 11:00:11 sincerti Exp $
    26 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNARuddIonisationModel.cc,v 1.10 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2728//
    2829
    2930#include "G4DNARuddIonisationModel.hh"
     31//#include "G4DynamicMolecule.hh"
    3032
    3133//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     
    5456  // 4 = entering in methods
    5557 
    56   G4cout << "Rudd ionisation model is constructed " << G4endl;
     58  if( verboseLevel>0 )
     59  {
     60    G4cout << "Rudd ionisation model is constructed " << G4endl;
     61  }
    5762}
    5863
     
    242247  }
    243248
    244   G4cout << "Rudd ionisation model is initialized " << G4endl
    245          << "Energy range: "
    246          << LowEnergyLimit() / eV << " eV - "
    247          << HighEnergyLimit() / keV << " keV for "
    248          << particle->GetParticleName()
    249          << G4endl;
     249  if( verboseLevel>0 )
     250  {
     251    G4cout << "Rudd ionisation model is initialized " << G4endl
     252           << "Energy range: "
     253           << LowEnergyLimit() / eV << " eV - "
     254           << HighEnergyLimit() / keV << " keV for "
     255           << particle->GetParticleName()
     256           << G4endl;
     257  }
    250258
    251259  //
     
    281289            const G4Material* material = couple->GetMaterial();
    282290
    283             size_t j = material->GetNumberOfElements();
    284             while (j>0)
     291            if (material->GetName() == "G4_WATER")
    285292            {
    286                j--;
    287                const G4Element* element(material->GetElement(j));
    288                if (element->GetZ() == 8.)
    289                {
    290                   G4double density = material->GetAtomicNumDensityVector()[j];
    291                   if (density > 0.)
    292                   {
    293                     flagMaterialIsWater = true;
    294                     densityWater = density;
    295                    
    296                     if (verboseLevel > 3)
    297                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    298                   }
    299                }
     293              G4double density = material->GetAtomicNumDensityVector()[1];
     294              flagMaterialIsWater = true;
     295              densityWater = density;
     296             
     297              if (verboseLevel > 3)
     298              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    300299            }
    301300 
    302301          }
    303    } // if(numOfCouples>0)
     302
     303    } // if(numOfCouples>0)
    304304
    305305  } // if (theCoupleTable)
     
    562562      fvect->push_back(dp);
    563563
     564      /*
     565    // creating neutral water molechule...
     566
     567    G4DNAGenericMoleculeManager *instance;
     568    instance = G4DNAGenericMoleculeManager::Instance();
     569    G4ParticleDefinition* waterDef = NULL;
     570    G4Molecule* water = instance->GetMolecule("H2O");
     571    waterDef = (G4ParticleDefinition*)water;
     572
     573    direction.set(0.,0.,0.);
     574
     575    //G4DynamicParticle* dynamicWater = new G4DynamicParticle(waterDef, direction, bindingEnergy);
     576    G4DynamicMolecule* dynamicWater = new G4DynamicMolecule(water, direction, bindingEnergy);
     577    //dynamicWater->RemoveElectron(ionizationShell, 1);
     578
     579    G4DynamicMolecule* dynamicWater2 = new G4DynamicMolecule(water, direction, bindingEnergy);
     580    G4DynamicMolecule* dynamicWater3 = new G4DynamicMolecule(water, direction, bindingEnergy);
     581    // insertion inside secondaries
     582
     583    fvect->push_back(dynamicWater);
     584    fvect->push_back(dynamicWater2);
     585    fvect->push_back(dynamicWater3);
     586      */
    564587  }
    565588
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAScreenedRutherfordElasticModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAScreenedRutherfordElasticModel.cc,v 1.5 2009/04/29 13:43:00 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4DNAScreenedRutherfordElasticModel.cc,v 1.9 2009/08/13 11:32:47 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929
     
    5757  // 4 = entering in methods
    5858 
    59   G4cout << "Screened Rutherford Elastic model is constructed " << G4endl
    60          << "Energy range: "
    61          << lowEnergyLimit / eV << " eV - "
    62          << highEnergyLimit / MeV << " MeV"
    63          << G4endl;
    64  
     59  if( verboseLevel>0 )
     60  {
     61    G4cout << "Screened Rutherford Elastic model is constructed " << G4endl
     62           << "Energy range: "
     63           << lowEnergyLimit / eV << " eV - "
     64           << highEnergyLimit / MeV << " MeV"
     65           << G4endl;
     66  }
     67 
    6568}
    6669
     
    128131  //
    129132
    130   G4cout << "Screened Rutherford elastic model is initialized " << G4endl
    131          << "Energy range: "
    132          << LowEnergyLimit() / eV << " eV - "
    133          << HighEnergyLimit() / MeV << " MeV"
    134          << G4endl;
    135 
     133  if( verboseLevel>0 )
     134  {
     135    G4cout << "Screened Rutherford elastic model is initialized " << G4endl
     136           << "Energy range: "
     137           << LowEnergyLimit() / eV << " eV - "
     138           << HighEnergyLimit() / MeV << " MeV"
     139           << G4endl;
     140  }
     141 
    136142  if(!isInitialised)
    137143  {
     
    164170            const G4Material* material = couple->GetMaterial();
    165171
    166             size_t j = material->GetNumberOfElements();
    167             while (j>0)
     172            if (material->GetName() == "G4_WATER")
    168173            {
    169                j--;
    170                const G4Element* element(material->GetElement(j));
    171                if (element->GetZ() == 8.)
    172                {
    173                   G4double density = material->GetAtomicNumDensityVector()[j];
    174                   if (density > 0.)
    175                   {
    176                     flagMaterialIsWater = true;
    177                     densityWater = density;
    178                    
    179                     if (verboseLevel > 3)
    180                     G4cout << "Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    181                   }
    182                }
     174              G4double density = material->GetAtomicNumDensityVector()[1];
     175              flagMaterialIsWater = true;
     176              densityWater = density;
     177             
     178              if (verboseLevel > 3)
     179              G4cout << "****** Water material is found with density(cm^-3)=" << density/(cm*cm*cm) << G4endl;
    183180            }
    184181 
    185182          }
    186    } // if(numOfCouples>0)
     183
     184    } // if(numOfCouples>0)
    187185
    188186  } // if (theCoupleTable)
     
    493491 {
    494492   cosTheta = 2. * G4UniformRand() - 1.;
    495 //G4cout << "SR cos=" << cosTheta << G4endl;
    496493   fCosTheta = (1 + 2.*n - cosTheta);
    497494   if (fCosTheta !=0.) fCosTheta = oneOverMax / (fCosTheta*fCosTheta);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DopplerProfile.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4DopplerProfile.cc,v 1.2 2008/03/17 13:40:53 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4DopplerProfile.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DummyFinalState.cc

    r1007 r1192  
    2626//
    2727// $Id: G4DummyFinalState.cc,v 1.2 2007/10/15 08:36:35 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4EMDataSet.cc,v 1.18 2008/03/17 13:40:53 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4EMDataSet.cc,v 1.20 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3333// -----------
    3434// 31 Jul 2001   MGP        Created
     35//
     36// 15 Jul 2009   Nicolas A. Karakatsanis
     37//
     38//                           - New Constructor was added when logarithmic data are loaded as well
     39//                             to enhance CPU performance
     40//
     41//                           - Destructor was modified accordingly
     42//
     43//                           - LoadNonLogData method was created to load only the non-logarithmic data from G4EMLOW
     44//                             dataset. It is essentially performing the data loading operations as in the past.
     45//
     46//                           - LoadData method was revised in order to calculate the logarithmic values of the data
     47//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     48//                             respective log values and loads them to seperate data structures.
     49//
     50//                           - SetLogEnergiesData method was cretaed to set logarithmic values to G4 data vectors.
     51//                             The EM data sets, initialized this way, contain both non-log and log values.
     52//                             These initialized data sets can enhance the computing performance of data interpolation
     53//                             operations
     54//
    3555//
    3656// -------------------------------------------------------------------
     
    5373  energies(0),
    5474  data(0),
     75  log_energies(0),
     76  log_data(0),
    5577  algorithm(algo),
    5678  unitEnergies(xUnit),
     
    7395  energies(dataX),
    7496  data(dataY),
     97  log_energies(0),
     98  log_data(0),
    7599  algorithm(algo),
    76100  unitEnergies(xUnit),
     
    91115  if (randomSet) BuildPdf();
    92116}
     117
     118G4EMDataSet::G4EMDataSet(G4int argZ,
     119                         G4DataVector* dataX,
     120                         G4DataVector* dataY,
     121                         G4DataVector* dataLogX,
     122                         G4DataVector* dataLogY,
     123                         G4VDataSetAlgorithm* algo,
     124                         G4double xUnit,
     125                         G4double yUnit,
     126                         G4bool random):
     127  z(argZ),
     128  energies(dataX),
     129  data(dataY),
     130  log_energies(dataLogX),
     131  log_data(dataLogY),
     132  algorithm(algo),
     133  unitEnergies(xUnit),
     134  unitData(yUnit),
     135  pdf(0),
     136  randomSet(random)
     137{
     138  if (algorithm == 0) G4Exception("G4EMDataSet::G4EMDataSet - interpolation == 0");
     139
     140  if ((energies == 0) ^ (data == 0))
     141    G4Exception("G4EMDataSet::G4EMDataSet - different size for energies and data (zero case)");
     142
     143  if (energies == 0) return;
     144 
     145  if (energies->size() != data->size())
     146    G4Exception("G4EMDataSet::G4EMDataSet - different size for energies and data");
     147
     148  if ((log_energies == 0) ^ (log_data == 0))
     149    G4Exception("G4EMDataSet::G4EMDataSet - different size for log energies and log data (zero case)");
     150
     151  if (log_energies == 0) return;
     152
     153  if (log_energies->size() != log_data->size())
     154    G4Exception("G4EMDataSet::G4EMDataSet - different size for log energies and log data");
     155
     156  if (randomSet) BuildPdf();
     157}
     158
    93159
    94160G4EMDataSet::~G4EMDataSet()
     
    98164  if (data) delete data;
    99165  if (pdf) delete pdf;
    100 }
     166  if (log_energies) delete log_energies;
     167  if (log_data) delete log_data;
     168}
     169
    101170
    102171G4double G4EMDataSet::FindValue(G4double energy, G4int /* componentId */) const
     
    108177  size_t i = energies->size()-1;
    109178  if (energy >= (*energies)[i]) return (*data)[i];
     179
     180//Nicolas A. Karakatsanis: Check if the logarithmic data have been loaded to decide
     181//                         which Interpolation-Calculation method will be applied
     182  if (log_energies != 0)
     183   {
     184     return algorithm->Calculate(energy, FindLowerBound(energy), *energies, *data, *log_energies, *log_data);
     185   }
    110186
    111187  return algorithm->Calculate(energy, FindLowerBound(energy), *energies, *data);
     
    147223
    148224  if (energies == 0) return;
    149  
     225
     226  //G4cout << "Size of energies: " << energies->size() << G4endl << "Size of data: " << data->size() << G4endl;
    150227  if (energies->size() != data->size())
    151228    G4Exception("G4EMDataSet::SetEnergiesData - different size for energies and data");
    152229}
    153230
     231void G4EMDataSet::SetLogEnergiesData(G4DataVector* dataX,
     232                                     G4DataVector* dataY,
     233                                     G4DataVector* data_logX,
     234                                     G4DataVector* data_logY,
     235                                     G4int /* componentId */)
     236{
     237//Load of the actual energy and data values 
     238  if (energies) delete energies;
     239  energies = dataX;
     240  if (data) delete data;
     241  data = dataY;
     242
     243//Check if data loaded properly from data files
     244  if ((energies == 0) ^ (data==0))
     245    G4Exception("G4EMDataSet::SetLogEnergiesData - different size for energies and data (zero case)");
     246
     247  if (energies == 0) return;
     248
     249  //G4cout << "Size of energies: " << energies->size() << G4endl << "Size of data: " << data->size() << G4endl << G4endl;
     250  if (energies->size() != data->size())
     251    G4Exception("G4EMDataSet::SetLogEnergiesData - different size for energies and data");
     252
     253//Load of the logarithmic energy and data values
     254  if (log_energies) delete log_energies;
     255  log_energies = data_logX;
     256  if (log_data) delete log_data;
     257  log_data = data_logY;
     258
     259//Check if logarithmic data loaded properly from data files
     260  if ((log_energies == 0) ^ (log_data==0))
     261    G4Exception("G4EMDataSet::SetLogEnergiesData - different size for log energies and log data (zero case)");
     262
     263  if (log_energies == 0) G4cout << "G4EMDataSet::SetLogEnergiesData - log_energies == 0" << G4endl;
     264  if (log_energies == 0) return;
     265
     266  //G4cout << "Size of log energies: " << log_energies->size() << G4endl << "Size of log data: " << log_data->size() << G4endl << G4endl; 
     267  if (log_energies->size() != log_data->size())
     268    G4Exception("G4EMDataSet::SetLogEnergiesData - different size for log energies and log data");
     269}
     270
     271
     272
    154273G4bool G4EMDataSet::LoadData(const G4String& fileName)
    155274{
    156   // The file is organized into two columns:
    157   // 1st column is the energy
    158   // 2nd column is the corresponding value
    159   // The file terminates with the pattern: -1   -1
    160   //                                       -2   -2
    161  
     275 // The file is organized into four columns:
     276 // 1st column contains the values of energy
     277 // 2nd column contains the corresponding data value
     278 // The file terminates with the pattern: -1   -1
     279 //                                       -2   -2
     280
    162281  G4String fullFileName(FullFileName(fileName));
    163282  std::ifstream in(fullFileName);
     
    173292  G4DataVector* argEnergies=new G4DataVector;
    174293  G4DataVector* argData=new G4DataVector;
     294  G4DataVector* argLogEnergies=new G4DataVector;
     295  G4DataVector* argLogData=new G4DataVector;
    175296
    176297  G4double a;
    177   bool energyColumn(true);
     298  G4int k = 0;
     299  G4int nColumns = 2;
    178300
    179301  do
    180302    {
    181303      in >> a;
    182  
    183       if (a!=-1 && a!=-2)
     304
     305      if (a==0.) a=1e-300;
     306 
     307      if (a != -1 && a != -2)
    184308        {
    185           if (energyColumn)
    186             argEnergies->push_back(a*unitEnergies);
    187           else
    188             argData->push_back(a*unitData);
    189           energyColumn=(!energyColumn);
     309          if (k%nColumns == 0)
     310            {
     311             argEnergies->push_back(a*unitEnergies);
     312             argLogEnergies->push_back(std::log10(a)+std::log10(unitEnergies));
     313            }
     314          else if (k%nColumns == 1)
     315            {
     316             argData->push_back(a*unitData);
     317             argLogData->push_back(std::log10(a)+std::log10(unitData));
     318            }
     319          k++;
    190320        }
    191321    }
    192322  while (a != -2);
     323
     324
     325  SetLogEnergiesData(argEnergies, argData, argLogEnergies, argLogData, 0);
     326
     327  if (randomSet) BuildPdf();
     328 
     329  return true;
     330}
     331
     332
     333G4bool G4EMDataSet::LoadNonLogData(const G4String& fileName)
     334{
     335 // The file is organized into four columns:
     336 // 1st column contains the values of energy
     337 // 2nd column contains the corresponding data value
     338 // The file terminates with the pattern: -1   -1
     339 //                                       -2   -2
     340
     341  G4String fullFileName(FullFileName(fileName));
     342  std::ifstream in(fullFileName);
     343  if (!in.is_open())
     344    {
     345      G4String message("G4EMDataSet::LoadData - data file \"");
     346      message += fullFileName;
     347      message += "\" not found";
     348      G4Exception(message);
     349    }
     350
     351  G4DataVector* argEnergies=new G4DataVector;
     352  G4DataVector* argData=new G4DataVector;
     353
     354  G4double a;
     355  G4int k = 0;
     356  G4int nColumns = 2;
     357
     358  do
     359    {
     360      in >> a;
     361 
     362      if (a != -1 && a != -2)
     363        {
     364          if (k%nColumns == 0)
     365            {
     366             argEnergies->push_back(a*unitEnergies);
     367            }
     368          else if (k%nColumns == 1)
     369            {
     370             argData->push_back(a*unitData);
     371            }
     372          k++;
     373        }
     374    }
     375  while (a != -2);
    193376 
    194377  SetEnergiesData(argEnergies, argData, 0);
     378
    195379  if (randomSet) BuildPdf();
    196380 
    197381  return true;
    198382}
     383
     384
    199385
    200386G4bool G4EMDataSet::SaveData(const G4String& name) const
     
    267453}
    268454
     455
     456
    269457size_t G4EMDataSet::FindLowerBound(G4double x) const
    270458{
     
    312500  return G4String(fullFileName.str().c_str());
    313501}
     502
    314503
    315504
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateChargeDecrease.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateChargeDecrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateChargeDecrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateChargeIncrease.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateChargeIncrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateChargeIncrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeTransferProton.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4FinalStateChargeTransferProton.cc,v 1.1 2008/03/25 15:48:21 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4FinalStateChargeTransferProton.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticBrennerZaider.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateElasticBrennerZaider.cc,v 1.9 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateElasticBrennerZaider.cc,v 1.11 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateElasticBrennerZaider.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticChampion.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateElasticChampion.cc,v 1.8 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateElasticChampion.cc,v 1.10 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticScreenedRutherford.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateElasticScreenedRutherford.cc,v 1.5 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateElasticScreenedRutherford.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateElasticScreenedRutherford.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationBorn.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateExcitationBorn.cc,v 1.4 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateExcitationBorn.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateExcitationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationEmfietzoglou.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateExcitationEmfietzoglou.cc,v 1.6 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateExcitationEmfietzoglou.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateExcitationEmfietzoglou.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationMillerGreen.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateExcitationMillerGreen.cc,v 1.4 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateExcitationMillerGreen.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateExcitationMillerGreen.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateIonisationBorn.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateIonisationBorn.cc,v 1.17 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateIonisationBorn.cc,v 1.19 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateIonisationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateIonisationRudd.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStateIonisationRudd.cc,v 1.9 2009/05/02 15:07:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4FinalStateIonisationRudd.cc,v 1.11 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828
    2929#include "G4FinalStateIonisationRudd.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateKill.cc

    r1007 r1192  
    2626//
    2727// $Id: G4FinalStateKill.cc,v 1.1 2007/11/09 20:26:12 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4FinalStateProduct.cc,v 1.6 2009/01/20 07:50:28 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4FinalStateProduct.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStatePsCreationChampion.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4FinalStatePsCreationChampion.cc,v 1.1 2008/07/16 19:01:07 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4FinalStatePsCreationChampion.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc

    r1007 r1192  
    2626//
    2727// $Id: G4FluoTransition.cc,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4IonDEDXHandler.cc

    r1058 r1192  
    3535// First implementation: 11. 03. 2009
    3636//
    37 // Modifications:
    38 //
     37// Modifications: 12. 11 .2009 - Function BuildDEDXTable: Using adapted build
     38//                               methods of stopping power classes according
     39//                               to interface change in G4VIonDEDXTable.
     40//                               Function UpdateCacheValue: Using adapted
     41//                               ScalingFactorEnergy function according to
     42//                               interface change in G4VIonDEDXScaling-
     43//                               Algorithm (AL)
    3944//
    4045// Class description:
     
    227232  const G4String& materialName = material -> GetName();
    228233
    229   isApplicable = table -> IsApplicable(atomicNumberBase, chemFormula);
     234  isApplicable = table -> BuildPhysicsVector(atomicNumberBase, chemFormula);
    230235
    231236  if(isApplicable) {
     
    235240  }
    236241
    237   isApplicable = table -> IsApplicable(atomicNumberBase, materialName);
     242  isApplicable = table -> BuildPhysicsVector(atomicNumberBase, materialName);
    238243  if(isApplicable) {
    239244     stoppingPowerTable[key] =
     
    253258      G4int atomicNumberMat = G4int((*elementVector)[i] -> GetZ());
    254259
    255       isApplicable = table -> IsApplicable(atomicNumberBase, atomicNumberMat);
     260      isApplicable = table -> BuildPhysicsVector(atomicNumberBase, atomicNumberMat);
    256261
    257262      if(isApplicable) {
     
    274279        size_t nmbdEdxBins = dEdxTable[0] -> GetVectorLength();
    275280        G4double lowerEdge = dEdxTable[0] -> GetLowEdgeEnergy(0);
    276         G4double upperEdge = dEdxTable[0] -> GetLowEdgeEnergy(nmbdEdxBins);
     281        G4double upperEdge = dEdxTable[0] -> GetLowEdgeEnergy(nmbdEdxBins-1);
    277282
    278283        G4LPhysicsFreeVector* dEdxBragg =
     
    339344     G4double nmbNucleons = G4double(particle -> GetAtomicMass());
    340345     value.energyScaling =
    341             algorithm -> ScalingFactorEnergy(particle) / nmbNucleons;
     346           algorithm -> ScalingFactorEnergy(particle, material) / nmbNucleons;
    342347
    343348     size_t nmbdEdxBins = value.dedxVector -> GetVectorLength();
  • trunk/source/processes/electromagnetic/lowenergy/src/G4IonDEDXScalingICRU73.cc

    r1066 r1192  
    3737// First implementation: 10. 05. 2009
    3838//
    39 // Modifications:
    40 //
     39// Modifications: 06. 08. 2009 - Minor bug fix (initialization of cache) AL
     40//                12. 11. 2009 - Moved all decision logic concerning ICRU 73
     41//                               scaling for heavy ions into this class.
     42//                               Adapting ScalingFactorEnergy class according
     43//                               to changes in base class (AL).
    4144//
    4245// Class description:
     
    5861G4IonDEDXScalingICRU73::G4IonDEDXScalingICRU73(
    5962                          G4int minAtomicNumberIon,
    60                           G4int maxAtomicNumberIon,
    61                           G4int atomicNumberReference,
    62                           G4int massNumberReference) :
     63                          G4int maxAtomicNumberIon) :
    6364     minAtomicNumber( minAtomicNumberIon ),
    6465     maxAtomicNumber( maxAtomicNumberIon ),
    65      excludedIon( false ),
    66      reference( 0 ),
    67      atomicNumberRef( atomicNumberReference ),
    68      massNumberRef( massNumberReference ) {
     66     referenceFe( 0 ),
     67     atomicNumberRefFe( 26 ),
     68     massNumberRefFe( 56 ),
     69     atomicNumberRefPow23Fe( 0 ),
     70     chargeRefFe( 0 ),
     71     massRefFe( 0 ),
     72     referenceAr( 0 ),
     73     atomicNumberRefAr( 18 ),
     74     massNumberRefAr( 40 ),
     75     atomicNumberRefPow23Ar( 0 ),
     76     chargeRefAr( 0 ),
     77     massRefAr( 0 ),
     78     useFe( true ),
     79     cacheParticle( 0 ),
     80     cacheMassNumber( 0 ),
     81     cacheAtomicNumber( 0 ),
     82     cacheAtomicNumberPow23( 0 ),
     83     cacheCharge( 0 ),
     84     cacheMass( 0 ),
     85     cacheMaterial( 0 ) {
    6986
    7087}
     
    7895// ###########################################################################
    7996
    80 void G4IonDEDXScalingICRU73::CreateReferenceParticle() {
    81 
     97void G4IonDEDXScalingICRU73::CreateReferenceParticles() {
    8298   
    8399  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
     
    85101  G4double excitationEnergy = 0.0;
    86102
    87   reference =
    88     particleTable -> GetIon(atomicNumberRef, massNumberRef, excitationEnergy);
     103  referenceFe = particleTable -> GetIon(atomicNumberRefFe, massNumberRefFe, 
     104                                        excitationEnergy);
     105  referenceAr = particleTable -> GetIon(atomicNumberRefAr, massNumberRefAr,
     106                                        excitationEnergy);
    89107 
    90   massRef = reference -> GetPDGMass();
    91   chargeRef = reference -> GetPDGCharge();
    92 
    93   atomicNumberRefPow23 = std::pow(G4double(atomicNumberRef), 2./3.);
     108  massRefFe = referenceFe -> GetPDGMass();
     109  massRefAr = referenceAr -> GetPDGMass();
     110
     111  chargeRefFe = referenceFe -> GetPDGCharge();
     112  chargeRefAr = referenceAr -> GetPDGCharge();
     113
     114  atomicNumberRefPow23Fe = std::pow(G4double(atomicNumberRefFe), 2./3.);
     115  atomicNumberRefPow23Ar = std::pow(G4double(atomicNumberRefAr), 2./3.);
    94116}
    95117
     
    99121
    100122G4double G4IonDEDXScalingICRU73::ScalingFactorEnergy (
    101             const G4ParticleDefinition* particle) {    // Projectile (ion)
     123            const G4ParticleDefinition* particle,     // Projectile (ion)
     124            const G4Material* material) {             // Target material
    102125                                                         
    103126  G4double factor = 1.0;
    104127 
    105   UpdateCache(particle);
    106 
    107   if(! excludedIon &&
    108      cacheAtomicNumber >= minAtomicNumber &&
    109      cacheAtomicNumber <= maxAtomicNumber) {
    110 
    111      if(reference == 0) CreateReferenceParticle();
    112 
    113      factor = cacheMassNumber * (massRef / cacheMass) / massNumberRef;
     128  UpdateCacheParticle(particle);
     129  UpdateCacheMaterial(material);
     130
     131  if(cacheAtomicNumber >= minAtomicNumber &&
     132     cacheAtomicNumber <= maxAtomicNumber &&
     133     cacheAtomicNumber != atomicNumberRefFe &&
     134     cacheAtomicNumber != atomicNumberRefAr) {
     135
     136     if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles();
     137
     138     if( useFe )
     139         factor = cacheMassNumber * (massRefFe / cacheMass) / massNumberRefFe;
     140     else
     141         factor = cacheMassNumber * (massRefAr / cacheMass) / massNumberRefAr;
    114142  }
    115143
     
    121149G4double G4IonDEDXScalingICRU73::ScalingFactorDEDX(
    122150             const G4ParticleDefinition* particle,     // Projectile (ion)
    123              const G4Material*,                        // Target material
     151             const G4Material* material,               // Target material
    124152             G4double kineticEnergy) {                 // Kinetic energy
    125153
    126154  G4double factor = 1.0;
    127155
    128   UpdateCache(particle);
    129 
    130   if(! excludedIon &&
    131      cacheAtomicNumber >= minAtomicNumber &&
    132      cacheAtomicNumber <= maxAtomicNumber) {
     156  UpdateCacheParticle(particle);
     157  UpdateCacheMaterial(material);
     158
     159  if(cacheAtomicNumber >= minAtomicNumber &&
     160     cacheAtomicNumber <= maxAtomicNumber &&
     161     cacheAtomicNumber != atomicNumberRefFe &&
     162     cacheAtomicNumber != atomicNumberRefAr) {
    133163     
    134       if(reference == 0) CreateReferenceParticle();
    135 
    136       G4double equilibriumCharge = EquilibriumCharge(cacheMass,
     164      if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles();
     165
     166      if( useFe ) {
     167
     168         G4double equilibriumCharge = EquilibriumCharge(cacheMass,
    137169                                                     cacheCharge,
    138170                                                     cacheAtomicNumberPow23,
    139171                                                     kineticEnergy);
    140172
    141       G4double scaledKineticEnergy = kineticEnergy * (massRef / cacheMass);
     173         G4double scaledKineticEnergy = kineticEnergy * (massRefFe / cacheMass);
    142174     
    143       G4double equilibriumChargeRef = EquilibriumCharge(massRef,
    144                                                         chargeRef,
    145                                                         atomicNumberRefPow23,
     175         G4double equilibriumChargeRefFe = EquilibriumCharge(massRefFe,
     176                                                        chargeRefFe,
     177                                                        atomicNumberRefPow23Fe,
    146178                                                        scaledKineticEnergy);
    147179
    148       factor = equilibriumCharge * equilibriumCharge/
    149                 ( equilibriumChargeRef * equilibriumChargeRef );
    150  } 
     180         factor = equilibriumCharge * equilibriumCharge/
     181                   ( equilibriumChargeRefFe * equilibriumChargeRefFe );
     182
     183      }
     184      else {
     185
     186         G4double equilibriumCharge = EquilibriumCharge(cacheMass,
     187                                                     cacheCharge,
     188                                                     cacheAtomicNumberPow23,
     189                                                     kineticEnergy);
     190
     191         G4double scaledKineticEnergy = kineticEnergy * (massRefAr / cacheMass);
     192     
     193         G4double equilibriumChargeRefAr = EquilibriumCharge(massRefAr,
     194                                                        chargeRefAr,
     195                                                        atomicNumberRefPow23Ar,
     196                                                        scaledKineticEnergy);
     197
     198         factor = equilibriumCharge * equilibriumCharge/
     199                   ( equilibriumChargeRefAr * equilibriumChargeRefAr );
     200
     201      }
     202  } 
    151203
    152204  return factor;
     
    157209G4int G4IonDEDXScalingICRU73::AtomicNumberBaseIon(
    158210             G4int atomicNumberIon,           // Atomic number of ion
    159              const G4Material*) {             // Target material
     211             const G4Material* material) {    // Target material
     212
     213  UpdateCacheMaterial(material);
    160214
    161215  G4int atomicNumber = atomicNumberIon;
    162216
    163217  if(atomicNumberIon >= minAtomicNumber &&
    164      atomicNumberIon <= maxAtomicNumber) {
    165  
    166      G4bool ionIsExcluded = false;
    167      size_t nmb = excludedAtomicNumbers.size();
    168  
    169      for(size_t i = 0; i < nmb; i++) {
    170        
    171         if(atomicNumberIon == excludedAtomicNumbers[i])
    172            ionIsExcluded = true;
    173      }
    174 
    175      if(! ionIsExcluded) {
    176         if(reference == 0) CreateReferenceParticle();
    177 
    178         atomicNumber = atomicNumberRef;
    179      }
     218     atomicNumberIon <= maxAtomicNumber &&
     219     atomicNumberIon != atomicNumberRefFe &&
     220     atomicNumberIon != atomicNumberRefAr) {
     221
     222     if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles();
     223
     224     if( useFe ) atomicNumber = atomicNumberRefFe;
     225     else atomicNumber = atomicNumberRefAr;     
    180226  }
    181227
  • trunk/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc

    r1055 r1192  
    3838//
    3939// Modifications: 03. 02. 2009 - Bug fix iterators (AL)
    40 //                11. 03. 2009 - Introduced new table handler (G4IonDEDXHandler)
     40//                11. 03. 2009 - Introduced new table handler(G4IonDEDXHandler)
    4141//                               and modified method to add/remove tables
    42 //                               (tables are now built in initialisation phase),
     42//                               (tables are now built in init. phase),
    4343//                               Minor bug fix in ComputeDEDXPerVolume (AL)
    4444//                11. 05. 2009 - Introduced scaling algorithm for heavier ions:
    4545//                               G4IonDEDXScalingICRU73 (AL)
     46//                12. 11. 2009 - Moved from original ICRU 73 classes to new
     47//                               class (G4IonStoppingData), which is capable
     48//                               of reading stopping power data files stored
     49//                               in G4LEDATA (requires G4EMLOW6.8 or higher).
     50//                               Simultanesouly, the upper energy limit of
     51//                               ICRU 73 is increased to 1 GeV/nucleon.
     52//                             - Removed nuclear stopping from Corrections-
     53//                               AlongStep since dedicated process was created.
     54//                             - Added function for switching off scaling
     55//                               of heavy ions from ICRU 73 data
     56//                             - Minor fix in ComputeLossForStep function 
     57//                             - Minor fix in ComputeDEDXPerVolume (AL)
     58//
    4659//
    4760// Class description:
     
    5871
    5972#include "G4IonParametrisedLossModel.hh"
    60 #include "G4MaterialStoppingICRU73.hh"
    61 #include "G4SimpleMaterialStoppingICRU73.hh"
    62 #include "G4IronStoppingICRU73.hh"
     73#include "G4LPhysicsFreeVector.hh"
     74#include "G4IonStoppingData.hh"
    6375#include "G4VIonDEDXTable.hh"
    6476#include "G4VIonDEDXScalingAlgorithm.hh"
     
    104116
    105117  // By default ICRU 73 stopping power tables are loaded:
    106 
    107   // Ions with Z above between 19 and 21: Ar-40 data is used as basis
    108   // for stopping power scaling
    109   G4int ionZMin = 19;
    110   G4int ionZMax = 21;
    111   G4int refIonZ = 18;
    112   G4int refIonA = 40;
    113 
    114   AddDEDXTable("ICRU73-elemmat",
    115            new G4SimpleMaterialStoppingICRU73,
    116            new G4IonDEDXScalingICRU73(ionZMin, ionZMax, refIonZ, refIonA));
    117 
    118   // Ions with Z above 21: Fe-56 data is used as basis for stopping power
    119   // scaling
    120   ionZMin = 22;
    121   ionZMax = 102;
    122   refIonZ = 26;
    123   refIonA = 56;
    124 
    125   AddDEDXTable("ICRU73-ironions",
    126                new G4IronStoppingICRU73,
    127                new G4IonDEDXScalingICRU73(ionZMin, ionZMax, refIonZ, refIonA));
    128 
    129   // Compound materials: Ar-40 data is used as basis for stopping power
    130   // scaling (except for iron ions)
    131   ionZMin = 19;
    132   ionZMax = 102;
    133   refIonZ = 18;
    134   refIonA = 40;
    135 
    136   G4IonDEDXScalingICRU73* scaling =
    137             new G4IonDEDXScalingICRU73(ionZMin, ionZMax, refIonZ, refIonA);
    138 
    139   G4int ironIonAtomicNumber = 26;
    140   scaling -> AddException(ironIonAtomicNumber);
    141 
    142   AddDEDXTable("ICRU73-compmat",
    143                new G4MaterialStoppingICRU73,
    144                scaling);
     118  AddDEDXTable("ICRU73",
     119               new G4IonStoppingData("ion_stopping_data/icru73"),
     120               new G4IonDEDXScalingICRU73());
    145121
    146122  // The boundaries for the range tables are set
     
    538514                                      material, genericIon,
    539515                                      scaledKineticEnergy, cutEnergy);
    540         dEdx *= factor;
    541516
    542517        dEdx *= chargeSquare;
     
    546521                                      material, kineticEnergy);
    547522        }
     523
     524        dEdx *= factor;
    548525     }
    549526
     
    862839  // in the along step DoIt function.
    863840  //
    864   // Contributon due to nuclear stopping are applied in any case (given the
    865   // nuclear stopping flag is set).
    866841  //
    867842  // (Implementation partly adapted from G4BraggIonModel/G4BetheBlochModel)
     
    991966            corrections -> IonHighOrderCorrections(particle, couple, energy);
    992967  }
    993 
    994   // Nuclear stopping
    995   G4double scaledKineticEnergy = kineticEnergy * dedxCacheGenIonMassRatio;
    996   G4double charge   = particle->GetPDGCharge()/eplus;
    997   G4double chargeSquare = charge * charge;
    998 
    999   if(nuclearStopping && scaledKineticEnergy < chargeSquare * 100.0 * MeV) {
    1000 
    1001      G4double nloss =
    1002         length * corrections -> NuclearDEDX(particle, material, energy, false);
    1003 
    1004      if(eloss + nloss > kineticEnergy) {
    1005 
    1006        nloss *= (kineticEnergy / (eloss + nloss));
    1007        eloss = kineticEnergy;
    1008      } else {
    1009        eloss += nloss;
    1010      }
    1011 
    1012      particleChangeLoss -> ProposeNonIonizingEnergyDeposit(nloss);
    1013   }
    1014968}
    1015969
     
    11961150     G4bool b;
    11971151
     1152     G4double lowerEnEdge = energyRange -> GetLowEdgeEnergy( 0 );
     1153     G4double lowerRangeEdge = rangeEnergy -> GetLowEdgeEnergy( 0 );
     1154
    11981155     // Computing range for pre-step kinetic energy:
    11991156     G4double range = energyRange -> GetValue(kineticEnergy, b);
     1157
     1158     // Energy below vector boundary:
     1159     if(kineticEnergy < lowerEnEdge) {
     1160
     1161        range =  energyRange -> GetValue(lowerEnEdge, b);
     1162        range *= std::sqrt(kineticEnergy / lowerEnEdge);
     1163     }
    12001164
    12011165#ifdef PRINT_DEBUG
     
    12051169#endif
    12061170
     1171     // Remaining range:
     1172     G4double remRange = range - stepLength;
     1173
    12071174     // If range is smaller than step length, the loss is set to kinetic 
    12081175     // energy
    1209      if(range <= stepLength) loss = kineticEnergy;
     1176     if(remRange < 0.0) loss = kineticEnergy;
     1177     else if(remRange < lowerRangeEdge) {
     1178 
     1179        G4double ratio = remRange / lowerRangeEdge;
     1180        loss = kineticEnergy - ratio * ratio * lowerEnEdge;
     1181     }
    12101182     else {
    12111183
    12121184        G4double energy = rangeEnergy -> GetValue(range - stepLength, b);
    1213 
    1214         loss = kineticEnergy - energy;
    1215 
    1216         if(loss < 0.0) loss = 0.0;
    1217      }
    1218   }
     1185        loss = kineticEnergy - energy;     
     1186     }
     1187  }
     1188
     1189  if(loss < 0.0) loss = 0.0;
    12191190
    12201191  return loss;
     
    12781249        delete (*iter);
    12791250
     1251        // Remove from table list
    12801252        lossTableList.erase(iter);
     1253
     1254        // Range vs energy and energy vs range vectors are cleared
     1255        RangeEnergyTable::iterator iterRange = r.begin();
     1256        RangeEnergyTable::iterator iterRange_end = r.end();
     1257
     1258        for(;iterRange != iterRange_end; iterRange++)
     1259                                            delete iterRange -> second;
     1260        r.clear();
     1261
     1262        EnergyRangeTable::iterator iterEnergy = E.begin();
     1263        EnergyRangeTable::iterator iterEnergy_end = E.end();
     1264
     1265        for(;iterEnergy != iterEnergy_end; iterEnergy++)
     1266                                            delete iterEnergy -> second;
     1267        E.clear();
     1268
    12811269        return true;
    12821270     }
     
    12881276// #########################################################################
    12891277
     1278void G4IonParametrisedLossModel::DeactivateICRU73Scaling() {
     1279
     1280  RemoveDEDXTable("ICRU73");
     1281  AddDEDXTable("ICRU73", new G4IonStoppingData("ion_stopping_data/icru73"));
     1282}
     1283
     1284// #########################################################################
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4LinInterpolation.cc,v 1.3 2006/06/29 19:40:03 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4LinInterpolation.cc,v 1.5 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3333// -----------
    3434// 31 Jul 2001   MGP        Created
     35// 14 JUn 2009   NAK        New Calculation method implemented to which logarithmic values
     36//                          from the G4EMLOW dataset are loaded directly to enhance performance
    3537//
    3638// -------------------------------------------------------------------
     
    5658                                       const G4DataVector& data) const
    5759{
     60  //G4cout << "G4LinInterpolation is performed (2 arguments)" << G4endl;
    5861  G4int nBins = data.size() - 1;
    5962  G4double value = 0.;
     
    7679  return value;
    7780}
     81
     82
     83//Nicolas A. Karakatsanis: New Calculation method implemented to which logarithmic values
     84//                         from the G4EMLOW dataset are loaded directly to enhance performance
     85
     86G4double G4LinInterpolation::Calculate(G4double x, G4int bin,
     87                                       const G4DataVector& points,
     88                                       const G4DataVector& data,
     89                                       const G4DataVector& log_points,
     90                                       const G4DataVector& log_data) const
     91{
     92//Linear Interpolation is performed on loagarithmic data set
     93//Equivalent to log-log interpolation on non-loagarithmic data set
     94  //G4cout << "G4LinInterpolation is performed - (4 arguments)" << G4endl;
     95  G4int nBins = data.size() - 1;
     96  G4double value = 0.;
     97  G4double log_x = std::log10(x);
     98  if (x < points[0])
     99    {
     100      value = 0.;
     101    }
     102  else if (bin < nBins)
     103    {
     104      G4double log_e1 = log_points[bin];
     105      G4double log_e2 = log_points[bin+1];
     106      G4double log_d1 = log_data[bin];
     107      G4double log_d2 = log_data[bin+1];
     108
     109// Values e1, e2, d1 and d2 are the log values of the corresponding
     110// original energy and data values. Simple linear interpolation performed
     111// on loagarithmic data should be equivalent to log-log interpolation
     112      value = log_d1 + (log_d2 - log_d1)*(log_x - log_e1)/(log_e2 - log_e1);
     113
     114// Delogarithmize to obtain interpolated value
     115      value = std::pow(10.,value);
     116   }
     117 else
     118   {
     119     value = data[nBins];
     120   }
     121  return value;
     122}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc

    r819 r1192  
    5252                                          const G4DataVector& data) const
    5353{
     54  //G4cout << "G4LinLogInterpolation is performed on dataset (2 arguments) " << G4endl;
    5455  G4int nBins = data.size() - 1;
    5556  G4double value = 0.;
     
    7273  return value;
    7374}
     75
     76G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin,
     77                                          const G4DataVector& points,
     78                                          const G4DataVector& data,
     79                                          const G4DataVector& /*log_points*/,
     80                                          const G4DataVector& log_data) const
     81{
     82  //G4cout << "G4LinLogInterpolation is performed on dataset (4 arguments) " << G4endl;
     83  G4int nBins = data.size() - 1;
     84  G4double value = 0.;
     85  //G4double log_x = std::log10(x);
     86  if (x < points[0])
     87    {
     88      value = 0.;
     89    }
     90  else if (bin < nBins)
     91    {
     92      G4double e1 = points[bin];
     93      G4double e2 = points[bin+1];
     94      G4double d1 = data[bin];
     95      G4double d2 = data[bin+1];
     96      //G4double log_e1 = log_points[bin];
     97      //G4double log_e2 = log_points[bin+1];
     98      G4double log_d1 = log_data[bin];
     99      G4double log_d2 = log_data[bin+1];
     100      if (d1 > 0.0 && d2 > 0.0)
     101        {
     102// Values e1, e2, d1 and d2 are the log values of the corresponding
     103// original energy and data values. Simple linear interpolation performed
     104// on loagarithmic data should be equivalent to log-log interpolation
     105          //value = log_d1 + (log_d2 - log_d1)*(log_x - log_e1)/(log_e2 - log_e1);
     106          value = std::exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1));
     107        }
     108      else
     109        {
     110          if (d1 == 0.0) log_d1 = -300;
     111          if (d2 == 0.0) log_d2 = -300;
     112          value = std::exp(log_d1 + (log_d2 - log_d1)*(x - e1)/(e2 - e1));
     113        }
     114   }
     115 else
     116   {
     117     value = data[nBins];
     118   }
     119  return value;
     120}
     121
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc

    r819 r1192  
    5353                                          const G4DataVector& data) const
    5454{
     55  //G4cout << "G4LinLogLogInterpolation is performed (2 arguments) " << G4endl;
    5556  G4int nBins = data.size() - 1;
    5657  G4double value = 0.;
     
    7980  return value;
    8081}
     82
     83G4double G4LinLogLogInterpolation::Calculate(G4double x, G4int bin,
     84                                          const G4DataVector& points,
     85                                          const G4DataVector& data,
     86                                          const G4DataVector& log_points,
     87                                          const G4DataVector& log_data) const
     88{
     89  //G4cout << "G4LinLogLogInterpolation is performed(4 arguments)  " << G4endl;
     90  G4int nBins = data.size() - 1;
     91  G4double value = 0.;
     92  G4double log_x = std::log10(x);
     93  if (x < points[0])
     94    {
     95      value = 0.;
     96    }
     97  else if (bin < nBins)
     98    {
     99      G4double e1 = points[bin];
     100      G4double e2 = points[bin+1];
     101      G4double d1 = data[bin];
     102      G4double d2 = data[bin+1];     
     103      G4double log_e1 = log_points[bin];
     104      G4double log_e2 = log_points[bin+1];
     105      G4double log_d1 = log_data[bin];
     106      G4double log_d2 = log_data[bin+1];
     107      //G4cout << "x = " << x << " , log_x = " << log_x << " , bin = " << bin << G4endl;
     108      //G4cout << "e1 = " << e1 << " , d1 = " << d1 << G4endl;
     109      //G4cout << "e2 = " << e2 << " , d2 = " << d2 << G4endl;
     110      //G4cout << "log_e1 = " << log_e1 << " , log_d1 = " << log_d1 << G4endl;
     111      //G4cout << "log_e2 = " << log_e2 << " , log_d2 = " << log_d2 <<G4endl;
     112      if (d1 > 0.0 && d2 > 0.0)
     113       {
     114         // Values e1, e2, d1 and d2 are the log values of the corresponding
     115         // original energy and data values. Simple linear interpolation performed
     116         // on loagarithmic data should be equivalent to log-log interpolation
     117         value = log_d1 + (log_d2 - log_d1)*(log_x - log_e1)/(log_e2 - log_e1);
     118
     119         //G4cout << "Case of normal log-log interpolation" << G4endl;
     120         //G4cout << "Temp log interpolated value: log_value = " << value << G4endl;
     121
     122         // Delogarithmize to obtain interpolated value
     123         value = std::pow(10.,value);
     124
     125         //G4cout << "Final Interpolated value: " << value << G4endl << G4endl;
     126       }
     127     else
     128       {
     129        // Case of semi log-log interpolation
     130        //G4cout << "G4LinLogLogInterpolation - Case of SemiLogInterpolation" << G4endl;
     131        if (e1 == 0.0) e1 = 1e-300;
     132        if (e2 == 0.0) e2 = 1e-300;
     133        value = d1 + (d2 - d1)*(log_x - log_e1)/(log_e2 - log_e1);
     134        //G4cout << "LinLogInterpolation: Final Interpolated value: " << value << G4endl << G4endl;
     135       }
     136    }
     137  else
     138    {
     139      value = data[nBins];
     140    }
     141  return value;
     142}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreBremsstrahlungModel.cc,v 1.4 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermoreBremsstrahlungModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreComptonModel.cc,v 1.6 2009/04/18 18:29:34 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermoreComptonModel.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreGammaConversionModel.cc,v 1.6 2009/05/02 09:14:43 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermoreGammaConversionModel.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreIonisationModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreIonisationModel.cc,v 1.4 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermoreIonisationModel.cc,v 1.7 2009/10/23 09:30:08 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    4141// 19 May 2009   L Pandola    Explicitely set to zero pointers deleted in
    4242//                            Initialise(), since they might be checked later on
     43// 23 Oct 2009   L Pandola
     44//                  - atomic deexcitation managed via G4VEmModel::DeexcitationFlag() is
     45//                    set as "true" (default would be false)
    4346//
    4447
     
    5558#include "G4Electron.hh"
    5659#include "G4CrossSectionHandler.hh"
    57 #include "G4AtomicDeexcitation.hh"
    5860#include "G4ProcessManager.hh"
    5961#include "G4VEMDataSet.hh"
     
    8486  verboseLevel = 0;
    8587  //
    86   fUseAtomicDeexcitation = true;
     88  //By default: use deexcitation, not auger
     89  SetDeexcitationFlag(true);
    8790  ActivateAuger(false);
     91
    8892  //
    8993  // Notice: the fluorescence along step is generated only if it is
     
    661665void G4LivermoreIonisationModel::ActivateAuger(G4bool val)
    662666{
     667  if (!DeexcitationFlag() && val)
     668    {
     669      G4cout << "WARNING - G4LivermoreIonisationModel" << G4endl;
     670      G4cout << "The use of the Atomic Deexcitation Manager is set to false " << G4endl;
     671      G4cout << "Therefore, Auger electrons will be not generated anyway" << G4endl;
     672    }
    663673  deexcitationManager.ActivateAugerElectronProduction(val);
    664 }
    665 
     674  if (verboseLevel > 1)
     675    G4cout << "Auger production set to " << val << G4endl;
     676}
     677
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermorePhotoElectricModel.cc,v 1.7 2009/04/18 18:29:34 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermorePhotoElectricModel.cc,v 1.9 2009/10/23 09:31:03 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929//
     
    4040//                  - added protection against numerical problem in energy sampling
    4141//                  - use G4ElementSelector
     42// 23 Oct 2009   L Pandola
     43//                  - atomic deexcitation managed via G4VEmModel::DeexcitationFlag() is
     44//                    set as "true" (default would be false)
     45//
    4246
    4347#include "G4LivermorePhotoElectricModel.hh"
     
    5963  SetHighEnergyLimit(highEnergyLimit);
    6064
     65  //Set atomic deexcitation by default
     66  SetDeexcitationFlag(true);
    6167  ActivateAuger(false);
    6268   
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc

    r1055 r1192  
    2525//
    2626// $Id: G4LivermorePolarizedComptonModel.cc,v 1.6 2009/05/03 08:29:55 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// History:
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedRayleighModel.cc

    r1055 r1192  
    2525//
    2626// $Id: G4LivermorePolarizedRayleighModel.cc,v 1.5 2009/05/02 15:20:53 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// History:
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreRayleighModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreRayleighModel.cc,v 1.6 2009/04/18 18:29:34 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LivermoreRayleighModel.cc,v 1.8 2009/09/23 16:54:06 flongo Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Sebastien Inserti
     
    195195        } while (fcostheta < G4UniformRand());
    196196
     197      if (photonEnergy0 > 5)
     198        {
     199          cosTheta = 1.;
     200        }
     201
    197202      G4double sinThetaHalf = std::sqrt((1. - cosTheta) / 2.);
    198203      x = sinThetaHalf / (wlPhoton/cm);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4LogLogInterpolation.cc,v 1.14 2008/12/12 08:50:59 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4LogLogInterpolation.cc,v 1.16 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3636// 27 Jun 2008   SI         Add check to avoid FPE errors
    3737// 08 Dec 2008   NAK        Log-Log interpolation math formula streamlined, self-test function
     38// 14 Jun 2008   NAK        New implementation for log-log interpolation after directly loading
     39//                          logarithmic values from G4EMLOW dataset
    3840// -------------------------------------------------------------------
    3941
     
    5860                                          const G4DataVector& data) const
    5961{
     62  //G4cout << "G4LogLogInterpolation is performed (2 arguments) " << G4endl;
    6063  G4int nBins = data.size() - 1;
    6164//G4double oldresult = 0.;
     
    105108  return value;
    106109}
     110
     111
     112// Nicolas A. Karakatsanis: New implementation of log-log interpolation after directly loading
     113//                          logarithmic values from G4EMLOW dataset
     114
     115G4double G4LogLogInterpolation::Calculate(G4double x, G4int bin,
     116                                          const G4DataVector& points,
     117                                          const G4DataVector& data,
     118                                          const G4DataVector& log_points,
     119                                          const G4DataVector& log_data) const
     120{
     121  //G4cout << "G4LogLogInterpolation is performed (4 arguments) " << G4endl;
     122  G4int nBins = data.size() - 1;
     123  G4double value = 0.;
     124  G4double log_x = std::log10(x);
     125  if (x < points[0])
     126    {
     127      value = 0.;
     128    }
     129  else if (bin < nBins)
     130    {
     131      G4double log_e1 = log_points[bin];
     132      G4double log_e2 = log_points[bin+1];
     133      G4double log_d1 = log_data[bin];
     134      G4double log_d2 = log_data[bin+1];
     135     
     136      //G4cout << "x = " << x << " , logx = " << log_x  << " , bin = " << bin << G4endl;
     137      //G4cout << "e1 = " << points[bin] << " d1 = " << data[bin] << G4endl;
     138      //G4cout << "e2 = " << points[bin+1] << " d2 = " << data[bin+1] << G4endl;
     139      //G4cout << "loge1 = " << log_e1 << " logd1 = " << log_d1 << G4endl;
     140      //G4cout << "loge2 = " << log_e2 << " logd2 = " << log_d2 << G4endl;
     141
     142// Values e1, e2, d1 and d2 are the log values of the corresponding
     143// original energy and data values. Simple linear interpolation performed
     144// on loagarithmic data should be equivalent to log-log interpolation
     145      value = log_d1 + (log_d2 - log_d1)*(log_x - log_e1)/(log_e2 - log_e1);
     146
     147// Delogarithmize to obtain interpolated value
     148      value = std::pow(10.,value);
     149   }
     150 else
     151   {
     152     value = data[nBins];
     153   }
     154  return value;
     155}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LowEnergyBremsstrahlung.cc,v 1.72 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LowEnergyBremsstrahlung.cc,v 1.74 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LowEnergyCompton.cc,v 1.48 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LowEnergyCompton.cc,v 1.50 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc

    r1055 r1192  
    2626// --------------------------------------------------------------------
    2727///
    28 // $Id: G4LowEnergyGammaConversion.cc,v 1.37 2009/05/02 09:59:16 sincerti Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// $Id: G4LowEnergyGammaConversion.cc,v 1.39 2009/06/11 15:47:08 mantero Exp $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LowEnergyIonisation.cc,v 1.104 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LowEnergyIonisation.cc,v 1.106 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4LowEnergyPhotoElectric.cc,v 1.57 2009/05/02 09:59:16 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4LowEnergyPhotoElectric.cc,v 1.59 2009/06/11 15:47:08 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4LowEnergyPolarizedCompton.cc,v 1.26 2009/05/02 09:59:16 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4LowEnergyPolarizedCompton.cc,v 1.28 2009/06/11 15:47:08 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// ------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LowEnergyPolarizedRayleigh.cc,v 1.8 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4LowEnergyPolarizedRayleigh.cc,v 1.10 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc

    r1055 r1192  
    2626// --------------------------------------------------------------------
    2727//
    28 // $Id: G4LowEnergyRayleigh.cc,v 1.38 2009/05/02 09:59:16 sincerti Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// $Id: G4LowEnergyRayleigh.cc,v 1.40 2009/06/11 15:47:08 mantero Exp $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PaulKCrossSection.cc

    r968 r1192  
    2525//
    2626//
     27// History:
     28// -----------
     29//  21 Apr 2008   H. Abdelohauwed - 1st implementation
     30//  29 Apr 2009   ALF  Major Design Revision
     31//  11 Nov 2009   ALF update and code cleaning for the Dec Release
     32//
     33// -------------------------------------------------------------------
     34
     35// Class description:
     36// Low Energy Electromagnetic Physics, Cross section, p ionisation, K shell
     37// Further documentation available from http://www.ge.infn.it/geant4/lowE
     38
     39// -------------------------------------------------------------------
    2740
    2841#include "globals.hh"
     
    3043#include <fstream>
    3144#include <iomanip>
    32 #include "G4CompositeEMDataSet.hh"
    33 #include "G4ShellEMDataSet.hh"
     45//#include "G4CompositeEMDataSet.hh"
     46//#include "G4ShellEMDataSet.hh"
    3447#include "G4EMDataSet.hh"
    35 #include "G4VEMDataSet.hh"
    36 #include "G4VDataSetAlgorithm.hh"
     48//#include "G4VEMDataSet.hh"
     49//#include "G4VDataSetAlgorithm.hh"
    3750#include "G4LogLogInterpolation.hh"
    3851#include "G4PaulKCrossSection.hh"
     52#include "G4Proton.hh"
     53#include "G4Alpha.hh"
     54
    3955
    4056G4PaulKCrossSection::G4PaulKCrossSection()
    41 { }
     57{
     58
     59 
     60  interpolation = new G4LogLogInterpolation();
     61
     62  /*
     63    G4String path = getenv("G4LEDATA");
     64 
     65    if (!path)
     66    G4Exception("G4paulKCrossSection::G4paulKCrossSection: G4LEDATA environment variable not set");
     67    G4cout << path + "/kcsPaul/kcs-" << G4endl;
     68  */
     69
     70
     71    for (G4int i=4; i<93; i++) {
     72      protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
     73      protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
     74    }
     75    for (G4int i=6; i<93; i++) {
     76      alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
     77      alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
     78    }
     79
     80
     81
     82
     83}
    4284
    4385G4PaulKCrossSection::~G4PaulKCrossSection()
    44 { }
     86{
    4587
    46 G4double G4PaulKCrossSection::CalculateKCrossSection(G4int zTarget,G4int zIncident, G4double energyIncident)
     88  protonDataSetMap.clear();
     89  alphaDataSetMap.clear();
     90
     91}
     92
     93G4double G4PaulKCrossSection::CalculateKCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident)
    4794{
    4895 
    49  G4String fileName;
     96  G4Proton* aProtone = G4Proton::Proton();
     97  G4Alpha* aAlpha = G4Alpha::Alpha();
     98 
     99  G4double sigma = 0;
    50100
    51  if (zIncident == 1)
    52    { fileName = "kcsPaul/kcs-";}
     101  if (massIncident == aProtone->GetPDGMass() )
     102    {
     103     
     104      sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV) / barn;
     105     
     106    }
    53107  else
    54108    {
    55       if (zIncident == 2)
    56         { fileName = "kacsPaul/kacs-";}
    57        
     109      if (massIncident == aAlpha->GetPDGMass())
     110        {
     111         
     112          sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV) / barn;
     113         
     114        }
     115      else
     116        {
     117          G4cout << "we can treat only Proton or Alpha incident particles " << G4endl;
     118          sigma = 0.;
     119        }
    58120    }
    59 
    60121 
    61   G4VDataSetAlgorithm* interpolation = new G4LogLogInterpolation();
    62 
    63   G4VEMDataSet* dataSet;
    64 
    65   dataSet = new G4EMDataSet(zTarget,interpolation);
    66122 
    67   dataSet->LoadData(fileName);
    68    
    69 
    70           G4double sigma = dataSet->FindValue(energyIncident/MeV) / barn;
    71 
    72           return sigma;
     123 
     124  return sigma;
    73125}
    74126
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeAnnihilationModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeAnnihilationModel.cc,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeAnnihilationModel.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeBremsstrahlung.cc,v 1.19 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeBremsstrahlung.cc,v 1.21 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.7 2006/06/29 19:40:37 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.8 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.11 2008/12/15 09:23:06 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.12 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc

    r1058 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeBremsstrahlungModel.cc,v 1.5 2009/05/14 10:56:09 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeBremsstrahlungModel.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeCompton.cc,v 1.34 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeCompton.cc,v 1.36 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeComptonModel.cc,v 1.4 2009/04/18 18:29:34 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeComptonModel.cc,v 1.8 2009/10/23 09:29:24 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    4444//                  - do not apply low-energy limit (default is 0)
    4545//                  - do not apply production threshold on level of the model
     46// 21 Oct 2009   L Pandola    Remove un-necessary fUseAtomicDeexcitation flag - now managed by
     47//                            G4VEmModel::DeexcitationFlag()
     48//                            Add ActivateAuger() method
    4649//
    4750
     
    5861#include "G4PenelopeIntegrator.hh"
    5962#include "G4AtomicTransitionManager.hh"
    60 #include "G4AtomicDeexcitation.hh"
    6163#include "G4AtomicShell.hh"
    6264#include "G4Gamma.hh"
     
    7981  ZForIntegration = 1;
    8082
    81   fUseAtomicDeexcitation = true;
     83  //by default, the model will use atomic deexcitation
     84  SetDeexcitationFlag(true);
     85  ActivateAuger(false);
     86
    8287  verboseLevel= 0;
    8388  // Verbosity scale:
     
    523528      {
    524529        G4DynamicParticle* aPhoton;
    525         G4AtomicDeexcitation deexcitationManager;
    526530        deexcitationManager.SetCutForSecondaryPhotons(cutg);
    527531        deexcitationManager.SetCutForAugerElectrons(cute);
    528         deexcitationManager.ActivateAugerElectronProduction(false);
    529532     
    530533        photonVector = deexcitationManager.GenerateParticles(Z,shellId);
     
    749752}
    750753
     754//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     755
     756void G4PenelopeComptonModel::ActivateAuger(G4bool augerbool)
     757{
     758  if (!DeexcitationFlag() && augerbool)
     759    {
     760      G4cout << "WARNING - G4PenelopeComptonModel" << G4endl;
     761      G4cout << "The use of the Atomic Deexcitation Manager is set to false " << G4endl;
     762      G4cout << "Therefore, Auger electrons will be not generated anyway" << G4endl;
     763    }
     764  deexcitationManager.ActivateAugerElectronProduction(augerbool);
     765  if (verboseLevel > 1)
     766    G4cout << "Auger production set to " << augerbool << G4endl;
     767}
     768
     769//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeGammaConversionModel.cc,v 1.4 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeGammaConversionModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeIonisation.cc,v 1.20 2009/05/02 09:59:16 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeIonisation.cc,v 1.22 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeIonisationModel.cc,v 1.5 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeIonisationModel.cc,v 1.10 2009/10/23 09:29:24 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    3939// 19 May 2009   L Pandola    Explicitely set to zero pointers deleted in
    4040//                            Initialise(), since they might be checked later on
     41// 21 Oct 2009   L Pandola    Remove un-necessary fUseAtomicDeexcitation flag - now managed by
     42//                            G4VEmModel::DeexcitationFlag()
     43//                            Add ActivateAuger() method
    4144//
    4245
     
    7780  SetHighEnergyLimit(fIntrinsicHighEnergyLimit);
    7881  //
    79  
    80   fUseAtomicDeexcitation = true;
     82  // Atomic deexcitation model activated by default
     83  SetDeexcitationFlag(true);
    8184  verboseLevel= 0;
    8285 
     
    17211724
    17221725
     1726//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     1727
     1728void G4PenelopeIonisationModel::ActivateAuger(G4bool augerbool)
     1729{
     1730  if (!DeexcitationFlag() && augerbool)
     1731    {
     1732      G4cout << "WARNING - G4PenelopeIonisationModel" << G4endl;
     1733      G4cout << "The use of the Atomic Deexcitation Manager is set to false " << G4endl;
     1734      G4cout << "Therefore, Auger electrons will be not generated anyway" << G4endl;
     1735    }
     1736  deexcitationManager.ActivateAugerElectronProduction(augerbool);
     1737  if (verboseLevel > 1)
     1738    G4cout << "Auger production set to " << augerbool << G4endl;
     1739}
     1740
     1741//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4PenelopePhotoElectric.cc,v 1.14 2009/05/02 09:59:17 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4PenelopePhotoElectric.cc,v 1.16 2009/06/11 15:47:08 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: L. Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopePhotoElectricModel.cc,v 1.6 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopePhotoElectricModel.cc,v 1.10 2009/10/23 09:29:24 pandola Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
     
    4444// 19 May 2009   L Pandola    Explicitely set to zero pointers deleted in
    4545//                            Initialise(), since they might be checked later on
     46// 21 Oct 2009   L Pandola    Remove un-necessary fUseAtomicDeexcitation flag - now managed by
     47//                            G4VEmModel::DeexcitationFlag()
    4648//
    4749
     
    7375  SetHighEnergyLimit(fIntrinsicHighEnergyLimit);
    7476  //
    75   fUseAtomicDeexcitation = true;
     77  //by default the model will inkove the atomic deexcitation
     78  SetDeexcitationFlag(true); 
     79
    7680  verboseLevel= 0;
    7781  // Verbosity scale:
     
    366370void G4PenelopePhotoElectricModel::ActivateAuger(G4bool augerbool)
    367371{
    368   if (!fUseAtomicDeexcitation)
     372  if (!DeexcitationFlag() && augerbool)
    369373    {
    370374      G4cout << "WARNING - G4PenelopePhotoElectricModel" << G4endl;
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc

    r1055 r1192  
    2626// --------------------------------------------------------------------
    2727//
    28 // $Id: G4PenelopeRayleigh.cc,v 1.17 2009/05/02 09:59:17 sincerti Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// $Id: G4PenelopeRayleigh.cc,v 1.19 2009/06/11 15:47:08 mantero Exp $
     29// GEANT4 tag $Name: emlowen-V09-02-64 $
    3030//
    3131// Author: L. Pandola (luciano.pandola@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeRayleighModel.cc,v 1.4 2009/05/19 14:57:01 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4PenelopeRayleighModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4RangeTest.cc,v 1.8 2006/06/29 19:41:03 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4RangeTest.cc,v 1.9 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc

    r1058 r1192  
    2525//
    2626// $Id: G4RayleighScattering.cc,v 1.2 2009/03/18 13:45:51 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4SemiLogInterpolation.cc,v 1.6 2006/06/29 19:41:18 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4SemiLogInterpolation.cc,v 1.8 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    5757                                          const G4DataVector& data) const
    5858{
     59  //G4cout << "G4SemiLogInterpolation is performed(2 arguments) " << G4endl;
    5960  G4int nBins = data.size() - 1;
    6061  G4double value = 0.;
     
    7778  return value;
    7879}
     80
     81G4double G4SemiLogInterpolation::Calculate(G4double x, G4int bin,
     82                                           const G4DataVector& points,
     83                                           const G4DataVector& data,
     84                                           const G4DataVector& log_points,
     85                                           const G4DataVector& /*log_data*/) const
     86{
     87//A combination of logarithmic interpolation on energy set and
     88//linear Interpolation on data set
     89  //G4cout << "G4SemiLogInterpolation is performed (4 arguments)" << G4endl;
     90  G4int nBins = data.size() - 1;
     91  G4double value = 0.;
     92  G4double log_x = std::log10(x);
     93  if (x < points[0])
     94    {
     95      value = 0.;
     96    }
     97  else if (bin < nBins)
     98    {
     99      G4double e1 = points[bin];
     100      G4double e2 = points[bin+1];
     101      G4double d1 = data[bin];
     102      G4double d2 = data[bin+1];     
     103      G4double log_e1 = log_points[bin];
     104      G4double log_e2 = log_points[bin+1];
     105      //G4double log_d1 = log_data[bin];
     106      //G4double log_d2 = log_data[bin+1];
     107      //G4cout << "x = " << x << " , log_x = " << log_x << " , bin = " << bin << G4endl;
     108      //G4cout << "e1 = " << e1 << " , d1 = " << d1 << G4endl;
     109      //G4cout << "e2 = " << e2 << " , d2 = " << d2 << G4endl;
     110// Values log_e1 and log_e2 are the log values of the corresponding
     111// original energy actual values. Original d1 and d2 values are used.
     112// Simple linear interpolation performed on loagarithmic data
     113// should be equivalent to semi log-log interpolation
     114      if (e1 == 0.0) log_e1 = -300;
     115      if (e2 == 0.0) log_e2 = -300;
     116      value = d1 + (d2 - d1)*(log_x - log_e1)/(log_e2 - log_e1);
     117      //G4cout << "G4SemiLogInterpolation - Final Interpolated Value: " << value << G4endl << G4endl;
     118   }
     119 else
     120   {
     121     value = data[nBins];
     122   }
     123  return value;
     124}
     125
  • trunk/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4ShellData.cc,v 1.10 2008/03/17 13:40:53 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4ShellData.cc,v 1.11 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4ShellEMDataSet.cc,v 1.16 2008/03/10 15:07:41 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4ShellEMDataSet.cc,v 1.18 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3232// History:
    3333// -----------
    34 //  1 Aug 2001   MGP        Created
    35 // 09.10.01   V.Ivanchenko Add case z=0
    36 //  9 Mar 2008   MGP        Cleaned up unreadable code modified by former developer
    37 //                          (Further clean-up needed)
     34//  1 Aug 2001   MGP         Created
     35//
     36//  09.10.01   V.Ivanchenko  Add case z=0
     37//
     38//  9 Mar 2008   MGP         Cleaned up unreadable code modified by former developer
     39//                           (Further clean-up needed)
     40//
     41//  15 Jul 2009   Nicolas A. Karakatsanis
     42//
     43//                           - LoadNonLogData method was created to load only the non-logarithmic data from G4EMLOW
     44//                             dataset. It is essentially performing the data loading operations as in the past.
     45//
     46//                           - LoadData method was revised in order to calculate the logarithmic values of the data
     47//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     48//                             respective log values and loads them to seperate data structures.
     49//
     50//                           - SetLogEnergiesData method was cretaed to set logarithmic values to G4 data vectors.
     51//                             The EM data sets, initialized this way, contain both non-log and log values.
     52//                             These initialized data sets can enhance the computing performance of data interpolation
     53//                             operations
     54//
    3855//
    3956// -------------------------------------------------------------------
     
    121138
    122139
     140void G4ShellEMDataSet::SetLogEnergiesData(G4DataVector* energies,
     141                                          G4DataVector* data,
     142                                          G4DataVector* log_energies,
     143                                          G4DataVector* log_data,
     144                                          G4int componentId)
     145{
     146  G4VEMDataSet* component = components[componentId];
     147 
     148  if (component)
     149    {
     150      component->SetLogEnergiesData(energies, data, log_energies, log_data, 0);
     151      return;
     152    }
     153
     154  std::ostringstream message;
     155  message << "G4ShellEMDataSet::SetLogEnergiesData - component " << componentId << " not found";
     156 
     157  G4Exception(message.str().c_str());
     158}
     159
     160
     161
    123162G4bool G4ShellEMDataSet::LoadData(const G4String& file)
    124163{
     
    136175    }
    137176
    138   G4DataVector* energies = 0;
    139   G4DataVector* data = 0;
     177  G4DataVector* orig_shell_energies = 0;
     178  G4DataVector* orig_shell_data = 0;
     179  G4DataVector* log_shell_energies = 0;
     180  G4DataVector* log_shell_data = 0;
    140181
    141182  G4double a = 0.;
    142183  G4int shellIndex = 0;
    143   bool energyColumn = true;
     184  G4int k = 0;
     185  G4int nColumns = 2;
    144186
    145187  do
    146188    {
    147189      in >> a;
    148  
     190
     191      if (a==0.) a=1e-300;
     192
     193      // The file is organized into four columns:
     194      // 1st column contains the values of energy
     195      // 2nd column contains the corresponding data value
     196      // The file terminates with the pattern: -1   -1
     197      //                                       -2   -2
     198      //
    149199      if (a == -1)
    150200        {
    151           if (energyColumn && energies!=0)
     201          if ((k%nColumns == 0) && (orig_shell_energies != 0) )
    152202            {
    153               AddComponent(new G4EMDataSet(shellIndex, energies, data, algorithm->Clone(), unitEnergies, unitData));
    154               energies = 0;
    155               data = 0;
     203             AddComponent(new G4EMDataSet(shellIndex, orig_shell_energies, orig_shell_data, log_shell_energies, log_shell_data, algorithm->Clone(), unitEnergies, unitData));
     204              orig_shell_energies = 0;
     205              orig_shell_data = 0;
     206              log_shell_energies = 0;
     207              log_shell_data = 0;
    156208            }
    157    
    158           energyColumn = (!energyColumn);
    159209        }
    160210      else if (a != -2)
    161211        {
    162           if (energies == 0)
     212          if (orig_shell_energies == 0)
    163213            {
    164               energies = new G4DataVector;
    165               data = new G4DataVector;
     214             orig_shell_energies = new G4DataVector;
     215             orig_shell_data = new G4DataVector;
     216             log_shell_energies = new G4DataVector;
     217             log_shell_data = new G4DataVector;
    166218            }
    167  
    168           if (energyColumn)
    169             energies->push_back(a * unitEnergies);
    170           else
    171             data->push_back(a * unitData);
    172 
    173           energyColumn = (!energyColumn);
     219          if (k%nColumns == 0)
     220            {
     221             orig_shell_energies->push_back(a*unitEnergies);
     222             log_shell_energies->push_back(std::log10(a) + std::log10(unitEnergies));
     223            }
     224          else if (k%nColumns == 1)
     225            {
     226             orig_shell_data->push_back(a*unitData);
     227             log_shell_data->push_back(std::log10(a) + std::log10(unitData));
     228            }
     229          k++;
    174230        }
    175     }
    176   while (a != -2);
     231      else k = 1;
     232    }
     233  while (a != -2);  // End of file
    177234
    178235  return true;
    179236}
     237
     238
     239G4bool G4ShellEMDataSet::LoadNonLogData(const G4String& file)
     240{
     241  CleanUpComponents();
     242
     243  G4String fullFileName = FullFileName(file);
     244  std::ifstream in(fullFileName);
     245
     246  if (!in.is_open())
     247    {
     248      G4String message("G4ShellEMDataSet::LoadData - data file \"");
     249      message += fullFileName;
     250      message += "\" not found";
     251      G4Exception(message);
     252    }
     253
     254  G4DataVector* orig_shell_energies = 0;
     255  G4DataVector* orig_shell_data = 0;
     256
     257  G4double a = 0.;
     258  G4int shellIndex = 0;
     259  G4int k = 0;
     260  G4int nColumns = 2;
     261
     262  do
     263    {
     264      in >> a;
     265
     266      // The file is organized into four columns:
     267      // 1st column contains the values of energy
     268      // 2nd column contains the corresponding data value
     269      // The file terminates with the pattern: -1   -1
     270      //                                       -2   -2
     271      //
     272      if (a == -1)
     273        {
     274          if ((k%nColumns == 0) && (orig_shell_energies != 0) )
     275            {
     276             AddComponent(new G4EMDataSet(shellIndex, orig_shell_energies, orig_shell_data, algorithm->Clone(), unitEnergies, unitData));
     277              orig_shell_energies = 0;
     278              orig_shell_data = 0;
     279            }
     280        }
     281      else if (a != -2)
     282        {
     283          if (orig_shell_energies == 0)
     284            {
     285             orig_shell_energies = new G4DataVector;
     286             orig_shell_data = new G4DataVector;
     287            }
     288          if (k%nColumns == 0)
     289            {
     290             orig_shell_energies->push_back(a*unitEnergies);
     291            }
     292          else if (k%nColumns == 1)
     293            {
     294             orig_shell_data->push_back(a*unitData);
     295            }
     296          k++;
     297        }
     298      else k = 1;
     299    }
     300  while (a != -2);  // End of file
     301
     302  return true;
     303}
     304
    180305
    181306
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4VCrossSectionHandler.cc,v 1.17 2006/06/29 19:41:42 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4VCrossSectionHandler.cc,v 1.19 2009/09/25 07:41:34 sincerti Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
     
    3737// 19 Jul 2002   VI         Create composite data set for material
    3838// 21 Jan 2003   VI         Cut per region
     39//
     40// 15 Jul 2009   Nicolas A. Karakatsanis
     41//
     42//                           - LoadNonLogData method was created to load only the non-logarithmic data from G4EMLOW
     43//                             dataset. It is essentially performing the data loading operations as in the past.
     44//
     45//                           - LoadData method was revised in order to calculate the logarithmic values of the data
     46//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     47//                             respective log values and loads them to seperate data structures.
     48//                             The EM data sets, initialized this way, contain both non-log and log values.
     49//                             These initialized data sets can enhance the computing performance of data interpolation
     50//                             operations
     51//
     52//                           - BuildMeanFreePathForMaterials method was also revised in order to calculate the
     53//                             logarithmic values of the loaded data.
     54//                             It generates the data values and, then, calculates the respective log values which
     55//                             later load to seperate data structures.
     56//                             The EM data sets, initialized this way, contain both non-log and log values.
     57//                             These initialized data sets can enhance the computing performance of data interpolation
     58//                             operations
     59//                             
     60//                           - LoadShellData method was revised in order to eliminate the presence of a potential
     61//                             memory leak originally identified by Riccardo Capra.
     62//                             Riccardo Capra Original Comment
     63//                             Riccardo Capra <capra@ge.infn.it>: PLEASE CHECK THE FOLLOWING PIECE OF CODE
     64//                             "energies" AND "data" G4DataVector ARE ALLOCATED, FILLED IN AND NEVER USED OR
     65//                             DELETED. WHATSMORE LOADING FILE OPERATIONS WERE DONE BY G4ShellEMDataSet
     66//                             EVEN BEFORE THE CHANGES I DID ON THIS FILE. SO THE FOLLOWING CODE IN MY
     67//                             OPINION SHOULD BE USELESS AND SHOULD PRODUCE A MEMORY LEAK.
     68//
    3969//
    4070// -------------------------------------------------------------------
     
    175205      std::ifstream file(ost.str().c_str());
    176206      std::filebuf* lsdp = file.rdbuf();
    177      
     207       
    178208      if (! (lsdp->is_open()) )
    179209        {
     
    182212        }
    183213      G4double a = 0;
    184       G4int k = 1;
    185       G4DataVector* energies = new G4DataVector;
    186       G4DataVector* data = new G4DataVector;
     214      G4int k = 0;
     215      G4int nColumns = 2;
     216
     217      G4DataVector* orig_reg_energies = new G4DataVector;
     218      G4DataVector* orig_reg_data = new G4DataVector;
     219      G4DataVector* log_reg_energies = new G4DataVector;
     220      G4DataVector* log_reg_data = new G4DataVector;
     221
    187222      do
    188223        {
    189224          file >> a;
    190           G4int nColumns = 2;
    191           // The file is organized into two columns:
    192           // 1st column is the energy
    193           // 2nd column is the corresponding value
     225
     226          if (a==0.) a=1e-300;
     227
     228          // The file is organized into four columns:
     229          // 1st column contains the values of energy
     230          // 2nd column contains the corresponding data value
    194231          // The file terminates with the pattern: -1   -1
    195232          //                                       -2   -2
    196           if (a == -1 || a == -2)
     233          //
     234          if (a != -1 && a != -2)
    197235            {
     236              if (k%nColumns == 0)
     237                {
     238                 orig_reg_energies->push_back(a*unit1);
     239                 log_reg_energies->push_back(std::log10(a)+std::log10(unit1));
     240                }
     241              else if (k%nColumns == 1)
     242                {
     243                 orig_reg_data->push_back(a*unit2);
     244                 log_reg_data->push_back(std::log10(a)+std::log10(unit2));
     245                }
     246              k++;
    198247            }
    199           else
    200             {
    201               if (k%nColumns != 0)
    202                 {       
    203                   G4double e = a * unit1;
    204                   energies->push_back(e);
    205                   k++;
    206                 }
    207               else if (k%nColumns == 0)
    208                 {
    209                   G4double value = a * unit2;
    210                   data->push_back(value);
    211                   k = 1;
    212                 }
    213             }
    214         } while (a != -2); // end of file
     248        }
     249      while (a != -2); // End of File
    215250     
    216251      file.close();
    217252      G4VDataSetAlgorithm* algo = interpolation->Clone();
    218       G4VEMDataSet* dataSet = new G4EMDataSet(Z,energies,data,algo);
     253
     254      G4VEMDataSet* dataSet = new G4EMDataSet(Z,orig_reg_energies,orig_reg_data,log_reg_energies,log_reg_data,algo);
     255
    219256      dataMap[Z] = dataSet;
    220     }
    221 }
    222 
    223 void G4VCrossSectionHandler::LoadShellData(const G4String& fileName)
     257
     258    }
     259}
     260
     261
     262void G4VCrossSectionHandler::LoadNonLogData(const G4String& fileName)
    224263{
    225264  size_t nZ = activeZ.size();
     
    227266    {
    228267      G4int Z = (G4int) activeZ[i];
    229      
    230       // Riccardo Capra <capra@ge.infn.it>: PLEASE CHECK THE FOLLOWING PIECE OF CODE
    231       // "energies" AND "data" G4DataVector ARE ALLOCATED, FILLED IN AND NEVER USED OR
    232       // DELETED. WHATSMORE LOADING FILE OPERATIONS WERE DONE BY G4ShellEMDataSet
    233       // EVEN BEFORE THE CHANGES I DID ON THIS FILE. SO THE FOLLOWING CODE IN MY
    234       // OPINION SHOULD BE USELESS AND SHOULD PRODUCE A MEMORY LEAK.
    235268
    236269      // Build the complete string identifying the file with the data set
     
    244277     
    245278      std::ostringstream ost;
    246 
    247279      ost << path << '/' << fileName << Z << ".dat";
    248      
    249280      std::ifstream file(ost.str().c_str());
    250281      std::filebuf* lsdp = file.rdbuf();
    251      
     282       
    252283      if (! (lsdp->is_open()) )
    253284        {
     
    256287        }
    257288      G4double a = 0;
    258       G4int k = 1;
    259       G4DataVector* energies = new G4DataVector;
    260       G4DataVector* data = new G4DataVector;
     289      G4int k = 0;
     290      G4int nColumns = 2;
     291
     292      G4DataVector* orig_reg_energies = new G4DataVector;
     293      G4DataVector* orig_reg_data = new G4DataVector;
     294
    261295      do
    262296        {
    263297          file >> a;
    264           G4int nColumns = 2;
    265           // The file is organized into two columns:
    266           // 1st column is the energy
    267           // 2nd column is the corresponding value
     298
     299          // The file is organized into four columns:
     300          // 1st column contains the values of energy
     301          // 2nd column contains the corresponding data value
    268302          // The file terminates with the pattern: -1   -1
    269303          //                                       -2   -2
    270           if (a == -1 || a == -2)
     304          //
     305          if (a != -1 && a != -2)
    271306            {
     307              if (k%nColumns == 0)
     308                {
     309                 orig_reg_energies->push_back(a*unit1);
     310                }
     311              else if (k%nColumns == 1)
     312                {
     313                 orig_reg_data->push_back(a*unit2);
     314                }
     315              k++;
    272316            }
    273           else
    274             {
    275               if (k%nColumns != 0)
    276                 {       
    277                   G4double e = a * unit1;
    278                   energies->push_back(e);
    279                   k++;
    280                 }
    281               else if (k%nColumns == 0)
    282                 {
    283                   G4double value = a * unit2;
    284                   data->push_back(value);
    285                   k = 1;
    286                 }
    287             }
    288         } while (a != -2); // end of file
     317        }
     318      while (a != -2); // End of File
    289319     
    290320      file.close();
    291      
    292       // Riccardo Capra <capra@ge.infn.it>: END OF CODE THAT IN MY OPINION SHOULD BE
    293       // REMOVED.
     321      G4VDataSetAlgorithm* algo = interpolation->Clone();
     322
     323      G4VEMDataSet* dataSet = new G4EMDataSet(Z,orig_reg_energies,orig_reg_data,algo);
     324
     325      dataMap[Z] = dataSet;
     326
     327    }
     328}
     329
     330void G4VCrossSectionHandler::LoadShellData(const G4String& fileName)
     331{
     332  size_t nZ = activeZ.size();
     333  for (size_t i=0; i<nZ; i++)
     334    {
     335      G4int Z = (G4int) activeZ[i];
    294336     
    295337      G4VDataSetAlgorithm* algo = interpolation->Clone();
    296338      G4VEMDataSet* dataSet = new G4ShellEMDataSet(Z, algo);
     339
    297340      dataSet->LoadData(fileName);
     341     
    298342      dataMap[Z] = dataSet;
    299343    }
    300344}
     345
     346
     347
    301348
    302349void G4VCrossSectionHandler::Clear()
     
    453500  G4DataVector* energies;
    454501  G4DataVector* data;
     502  G4DataVector* log_energies;
     503  G4DataVector* log_data;
     504
    455505 
    456506  const G4ProductionCutsTable* theCoupleTable=
     
    463513      energies = new G4DataVector;
    464514      data = new G4DataVector;
     515      log_energies = new G4DataVector;
     516      log_data = new G4DataVector;
    465517      for (G4int bin=0; bin<nBins; bin++)
    466518        {
    467519          G4double energy = energyVector[bin];
    468520          energies->push_back(energy);
     521          log_energies->push_back(std::log10(energy));
    469522          G4VEMDataSet* matCrossSet = (*crossSections)[m];
    470523          G4double materialCrossSection = 0.0;
     
    477530            {
    478531              data->push_back(1./materialCrossSection);
     532              log_data->push_back(std::log10(1./materialCrossSection));
    479533            }
    480534          else
    481535            {
    482536              data->push_back(DBL_MAX);
     537              log_data->push_back(std::log10(DBL_MAX));
    483538            }
    484539        }
    485540      G4VDataSetAlgorithm* algo = CreateInterpolation();
    486       G4VEMDataSet* dataSet = new G4EMDataSet(m,energies,data,algo,1.,1.);
     541
     542      //G4VEMDataSet* dataSet = new G4EMDataSet(m,energies,data,algo,1.,1.);
     543
     544      G4VEMDataSet* dataSet = new G4EMDataSet(m,energies,data,log_energies,log_data,algo,1.,1.);
     545
    487546      materialSet->AddComponent(dataSet);
    488547    }
     
    490549  return materialSet;
    491550}
     551
    492552
    493553G4int G4VCrossSectionHandler::SelectRandomAtom(const G4MaterialCutsCouple* couple,
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4VLowEnergyDiscretePhotonProcess.cc,v 1.5 2006/06/29 19:41:44 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4VLowEnergyDiscretePhotonProcess.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4VeLowEnergyLoss.cc,v 1.25 2006/06/29 19:41:50 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4VeLowEnergyLoss.cc,v 1.27 2009/07/23 09:15:37 vnivanch Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030//
     
    172172  G4double del = 1.0/(G4double)n ;
    173173
    174   for (G4int j=1; j<TotBin; j++) {
     174  for (G4int j=1; j<=TotBin; j++) {
    175175
    176176    G4double energy2 = rangeVector->GetLowEdgeEnergy(j);
     
    201201  Value = 0.;
    202202
    203   for (G4int i=0; i<=nbin; i++)
     203  for (G4int i=0; i<nbin; i++)
    204204  {
    205205    taui = taulow + dtau*i ;
     
    210210    else
    211211    {
    212       if(i<nbin)
     212      if(i<nbin-1)
    213213        ci=1.;
    214214      else
     
    233233  Value = 0.;
    234234
    235   for (G4int i=0; i<=nbin; i++)
     235  for (G4int i=0; i<nbin; i++)
    236236  {
    237237    ui = ltaulow+dltau*i;
     
    243243    else
    244244    {
    245       if(i<nbin)
     245      if(i<nbin-1)
    246246        ci=1.;
    247247      else
     
    369369  } while (tau<=taulim) ;
    370370  i += 1 ;
    371   for (G4int j=i; j<TotBin; j++)
     371  for (G4int j=i; j<=TotBin; j++)
    372372  {
    373373    LowEdgeEnergy = timeVector->GetLowEdgeEnergy(j);
     
    430430  } while (tau<=taulim) ;
    431431  i += 1 ;
    432   for (G4int j=i; j<TotBin; j++)
     432  for (G4int j=i; j<=TotBin; j++)
    433433  {
    434434    LowEdgeEnergy = timeVector->GetLowEdgeEnergy(j);
     
    455455  Value = 0.;
    456456
    457   for (G4int i=0; i<=nbin; i++)
     457  for (G4int i=0; i<nbin; i++)
    458458  {
    459459    ui = ltaulow+dltau*i;
     
    465465    else
    466466    {
    467       if(i<nbin)
     467      if(i<nbin-1)
    468468        ci=1.;
    469469      else
     
    488488  Value = 0.;
    489489
    490   for (G4int i=0; i<=nbin; i++)
     490  for (G4int i=0; i<nbin; i++)
    491491  {
    492492    ui = ltaulow+dltau*i;
     
    498498    else
    499499    {
    500       if(i<nbin)
     500      if(i<nbin-1)
    501501        ci=1.;
    502502      else
     
    541541    G4double rhigh = pv->GetValue(ehigh, b);
    542542
    543     rhigh *= std::exp(std::log(rhigh/rlow)/((G4double)(nbins-1)));
    544 
    545     G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins);
     543    //rhigh *= std::exp(std::log(rhigh/rlow)/((G4double)(nbins-1)));
     544
     545    G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins-1);
    546546
    547547    v->PutValue(0,elow);
     
    597597
    598598  //loop for range values
    599   for( G4int i=0; i<TotBin; i++)
     599  for( G4int i=0; i<=TotBin; i++)
    600600  {
    601601    LowEdgeRange = aVector->GetLowEdgeEnergy(i) ;  //i.e. GetLowEdgeValue(i)
     
    613613    if(binnumber == 0)
    614614      KineticEnergy = lowestKineticEnergy ;
    615     else if(binnumber == TotBin-1)
     615    else if(binnumber == TotBin)
    616616      KineticEnergy = highestKineticEnergy ;
    617617    else
     
    668668    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    669669
    670     for ( G4int i=0; i<TotBin; i++)
     670    for ( G4int i=0; i<=TotBin; i++)
    671671    {
    672672      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    678678        Rim = rangeVector->GetValue(Tim,isOut);
    679679      }
    680       if ( i==(TotBin-1))
     680      if ( i==TotBin)
    681681        Rip = Ri ;
    682682      else
     
    730730    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    731731 
    732     for ( G4int i=0; i<TotBin; i++)
     732    for ( G4int i=0; i<=TotBin; i++)
    733733    {
    734734      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    740740        Rim = rangeVector->GetValue(Tim,isOut);
    741741      }
    742       if ( i==(TotBin-1))
     742      if ( i==TotBin)
    743743        Rip = Ri ;
    744744      else
     
    791791    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    792792 
    793     for ( G4int i=0; i<TotBin; i++)
     793    for ( G4int i=0; i<=TotBin; i++)
    794794    {
    795795      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    801801        Rim = rangeVector->GetValue(Tim,isOut);
    802802      }
    803       if ( i==(TotBin-1))
     803      if ( i==TotBin)
    804804        Rip = Ri ;
    805805      else
  • trunk/source/processes/electromagnetic/lowenergy/src/G4WaterExcitationStructure.cc

    r1007 r1192  
    2626//
    2727// $Id: G4WaterExcitationStructure.cc,v 1.1 2007/10/15 08:57:54 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4WaterIonisationStructure.cc

    r1007 r1192  
    2626//
    2727// $Id: G4WaterIonisationStructure.cc,v 1.1 2007/11/08 20:39:35 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc

    r1007 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eBremsstrahlungSpectrum.cc,v 1.15 2006/06/29 19:41:58 gunter Exp $
    27 // GEANT4 tag $Name: geant4-09-02 $
     26// $Id: G4eBremsstrahlungSpectrum.cc,v 1.16 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eCrossSectionExcitationEmfietzoglou.cc

    r1007 r1192  
    2626//
    2727// $Id: G4eCrossSectionExcitationEmfietzoglou.cc,v 1.1 2007/05/04 10:16:06 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030
    3131// $Id: G4eCrossSectionExcitationEmfietzoglou.cc,v 1.1 2007/05/04 10:16:06 pia Exp $
    32 // GEANT4 tag $Name: geant4-09-02 $
     32// GEANT4 tag $Name: emlowen-V09-02-64 $
    3333//
    3434// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eCrossSectionScreenedRutherford.cc

    r1007 r1192  
    2626//
    2727// $Id: G4eCrossSectionScreenedRutherford.cc,v 1.3 2007/10/12 12:27:19 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eIonisationCrossSectionHandler.cc,v 1.12 2009/01/29 08:13:34 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4eIonisationCrossSectionHandler.cc,v 1.15 2009/09/27 10:47:42 sincerti Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
     
    4444// 28 Jan 2009  L.Pandola    Added public method to make a easier migration of
    4545//                           G4LowEnergyIonisation to G4LivermoreIonisationModel
     46// 15 Jul 2009   Nicolas A. Karakatsanis
     47//
     48//                           - BuildCrossSectionForMaterials method was revised in order to calculate the
     49//                             logarithmic values of the loaded data.
     50//                             It retrieves the data values from the G4EMLOW data files but, then, calculates the
     51//                             respective log values and loads them to seperate data structures.
     52//                             The EM data sets, initialized this way, contain both non-log and log values.
     53//                             These initialized data sets can enhance the computing performance of data interpolation
     54//                             operations
     55//
     56//
    4657//
    4758// -------------------------------------------------------------------
     
    8697  G4DataVector* energies;
    8798  G4DataVector* cs;
     99
     100  G4DataVector* log_energies;
     101  G4DataVector* log_cs;
     102
    88103  G4int nOfBins = energyVector.size();
    89104
     
    116131      G4int Z = (G4int) (*elementVector)[i]->GetZ();
    117132      G4int nShells = NumberOfComponents(Z);
     133
    118134      energies = new G4DataVector;
    119135      cs       = new G4DataVector;
     136
     137      log_energies = new G4DataVector;
     138      log_cs       = new G4DataVector;
     139
    120140      G4double density = nAtomsPerVolume[i];
    121141
     
    124144        G4double e = energyVector[bin];
    125145        energies->push_back(e);
     146        log_energies->push_back(std::log10(e));
    126147        G4double value = 0.0;
     148        G4double log_value = -300;
    127149
    128150        if(e > tcut) {
     
    146168
    147169          }
     170          if (value == 0.) value = 1e-300;
     171          log_value = std::log10(value);
    148172        }
    149173        cs->push_back(value);
     174        log_cs->push_back(log_value);
    150175      }
    151176      G4VDataSetAlgorithm* algo = interp->Clone();
    152       G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,algo,1.,1.);
     177
     178      //G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,algo,1.,1.);
     179
     180      G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,log_energies,log_cs,algo,1.,1.);
     181
    153182      setForMat->AddComponent(elSet);
    154183    }
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4eIonisationParameters.cc,v 1.24 2009/03/23 09:13:44 pandola Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4eIonisationParameters.cc,v 1.25 2009/06/10 13:32:36 mantero Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc

    r1055 r1192  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eIonisationSpectrum.cc,v 1.26 2009/03/23 09:13:44 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     26// $Id: G4eIonisationSpectrum.cc,v 1.27 2009/06/10 13:32:36 mantero Exp $
     27// GEANT4 tag $Name: emlowen-V09-02-64 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc

    r1007 r1192  
    2525//
    2626//
    27 // $Id: G4eLowEnergyLoss.cc,v 1.35 2006/06/29 19:42:06 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     27// $Id: G4eLowEnergyLoss.cc,v 1.37 2009/07/23 09:15:37 vnivanch Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929// 
    3030// -----------------------------------------------------------
     
    273273
    274274         // loop for the kinetic energy
    275          for (G4int i=0; i<NbinEloss; i++)
     275         for (G4int i=0; i<=NbinEloss; i++)
    276276            {
    277277              LowEdgeEnergy = aVector->GetLowEdgeEnergy(i) ;
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc

    r961 r1192  
    100100//               parametrised proton model: min(user value, model limit)
    101101// 26 Jan   2005 S. Chauvie added PrintInfoDefinition() for antiproton
    102 
    103 
     102// 30 Sep   2009 ALF Removed dependencies to old shell Ionisation XS models
     103// 11 Nov   2009 ALF Code cleaning for the Dec release
     104//
    104105// -----------------------------------------------------------------------
    105106
     
    121122#include "G4ShellVacancy.hh"
    122123#include "G4VhShellCrossSection.hh"
    123 #include "G4hShellCrossSection.hh"
    124 #include "G4hShellCrossSectionExp.hh"
    125 #include "G4hShellCrossSectionDoubleExp.hh"
    126124#include "G4VEMDataSet.hh"
    127125#include "G4EMDataSet.hh"
     
    132130#include "G4ProcessManager.hh"
    133131#include "G4ProductionCutsTable.hh"
    134 
     132#include "G4teoCrossSection.hh"
     133#include "G4empCrossSection.hh"
    135134//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    136135
     
    153152    shellVacancy(0),
    154153    shellCS(0),
    155     theFluo(false),
    156     expFlag(false)
     154    theFluo(false)
    157155{
    158156  InitializeMe();
     
    175173  verboseLevel         = 0;
    176174
    177 //****************************************************************************
    178 // By default the method of cross section's calculation is swiched on an
    179 // 2nd implementation empirical model (G4hShellCrossSectionDoubleExp),
    180 // if you want to use Gryzinski's model (G4hShellCrossSection()) or the
    181 // 1st empiric one (G4hShellCrossSectionExp), you must change the
    182 // selection below and switching expFlag to FALSE
    183 //****************************************************************************
    184 
    185   //shellCS = new G4hShellCrossSection();
    186   //shellCS = new G4hShellCrossSectionExp();
    187   shellCS = new G4hShellCrossSectionDoubleExp();
    188   expFlag=true;
     175  shellCS = new G4teoCrossSection("analytical");
     176
    189177}
    190178
     
    12801268  //   G4cout << "Fluorescence is switched :" << theFluo << G4endl;
    12811269
     1270  // Fluorescence data start from element 6
    12821271  if(theFluo && Z > 5) {
    12831272
    12841273
    12851274
    1286     // Atom total cross section for the Empiric Model   
    1287     if (expFlag) {   
     1275    // Atom total cross section     
    12881276    shellCS->SetTotalCS(totalCrossSectionMap[Z]);   
    1289     }
     1277
    12901278    G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy,ParticleMass,DeltaKineticEnergy);
    12911279
    1292     if (expFlag && shell==1) {       
    1293       aParticleChange.ProposeLocalEnergyDeposit (KineticEnergy);
    1294       aParticleChange.ProposeEnergy(0);     
    1295     }
    1296 
    1297 
    1298     const G4AtomicShell* atomicShell =
    1299                 (G4AtomicTransitionManager::Instance())->Shell(Z, shell);
    1300     G4double bindingEnergy = atomicShell->BindingEnergy();
    1301 
    1302     if(verboseLevel > 1) {
    1303       G4cout << "PostStep Z= " << Z << " shell= " << shell
    1304              << " bindingE(keV)= " << bindingEnergy/keV
    1305              << " finalE(keV)= " << finalKineticEnergy/keV
    1306              << G4endl;
    1307     }
    1308 
    1309     // Fluorescence data start from element 6
    1310 
    1311     if (finalKineticEnergy >= bindingEnergy
    1312          && (bindingEnergy >= minGammaEnergy
    1313          ||  bindingEnergy >= minElectronEnergy) ) {
    1314 
    1315       G4int shellId = atomicShell->ShellId();
    1316       secondaryVector = deexcitationManager.GenerateParticles(Z, shellId);
    1317 
    1318       if (secondaryVector != 0) {
    1319 
    1320         nSecondaries = secondaryVector->size();
    1321         for (size_t i = 0; i<nSecondaries; i++) {
    1322 
    1323           aSecondary = (*secondaryVector)[i];
    1324           if (aSecondary) {
    1325 
    1326             G4double e = aSecondary->GetKineticEnergy();
    1327             type = aSecondary->GetDefinition();
    1328             if (e < finalKineticEnergy &&
    1329                  ((type == G4Gamma::Gamma() && e > minGammaEnergy ) ||
    1330                   (type == G4Electron::Electron() && e > minElectronEnergy ))) {
    1331 
    1332               finalKineticEnergy -= e;
    1333               totalNumber++;
    1334 
    1335             } else {
    1336 
    1337               delete aSecondary;
    1338               (*secondaryVector)[i] = 0;
     1280    if (shell!=-1) {       
     1281     
     1282      const G4AtomicShell* atomicShell =
     1283        (G4AtomicTransitionManager::Instance())->Shell(Z, shell);
     1284      G4double bindingEnergy = atomicShell->BindingEnergy();
     1285     
     1286      if(verboseLevel > 1) {
     1287        G4cout << "PostStep Z= " << Z << " shell= " << shell
     1288               << " bindingE(keV)= " << bindingEnergy/keV
     1289               << " finalE(keV)= " << finalKineticEnergy/keV
     1290               << G4endl;
     1291      }
     1292     
     1293     
     1294     
     1295      if (finalKineticEnergy >= bindingEnergy
     1296          && (bindingEnergy >= minGammaEnergy
     1297              ||  bindingEnergy >= minElectronEnergy) ) {
     1298       
     1299        G4int shellId = atomicShell->ShellId();
     1300        secondaryVector = deexcitationManager.GenerateParticles(Z, shellId);
     1301       
     1302        if (secondaryVector != 0) {
     1303         
     1304          nSecondaries = secondaryVector->size();
     1305          for (size_t i = 0; i<nSecondaries; i++) {
     1306           
     1307            aSecondary = (*secondaryVector)[i];
     1308            if (aSecondary) {
     1309             
     1310              G4double e = aSecondary->GetKineticEnergy();
     1311              type = aSecondary->GetDefinition();
     1312              if (e < finalKineticEnergy &&
     1313                  ((type == G4Gamma::Gamma() && e > minGammaEnergy ) ||
     1314                   (type == G4Electron::Electron() && e > minElectronEnergy ))) {
     1315               
     1316                finalKineticEnergy -= e;
     1317                totalNumber++;
     1318               
     1319              } else {
     1320               
     1321                delete aSecondary;
     1322                (*secondaryVector)[i] = 0;
     1323              }
    13391324            }
    13401325          }
     
    13431328    }
    13441329  }
    1345 
     1330 
    13461331  // Save delta-electrons
    13471332
     
    14011386//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    14021387
    1403 std::vector<G4DynamicParticle*>*
    1404 G4hLowEnergyIonisation::DeexciteAtom(const G4MaterialCutsCouple* couple,
     1388
     1389
     1390void G4hLowEnergyIonisation::SelectShellIonisationCS(G4String val) {
     1391
     1392  if (shellCS) delete shellCS;
     1393
     1394  if (val == "empirical") {
     1395    shellCS = new G4empCrossSection();
     1396  }
     1397 else {
     1398    shellCS = new G4teoCrossSection(val);
     1399  }
     1400}
     1401
     1402
     1403
     1404//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     1405
     1406
     1407std::vector<G4DynamicParticle*>* G4hLowEnergyIonisation::DeexciteAtom(const G4MaterialCutsCouple* couple,
    14051408                                           G4double incidentEnergy,
    14061409                                           G4double hMass,
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc

    r1055 r1192  
    2525//
    2626//
    27 // $Id: G4hLowEnergyLoss.cc,v 1.28 2009/02/20 10:49:54 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4hLowEnergyLoss.cc,v 1.30 2009/07/23 09:15:37 vnivanch Exp $
     28// GEANT4 tag $Name: emlowen-V09-02-64 $
    2929//
    3030// -----------------------------------------------------------
     
    240240{
    241241  //  calculate data members TotBin,LOGRTable,RTable first
    242 
     242  //G4cout << "BuildDEDXTable for " << aParticleType.GetParticleName() << G4endl;
    243243  const G4ProductionCutsTable* theCoupleTable=
    244244        G4ProductionCutsTable::GetProductionCutsTable();
     
    302302
    303303        // loop for the kinetic energy
    304         for (G4int i=0; i<TotBin; i++)
     304        for (G4int i=0; i<=TotBin; i++)
    305305        {
    306306          LowEdgeEnergy = aVector->GetLowEdgeEnergy(i) ;
     
    344344  }
    345345  // make the energy loss and the range table available
     346  //G4cout << "BuildDEDXTable done " << G4endl;
    346347
    347348  G4EnergyLossTables::Register(&aParticleType,
     
    368369// Build range table from the energy loss table
    369370{
     371  //G4cout << "BuildRangeTable for " << aParticleType.GetParticleName() << G4endl;
    370372   Mass = aParticleType.GetPDGMass();
    371373
     
    409411                             const G4ParticleDefinition& aParticleType)
    410412{
     413  //G4cout << "BuildTimeTable for " << aParticleType.GetParticleName() << G4endl;
    411414
    412415  const G4ProductionCutsTable* theCoupleTable=
     
    443446    theProperTimeTable = theProperTimepbarTable ;
    444447  }
    445 
     448  //G4cout << "numOfCouples= " << numOfCouples << G4endl;
    446449  for (size_t J=0;  J<numOfCouples; J++)
    447450  {
     
    453456
    454457    BuildLabTimeVector(J, aVector);
     458    //G4cout << "LabTime OK " << J << G4endl;
    455459    theLabTimeTable->insert(aVector);
    456460
     
    459463
    460464    BuildProperTimeVector(J, bVector);
     465    //G4cout << "PropTime OK " << J << G4endl;
    461466    theProperTimeTable->insert(bVector);
    462467  }
     
    478483  G4double del = 1.0/(G4double)n ;
    479484
    480   for (G4int j=1; j<TotBin; j++) {
     485  for (G4int j=1; j<=TotBin; j++) {
    481486
    482487    G4double energy2 = rangeVector->GetLowEdgeEnergy(j);
     
    543548
    544549  i += 1 ;
    545   for (G4int j=i; j<TotBin; j++)
     550  //G4cout << "do is OK i= " << i << G4endl;
     551  for (G4int j=i; j<=TotBin; j++)
    546552  {
    547553    LowEdgeEnergy = timeVector->GetLowEdgeEnergy(j);
    548554    tau = LowEdgeEnergy/ParticleMass ;
     555    //G4cout << "j= " << j << " tauold= " << tauold << " tau= " << tau << G4endl;
    549556    ltaulow = std::log(tauold);
    550557    ltauhigh = std::log(tau);
     
    554561    tauold = tau ;
    555562  }
     563  // G4cout << "LabTime OK for  " << materialIndex << G4endl;
    556564}
    557565
     
    561569                                             G4PhysicsLogVector* timeVector)
    562570//  create proper time vector for a material
    563 {
     571{ 
    564572  G4int nbin=100;
    565573  G4bool isOut;
     
    602610
    603611  i += 1 ;
    604   for (G4int j=i; j<TotBin; j++)
     612  for (G4int j=i; j<=TotBin; j++)
    605613  {
    606614    LowEdgeEnergy = timeVector->GetLowEdgeEnergy(j);
     
    626634  Value = 0.;
    627635
    628   for (G4int i=0; i<=nbin; i++)
     636  for (G4int i=0; i<nbin; i++)
    629637  {
    630638    taui = taulow + dtau*i ;
     
    635643    else
    636644    {
    637       if(i<nbin)
     645      if(i<nbin-1)
    638646        ci=1.;
    639647      else
     
    658666  Value = 0.;
    659667
    660   for (G4int i=0; i<=nbin; i++)
     668  for (G4int i=0; i<nbin; i++)
    661669  {
    662670    ui = ltaulow+dltau*i;
     
    668676    else
    669677    {
    670       if(i<nbin)
     678      if(i<nbin-1)
    671679        ci=1.;
    672680      else
     
    691699  Value = 0.;
    692700
    693   for (G4int i=0; i<=nbin; i++)
     701  for (G4int i=0; i<nbin; i++)
    694702  {
    695703    ui = ltaulow+dltau*i;
     
    701709    else
    702710    {
    703       if(i<nbin)
     711      if(i<nbin-1)
    704712        ci=1.;
    705713      else
     
    724732  Value = 0.;
    725733
    726   for (G4int i=0; i<=nbin; i++)
     734  for (G4int i=0; i<nbin; i++)
    727735  {
    728736    ui = ltaulow+dltau*i;
     
    734742    else
    735743    {
    736       if(i<nbin)
     744      if(i<nbin-1)
    737745        ci=1.;
    738746      else
     
    752760//  create table for coefficients "A"
    753761{
     762  //G4cout << "BuildRangeCoeffATable for " << G4endl;
    754763
    755764  G4int numOfCouples = G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize();
     
    789798    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    790799
    791     for ( G4int i=0; i<TotBin; i++)
     800    for ( G4int i=0; i<=TotBin; i++)
    792801    {
    793802      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    809818        Rim = rangeVector->GetValue(Tim,isOut);
    810819      }
    811       if ( i==(TotBin-1))
     820      if ( i==TotBin)
    812821        Rip = Ri ;
    813822      else
     
    833842//  create table for coefficients "B"
    834843{
     844  //G4cout << "BuildRangeCoeffBTable for " << G4endl;
    835845
    836846  G4int numOfCouples = G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize();
     
    871881    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    872882   
    873     for ( G4int i=0; i<TotBin; i++)
     883    for ( G4int i=0; i<=TotBin; i++)
    874884    {
    875885      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    881891        Rim = rangeVector->GetValue(Tim,isOut);
    882892      }
    883       if ( i==(TotBin-1))
     893      if ( i==TotBin)
    884894        Rip = Ri ;
    885895      else
     
    904914//  create table for coefficients "C"
    905915{
     916  //G4cout << "BuildRangeCoeffCTable for " << G4endl;
    906917
    907918  G4int numOfCouples = G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize();
     
    942953    G4PhysicsVector* rangeVector= (*theRangeTable)[J];
    943954   
    944     for ( G4int i=0; i<TotBin; i++)
     955    for ( G4int i=0; i<=TotBin; i++)
    945956    {
    946957      Ri = rangeVector->GetValue(Ti,isOut) ;
     
    952963        Rim = rangeVector->GetValue(Tim,isOut);
    953964      }
    954       if ( i==(TotBin-1))
     965      if ( i==TotBin)
    955966        Rip = Ri ;
    956967      else
     
    974985// Build inverse table of the range table
    975986{
     987  //G4cout << "BuildInverseRangeTable for " << aParticleType.GetParticleName() << G4endl;
    976988  G4bool b;
    977989
     
    10181030    G4double rlow  = pv->GetValue(elow, b);
    10191031    G4double rhigh = pv->GetValue(ehigh, b);
    1020 
    1021     rhigh *= std::exp(std::log(rhigh/rlow)/((G4double)(nbins-1)));
    1022 
    1023     G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins);
     1032    //G4cout << "elow= " << elow << " ehigh= " << ehigh << " rlow= " << rlow << " rhigh= " << rhigh << G4endl;
     1033    //    rhigh *= std::exp(std::log(rhigh/rlow)/((G4double)(nbins-1)));
     1034
     1035    G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins-1);
    10241036
    10251037    v->PutValue(0,elow);
     
    10701082
    10711083  //loop for range values
    1072   for( G4int i=0; i<TotBin; i++)
     1084  for( G4int i=0; i<=TotBin; i++)
    10731085  {
    10741086    LowEdgeRange = aVector->GetLowEdgeEnergy(i) ;  //i.e. GetLowEdgeValue(i)
     
    10871099    if(binnumber == 0)
    10881100      KineticEnergy = LowestKineticEnergy ;
    1089     else if(binnumber == TotBin-1)
     1101    else if(binnumber == TotBin)
    10901102      KineticEnergy = HighestKineticEnergy ;
    10911103    else
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc

    r1007 r1192  
    4141// Empiric Model for shell cross sections in proton ionisation
    4242// -------------------------------------------------------------------
    43 // $Id: G4hShellCrossSectionDoubleExp.cc,v 1.9 2008/06/26 18:19:10 sincerti Exp $
    44 // GEANT4 tag $Name: geant4-09-02 $
     43// $Id: G4hShellCrossSectionDoubleExp.cc,v 1.10 2009/06/10 13:32:36 mantero Exp $
     44// GEANT4 tag $Name: emlowen-V09-02-64 $
    4545
    4646#include "globals.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc

    r1007 r1192  
    3333//
    3434// -------------------------------------------------------------------
    35 // $Id: G4hShellCrossSectionDoubleExpData.cc,v 1.4 2006/06/29 19:42:38 gunter Exp $
    36 // GEANT4 tag $Name: geant4-09-02 $
     35// $Id: G4hShellCrossSectionDoubleExpData.cc,v 1.5 2009/06/10 13:32:36 mantero Exp $
     36// GEANT4 tag $Name: emlowen-V09-02-64 $
    3737
    3838#include "G4hShellCrossSectionDoubleExpData.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc

    r1007 r1192  
    4141// Empiric Model for shell cross sections in proton ionisation
    4242// -------------------------------------------------------------------
    43 // $Id: G4hShellCrossSectionExp.cc,v 1.6 2008/05/02 19:23:38 pia Exp $
    44 // GEANT4 tag $Name: geant4-09-02 $
     43// $Id: G4hShellCrossSectionExp.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
     44// GEANT4 tag $Name: emlowen-V09-02-64 $
    4545
    4646#include "globals.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc

    r1007 r1192  
    3333//
    3434// -------------------------------------------------------------------
    35 // $Id: G4hShellCrossSectionExpData.cc,v 1.3 2006/06/29 19:42:42 gunter Exp $
    36 // GEANT4 tag $Name: geant4-09-02 $
     35// $Id: G4hShellCrossSectionExpData.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
     36// GEANT4 tag $Name: emlowen-V09-02-64 $
    3737
    3838#include "G4hShellCrossSectionExpData.hh"
Note: See TracChangeset for help on using the changeset viewer.