source: trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrier.cc @ 1197

Last change on this file since 1197 was 1197, checked in by garnier, 15 years ago

nvx fichiers dans CVS

File size: 4.3 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// J. M. Quesada (July 2009):  New class based on G4GEMCoulombBarrierHE
28// Coded strictly according to Furihata's GEM paper
29// NEW:effective decrease  of barrier with E* (Barashenkov) has been added
30//
31#include "G4GEMCoulombBarrier.hh"
32#include "G4HadronicException.hh"
33#include <sstream>
34
35G4GEMCoulombBarrier::G4GEMCoulombBarrier(const G4GEMCoulombBarrier & ) : G4VCoulombBarrier()
36{
37  throw G4HadronicException(__FILE__, __LINE__, "G4GEMCoulombBarrier::copy_constructor meant to not be accessable.");
38}
39
40
41const G4GEMCoulombBarrier & G4GEMCoulombBarrier::operator=(const G4GEMCoulombBarrier & )
42{
43  throw G4HadronicException(__FILE__, __LINE__, "G4GEMCoulombBarrier::operator= meant to not be accessable.");
44  return *this;
45}
46
47G4bool G4GEMCoulombBarrier::operator==(const G4GEMCoulombBarrier & ) const 
48{
49  return false;
50}
51
52G4bool G4GEMCoulombBarrier::operator!=(const G4GEMCoulombBarrier & ) const 
53{
54  return true;
55}
56
57
58
59G4double G4GEMCoulombBarrier::GetCoulombBarrier(const G4int ARes, const G4int ZRes, const G4double U) const 
60// Calculation of Coulomb potential energy (barrier) for outgoing fragment
61{
62  G4double Barrier = 0.0;
63  if (ZRes > ARes || ARes < 1) {
64    std::ostringstream errOs;
65    errOs << "G4GEMCoulombBarrier::GetCoulombBarrier: ";
66    errOs << "Wrong values for ";
67    errOs << "residual nucleus A = " << ARes << " ";
68    errOs << "and residual nucleus Z = " << ZRes << G4endl;
69    throw G4HadronicException(__FILE__, __LINE__, errOs.str());
70  }
71  if (GetZ() == 0) {
72    Barrier = 0.0;   // If there is no charge there is neither barrier
73  } else 
74    {
75      G4double CompoundRadius = CalcCompoundRadius(static_cast<G4double>(ARes));
76      Barrier = ( elm_coupling * static_cast<G4double>(GetZ()) * static_cast<G4double>(ZRes) )/CompoundRadius;
77     
78      // Barrier penetration coeficient
79      G4double K=1.;
80      if(GetA() <= 4) K = BarrierPenetrationFactor(ZRes);
81     
82      Barrier *= K;
83     
84    }
85  //JMQ 200709 effective decrease  of barrier with E* (Barashenkov)
86  // (not inclued in original Furihata's formulation)
87  Barrier /= (1.0 + std::sqrt(U/(2.0*static_cast<G4double>(ARes))));
88  // JMQ end test
89  return Barrier;
90}
91
92
93G4double G4GEMCoulombBarrier::CalcCompoundRadius(const G4double ARes) const
94{     
95    G4double AresOneThird = std::pow(ARes,1.0/3.0);
96    G4double AejectOneThird = std::pow(G4double(GetA()),1.0/3.0);
97
98    if(GetA()==1){
99    G4double Rd=1.7* AresOneThird;
100    return Rd*fermi;
101   } else if (GetA()==2 || GetA()==3 || GetA()==4){
102    G4double Rd=1.7* AresOneThird;
103    G4double Rj=1.2;
104    return (Rd+Rj)*fermi;
105   } else {
106    G4double Result = 1.12*(AresOneThird + AejectOneThird) - 
107      0.86*(AresOneThird+AejectOneThird)/(AresOneThird*AejectOneThird)+3.75;
108    return Result*fermi;}
109}
110
111
Note: See TracBrowser for help on using the repository browser.