Ignore:
Timestamp:
Nov 5, 2010, 3:45:55 PM (14 years ago)
Author:
garnier
Message:

update ti head

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4HETCFragment.cc

    r819 r1340  
    2424// ********************************************************************
    2525//
     26// $Id: G4HETCFragment.cc,v 1.4 2010/08/28 15:16:55 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-03-ref-09 $
     28//
    2629// by V. Lara
     30//
     31// Modified:
     32// 23.08.2010 V.Ivanchenko general cleanup, move constructor and destructor
     33//            the source, use G4Pow
    2734 
    2835#include "G4HETCFragment.hh"
     
    3037
    3138G4HETCFragment::
    32 G4HETCFragment(const G4HETCFragment & right) :
    33   G4VPreCompoundFragment(right)
     39G4HETCFragment(const G4ParticleDefinition* part,
     40               G4VCoulombBarrier* aCoulombBarrier)
     41  : G4VPreCompoundFragment(part, aCoulombBarrier)
    3442{
     43  G4double r0 = theParameters->Getr0();
     44  r2norm = r0*r0/(CLHEP::pi*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc);
    3545}
    3646
    37 G4HETCFragment::
    38 G4HETCFragment(const G4double anA,
    39                const G4double aZ,
    40                G4VCoulombBarrier* aCoulombBarrier,
    41                const G4String & aName) :
    42   G4VPreCompoundFragment(anA,aZ,aCoulombBarrier,aName)
     47G4HETCFragment::~G4HETCFragment()
    4348{}
    44 
    45 G4HETCFragment::~G4HETCFragment()
    46 {
    47 }
    48 
    49 const G4HETCFragment & G4HETCFragment::
    50 operator= (const G4HETCFragment & right)
    51 {
    52   if (&right != this) this->G4VPreCompoundFragment::operator=(right);
    53   return *this;
    54 }
    55 
    56 G4int G4HETCFragment::operator==(const G4HETCFragment & right) const
    57 {
    58   return G4VPreCompoundFragment::operator==(right);
    59 }
    60 
    61 G4int G4HETCFragment::operator!=(const G4HETCFragment & right) const
    62 {
    63   return G4VPreCompoundFragment::operator!=(right);
    64 }
    65 
    66 
    6749
    6850G4double G4HETCFragment::
     
    7052{
    7153  if (GetEnergyThreshold() <= 0.0)
    72   {
     54    {
    7355      theEmissionProbability = 0.0;
    7456      return 0.0;
    75   }   
     57    }   
    7658  // Coulomb barrier is the lower limit
    7759  // of integration over kinetic energy
     
    8062  // Excitation energy of nucleus after fragment emission is the upper limit
    8163  // of integration over kinetic energy
    82   G4double UpperLimit = this->GetMaximalKineticEnergy();
     64  G4double UpperLimit = GetMaximalKineticEnergy();
    8365 
    84   theEmissionProbability = IntegrateEmissionProbability(LowerLimit,UpperLimit,aFragment);
     66  theEmissionProbability =
     67    IntegrateEmissionProbability(LowerLimit,UpperLimit,aFragment);
    8568   
    8669  return theEmissionProbability;
     
    9275{
    9376 
    94   if ( !IsItPossible(aFragment) ) return 0.0;
    95 
    96   const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0();
     77  if ( !IsItPossible(aFragment) ) { return 0.0; }
    9778   
    9879  G4double U = aFragment.GetExcitationEnergy();
    99   G4double P = aFragment.GetNumberOfParticles();
    100   G4double H = aFragment.GetNumberOfHoles();
    101   G4double N = P + H;
    102   G4double Pb = P - GetA();
    103   G4double Nb = Pb + H;
    104   if (Nb <= 0.0) return 0.0;
    105  
    106   G4double A = (P*P+H*H+P-3*H)/4.0;
    107   G4double Ab = (Pb*Pb+H*H+Pb-3*H)/4.0;
     80
     81  G4int P  = aFragment.GetNumberOfParticles();
     82  G4int H  = aFragment.GetNumberOfHoles();
     83  G4int N  = P + H;
     84  G4int Pb = P - GetA();
     85  G4int Nb = Pb + H;
     86  if (Nb <= 0.0) { return 0.0; }
     87  G4double g = (6.0/pi2)*aFragment.GetA()*theParameters->GetLevelDensity();
     88  G4double gb = (6.0/pi2)*GetRestA()*theParameters->GetLevelDensity();
     89
     90  G4double A  = G4double(P*P+H*H+P-3*H)/(4.0*g);
     91  G4double Ab = G4double(Pb*Pb+H*H+Pb-3*H)/(4.0*gb);
    10892  U = std::max(U-A,0.0);
    109   if (U <= 0.0) return 0.0;
     93  if (U <= 0.0) { return 0.0; }
    11094
    111   G4double g = (6.0/pi2)*aFragment.GetA()*G4PreCompoundParameters::GetAddress()->GetLevelDensity();
    112   G4double gb = (6.0/pi2)*GetRestA()*G4PreCompoundParameters::GetAddress()->GetLevelDensity();
    113 
    114   G4double Pf = P;
    115   G4double Hf = H;
    116   G4double Nf = N-1.0;
    117   for (G4int i = 1; i < GetA(); i++)
     95  G4int Pf = P;
     96  G4int Hf = H;
     97  G4int Nf = N-1;
     98  for (G4int i = 1; i < GetA(); ++i)
    11899    {
    119100      Pf *= (P-i);
     
    125106  G4double Y = std::max(Up - Ab - Low, 0.0);
    126107
    127   G4double Probability = GetSpinFactor()/(pi*hbarc*hbarc*hbarc) * GetReducedMass() * GetAlpha() *
    128     r0 * r0 * std::pow(GetRestA(),2.0/3.0)/std::pow(U,N-1) * (std::pow(gb,Nb)/std::pow(g,N)) * Pf * Hf * Nf * K(aFragment) *
    129     std::pow(Y,Nb) * (X/Nb - Y/(Nb+1));
     108  G4double Probability = r2norm*GetSpinFactor()*GetReducedMass()*GetAlpha()
     109    *g4pow->Z23(GetRestA())*Pf*Hf*Nf*K(aFragment)*(X/Nb - Y/(Nb+1))
     110    *U*g4pow->powN(g*gb,Nb)/g4pow->powN(g*U,N);
     111
     112  //  G4double Probability = GetSpinFactor()/(pi*hbarc*hbarc*hbarc)
     113  //  * GetReducedMass() * GetAlpha() *
     114  //  r0 * r0 * std::pow->Z23(GetRestA())/std::pow->pow(U,G4double(N-1)) *
     115  //  (std::pow->(gb,Nb)/std::pow(g,N)) * Pf * Hf * Nf * K(aFragment) *
     116  //  std::pow(Y,Nb) * (X/Nb - Y/(Nb+1));
    130117
    131118  return Probability;
Note: See TracChangeset for help on using the changeset viewer.