Ignore:
Timestamp:
Jun 18, 2010, 11:42:07 AM (14 years ago)
Author:
garnier
Message:

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

Location:
trunk/source/processes/electromagnetic/lowenergy/src
Files:
126 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc

    r1228 r1315  
    2626//
    2727// $Id: G4AtomicDeexcitation.cc,v 1.11
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
     
    384384     
    385385      G4int numberOfPossibleAuger = 0;
    386       numberOfPossibleAuger = anAugerTransition->AugerTransitionProbabilities(transitionRandomShellId)->size();
    387 
    388 
     386     
    389387      G4bool foundFlag = false;
    390388
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc

    r1228 r1315  
    2626//
    2727// $Id: G4AtomicTransitionManager.cc,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc

    r819 r1315  
    9797{
    9898  std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionEnergiesMap.find(startShellId);
     99
     100  if (shellId == augerTransitionEnergiesMap.end() )
     101    {G4Exception("G4AugerTransition: corresponding map element not found");}
     102
    99103  const G4DataVector* dataSet = &(*shellId).second;
    100104
     
    103107}
    104108
    105 // Returns the emission probabilities of the auger electrons, given th shell
     109// Returns the emission probabilities of the auger electrons, given the shell
    106110// from wich the transition electron cames from.
    107111
    108112const G4DataVector* G4AugerTransition::AugerTransitionProbabilities(G4int startShellId) const
    109113{
     114
     115  //debugging
     116  //if (startShellId == 1){G4cout <<"OI!!!"<< G4endl;}
     117
    110118  std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionProbabilitiesMap.find(startShellId);
     119
     120  if (shellId == augerTransitionProbabilitiesMap.end() )
     121    {G4Exception("G4AugerTransition: corresponding map element not found");}
     122 
    111123  const G4DataVector* dataSet = &(*shellId).second;
     124  // debugging purpose:
     125  /*  G4cout << "id: " << shellId->first << G4endl;
     126  G4cout << "size:" << dataSet->size() << G4endl;
     127  for (G4int i = 0; i < dataSet->size(); i++){
     128    G4cout << (dataSet[0])[i] << G4endl;
     129    }*/
    112130  return dataSet;
    113131}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc

    r1228 r1315  
    2525//
    2626// $Id: G4BremsstrahlungCrossSectionHandler.cc,v 1.12 2009/09/27 10:47:42 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc

    r1228 r1315  
    2626//
    2727// $Id: G4BremsstrahlungParameters.cc,v 1.20 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CompositeEMDataSet.cc,v 1.15 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeDecrease.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionChargeDecrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionChargeDecrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeDecreasePartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionChargeDecreasePartial.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionChargeDecreasePartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeIncrease.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionChargeIncrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionChargeIncrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeIncreasePartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionChargeIncreasePartial.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionChargeIncreasePartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeTransferCH.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionChargeTransferCH.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionChargeTransferExp.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionChargeTransferExp.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticChampion.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionElasticChampion.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherford.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionElasticScreenedRutherford.cc,v 1.1 2007/10/12 23:11:41 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherfordHE.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionElasticScreenedRutherfordHE.cc,v 1.5 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionElasticScreenedRutherfordHE.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionElasticScreenedRutherfordLE.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionElasticScreenedRutherfordLE.cc,v 1.5 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionElasticScreenedRutherfordLE.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationBorn.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationBorn.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationBornPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationBornPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationBornPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationEmfietzoglou.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationEmfietzoglou.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationEmfietzoglou.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationEmfietzoglouPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationEmfietzoglouPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreen.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationMillerGreen.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationMillerGreen.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionExcitationMillerGreenPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionExcitationMillerGreenPartial.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionExcitationMillerGreenPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionHandler.cc,v 1.21 2009/09/27 10:47:42 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBorn.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionIonisationBorn.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionIonisationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornElectron.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionIonisationBornElectron.cc,v 1.2 2007/11/08 18:51:34 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionIonisationBornPartial.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionIonisationBornPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationBornPartialElectron.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionIonisationBornPartialElectron.cc,v 1.1 2007/10/15 08:57:54 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationRudd.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionIonisationRudd.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionIonisationRudd.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionIonisationRuddPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionIonisationRuddPartial.cc,v 1.5 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4CrossSectionIonisationRuddPartial.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionKill.cc

    r1228 r1315  
    2626//
    2727// $Id: G4CrossSectionKill.cc,v 1.1 2007/11/09 20:26:12 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionPsCreationChampion.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionPsCreationChampion.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4CrossSectionPsCreationChampionPartial.cc

    r1228 r1315  
    2525//
    2626// $Id: G4CrossSectionPsCreationChampionPartial.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNABornExcitationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNABornExcitationModel.cc,v 1.7 2009/08/31 14:03:29 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNABornExcitationModel.cc,v 1.9 2010/03/27 11:32:41 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    4040:G4VEmModel(nam),isInitialised(false)
    4141{
    42 
    43   lowEnergyLimit = 500 * keV;
    44   highEnergyLimit = 100 * MeV;
    45   SetLowEnergyLimit(lowEnergyLimit);
    46   SetHighEnergyLimit(highEnergyLimit);
    47 
    4842  verboseLevel= 0;
    4943  // Verbosity scale:
     
    5448  // 4 = entering in methods
    5549 
    56   //
    57  
    58   table = 0;
    59  
    60   //
    61  
    6250  if( verboseLevel>0 )
    6351  {
    64     G4cout << "Born excitation model is constructed " << G4endl
    65            << "Energy range: "
    66            << lowEnergyLimit / keV << " keV - "
    67            << highEnergyLimit / MeV << " MeV"
    68            << G4endl;
     52    G4cout << "Born excitation model is constructed " << G4endl;
    6953  }
    7054 
     
    7660{
    7761  // Cross section
    78   delete table;
    79 }
    80 
    81 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    82 
    83 void G4DNABornExcitationModel::Initialise(const G4ParticleDefinition* /*particle*/,
     62 
     63  std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
     64  for (pos = tableData.begin(); pos != tableData.end(); ++pos)
     65  {
     66    G4DNACrossSectionDataSet* table = pos->second;
     67    delete table;
     68  }
     69
     70}
     71
     72//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     73
     74void G4DNABornExcitationModel::Initialise(const G4ParticleDefinition* particle,
    8475                                       const G4DataVector& /*cuts*/)
    8576{
     
    8980
    9081  // Energy limits
    91  
    92   if (LowEnergyLimit() < lowEnergyLimit)
    93   {
    94     G4cout << "G4DNABornExcitationModel: low energy limit increased from " <<
    95         LowEnergyLimit()/keV << " keV to " << lowEnergyLimit/keV << " keV" << G4endl;
    96     SetLowEnergyLimit(lowEnergyLimit);
    97   }
    98 
    99   if (HighEnergyLimit() > highEnergyLimit)
    100   {
    101     G4cout << "G4DNABornExcitationModel: high energy limit decreased from " <<
    102         HighEnergyLimit()/MeV << " MeV to " << highEnergyLimit/MeV << " MeV" << G4endl;
    103     SetHighEnergyLimit(highEnergyLimit);
    104   }
    105 
    106   //
    107  
    108   if (table == 0)
    109   {
    110     table = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV,(1e-22/3.343)*m*m );
    111     table->LoadData("dna/sigma_excitation_p_born");
     82  // Energy limits
     83
     84  G4String fileElectron("dna/sigma_excitation_e_born");
     85  G4String fileProton("dna/sigma_excitation_p_born");
     86
     87  G4ParticleDefinition* electronDef = G4Electron::ElectronDefinition();
     88  G4ParticleDefinition* protonDef = G4Proton::ProtonDefinition();
     89
     90  G4String electron;
     91  G4String proton;
     92 
     93  G4double scaleFactor = (1.e-22 / 3.343) * m*m;
     94
     95  if (electronDef != 0)
     96  {
     97    electron = electronDef->GetParticleName();
     98
     99    tableFile[electron] = fileElectron;
     100
     101    lowEnergyLimit[electron] = 9. * eV;
     102    highEnergyLimit[electron] = 1. * MeV;
     103
     104    // Cross section
     105   
     106    G4DNACrossSectionDataSet* tableE = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor );
     107    tableE->LoadData(fileElectron);
     108     
     109    tableData[electron] = tableE;
     110   
     111  }
     112  else
     113  {
     114    G4Exception("G4DNABornExcitationModel::Initialise(): electron is not defined");
     115  }
     116
     117  if (protonDef != 0)
     118  {
     119    proton = protonDef->GetParticleName();
     120
     121    tableFile[proton] = fileProton;
     122
     123    lowEnergyLimit[proton] = 500. * keV;
     124    highEnergyLimit[proton] = 100. * MeV;
     125
     126    // Cross section
     127   
     128    G4DNACrossSectionDataSet* tableP = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV,scaleFactor );
     129    tableP->LoadData(fileProton);
     130     
     131    tableData[proton] = tableP;
     132     
     133  }
     134  else
     135  {
     136    G4Exception("G4DNABornExcitationModel::Initialise(): proton is not defined");
     137  }
     138
     139  if (particle==electronDef)
     140  {
     141    SetLowEnergyLimit(lowEnergyLimit[electron]);
     142    SetHighEnergyLimit(highEnergyLimit[electron]);
     143  }
     144
     145  if (particle==protonDef)
     146  {
     147    SetLowEnergyLimit(lowEnergyLimit[proton]);
     148    SetHighEnergyLimit(highEnergyLimit[proton]);
    112149  }
    113150
     
    116153    G4cout << "Born excitation model is initialized " << G4endl
    117154           << "Energy range: "
    118            << LowEnergyLimit() / keV << " keV - "
    119            << HighEnergyLimit() / MeV << " MeV " << G4endl;
    120   }
     155           << LowEnergyLimit() / eV << " eV - "
     156           << HighEnergyLimit() / keV << " keV for "
     157           << particle->GetParticleName()
     158           << G4endl;
     159  }
     160 
    121161 
    122162  if(!isInitialised)
     
    131171
    132172  // InitialiseElementSelectors(particle,cuts);
    133  
    134   // Test if water material
    135 
    136   flagMaterialIsWater= false;
    137   densityWater = 0;
    138 
    139   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    140 
    141   if(theCoupleTable)
    142   {
    143     G4int numOfCouples = theCoupleTable->GetTableSize();
    144  
    145     if(numOfCouples>0)
    146     {
    147           for (G4int i=0; i<numOfCouples; i++)
    148           {
    149             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    150             const G4Material* material = couple->GetMaterial();
    151 
    152             if (material->GetName() == "G4_WATER")
    153             {
    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;
    160             }
    161  
    162           }
    163 
    164     } // if(numOfCouples>0)
    165 
    166   } // if (theCoupleTable)
    167 
    168 }
    169 
    170 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    171 
    172 G4double G4DNABornExcitationModel::CrossSectionPerVolume(const G4Material*,
     173
     174}
     175
     176//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     177
     178G4double G4DNABornExcitationModel::CrossSectionPerVolume(const G4Material* material,
    173179                                           const G4ParticleDefinition* particleDefinition,
    174                                            G4double k,
     180                                           G4double ekin,
    175181                                           G4double,
    176182                                           G4double)
     
    179185    G4cout << "Calling CrossSectionPerVolume() of G4DNABornExcitationModel" << G4endl;
    180186
     187  if (
     188      particleDefinition != G4Proton::ProtonDefinition()
     189      &&
     190      particleDefinition != G4Electron::ElectronDefinition()
     191     )
     192           
     193    return 0;
     194
    181195 // Calculate total cross section for model
    182196
    183   G4double crossSection=0;
    184  
    185   if (flagMaterialIsWater)
    186   {
    187     if (particleDefinition == G4Proton::ProtonDefinition())
    188     {
    189       if (k >= lowEnergyLimit && k < highEnergyLimit)
     197  G4double lowLim = 0;
     198  G4double highLim = 0;
     199  G4double sigma=0;
     200
     201  if (material->GetName() == "G4_WATER")
     202  {
     203    const G4String& particleName = particleDefinition->GetParticleName();
     204 
     205    std::map< G4String,G4double,std::less<G4String> >::iterator pos1;
     206    pos1 = lowEnergyLimit.find(particleName);
     207    if (pos1 != lowEnergyLimit.end())
     208    {
     209      lowLim = pos1->second;
     210    }
     211 
     212    std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
     213    pos2 = highEnergyLimit.find(particleName);
     214    if (pos2 != highEnergyLimit.end())
     215    {
     216      highLim = pos2->second;
     217    }
     218
     219    if (ekin >= lowLim && ekin < highLim)
     220    {
     221      std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
     222      pos = tableData.find(particleName);
     223       
     224      if (pos != tableData.end())
    190225      {
    191         crossSection = table->FindValue(k);
     226        G4DNACrossSectionDataSet* table = pos->second;
     227        if (table != 0)
     228        {
     229          sigma = table->FindValue(ekin);
     230        }
    192231      }
    193 
    194       if (verboseLevel > 3)
     232      else
    195233      {
    196         G4cout << "---> Kinetic energy(keV)=" << k/keV << G4endl;
    197         G4cout << " - Cross section per water molecule (cm^2)=" << crossSection/cm/cm << G4endl;
    198         G4cout << " - Cross section per water molecule (cm^-1)=" << crossSection*densityWater/(1./cm) << G4endl;
    199       }
     234        G4Exception("G4DNABornExcitationModel::CrossSectionPerVolume: attempting to calculate cross section for wrong particle");
     235      }
    200236    }
    201   } // if (flagMaterialIsWater)
    202 
    203  return crossSection*densityWater;                 
     237
     238    if (verboseLevel > 3)
     239    {
     240      G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl;
     241      G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
     242      G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
     243    }
     244 
     245  } // if (waterMaterial)
     246 
     247 return sigma*material->GetAtomicNumDensityVector()[1];           
     248           
    204249
    205250}
     
    219264  G4double k = aDynamicParticle->GetKineticEnergy();
    220265 
    221   G4int level = RandomSelect(k);
     266  const G4String& particleName = aDynamicParticle->GetDefinition()->GetParticleName();
     267
     268  G4int level = RandomSelect(k,particleName);
    222269  G4double excitationEnergy = waterStructure.ExcitationEnergy(level);
    223270  G4double newEnergy = k - excitationEnergy;
     
    234281//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    235282
    236 G4int G4DNABornExcitationModel::RandomSelect(G4double k)
     283G4int G4DNABornExcitationModel::RandomSelect(G4double k, const G4String& particle)
    237284{   
    238285  G4int level = 0;
    239286
    240   G4double* valuesBuffer = new G4double[table->NumberOfComponents()];
    241 
    242   const size_t n(table->NumberOfComponents());
    243   size_t i(n);
    244   G4double value = 0.;
    245  
    246   while (i>0)
    247   {
    248     i--;
    249     valuesBuffer[i] = table->GetComponent(i)->FindValue(k);
    250     value += valuesBuffer[i];
    251   }
    252  
    253   value *= G4UniformRand();
    254  
    255   i = n;
    256  
    257   while (i > 0)
    258   {
    259     i--;
    260      
    261     if (valuesBuffer[i] > value)
    262     {
    263       delete[] valuesBuffer;
    264       return i;
     287  std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
     288  pos = tableData.find(particle);
     289
     290  if (pos != tableData.end())
     291  {
     292    G4DNACrossSectionDataSet* table = pos->second;
     293
     294    if (table != 0)
     295    {
     296      G4double* valuesBuffer = new G4double[table->NumberOfComponents()];
     297      const size_t n(table->NumberOfComponents());
     298      size_t i(n);
     299      G4double value = 0.;
     300           
     301      while (i>0)
     302      {
     303        i--;
     304        valuesBuffer[i] = table->GetComponent(i)->FindValue(k);
     305        value += valuesBuffer[i];
     306      }
     307           
     308      value *= G4UniformRand();
     309   
     310      i = n;
     311           
     312      while (i > 0)
     313      {
     314        i--;
     315
     316        if (valuesBuffer[i] > value)
     317        {
     318          delete[] valuesBuffer;
     319          return i;
     320        }
     321        value -= valuesBuffer[i];
     322      }
     323           
     324      if (valuesBuffer) delete[] valuesBuffer;
     325   
    265326    }
    266       value -= valuesBuffer[i];
    267   }
    268 
    269   if (valuesBuffer) delete[] valuesBuffer;
    270 
     327  }
     328  else
     329  {
     330    G4Exception("G4DNABornExcitationModel::RandomSelect attempting to calculate cross section for wrong particle");
     331  }
    271332  return level;
    272333}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNABornIonisationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNABornIonisationModel.cc,v 1.14 2009/11/12 03:08:58 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNABornIonisationModel.cc,v 1.16 2010/03/26 18:10:43 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    239239  // InitialiseElementSelectors(particle,cuts);
    240240
    241   // Test if water material
    242 
    243   flagMaterialIsWater= false;
    244   densityWater = 0;
    245 
    246   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    247 
    248   if(theCoupleTable)
    249   {
    250     G4int numOfCouples = theCoupleTable->GetTableSize();
    251  
    252     if(numOfCouples>0)
    253     {
    254           for (G4int i=0; i<numOfCouples; i++)
    255           {
    256             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    257             const G4Material* material = couple->GetMaterial();
    258 
    259             if (material->GetName() == "G4_WATER")
    260             {
    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;
    267             }
    268  
    269           }
    270 
    271     } // if(numOfCouples>0)
    272 
    273   } // if (theCoupleTable)
    274 
    275241}
    276242
    277243//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    278244
    279 G4double G4DNABornIonisationModel::CrossSectionPerVolume(const G4Material*,
     245G4double G4DNABornIonisationModel::CrossSectionPerVolume(const G4Material* material,
    280246                                           const G4ParticleDefinition* particleDefinition,
    281247                                           G4double ekin,
     
    300266  G4double sigma=0;
    301267
    302   if (flagMaterialIsWater)
     268  if (material->GetName() == "G4_WATER")
    303269  {
    304270    const G4String& particleName = particleDefinition->GetParticleName();
     
    341307      G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl;
    342308      G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
    343       G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*densityWater/(1./cm) << G4endl;
     309      G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    344310    }
    345311 
    346312  } // if (waterMaterial)
    347313 
    348  return sigma*densityWater;               
     314 return sigma*material->GetAtomicNumDensityVector()[1];           
    349315
    350316}
     
    429395    G4DynamicParticle* dp = new G4DynamicParticle (G4Electron::Electron(),deltaDirection,secondaryKinetic) ;
    430396    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     */
     397
    455398  }
    456399
     
    512455  if (particleDefinition == G4Proton::ProtonDefinition())
    513456  {
    514     G4double maximumKineticEnergyTransfer = 4.* (electron_mass_c2 / proton_mass_c2) * k - (waterStructure.IonisationEnergy(shell));
     457    G4double maximumKineticEnergyTransfer = 4.* (electron_mass_c2 / proton_mass_c2) * k;
    515458
    516459    G4double crossSectionMaximum = 0.;
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChampionElasticModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAChampionElasticModel.cc,v 1.10 2009/11/03 15:04:25 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAChampionElasticModel.cc,v 1.12 2010/04/08 17:29:08 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    132132   
    133133    // For final state
    134    
     134
    135135    char *path = getenv("G4LEDATA");
    136136 
     
    139139
    140140    std::ostringstream eFullFileName;
    141     eFullFileName << path << "/dna/sigmadiff_elastic_e_champion.dat";
     141    eFullFileName << path << "/dna/sigmadiff_cumulated_elastic_e_champion.dat";
    142142    std::ifstream eDiffCrossSection(eFullFileName.str().c_str());
    143143     
     
    151151        double eDummy;
    152152        eDiffCrossSection>>tDummy>>eDummy;
    153 
     153       
    154154        // SI : mandatory eVecm initialization
     155       
    155156        if (tDummy != eTdummyVec.back())
    156157        {
     
    161162        eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy];
    162163
    163         // SI : only if not end of file reached !
    164         if (!eDiffCrossSection.eof()) eDiffCrossSectionData[tDummy][eDummy]*=scaleFactor;
    165          
    166164        if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy);
    167          
     165       
    168166    }
    169167
     
    197195  // InitialiseElementSelectors(particle,cuts);
    198196
    199   // Test if water material
    200 
    201   flagMaterialIsWater= false;
    202   densityWater = 0;
    203 
    204   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    205 
    206   if(theCoupleTable)
    207   {
    208     G4int numOfCouples = theCoupleTable->GetTableSize();
    209  
    210     if(numOfCouples>0)
    211     {
    212           for (G4int i=0; i<numOfCouples; i++)
    213           {
    214             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    215             const G4Material* material = couple->GetMaterial();
    216 
    217             if (material->GetName() == "G4_WATER")
    218             {
    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;
    225             }
    226  
    227           }
    228 
    229     } // if(numOfCouples>0)
    230 
    231   } // if (theCoupleTable)
    232 
    233 }
    234 
    235 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    236 
    237 G4double G4DNAChampionElasticModel::CrossSectionPerVolume(const G4Material*,
     197}
     198
     199//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     200
     201G4double G4DNAChampionElasticModel::CrossSectionPerVolume(const G4Material* material,
    238202                                           const G4ParticleDefinition* p,
    239203                                           G4double ekin,
     
    248212 G4double sigma=0;
    249213 
    250  if (flagMaterialIsWater)
     214 if (material->GetName() == "G4_WATER")
    251215 {
    252216  const G4String& particleName = p->GetParticleName();
     
    279243    G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl;
    280244    G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
    281     G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*densityWater/(1./cm) << G4endl;
     245    G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    282246  }
    283247
    284  } // if (flagMaterialIsWater)
     248 }
    285249         
    286  return sigma*densityWater;               
     250 return sigma*material->GetAtomicNumDensityVector()[1];           
    287251}
    288252
     
    310274  if (electronEnergy0>= killBelowEnergy && electronEnergy0 < highEnergyLimit)
    311275  { 
     276 
    312277    G4double cosTheta = RandomizeCosTheta(electronEnergy0);
    313278 
     
    334299//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    335300
    336 G4double G4DNAChampionElasticModel::DifferentialCrossSection
    337   (G4ParticleDefinition * particleDefinition, G4double k, G4double theta)                                                         
    338 {
    339 
    340   G4double sigma = 0.;
     301G4double G4DNAChampionElasticModel::Theta
     302  (G4ParticleDefinition * particleDefinition, G4double k, G4double integrDiff)                                                   
     303{
     304  G4double theta = 0.;
    341305  G4double valueT1 = 0;
    342306  G4double valueT2 = 0;
     
    350314  G4double xs22 = 0;
    351315
    352   //SI : ensure the correct computation of cross section at the 180*deg limit
    353   if (theta==180.) theta=theta-1e-9;
    354 
    355316  if (particleDefinition == G4Electron::ElectronDefinition())
    356317  {
     
    358319    std::vector<double>::iterator t1 = t2-1;
    359320 
    360     std::vector<double>::iterator e12 = std::upper_bound(eVecm[(*t1)].begin(),eVecm[(*t1)].end(), theta);
     321    std::vector<double>::iterator e12 = std::upper_bound(eVecm[(*t1)].begin(),eVecm[(*t1)].end(), integrDiff);
    361322    std::vector<double>::iterator e11 = e12-1;
    362323         
    363     std::vector<double>::iterator e22 = std::upper_bound(eVecm[(*t2)].begin(),eVecm[(*t2)].end(), theta);
     324    std::vector<double>::iterator e22 = std::upper_bound(eVecm[(*t2)].begin(),eVecm[(*t2)].end(), integrDiff);
    364325    std::vector<double>::iterator e21 = e22-1;
    365326               
     
    375336    xs21 = eDiffCrossSectionData[valueT2][valueE21];
    376337    xs22 = eDiffCrossSectionData[valueT2][valueE22];
    377 
    378 }
    379      
    380   G4double xsProduct = xs11 * xs12 * xs21 * xs22;
    381  
    382   if (xs11==0 || xs12==0 ||xs21==0 ||xs22==0) return (0.);
    383      
    384   if (xsProduct != 0.)
    385   {
    386     sigma = QuadInterpolator(  valueE11, valueE12,
     338  }
     339 
     340  if (xs11==0 && xs12==0 && xs21==0 && xs22==0) return (0.);   
     341 
     342  theta = QuadInterpolator   ( valueE11, valueE12,
    387343                               valueE21, valueE22,
    388344                               xs11, xs12,
    389345                               xs21, xs22,
    390346                               valueT1, valueT2,
    391                                k, theta );
    392   }
    393 
    394   return sigma;
     347                               k, integrDiff );
     348                               
     349  return theta;
    395350}
    396351
     
    411366//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    412367
     368G4double G4DNAChampionElasticModel::LinLinInterpolate(G4double e1,
     369                                                        G4double e2,
     370                                                        G4double e,
     371                                                        G4double xs1,
     372                                                        G4double xs2)
     373{
     374  G4double d1 = xs1;
     375  G4double d2 = xs2;
     376  G4double value = (d1 + (d2 - d1)*(e - e1)/ (e2 - e1));
     377  return value;
     378}
     379
     380//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     381
    413382G4double G4DNAChampionElasticModel::LogLogInterpolate(G4double e1,
    414383                                                        G4double e2,
     
    425394
    426395//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     396
    427397
    428398G4double G4DNAChampionElasticModel::QuadInterpolator(G4double e11, G4double e12,
     
    433403                                                       G4double t, G4double e)
    434404{
    435 // Log-Log
     405  // Log-Log
    436406/*
    437407  G4double interpolatedvalue1 = LogLogInterpolate(e11, e12, e, xs11, xs12);
    438408  G4double interpolatedvalue2 = LogLogInterpolate(e21, e22, e, xs21, xs22);
    439409  G4double value = LogLogInterpolate(t1, t2, t, interpolatedvalue1, interpolatedvalue2);
    440 */
    441 
    442 // Lin-Log
     410
     411
     412  // Lin-Log
    443413  G4double interpolatedvalue1 = LinLogInterpolate(e11, e12, e, xs11, xs12);
    444414  G4double interpolatedvalue2 = LinLogInterpolate(e21, e22, e, xs21, xs22);
    445415  G4double value = LinLogInterpolate(t1, t2, t, interpolatedvalue1, interpolatedvalue2);
     416*/
     417
     418  // Lin-Lin
     419  G4double interpolatedvalue1 = LinLinInterpolate(e11, e12, e, xs11, xs12);
     420  G4double interpolatedvalue2 = LinLinInterpolate(e21, e22, e, xs21, xs22);
     421  G4double value = LinLinInterpolate(t1, t2, t, interpolatedvalue1, interpolatedvalue2);
     422
    446423  return value;
    447424}
     
    451428G4double G4DNAChampionElasticModel::RandomizeCosTheta(G4double k)
    452429{
    453  // ***** Similar method as for screened Rutherford scattering
    454 
    455  G4int iMax=180;
    456  G4double max=0;
    457  G4double tmp=0;
    458  
    459  // Look for maximum :
    460  for (G4int i=0; i<iMax; i++)
    461  {
    462    tmp = DifferentialCrossSection(G4Electron::ElectronDefinition(),k/eV,G4double(i)*180./(iMax-1));
    463    if (tmp>max) max = tmp;
    464  }
    465 
    466  G4double oneOverMax=0;
    467  if (max!=0) oneOverMax = 1./max;
    468  
    469  G4double cosTheta = 0.;
    470  G4double fCosTheta = 0.;
    471  
    472  do
    473  {
    474     cosTheta = 2. * G4UniformRand() - 1.;
    475     fCosTheta = oneOverMax * DifferentialCrossSection(G4Electron::ElectronDefinition(),k/eV,std::acos(cosTheta)*180./pi);
    476  }
    477  while (fCosTheta < G4UniformRand());
    478 
    479  if (verboseLevel > 3)
    480  {
    481    G4cout << "---> Cos(theta)=" << cosTheta << G4endl;
    482  }
     430 
     431 G4double integrdiff=0;
     432 G4double uniformRand=G4UniformRand();
     433 integrdiff = uniformRand;
     434 
     435 G4double theta=0.;
     436 G4double cosTheta=0.;
     437 theta = Theta(G4Electron::ElectronDefinition(),k/eV,integrdiff);
     438
     439 cosTheta= std::cos(theta*pi/180);
    483440
    484441 return cosTheta;
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChargeDecrease.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAChargeDecrease.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAChargeDecrease.cc,v 1.4 2010/03/18 16:36:48 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4DNAChargeDecrease.hh"
     
    7272    G4String name = p->GetParticleName();
    7373
    74     if( name == "proton" || name == "alpha" || name == "alpha+" )
     74    if( name == "proton" )
     75    {
     76      if(!Model()) SetModel(new G4DNADingfelderChargeDecreaseModel);
     77      Model()->SetLowEnergyLimit(100*eV);
     78      Model()->SetHighEnergyLimit(10*MeV);
     79
     80      AddEmModel(1, Model());   
     81    }
     82   
     83    if( name == "alpha" || name == "alpha+" )
    7584    {
    7685      if(!Model()) SetModel(new G4DNADingfelderChargeDecreaseModel);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAChargeIncrease.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAChargeIncrease.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAChargeIncrease.cc,v 1.4 2010/03/18 16:36:48 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4DNAChargeIncrease.hh"
     
    7272    G4String name = p->GetParticleName();
    7373
    74     if( name == "hydrogen" || name =="alpha+" || name =="helium" )
     74    if( name == "hydrogen" )
     75    {
     76      if(!Model()) SetModel(new G4DNADingfelderChargeIncreaseModel);
     77      Model()->SetLowEnergyLimit(100*eV);
     78      Model()->SetHighEnergyLimit(10*MeV);
     79
     80      AddEmModel(1, Model());   
     81    }
     82   
     83    if( name =="alpha+" || name =="helium" )
    7584    {
    7685      if(!Model()) SetModel(new G4DNADingfelderChargeIncreaseModel);
     
    8089      AddEmModel(1, Model());   
    8190    }
     91
    8292   
    8393  }
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNACrossSectionDataSet.cc

    r1228 r1315  
    2727
    2828// $Id: G4DNACrossSectionDataSet.cc,v 1.11 2009/11/12 10:05:30 sincerti Exp $
    29 // GEANT4 tag $Name: geant4-09-03 $
     29// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3030//
    3131// Author: Riccardo Capra <capra@ge.infn.it>
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNADingfelderChargeDecreaseModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNADingfelderChargeDecreaseModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNADingfelderChargeDecreaseModel.cc,v 1.9 2010/04/06 11:00:35 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    8484  {
    8585    proton = protonDef->GetParticleName();
    86     lowEnergyLimit[proton] = 1. * keV;
     86    lowEnergyLimit[proton] = 100. * eV;
    8787    highEnergyLimit[proton] = 10. * MeV;
    8888  }
     
    209209  // InitialiseElementSelectors(particle,cuts);
    210210 
    211   // Test if water material
    212 
    213   flagMaterialIsWater= false;
    214   densityWater = 0;
    215 
    216   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    217 
    218   if(theCoupleTable)
    219   {
    220     G4int numOfCouples = theCoupleTable->GetTableSize();
    221  
    222     if(numOfCouples>0)
    223     {
    224           for (G4int i=0; i<numOfCouples; i++)
    225           {
    226             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    227             const G4Material* material = couple->GetMaterial();
    228 
    229             if (material->GetName() == "G4_WATER")
    230             {
    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;
    237             }
    238  
    239           }
    240 
    241     } // if(numOfCouples>0)
    242 
    243   } // if (theCoupleTable)
    244 
    245211}
    246212
    247213//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    248214
    249 G4double G4DNADingfelderChargeDecreaseModel::CrossSectionPerVolume(const G4Material*,
     215G4double G4DNADingfelderChargeDecreaseModel::CrossSectionPerVolume(const G4Material* material,
    250216                                           const G4ParticleDefinition* particleDefinition,
    251217                                           G4double k,
     
    275241  G4double crossSection = 0.;
    276242
    277   if (flagMaterialIsWater)
     243  if (material->GetName() == "G4_WATER")
    278244  {
    279245    const G4String& particleName = particleDefinition->GetParticleName();
     
    304270      G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    305271      G4cout << " - Cross section per water molecule (cm^2)=" << crossSection/cm/cm << G4endl;
    306       G4cout << " - Cross section per water molecule (cm^-1)=" << crossSection*densityWater/(1./cm) << G4endl;
     272      G4cout << " - Cross section per water molecule (cm^-1)=" << crossSection*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    307273    }
    308274
    309   } // if (flagMaterialIsWater)
    310 
    311  return crossSection*densityWater;                 
     275  }
     276
     277 return crossSection*material->GetAtomicNumDensityVector()[1];             
    312278
    313279}
     
    327293 
    328294  G4ParticleDefinition* definition = aDynamicParticle->GetDefinition();
     295 
     296  G4double particleMass = definition->GetPDGMass();
    329297
    330298  G4int finalStateIndex = RandomSelect(inK,definition);
     
    338306    outK = inK - n*(inK*electron_mass_c2/proton_mass_c2) - waterBindingEnergy + outgoingParticleBindingEnergy;
    339307  else
    340     outK = inK - n*(inK*electron_mass_c2/(3728*MeV)) - waterBindingEnergy + outgoingParticleBindingEnergy;
     308    outK = inK - n*(inK*electron_mass_c2/particleMass) - waterBindingEnergy + outgoingParticleBindingEnergy;
    341309 
    342310  if (outK<0)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNADingfelderChargeIncreaseModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNADingfelderChargeIncreaseModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNADingfelderChargeIncreaseModel.cc,v 1.9 2010/04/06 11:00:35 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    8585  {
    8686    hydrogen = hydrogenDef->GetParticleName();
    87     lowEnergyLimit[hydrogen] = 1. * keV;
     87    lowEnergyLimit[hydrogen] = 100. * eV;
    8888    highEnergyLimit[hydrogen] = 10. * MeV;
    8989  }
     
    200200  // InitialiseElementSelectors(particle,cuts);
    201201 
    202   // Test if water material
    203 
    204   flagMaterialIsWater= false;
    205   densityWater = 0;
    206 
    207   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    208 
    209   if(theCoupleTable)
    210   {
    211     G4int numOfCouples = theCoupleTable->GetTableSize();
    212  
    213     if(numOfCouples>0)
    214     {
    215           for (G4int i=0; i<numOfCouples; i++)
    216           {
    217             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    218             const G4Material* material = couple->GetMaterial();
    219 
    220             if (material->GetName() == "G4_WATER")
    221             {
    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;
    228             }
    229  
    230           }
    231 
    232     } // if(numOfCouples>0)
    233 
    234   } // if (theCoupleTable)
    235 
    236202}
    237203
    238204//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    239205
    240 G4double G4DNADingfelderChargeIncreaseModel::CrossSectionPerVolume(const G4Material*,
     206G4double G4DNADingfelderChargeIncreaseModel::CrossSectionPerVolume(const G4Material* material,
    241207                                           const G4ParticleDefinition* particleDefinition,
    242208                                           G4double k,
     
    266232  G4double totalCrossSection = 0.;
    267233 
    268   if (flagMaterialIsWater)
     234  if (material->GetName() == "G4_WATER")
    269235  {
    270236    const G4String& particleName = particleDefinition->GetParticleName();
     
    315281      G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    316282      G4cout << " - Cross section per water molecule (cm^2)=" << totalCrossSection/cm/cm << G4endl;
    317       G4cout << " - Cross section per water molecule (cm^-1)=" << totalCrossSection*densityWater/(1./cm) << G4endl;
     283      G4cout << " - Cross section per water molecule (cm^-1)=" << totalCrossSection*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    318284    }
    319285
    320   } // if (flagMaterialIsWater)
    321 
    322   return totalCrossSection*densityWater;                   
     286  }
     287
     288  return totalCrossSection*material->GetAtomicNumDensityVector()[1];               
    323289
    324290}
     
    339305
    340306  G4ParticleDefinition* definition = aDynamicParticle->GetDefinition();
    341  
     307
     308  G4double particleMass = definition->GetPDGMass();
     309
    342310  G4double inK = aDynamicParticle->GetKineticEnergy();
    343311
     
    353321  G4double electronK;
    354322  if (definition == instance->GetIon("hydrogen")) electronK = inK*electron_mass_c2/proton_mass_c2;
    355   else electronK = inK*electron_mass_c2/(3728*MeV);
     323  else electronK = inK*electron_mass_c2/(particleMass);
    356324 
    357325  if (outK<0)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAElastic.cc

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

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAEmfietzoglouExcitationModel.cc,v 1.8 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAEmfietzoglouExcitationModel.cc,v 1.10 2010/06/08 21:50:00 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    4545  SetLowEnergyLimit(lowEnergyLimit);
    4646  SetHighEnergyLimit(highEnergyLimit);
     47
     48  nLevels = waterExcitation.NumberOfLevels();
    4749
    4850  verboseLevel= 0;
     
    9799
    98100  //
    99  
    100   nLevels = waterExcitation.NumberOfLevels();
    101 
    102   //
    103101  if( verboseLevel>0 )
    104102  {
     
    122120  // InitialiseElementSelectors(particle,cuts);
    123121
    124   // Test if water material
    125 
    126   flagMaterialIsWater= false;
    127   densityWater = 0;
    128 
    129   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    130 
    131   if(theCoupleTable)
    132   {
    133     G4int numOfCouples = theCoupleTable->GetTableSize();
    134  
    135     if(numOfCouples>0)
    136     {
    137           for (G4int i=0; i<numOfCouples; i++)
    138           {
    139             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    140             const G4Material* material = couple->GetMaterial();
    141 
    142             if (material->GetName() == "G4_WATER")
    143             {
    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;
    150             }
    151  
    152           }
    153 
    154     } // if(numOfCouples>0)
    155 
    156   } // if (theCoupleTable)
    157 
    158 }
    159 
    160 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    161 
    162 G4double G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(const G4Material*,
     122}
     123
     124//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     125
     126G4double G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(const G4Material* material,
    163127                                           const G4ParticleDefinition* particleDefinition,
    164128                                           G4double ekin,
     
    173137 G4double sigma=0;
    174138 
    175  if (flagMaterialIsWater)
     139 if (material->GetName() == "G4_WATER")
    176140 {
    177141
     
    188152    G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl;
    189153    G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
    190     G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*densityWater/(1./cm) << G4endl;
     154    G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    191155  }
    192156
    193  } // if (flagMaterialIsWater)
    194         
    195  return sigma*densityWater;               
     157 }
     158       
     159 return sigma*material->GetAtomicNumDensityVector()[1];           
    196160}
    197161
     
    271235      sigma = excitationSigma / density;
    272236  }
     237
    273238  return sigma;
    274239}
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAExcitation.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAExcitation.cc,v 1.3 2009/03/04 13:28:49 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAExcitation.cc,v 1.4 2010/03/27 11:32:41 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4DNAExcitation.hh"
     
    7676    if(name == "e-")
    7777    {
     78
     79      // First model
     80
    7881      if(!Model()) SetModel(new G4DNAEmfietzoglouExcitationModel);
    7982      Model()->SetLowEnergyLimit(8.23*eV);
    8083      Model()->SetHighEnergyLimit(10*MeV);
    8184
     85      // Alternative model
     86/*
     87      if(!Model()) SetModel(new G4DNABornExcitationModel);
     88      Model()->SetLowEnergyLimit(9*eV);
     89      Model()->SetHighEnergyLimit(1*MeV);
     90*/
    8291      AddEmModel(1, Model());   
    8392    }
     
    91100      if(!Model(2)) SetModel(new G4DNABornExcitationModel,2);
    92101      Model(2)->SetLowEnergyLimit(500*keV);
    93       Model(2)->SetHighEnergyLimit(10*MeV);
     102      Model(2)->SetHighEnergyLimit(100*MeV);
    94103   
    95104      AddEmModel(1, Model(1));   
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAGenericIonsManager.cc

    r1228 r1315  
    2525//
    2626// $Id: G4DNAGenericIonsManager.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4DNAGenericIonsManager.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAIonisation.cc

    r1228 r1315  
    2525//
    2626// $Id: G4DNAIonisation.cc,v 1.4 2009/11/02 17:00:11 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4DNAIonisation.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAMillerGreenExcitationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAMillerGreenExcitationModel.cc,v 1.6 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAMillerGreenExcitationModel.cc,v 1.9 2010/06/08 21:50:00 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    210210  // InitialiseElementSelectors(particle,cuts);
    211211 
    212   // Test if water material
    213 
    214   flagMaterialIsWater= false;
    215   densityWater = 0;
    216 
    217   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    218 
    219   if(theCoupleTable)
    220   {
    221     G4int numOfCouples = theCoupleTable->GetTableSize();
    222  
    223     if(numOfCouples>0)
    224     {
    225           for (G4int i=0; i<numOfCouples; i++)
    226           {
    227             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    228             const G4Material* material = couple->GetMaterial();
    229 
    230             if (material->GetName() == "G4_WATER")
    231             {
    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;
    238             }
    239  
    240           }
    241 
    242     } // if(numOfCouples>0)
    243 
    244   } // if (theCoupleTable)
    245 
    246212}
    247213
     
    278244  G4double crossSection = 0.;
    279245
    280   if (flagMaterialIsWater)
     246  if (material->GetName() == "G4_WATER")
    281247  {
    282248    const G4String& particleName = particleDefinition->GetParticleName();
     
    317283          G4double tmp =0.;
    318284         
    319           if (k*0.511/3728 > 7.4*eV && k*0.511/3728 < 10*keV) sigmaExcitation =
    320             excitationXS->CrossSectionPerVolume(material,particleDefinition,k*0.511/3728,tmp,tmp)/densityWater;
     285          if (k*0.511/3728 > 8.23*eV && k*0.511/3728 < 10*MeV ) sigmaExcitation =
     286            excitationXS->CrossSectionPerVolume(material,G4Electron::ElectronDefinition(),k*0.511/3728,tmp,tmp)
     287            /material->GetAtomicNumDensityVector()[1];
    321288       
    322289          if ( particleDefinition == instance->GetIon("alpha+") )
     
    335302      G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    336303      G4cout << " - Cross section per water molecule (cm^2)=" << crossSection/cm/cm << G4endl;
    337       G4cout << " - Cross section per water molecule (cm^-1)=" << crossSection*densityWater/(1./cm) << G4endl;
     304      G4cout << " - Cross section per water molecule (cm^-1)=" << crossSection*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    338305    }
    339306
    340   } // if (flagMaterialIsWater)
    341 
    342  return crossSection*densityWater;                 
     307  }
     308
     309 return crossSection*material->GetAtomicNumDensityVector()[1];             
    343310
    344311}
     
    485452          G4double sigmaExcitation=0;
    486453
    487           if (k*0.511/3728 > 7.4*eV && k*0.511/3728 < 10*keV) sigmaExcitation = excitationXS->PartialCrossSection(k*0.511/3728,i);
     454          if (k*0.511/3728 > 8.23*eV && k*0.511/3728 < 10*MeV ) sigmaExcitation = excitationXS->PartialCrossSection(k*0.511/3728,i);
    488455 
    489456          G4double partial = PartialCrossSection(k,i,particle);
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNARuddIonisationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNARuddIonisationModel.cc,v 1.10 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNARuddIonisationModel.cc,v 1.17 2010/04/07 20:08:31 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    271271  // InitialiseElementSelectors(particle,cuts);
    272272
    273   // Test if water material
    274 
    275   flagMaterialIsWater= false;
    276   densityWater = 0;
    277 
    278   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    279 
    280   if(theCoupleTable)
    281   {
    282     G4int numOfCouples = theCoupleTable->GetTableSize();
    283  
    284     if(numOfCouples>0)
    285     {
    286           for (G4int i=0; i<numOfCouples; i++)
    287           {
    288             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    289             const G4Material* material = couple->GetMaterial();
    290 
    291             if (material->GetName() == "G4_WATER")
    292             {
    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;
    299             }
    300  
    301           }
    302 
    303     } // if(numOfCouples>0)
    304 
    305   } // if (theCoupleTable)
    306 
    307273}
    308274
    309275//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    310276
    311 G4double G4DNARuddIonisationModel::CrossSectionPerVolume(const G4Material*,
     277G4double G4DNARuddIonisationModel::CrossSectionPerVolume(const G4Material* material,
    312278                                           const G4ParticleDefinition* particleDefinition,
    313279                                           G4double k,
     
    355321  G4double sigma=0;
    356322
    357   if (flagMaterialIsWater)
     323  if (material->GetName() == "G4_WATER")
    358324  {
    359325    const G4String& particleName = particleDefinition->GetParticleName();
     
    421387                        G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    422388                        G4cout << " - Cross section per water molecule (cm^2)=" << tmp1/cm/cm << G4endl;
    423                         G4cout << " - Cross section per water molecule (cm^-1)=" << tmp1*densityWater/(1./cm) << G4endl;
     389                        G4cout << " - Cross section per water molecule (cm^-1)=" <<
     390                        tmp1*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    424391                      }
    425                       return tmp1*densityWater;
     392                      return tmp1*material->GetAtomicNumDensityVector()[1];
    426393                  }
    427394
     
    434401                        G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    435402                        G4cout << " - Cross section per water molecule (cm^2)=" << tmp2/cm/cm << G4endl;
    436                         G4cout << " - Cross section per water molecule (cm^-1)=" << tmp2*densityWater/(1./cm) << G4endl;
     403                        G4cout << " - Cross section per water molecule (cm^-1)=" << tmp2*
     404                        material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    437405                      }
    438                       return tmp2*densityWater;
     406                      return tmp2*material->GetAtomicNumDensityVector()[1];
    439407                  }
    440408              }     
     
    454422      G4cout << "---> Kinetic energy(eV)=" << k/eV << G4endl;
    455423      G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
    456       G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*densityWater/(1./cm) << G4endl;
     424      G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*
     425      material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    457426    }
    458427 
    459428  } // if (waterMaterial)
    460429 
    461  return sigma*densityWater;               
     430 return sigma*material->GetAtomicNumDensityVector()[1];           
    462431
    463432}
     
    562531      fvect->push_back(dp);
    563532
    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       */
    587533  }
    588534
     
    623569  G4double crossSectionMaximum = 0.;
    624570 
    625   for(G4double value=waterStructure.IonisationEnergy(shell); value<=4.*waterStructure.IonisationEnergy(shell) ; value+=0.1*eV)
     571  for(G4double value=waterStructure.IonisationEnergy(shell); value<=5.*waterStructure.IonisationEnergy(shell) && k>=value ; value+=0.1*eV)
    626572  {
    627573      G4double differentialCrossSection = DifferentialCrossSection(particleDefinition, k, value, shell);
     
    710656  G4double alphaConst ;
    711657
     658  const G4double Bj[5] = {12.61*eV, 14.73*eV, 18.55*eV, 32.20*eV, 539.7*eV};
     659
    712660  if (j == 4)
    713661  {
     
    746694
    747695  G4double wBig = (energyTransfer - waterStructure.IonisationEnergy(ionizationLevelIndex));
    748   G4double w = wBig / waterStructure.IonisationEnergy(ionizationLevelIndex);
     696  if (wBig<0) return 0.;
     697
     698  G4double w = wBig / Bj[ionizationLevelIndex];
    749699  G4double Ry = 13.6*eV;
    750700
     
    764714  }
    765715 
    766   G4double S = 4.*pi * Bohr_radius*Bohr_radius * n * std::pow((Ry/waterStructure.IonisationEnergy(ionizationLevelIndex)),2);
    767   G4double v2 = tau / waterStructure.IonisationEnergy(ionizationLevelIndex);
     716  G4double S = 4.*pi * Bohr_radius*Bohr_radius * n * std::pow((Ry/Bj[ionizationLevelIndex]),2);
     717  G4double v2 = tau / Bj[ionizationLevelIndex];
    768718  G4double v = std::sqrt(v2);
    769   G4double wc = 4.*v2 - 2.*v - (Ry/(4.*waterStructure.IonisationEnergy(ionizationLevelIndex)));
     719  G4double wc = 4.*v2 - 2.*v - (Ry/(4.*Bj[ionizationLevelIndex]));
    770720
    771721  G4double L1 = (C1* std::pow(v,(D1))) / (1.+ E1*std::pow(v, (D1+4.)));
     
    777727  G4double F2 = (L2*H2)/(L2+H2);
    778728
    779   G4double sigma = CorrectionFactor(particleDefinition, k/eV)
    780     * Gj[j] * (S/waterStructure.IonisationEnergy(ionizationLevelIndex))
     729  G4double sigma = CorrectionFactor(particleDefinition, k)
     730    * Gj[j] * (S/Bj[ionizationLevelIndex])
     731    * ( (F1+w*F2) / ( std::pow((1.+w),3) * ( 1.+std::exp(alphaConst*(w-wc)/v))) );
     732
     733  if ( (particleDefinition == instance->GetIon("hydrogen")) && (ionizationLevelIndex==4))
     734
     735    sigma = Gj[j] * (S/Bj[ionizationLevelIndex])
    781736    * ( (F1+w*F2) / ( std::pow((1.+w),3) * ( 1.+std::exp(alphaConst*(w-wc)/v))) );
    782737
     
    823778          )
    824779  {
    825       sigma = Gj[j] * (S/waterStructure.IonisationEnergy(ionizationLevelIndex)) * ( (F1+w*F2) / ( std::pow((1.+w),3) * ( 1.+std::exp(alphaConst*(w-wc)/v))) );
     780      sigma = Gj[j] * (S/Bj[ionizationLevelIndex]) * ( (F1+w*F2) / ( std::pow((1.+w),3) * ( 1.+std::exp(alphaConst*(w-wc)/v))) );
    826781   
    827782      G4double zEff = particleDefinition->GetPDGCharge() / eplus + particleDefinition->GetLeptonNumber();
     
    916871    if (particleDefinition == instance->GetIon("hydrogen"))
    917872    {
    918         G4double value = (std::log(k/eV)-4.2)/0.5;
     873        G4double value = (std::log10(k/eV)-4.2)/0.5;
    919874        return((0.8/(1+std::exp(value))) + 0.9);
    920875    }
     
    932887  // BEGIN PART 1/2 OF ELECTRON CORRECTION
    933888
    934   // add ONE or TWO electron-water excitation for alpha+ and helium
     889  // add ONE or TWO electron-water ionisation for alpha+ and helium
    935890   
    936891  G4DNAGenericIonsManager *instance;
    937892  instance = G4DNAGenericIonsManager::Instance();
    938893  G4double kElectron(0);
    939   G4double electronComponent(0);
     894
    940895  G4DNACrossSectionDataSet * electronDataset = new G4DNACrossSectionDataSet (new G4LogLogInterpolation, eV, (1./3.343e22)*m*m);
    941896 
     
    949904      kElectron = k * 0.511/3728;
    950905       
    951       electronComponent = electronDataset->FindValue(kElectron);
    952        
    953906  }     
    954  
    955   delete electronDataset;
    956907 
    957908  // END PART 1/2 OF ELECTRON CORRECTION
     
    982933
    983934              // BEGIN PART 2/2 OF ELECTRON CORRECTION
    984 
     935              // Use only electron partial cross sections
     936             
    985937              if (particle == instance->GetIon("alpha+")->GetParticleName())
    986                 {valuesBuffer[i]=table->GetComponent(i)->FindValue(k) + electronComponent; }
    987      
     938                {valuesBuffer[i]=table->GetComponent(i)->FindValue(k) + electronDataset->GetComponent(i)->FindValue(kElectron); }
     939
    988940              if (particle == instance->GetIon("helium")->GetParticleName())
    989                 {valuesBuffer[i]=table->GetComponent(i)->FindValue(k) + 2*electronComponent; }
    990      
     941                {valuesBuffer[i]=table->GetComponent(i)->FindValue(k) + 2*electronDataset->GetComponent(i)->FindValue(kElectron); }
     942
    991943              // BEGIN PART 2/2 OF ELECTRON CORRECTION
    992944
     
    1001953          {
    1002954              i--;
     955             
    1003956               
    1004957              if (valuesBuffer[i] > value)
    1005958              {
    1006959                  delete[] valuesBuffer;
     960                 
     961                  if (electronDataset) delete electronDataset;
     962                 
    1007963                  return i;
    1008964              }
     
    1018974    G4Exception("G4DNARuddIonisationModel::RandomSelect: attempting to calculate cross section for wrong particle");
    1019975  }
     976
     977  delete electronDataset;
    1020978     
    1021979  return level;
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DNAScreenedRutherfordElasticModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4DNAScreenedRutherfordElasticModel.cc,v 1.9 2009/08/13 11:32:47 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4DNAScreenedRutherfordElasticModel.cc,v 1.10 2010/01/07 18:10:50 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929
     
    152152  // InitialiseElementSelectors(particle,cuts);
    153153
    154   // Test if water material
    155 
    156   flagMaterialIsWater= false;
    157   densityWater = 0;
    158 
    159   const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable();
    160 
    161   if(theCoupleTable)
    162   {
    163     G4int numOfCouples = theCoupleTable->GetTableSize();
    164  
    165     if(numOfCouples>0)
    166     {
    167           for (G4int i=0; i<numOfCouples; i++)
    168           {
    169             const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
    170             const G4Material* material = couple->GetMaterial();
    171 
    172             if (material->GetName() == "G4_WATER")
    173             {
    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;
    180             }
    181  
    182           }
    183 
    184     } // if(numOfCouples>0)
    185 
    186   } // if (theCoupleTable)
    187 
    188 }
    189 
    190 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    191 
    192 G4double G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(const G4Material*,
     154}
     155
     156//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     157
     158G4double G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(const G4Material* material,
    193159                                           const G4ParticleDefinition*,
    194160                                           G4double ekin,
     
    203169 G4double sigma=0;
    204170 
    205  if (flagMaterialIsWater)
     171 if (material->GetName() == "G4_WATER")
    206172 {
    207173
     
    223189    G4cout << "---> Kinetic energy(eV)=" << ekin/eV << G4endl;
    224190    G4cout << " - Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
    225     G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*densityWater/(1./cm) << G4endl;
     191    G4cout << " - Cross section per water molecule (cm^-1)=" << sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
    226192  }
    227193
    228  } // if (flagMaterialIsWater)
    229 
    230  return sigma*densityWater;               
     194 }
     195
     196 return sigma*material->GetAtomicNumDensityVector()[1];           
    231197}
    232198
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DopplerProfile.cc

    r1228 r1315  
    2626//
    2727// $Id: G4DopplerProfile.cc,v 1.3 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4DummyFinalState.cc

    r1228 r1315  
    2626//
    2727// $Id: G4DummyFinalState.cc,v 1.2 2007/10/15 08:36:35 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc

    r1228 r1315  
    2626//
    2727// $Id: G4EMDataSet.cc,v 1.20 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateChargeDecrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateChargeDecrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeIncrease.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateChargeIncrease.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateChargeIncrease.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeTransferProton.cc

    r1228 r1315  
    2626//
    2727// $Id: G4FinalStateChargeTransferProton.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticBrennerZaider.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateElasticBrennerZaider.cc,v 1.11 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateElasticBrennerZaider.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticChampion.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateElasticChampion.cc,v 1.10 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateElasticScreenedRutherford.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateElasticScreenedRutherford.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateElasticScreenedRutherford.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationBorn.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateExcitationBorn.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateExcitationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationEmfietzoglou.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateExcitationEmfietzoglou.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateExcitationEmfietzoglou.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationMillerGreen.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateExcitationMillerGreen.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateExcitationMillerGreen.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateIonisationBorn.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateIonisationBorn.cc,v 1.19 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateIonisationBorn.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateIonisationRudd.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStateIonisationRudd.cc,v 1.11 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828
    2929#include "G4FinalStateIonisationRudd.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateKill.cc

    r1228 r1315  
    2626//
    2727// $Id: G4FinalStateKill.cc,v 1.1 2007/11/09 20:26:12 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateProduct.cc

    r1228 r1315  
    2626//
    2727// $Id: G4FinalStateProduct.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStatePsCreationChampion.cc

    r1228 r1315  
    2525//
    2626// $Id: G4FinalStatePsCreationChampion.cc,v 1.2 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828// -------------------------------------------------------------------
    2929
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc

    r1228 r1315  
    2626//
    2727// $Id: G4FluoTransition.cc,v 1.2 ????
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc

    r1228 r1315  
    2626//
    2727// $Id: G4LinInterpolation.cc,v 1.5 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LivermoreBremsstrahlungModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LivermoreComptonModel.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LivermoreGammaConversionModel.cc,v 1.8 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermoreIonisationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermoreIonisationModel.cc,v 1.7 2009/10/23 09:30:08 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4LivermoreIonisationModel.cc,v 1.8 2010/03/26 09:32:50 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
     
    8585  //
    8686  verboseLevel = 0;
    87   //
    8887  //By default: use deexcitation, not auger
    8988  SetDeexcitationFlag(true);
    9089  ActivateAuger(false);
    91 
     90  //
    9291  //
    9392  // Notice: the fluorescence along step is generated only if it is
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4LivermorePhotoElectricModel.cc,v 1.9 2009/10/23 09:31:03 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4LivermorePhotoElectricModel.cc,v 1.11 2010/03/26 09:32:50 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929//
     
    4343//                  - atomic deexcitation managed via G4VEmModel::DeexcitationFlag() is
    4444//                    set as "true" (default would be false)
    45 //
     45// 15 Mar 2010   L Pandola
     46//                  - removed methods to set explicitely fluorescence cuts.
     47//                  Main cuts from G4ProductionCutsTable are always used
     48//
    4649
    4750#include "G4LivermorePhotoElectricModel.hh"
     
    6265  //  SetLowEnergyLimit(lowEnergyLimit);
    6366  SetHighEnergyLimit(highEnergyLimit);
    64 
    65   //Set atomic deexcitation by default
    66   SetDeexcitationFlag(true);
    67   ActivateAuger(false);
    68    
     67 
    6968  verboseLevel= 0;
    7069  // Verbosity scale:
     
    7473  // 3 = calculation of cross sections, file openings, sampling of atoms
    7574  // 4 = entering in methods
     75
     76  //Set atomic deexcitation by default
     77  SetDeexcitationFlag(true);
     78  ActivateAuger(false);
     79
    7680  if(verboseLevel>0) {
    7781    G4cout << "Livermore PhotoElectric is constructed " << G4endl
     
    125129  shellCrossSectionHandler->LoadShellData(shellCrossSectionFile);
    126130 
    127   // SI - Simple generator is buggy
    128   //generatorName = "geant4.6.2";
    129   //ElectronAngularGenerator = new G4PhotoElectricAngularGeneratorSimple("GEANTSimpleGenerator");              // default generator
     131  // default generator
    130132  ElectronAngularGenerator =
    131133    new G4PhotoElectricAngularGeneratorSauterGavrila("GEANTSauterGavrilaGenerator");       
     
    298300//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    299301
    300 void G4LivermorePhotoElectricModel::SetCutForLowEnSecPhotons(G4double cut)
    301 {
    302   cutForLowEnergySecondaryPhotons = cut;
    303   deexcitationManager.SetCutForSecondaryPhotons(cut);
    304 }
    305 
    306 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    307 
    308 void G4LivermorePhotoElectricModel::SetCutForLowEnSecElectrons(G4double cut)
    309 {
    310   cutForLowEnergySecondaryElectrons = cut;
    311   deexcitationManager.SetCutForAugerElectrons(cut);
    312 }
    313 
    314 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    315 
    316 void G4LivermorePhotoElectricModel::ActivateAuger(G4bool val)
    317 {
    318   deexcitationManager.ActivateAugerElectronProduction(val);
     302void G4LivermorePhotoElectricModel::ActivateAuger(G4bool augerbool)
     303{
     304  if (!DeexcitationFlag() && augerbool)
     305    {
     306      G4cout << "WARNING - G4PenelopePhotoElectricModel" << G4endl;
     307      G4cout << "The use of the Atomic Deexcitation Manager is set to false " << G4endl;
     308      G4cout << "Therefore, Auger electrons will be not generated anyway" << G4endl;
     309    }
     310  deexcitationManager.ActivateAugerElectronProduction(augerbool);
     311  if (verboseLevel > 1)
     312    G4cout << "Auger production set to " << augerbool << G4endl;
    319313}
    320314
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc

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

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

    r1228 r1315  
    2525//
    2626// $Id: G4LivermoreRayleighModel.cc,v 1.8 2009/09/23 16:54:06 flongo Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Sebastien Inserti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc

    r1228 r1315  
    2626//
    2727// $Id: G4LogLogInterpolation.cc,v 1.16 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LowEnergyBremsstrahlung.cc,v 1.74 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LowEnergyCompton.cc,v 1.50 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc

    r1228 r1315  
    2727///
    2828// $Id: G4LowEnergyGammaConversion.cc,v 1.39 2009/06/11 15:47:08 mantero Exp $
    29 // GEANT4 tag $Name: geant4-09-03 $
     29// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3030//
    3131//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LowEnergyIonisation.cc,v 1.106 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc

    r1228 r1315  
    2626//
    2727// $Id: G4LowEnergyPhotoElectric.cc,v 1.59 2009/06/11 15:47:08 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc

    r1228 r1315  
    2626//
    2727// $Id: G4LowEnergyPolarizedCompton.cc,v 1.28 2009/06/11 15:47:08 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// ------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc

    r1228 r1315  
    2525//
    2626// $Id: G4LowEnergyPolarizedRayleigh.cc,v 1.10 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc

    r1228 r1315  
    2727//
    2828// $Id: G4LowEnergyRayleigh.cc,v 1.40 2009/06/11 15:47:08 mantero Exp $
    29 // GEANT4 tag $Name: geant4-09-03 $
     29// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3030//
    3131// Author: A. Forti
  • trunk/source/processes/electromagnetic/lowenergy/src/G4OrlicLiCrossSection.cc

    r1197 r1315  
    2424// ********************************************************************
    2525//
    26 //$Id: G4OrlicLiCrossSection.cc,v 1.4 2009/11/11 09:14:53 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26//$Id: G4OrlicLiCrossSection.cc,v 1.5 2010/06/06 23:40:35 mantero Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Haifa Ben Abdelouahed
     
    3636//  21 Apr 2009   ALF Some correction for compatibility to G4VShellCrossSection
    3737//                and changed name to G4OrlicLiCrossSection
    38 //  11 Nov 2009   ALF update and code cleaning for the Dec Release
    3938//
    4039// -------------------------------------------------------------------
     
    200199                      else
    201200                        {
    202                           G4cout << "ERROR: L1 Cross-Section exist only for ZTarget between 41 and 92!!! " << G4endl;
     201                          G4cout << "ERROR: L1 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
    203202                       
    204203                        }
     
    326325                      else
    327326                        {
    328                           G4cout << "ERROR: L2 Cross-Section exist only for ZTarget between 41 and 92!!! " << G4endl;
     327                          G4cout << "ERROR: L2 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
    329328                       
    330329                        }
     
    446445                      else
    447446                        {
    448                           G4cout << "ERROR: L3 Cross-Section exist only for ZTarget between 41 and 92!!! " << G4endl;
     447                          G4cout << "ERROR: L3 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
    449448                       
    450449                        }
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PaulKCrossSection.cc

    r1228 r1315  
    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#include "globals.hh"
     
    3042#include <fstream>
    3143#include <iomanip>
    32 #include "G4CompositeEMDataSet.hh"
    33 #include "G4ShellEMDataSet.hh"
     44//#include "G4CompositeEMDataSet.hh"
     45//#include "G4ShellEMDataSet.hh"
    3446#include "G4EMDataSet.hh"
    35 #include "G4VEMDataSet.hh"
    36 #include "G4VDataSetAlgorithm.hh"
     47//#include "G4VEMDataSet.hh"
     48//#include "G4VDataSetAlgorithm.hh"
    3749#include "G4LogLogInterpolation.hh"
    3850#include "G4PaulKCrossSection.hh"
     51#include "G4Proton.hh"
     52#include "G4Alpha.hh"
     53
    3954
    4055G4PaulKCrossSection::G4PaulKCrossSection()
    41 { }
     56{
     57
     58 
     59  interpolation = new G4LogLogInterpolation();
     60
     61  /*
     62    G4String path = getenv("G4LEDATA");
     63 
     64    if (!path)
     65    G4Exception("G4paulKCrossSection::G4paulKCrossSection: G4LEDATA environment variable not set");
     66    G4cout << path + "/kcsPaul/kcs-" << G4endl;
     67  */
     68
     69
     70    for (G4int i=4; i<93; i++) {
     71      protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
     72      protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
     73    }
     74    for (G4int i=6; i<93; i++) {
     75      alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
     76      alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
     77    }
     78
     79
     80
     81
     82}
    4283
    4384G4PaulKCrossSection::~G4PaulKCrossSection()
    44 { }
     85{
    4586
    46 G4double G4PaulKCrossSection::CalculateKCrossSection(G4int zTarget,G4int zIncident, G4double energyIncident)
     87  protonDataSetMap.clear();
     88  alphaDataSetMap.clear();
     89
     90}
     91
     92G4double G4PaulKCrossSection::CalculateKCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident)
    4793{
    4894 
    49  G4String fileName;
     95  G4Proton* aProtone = G4Proton::Proton();
     96  G4Alpha* aAlpha = G4Alpha::Alpha();
     97 
     98  G4double sigma = 0;
    5099
    51  if (zIncident == 1)
    52    { fileName = "kcsPaul/kcs-";}
     100  if (massIncident == aProtone->GetPDGMass() )
     101    {
     102     
     103      sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV) / barn;
     104     
     105    }
    53106  else
    54107    {
    55       if (zIncident == 2)
    56         { fileName = "kacsPaul/kacs-";}
    57        
     108      if (massIncident == aAlpha->GetPDGMass())
     109        {
     110         
     111          sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV) / barn;
     112         
     113        }
     114      else
     115        {
     116          G4cout << "we can treat only Proton or Alpha incident particles " << G4endl;
     117          sigma = 0.;
     118        }
    58119    }
    59 
    60120 
    61   G4VDataSetAlgorithm* interpolation = new G4LogLogInterpolation();
    62 
    63   G4VEMDataSet* dataSet;
    64 
    65   dataSet = new G4EMDataSet(zTarget,interpolation);
    66121 
    67   dataSet->LoadData(fileName);
    68    
    69 
    70           G4double sigma = dataSet->FindValue(energyIncident/MeV) / barn;
    71 
    72           return sigma;
     122 
     123  return sigma;
    73124}
    74125
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeAnnihilationModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeAnnihilationModel.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeBremsstrahlung.cc,v 1.21 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.8 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.12 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeBremsstrahlungModel.cc,v 1.7 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeCompton.cc,v 1.36 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeComptonModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeComptonModel.cc,v 1.8 2009/10/23 09:29:24 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4PenelopeComptonModel.cc,v 1.9 2010/03/26 09:32:50 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
     
    8181  ZForIntegration = 1;
    8282
    83   //by default, the model will use atomic deexcitation
    84   SetDeexcitationFlag(true);
    85   ActivateAuger(false);
    86 
    8783  verboseLevel= 0;
    8884  // Verbosity scale:
     
    9288  // 3 = calculation of cross sections, file openings, sampling of atoms
    9389  // 4 = entering in methods
     90
     91  //by default, the model will use atomic deexcitation
     92  SetDeexcitationFlag(true);
     93  ActivateAuger(false);
    9494
    9595  //These vectors do not change when materials or cut change.
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeGammaConversionModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc

    r1228 r1315  
    2525//
    2626// $Id: G4PenelopeIonisation.cc,v 1.22 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeIonisationModel.cc,v 1.10 2009/10/23 09:29:24 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4PenelopeIonisationModel.cc,v 1.16 2010/04/29 07:28:50 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
     
    4242//                            G4VEmModel::DeexcitationFlag()
    4343//                            Add ActivateAuger() method
     44// 15 Mar 2010   L Pandola    Explicitely initialize Auger to false
     45// 29 Mar 2010   L Pandola    Added a dummy ComputeCrossSectionPerAtom() method issueing a
     46//                            warning if users try to access atomic cross sections via
     47//                            G4EmCalculator
     48// 15 Apr 2010   L. Pandola   Implemented model's own version of MinEnergyCut()
     49// 23 Apr 2010   L. Pandola   Removed InitialiseElementSelectors() call. Useless here and
     50//                            triggers fake warning messages
    4451//
    4552
     
    8087  SetHighEnergyLimit(fIntrinsicHighEnergyLimit);
    8188  //
    82   // Atomic deexcitation model activated by default
    83   SetDeexcitationFlag(true);
     89  //
    8490  verboseLevel= 0;
    8591 
     
    9096  // 3 = calculation of cross sections, file openings, sampling of atoms
    9197  // 4 = entering in methods
     98
     99  // Atomic deexcitation model activated by default
     100  SetDeexcitationFlag(true);
     101  ActivateAuger(false);
    92102 
    93103  //These vectors do not change when materials or cut change.
     
    140150
    141151void G4PenelopeIonisationModel::Initialise(const G4ParticleDefinition* particle,
    142                                        const G4DataVector& cuts)
     152                                       const G4DataVector& )
    143153{
    144154  if (verboseLevel > 3)
     
    175185  //This is used to retrieve cross section values later on
    176186  crossSectionHandler->BuildMeanFreePathForMaterials();
    177 
    178   InitialiseElementSelectors(particle,cuts);
    179187 
    180188  if (verboseLevel > 2)
     
    280288//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    281289
     290//This is a dummy method. Never inkoved by the tracking, it just issues
     291//a warning if one tries to get Cross Sections per Atom via the
     292//G4EmCalculator.
     293G4double G4PenelopeIonisationModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
     294                                                             G4double,
     295                                                             G4double,
     296                                                             G4double,
     297                                                             G4double,
     298                                                             G4double)
     299{
     300  G4cout << "*** G4PenelopeIonisationModel -- WARNING ***" << G4endl;
     301  G4cout << "Penelope Ionisation model does not calculate cross section _per atom_ " << G4endl;
     302  G4cout << "so the result is always zero. For physics values, please invoke " << G4endl;
     303  G4cout << "GetCrossSectionPerVolume() or GetMeanFreePath() via the G4EmCalculator" << G4endl;
     304  return 0;
     305}
     306
     307//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     308
    282309G4double G4PenelopeIonisationModel::ComputeDEDXPerVolume(const G4Material* material,
    283310                                           const G4ParticleDefinition* theParticle,
     
    348375    } 
    349376  return sPower;
     377}
     378
     379//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     380
     381G4double G4PenelopeIonisationModel::MinEnergyCut(const G4ParticleDefinition*,
     382                                                 const G4MaterialCutsCouple*)
     383{
     384  return fIntrinsicLowEnergyLimit;
    350385}
    351386
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc

    r1228 r1315  
    2626//
    2727// $Id: G4PenelopePhotoElectric.cc,v 1.16 2009/06/11 15:47:08 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: L. Pandola
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopePhotoElectricModel.cc,v 1.10 2009/10/23 09:29:24 pandola Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4PenelopePhotoElectricModel.cc,v 1.12 2010/03/26 09:32:50 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
     
    4646// 21 Oct 2009   L Pandola    Remove un-necessary fUseAtomicDeexcitation flag - now managed by
    4747//                            G4VEmModel::DeexcitationFlag()
     48// 15 Mar 2010   L Pandola    Explicitely initialize Auger to false
    4849//
    4950
     
    7576  SetHighEnergyLimit(fIntrinsicHighEnergyLimit);
    7677  //
    77   //by default the model will inkove the atomic deexcitation
    78   SetDeexcitationFlag(true); 
    79 
    8078  verboseLevel= 0;
    8179  // Verbosity scale:
     
    8583  // 3 = calculation of cross sections, file openings, sampling of atoms
    8684  // 4 = entering in methods
     85
     86  //by default the model will inkove the atomic deexcitation
     87  SetDeexcitationFlag(true); 
     88  ActivateAuger(false);
    8789}
    8890
     
    252254  // In such cases do not generate secondaries
    253255  if (eKineticEnergy > 0.)
    254     {
    255       //Now check if the electron is above cuts: if so, it is created explicitely
    256       //VI: checking cut here provides inconsistency in testing
    257       //      if (eKineticEnergy > cutE)
     256    {   
    258257      // The electron is created
    259258      // Direction sampled from the Sauter distribution
     
    271270      fvect->push_back(electron);
    272271    }
    273   //  else
    274   //  {
    275   //    localEnergyDeposit += eKineticEnergy;   
    276   //    eKineticEnergy = 0;
    277   //  }
    278   //  }
    279272  else
    280273    {
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc

    r1228 r1315  
    2727//
    2828// $Id: G4PenelopeRayleigh.cc,v 1.19 2009/06/11 15:47:08 mantero Exp $
    29 // GEANT4 tag $Name: geant4-09-03 $
     29// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3030//
    3131// Author: L. Pandola (luciano.pandola@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc

    r1228 r1315  
    2424// ********************************************************************
    2525//
    26 // $Id: G4PenelopeRayleighModel.cc,v 1.6 2009/06/11 15:47:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     26// $Id: G4PenelopeRayleighModel.cc,v 1.7 2009/12/21 12:49:01 pandola Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// Author: Luciano Pandola
     
    3737// 19 May 2009   L Pandola    Explicitely set to zero pointers deleted in
    3838//                            PrepareConstants(), since they might be checked later on
     39// 18 Dec 2009   L Pandola    Added a dummy ComputeCrossSectionPerAtom() method issueing a
     40//                            warning if users try to access atomic cross sections via
     41//                            G4EmCalculator
    3942//
    4043
     
    190193      G4int atomsPerMolecule = 0;
    191194      for (G4int k=0;k<nElements;k++)
     195       {
    192196        atomsPerMolecule += stechiometric[k];
     197        if (verboseLevel > 2)
     198           {
     199             G4cout << "Element: " << (G4int) (*elementVector)[k]->GetZ() << " has " <<
     200                stechiometric[k] << " atoms/molecule" << G4endl;       
     201           }
     202       }
    193203      if (atomsPerMolecule)
    194204        {
     
    203213        }
    204214    }
    205 
     215 
    206216  if (verboseLevel > 2)
    207217    {
     
    221231  return cross;
    222232}
     233
     234
     235//This is a dummy method. Never inkoved by the tracking, it just issues
     236//a warning if one tries to get Cross Sections per Atom via the
     237//G4EmCalculator.
     238G4double G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
     239                                                             G4double,
     240                                                             G4double,
     241                                                             G4double,
     242                                                             G4double,
     243                                                             G4double)
     244{
     245  G4cout << "*** G4PenelopeRayleighModel -- WARNING ***" << G4endl;
     246  G4cout << "Penelope Rayleigh model does not calculate cross section _per atom_ " << G4endl;
     247  G4cout << "so the result is always zero. For physics values, please invoke " << G4endl;
     248  G4cout << "GetCrossSectionPerVolume() or GetMeanFreePath() via the G4EmCalculator" << G4endl;
     249  return 0;
     250}
     251
    223252
    224253//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
  • trunk/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc

    r1228 r1315  
    2626//
    2727// $Id: G4RangeTest.cc,v 1.9 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc

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

    r1228 r1315  
    2626//
    2727// $Id: G4SemiLogInterpolation.cc,v 1.8 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc

    r1228 r1315  
    2626//
    2727// $Id: G4ShellData.cc,v 1.11 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc

    r1228 r1315  
    2626//
    2727// $Id: G4ShellEMDataSet.cc,v 1.18 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc

    r1228 r1315  
    2626//
    2727// $Id: G4VCrossSectionHandler.cc,v 1.19 2009/09/25 07:41:34 sincerti Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc

    r1228 r1315  
    2525//
    2626// $Id: G4VLowEnergyDiscretePhotonProcess.cc,v 1.6 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// --------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc

    r1228 r1315  
    2626//
    2727// $Id: G4VeLowEnergyLoss.cc,v 1.27 2009/07/23 09:15:37 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030//
  • trunk/source/processes/electromagnetic/lowenergy/src/G4VhShellCrossSection.cc

    r819 r1315  
    6161                                               G4double mass,
    6262                                               G4double deltaEnergy) const
     63//  returns the shell ionized if the shell exists. If the shell is not counted, it returns -1
     64
    6365{
    6466  std::vector<G4double> p = Probabilities(Z,incidentEnergy,mass,deltaEnergy);
    65   G4int shell = 0;
     67  G4int shell = -1;
    6668  size_t nShells = p.size();
    6769  G4double q = G4UniformRand();
  • trunk/source/processes/electromagnetic/lowenergy/src/G4WaterExcitationStructure.cc

    r1228 r1315  
    2626//
    2727// $Id: G4WaterExcitationStructure.cc,v 1.1 2007/10/15 08:57:54 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4WaterIonisationStructure.cc

    r1228 r1315  
    2626//
    2727// $Id: G4WaterIonisationStructure.cc,v 1.1 2007/11/08 20:39:35 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc

    r1228 r1315  
    2525//
    2626// $Id: G4eBremsstrahlungSpectrum.cc,v 1.16 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eCrossSectionExcitationEmfietzoglou.cc

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

    r1228 r1315  
    2626//
    2727// $Id: G4eCrossSectionScreenedRutherford.cc,v 1.3 2007/10/12 12:27:19 pia Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc

    r1228 r1315  
    2525//
    2626// $Id: G4eIonisationCrossSectionHandler.cc,v 1.15 2009/09/27 10:47:42 sincerti Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc

    r1228 r1315  
    2626//
    2727// $Id: G4eIonisationParameters.cc,v 1.25 2009/06/10 13:32:36 mantero Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc

    r1228 r1315  
    2525//
    2626// $Id: G4eIonisationSpectrum.cc,v 1.27 2009/06/10 13:32:36 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc

    r1228 r1315  
    2626//
    2727// $Id: G4eLowEnergyLoss.cc,v 1.37 2009/07/23 09:15:37 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929// 
    3030// -----------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4empCrossSection.cc

    r1197 r1315  
    2525//
    2626//$Id: G4empCrossSection.cc,v 1.2 2009/06/25 15:52:08 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929//         
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc

    r1228 r1315  
    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 A.Mantero Removed dependencies to old shell Ionisation XS models
     103// 07 Jun    2010 Code Celaning for June beta Release
    104104// -----------------------------------------------------------------------
    105105
     
    121121#include "G4ShellVacancy.hh"
    122122#include "G4VhShellCrossSection.hh"
    123 #include "G4hShellCrossSection.hh"
    124 #include "G4hShellCrossSectionExp.hh"
    125 #include "G4hShellCrossSectionDoubleExp.hh"
    126123#include "G4VEMDataSet.hh"
    127124#include "G4EMDataSet.hh"
     
    132129#include "G4ProcessManager.hh"
    133130#include "G4ProductionCutsTable.hh"
    134 
     131#include "G4teoCrossSection.hh"
     132#include "G4empCrossSection.hh"
    135133//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    136134
     
    153151    shellVacancy(0),
    154152    shellCS(0),
    155     theFluo(false),
    156     expFlag(false)
     153    theFluo(false)
    157154{
    158155  InitializeMe();
     
    175172  verboseLevel         = 0;
    176173
    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;
     174  shellCS = new G4teoCrossSection("analytical");
     175
    189176}
    190177
     
    12801267  //   G4cout << "Fluorescence is switched :" << theFluo << G4endl;
    12811268
     1269  // Fluorescence data start from element 6
    12821270  if(theFluo && Z > 5) {
    12831271
    12841272
    12851273
    1286     // Atom total cross section for the Empiric Model   
    1287     if (expFlag) {   
     1274    // Atom total cross section     
    12881275    shellCS->SetTotalCS(totalCrossSectionMap[Z]);   
    1289     }
     1276
    12901277    G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy,ParticleMass,DeltaKineticEnergy);
    12911278
    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;
     1279    if (shell!=-1) {       
     1280     
     1281      const G4AtomicShell* atomicShell =
     1282        (G4AtomicTransitionManager::Instance())->Shell(Z, shell);
     1283      G4double bindingEnergy = atomicShell->BindingEnergy();
     1284     
     1285      if(verboseLevel > 1) {
     1286        G4cout << "PostStep Z= " << Z << " shell= " << shell
     1287               << " bindingE(keV)= " << bindingEnergy/keV
     1288               << " finalE(keV)= " << finalKineticEnergy/keV
     1289               << G4endl;
     1290      }
     1291     
     1292     
     1293     
     1294      if (finalKineticEnergy >= bindingEnergy
     1295          && (bindingEnergy >= minGammaEnergy
     1296              ||  bindingEnergy >= minElectronEnergy) ) {
     1297       
     1298        G4int shellId = atomicShell->ShellId();
     1299        secondaryVector = deexcitationManager.GenerateParticles(Z, shellId);
     1300       
     1301        if (secondaryVector != 0) {
     1302         
     1303          nSecondaries = secondaryVector->size();
     1304          for (size_t i = 0; i<nSecondaries; i++) {
     1305           
     1306            aSecondary = (*secondaryVector)[i];
     1307            if (aSecondary) {
     1308             
     1309              G4double e = aSecondary->GetKineticEnergy();
     1310              type = aSecondary->GetDefinition();
     1311              if (e < finalKineticEnergy &&
     1312                  ((type == G4Gamma::Gamma() && e > minGammaEnergy ) ||
     1313                   (type == G4Electron::Electron() && e > minElectronEnergy ))) {
     1314               
     1315                finalKineticEnergy -= e;
     1316                totalNumber++;
     1317               
     1318              } else {
     1319               
     1320                delete aSecondary;
     1321                (*secondaryVector)[i] = 0;
     1322              }
    13391323            }
    13401324          }
     
    13431327    }
    13441328  }
    1345 
     1329 
    13461330  // Save delta-electrons
    13471331
     
    14011385//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    14021386
    1403 std::vector<G4DynamicParticle*>*
    1404 G4hLowEnergyIonisation::DeexciteAtom(const G4MaterialCutsCouple* couple,
     1387
     1388
     1389void G4hLowEnergyIonisation::SelectShellIonisationCS(G4String val) {
     1390
     1391  if (val == "analytical" )  { 
     1392    if (shellCS) delete shellCS;
     1393    shellCS = new G4teoCrossSection(val);
     1394  }
     1395  else if (val == "empirical") {
     1396    if (shellCS) delete shellCS;
     1397    shellCS = new G4empCrossSection();
     1398  }
     1399}
     1400
     1401
     1402
     1403//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     1404
     1405
     1406std::vector<G4DynamicParticle*>* G4hLowEnergyIonisation::DeexciteAtom(const G4MaterialCutsCouple* couple,
    14051407                                           G4double incidentEnergy,
    14061408                                           G4double hMass,
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc

    r1228 r1315  
    2626//
    2727// $Id: G4hLowEnergyLoss.cc,v 1.30 2009/07/23 09:15:37 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-03 $
     28// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2929//
    3030// -----------------------------------------------------------
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc

    r1228 r1315  
    4141// Empiric Model for shell cross sections in proton ionisation
    4242// -------------------------------------------------------------------
    43 // $Id: G4hShellCrossSectionDoubleExp.cc,v 1.10 2009/06/10 13:32:36 mantero Exp $
    44 // GEANT4 tag $Name: geant4-09-03 $
     43// $Id: G4hShellCrossSectionDoubleExp.cc,v 1.11 2010/02/05 08:54:12 sincerti Exp $
     44// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    4545
    4646#include "globals.hh"
     
    5656{
    5757  kShellData = new G4hShellCrossSectionDoubleExpData();
     58
     59  atomTotalCrossSection = 0.;
    5860}
    5961
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc

    r1228 r1315  
    3434// -------------------------------------------------------------------
    3535// $Id: G4hShellCrossSectionDoubleExpData.cc,v 1.5 2009/06/10 13:32:36 mantero Exp $
    36 // GEANT4 tag $Name: geant4-09-03 $
     36// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3737
    3838#include "G4hShellCrossSectionDoubleExpData.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc

    r1228 r1315  
    4242// -------------------------------------------------------------------
    4343// $Id: G4hShellCrossSectionExp.cc,v 1.7 2009/06/10 13:32:36 mantero Exp $
    44 // GEANT4 tag $Name: geant4-09-03 $
     44// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    4545
    4646#include "globals.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc

    r1228 r1315  
    3434// -------------------------------------------------------------------
    3535// $Id: G4hShellCrossSectionExpData.cc,v 1.4 2009/06/10 13:32:36 mantero Exp $
    36 // GEANT4 tag $Name: geant4-09-03 $
     36// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    3737
    3838#include "G4hShellCrossSectionExpData.hh"
  • trunk/source/processes/electromagnetic/lowenergy/src/G4teoCrossSection.cc

    r1197 r1315  
    2424// ********************************************************************
    2525//
    26 //$Id: G4teoCrossSection.cc,v 1.5 2009/11/11 09:14:53 mantero Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26//$Id: G4teoCrossSection.cc,v 1.6 2010/06/06 23:40:35 mantero Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
    2828//
    2929//         
     
    3333//  21 Apr 2009   ALF   1st implementation
    3434//  29 Apr 2009   ALF Updated Desing for Integration
    35 //  11 Nov 2009   ALF update and code cleaning for the Dec Release
    3635//
    3736// -------------------------------------------------------------------
     
    5049//#include <math.h>
    5150
    52 G4teoCrossSection::G4teoCrossSection(G4String shellModel = "ecpssr")
     51G4teoCrossSection::G4teoCrossSection(G4String shellModel)
    5352  :totalCS(0)
    5453{
    5554
    56   if (shellModel == "ecpssr") {
    57 
    58     ecpssrShellK = new G4ecpssrKCrossSection();
    59 
    60     ecpssrShellLi = new G4ecpssrLiCrossSection();
     55  if (shellModel == "analytical") {
     56   
     57       
     58    ecpssrShellK  = new G4AnalyticalEcpssrKCrossSection(); 
     59    ecpssrShellLi = new G4AnalyticalEcpssrLiCrossSection();
     60   
    6161  }
    62   else {
    63 
    64     G4cout << "G4teoCrossSection: sorry, only ECPSSR model available at the moment" << G4endl;
    65 
    66     ecpssrShellK = new G4ecpssrKCrossSection();
    67 
    68     ecpssrShellLi = new G4ecpssrLiCrossSection();
    69 
    70   }
    71 
    72 
    7362}
    7463
Note: See TracChangeset for help on using the changeset viewer.