Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (14 years ago)
Author:
garnier
Message:

geant4 tag 9.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc

    r1340 r1347  
    2424// ********************************************************************
    2525//
    26 //
    27 // $Id: G4CoulombBarrier.cc,v 1.9 2009/03/04 11:05:02 gcosmo Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     26// $Id: G4CoulombBarrier.cc,v 1.10 2010/11/15 12:44:06 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2928//
    3029// Hadronic Process: Nuclear De-excitations
    3130// by V. Lara (Dec 1999)
    32 // modified barrier by JMQ (test30) by 14-11-07
     31//
     32// 14-11-2007 modified barrier by JMQ (test30)
     33// 15-11-2010 V.Ivanchenko use G4Pow and cleanup
    3334
    3435#include "G4CoulombBarrier.hh"
    3536#include "G4HadronicException.hh"
     37#include "G4Pow.hh"
    3638#include <sstream>
    3739
    38 G4CoulombBarrier::G4CoulombBarrier()
    39   : G4VCoulombBarrier(1,0) {}
     40G4CoulombBarrier::G4CoulombBarrier(): G4VCoulombBarrier(1,0)
     41{}
    4042
    41 G4CoulombBarrier::G4CoulombBarrier(const G4int anA,const G4int aZ)
    42   : G4VCoulombBarrier(anA,aZ) {}
     43G4CoulombBarrier::G4CoulombBarrier(G4int anA, G4int aZ)
     44  : G4VCoulombBarrier(anA,aZ)
     45{}
    4346
    44 G4CoulombBarrier::~G4CoulombBarrier() {}
     47G4CoulombBarrier::~G4CoulombBarrier()
     48{}
    4549
    46 G4CoulombBarrier::G4CoulombBarrier(const G4CoulombBarrier & ) : G4VCoulombBarrier()
     50G4double G4CoulombBarrier::BarrierPenetrationFactor(G4double ) const
    4751{
    48   throw G4HadronicException(__FILE__, __LINE__, "G4CoulombBarrier::copy_constructor meant to not be accessable.");
     52  return 1.0;
    4953}
    50 
    51 
    52 const G4CoulombBarrier & G4CoulombBarrier::operator=(const G4CoulombBarrier & )
    53 {
    54   throw G4HadronicException(__FILE__, __LINE__, "G4CoulombBarrier::operator= meant to not be accessable.");
    55   return *this;
    56 }
    57 
    58 G4bool G4CoulombBarrier::operator==(const G4CoulombBarrier & ) const
    59 {
    60   return false;
    61 }
    62 
    63 G4bool G4CoulombBarrier::operator!=(const G4CoulombBarrier & ) const
    64 {
    65   return true;
    66 }
    67 
    68 
    6954
    7055G4double G4CoulombBarrier::GetCoulombBarrier(const G4int ARes, const G4int ZRes, const G4double) const
     
    8570  } else {
    8671
    87 // JMQ: old coulomb barrier commented since it does not agree with Dostrovski's prescription
    88 // and too low  barriers are obtained (for protons at least)
    89 // calculation of K penetration factor is correct
    90 //    G4double CompoundRadius = CalcCompoundRadius(static_cast<G4double>(ZRes));
    91 //    Barrier = elm_coupling/CompoundRadius * static_cast<G4double>(GetZ())*static_cast<G4double>(ZRes)/
    92 //      (std::pow(static_cast<G4double>(GetA()),1./3.) + std::pow(static_cast<G4double>(ARes),1./3.));
     72    // JMQ: old coulomb barrier commented since it does not agree with Dostrovski's prescription
     73    // and too low  barriers are obtained (for protons at least)
     74    // calculation of K penetration factor is correct
     75    //    G4double CompoundRadius = CalcCompoundRadius(static_cast<G4double>(ZRes));
     76    //    Barrier = elm_coupling/CompoundRadius * static_cast<G4double>(GetZ())*static_cast<G4double>(ZRes)/
     77    //      (std::pow(static_cast<G4double>(GetA()),1./3.) + std::pow(static_cast<G4double>(ARes),1./3.));
    9378
    94 ///New coulomb Barrier according to original Dostrovski's paper
    95    G4double rho=1.2*fermi;
    96    if(GetA()==1 && GetZ()==1){  rho=0.0;} 
     79    ///New coulomb Barrier according to original Dostrovski's paper
     80    G4double rho=1.2*fermi;
     81    if(GetA()==1 && GetZ()==1){  rho=0.0;} 
    9782
    98    G4double RN=1.5*fermi; 
    99 Barrier=elm_coupling* static_cast<G4double>(GetZ())*static_cast<G4double>(ZRes)/(RN*std::pow(static_cast<G4double>(ARes),1./3.)+rho);
     83    G4double RN=1.5*fermi; 
     84    // VI cleanup
     85    Barrier=elm_coupling*(GetZ()*ZRes)/(RN * G4Pow::GetInstance()->Z13(ARes) + rho);
    10086
    10187    // Barrier penetration coeficient
    10288    G4double K = BarrierPenetrationFactor(ZRes);
    10389
    104 
    10590    Barrier *= K;
    106 //
    107 
    108        
    109 
    11091               
    111 // JMQ : the following statement has unknown origin and dimensionally is meaningless( energy divided by mass number in argument of sqrt function). Energy dependence of Coulomb barrier penetrability should be included in proper way (if needed..)
    112 //   Barrier /= (1.0 + std::sqrt(U/(2.0*static_cast<G4double>(ARes))));
    113 //
     92    // JMQ : the following statement has unknown origin and dimensionally is meaningless( energy divided by mass number in argument of sqrt function). Energy dependence of Coulomb barrier penetrability should be included in proper way (if needed..)
     93    //   Barrier /= (1.0 + std::sqrt(U/(2.0*static_cast<G4double>(ARes))));
     94    //
    11495  }
    11596  return Barrier;
Note: See TracChangeset for help on using the changeset viewer.