Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions
G4PreCompoundTriton Class Reference

#include <G4PreCompoundTriton.hh>

Inheritance diagram for G4PreCompoundTriton:
G4PreCompoundIon G4PreCompoundFragment G4VPreCompoundFragment

Public Member Functions

 G4PreCompoundTriton ()
 
virtual ~G4PreCompoundTriton ()
 
- Public Member Functions inherited from G4PreCompoundIon
 G4PreCompoundIon (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4PreCompoundIon ()
 
- Public Member Functions inherited from G4PreCompoundFragment
 G4PreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4PreCompoundFragment ()
 
G4double CalcEmissionProbability (const G4Fragment &aFragment)
 
G4double GetKineticEnergy (const G4Fragment &aFragment)
 
- Public Member Functions inherited from G4VPreCompoundFragment
 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4VPreCompoundFragment ()
 
void Initialize (const G4Fragment &aFragment)
 
G4ReactionProductGetReactionProduct () const
 
G4int GetA () const
 
G4int GetZ () const
 
G4int GetRestA () const
 
G4int GetRestZ () const
 
G4double ResidualA13 () const
 
G4double GetCoulombBarrier () const
 
G4double GetBindingEnergy () const
 
G4double GetMaximalKineticEnergy () const
 
G4double GetEnergyThreshold () const
 
G4double GetEmissionProbability () const
 
G4double GetNuclearMass () const
 
G4double GetRestNuclearMass () const
 
G4double GetReducedMass () const
 
const G4LorentzVectorGetMomentum () const
 
void SetMomentum (const G4LorentzVector &value)
 
const G4String GetName () const
 
void SetOPTxs (G4int)
 
void UseSICB (G4bool)
 

Protected Member Functions

virtual G4double GetRj (G4int NumberParticles, G4int NumberCharged)
 
virtual G4double CrossSection (G4double ekin)
 
virtual G4double FactorialFactor (G4int N, G4int P)
 
virtual G4double CoalescenceFactor (G4int A)
 
virtual G4double GetAlpha ()
 
G4double GetOpt12 (G4double K)
 
G4double GetOpt34 (G4double K)
 
- Protected Member Functions inherited from G4PreCompoundIon
virtual G4double ProbabilityDistributionFunction (G4double eKin, const G4Fragment &aFragment)
 
G4double GetBeta ()
 
G4double GetOpt0 (G4double ekin)
 
- Protected Member Functions inherited from G4VPreCompoundFragment
G4bool IsItPossible (const G4Fragment &aFragment) const
 

Additional Inherited Members

- Protected Attributes inherited from G4VPreCompoundFragment
G4PreCompoundParameterstheParameters
 
G4Powg4pow
 
G4double theEmissionProbability
 
G4double theCoulombBarrier
 
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 42 of file G4PreCompoundTriton.hh.

Constructor & Destructor Documentation

G4PreCompoundTriton::G4PreCompoundTriton ( )

Definition at line 47 of file G4PreCompoundTriton.cc.

References G4VPreCompoundFragment::GetA(), G4VPreCompoundFragment::GetRestA(), G4VPreCompoundFragment::GetRestZ(), G4VPreCompoundFragment::GetZ(), and G4VPreCompoundFragment::ResidualA13().

48  : G4PreCompoundIon(G4Triton::Triton(), &theTritonCoulombBarrier)
49 {
50  ResidualA = GetRestA();
51  ResidualZ = GetRestZ();
52  theA = GetA();
53  theZ = GetZ();
54  ResidualAthrd = ResidualA13();
55  FragmentAthrd = ResidualAthrd;
56  FragmentA = theA + ResidualA;
57 }
G4double ResidualA13() const
G4int GetA() const
static G4Triton * Triton()
Definition: G4Triton.cc:95
G4int GetRestZ() const
G4int GetRestA() const
G4int GetZ() const
G4PreCompoundTriton::~G4PreCompoundTriton ( )
virtual

Definition at line 59 of file G4PreCompoundTriton.cc.

60 {}

Member Function Documentation

G4double G4PreCompoundTriton::CoalescenceFactor ( G4int  A)
protectedvirtual

Implements G4PreCompoundIon.

Definition at line 67 of file G4PreCompoundTriton.cc.

68 {
69  return 243.0/G4double(A*A);
70 }
double G4double
Definition: G4Types.hh:76
G4double G4PreCompoundTriton::CrossSection ( G4double  ekin)
protectedvirtual

Implements G4PreCompoundIon.

Definition at line 90 of file G4PreCompoundTriton.cc.

References G4endl, G4VPreCompoundFragment::g4pow, G4VPreCompoundFragment::GetA(), G4PreCompoundIon::GetOpt0(), GetOpt12(), GetOpt34(), G4VPreCompoundFragment::GetRestA(), G4VPreCompoundFragment::GetRestZ(), G4VPreCompoundFragment::GetZ(), G4VPreCompoundFragment::OPTxs, G4VPreCompoundFragment::ResidualA13(), and G4Pow::Z13().

91 {
92  ResidualA = GetRestA();
93  ResidualZ = GetRestZ();
94  theA = GetA();
95  theZ = GetZ();
96  ResidualAthrd = ResidualA13();
97  FragmentA = theA + ResidualA;
98  FragmentAthrd = g4pow->Z13(FragmentA);
99 
100  if (OPTxs==0) { return GetOpt0( K); }
101  else if( OPTxs==1 || OPTxs==2) { return GetOpt12( K); }
102  else if (OPTxs==3 || OPTxs==4) { return GetOpt34( K); }
103  else{
104  std::ostringstream errOs;
105  errOs << "BAD TRITON CROSS SECTION OPTION !!" <<G4endl;
106  throw G4HadronicException(__FILE__, __LINE__, errOs.str());
107  return 0.;
108  }
109 }
G4double GetOpt12(G4double K)
G4double ResidualA13() const
G4int GetA() const
G4double GetOpt34(G4double K)
G4double GetOpt0(G4double ekin)
G4double Z13(G4int Z) const
Definition: G4Pow.hh:129
G4int GetRestZ() const
G4int GetRestA() const
#define G4endl
Definition: G4ios.hh:61
G4int GetZ() const
G4double G4PreCompoundTriton::FactorialFactor ( G4int  N,
G4int  P 
)
protectedvirtual

Implements G4PreCompoundIon.

Definition at line 62 of file G4PreCompoundTriton.cc.

63 {
64  return G4double((N-3)*(P-2)*(N-2)*(P-1)*(N-1)*P)/6.0;
65 }
**D E S C R I P T I O N
double G4double
Definition: G4Types.hh:76
G4double G4PreCompoundTriton::GetAlpha ( )
protectedvirtual

Implements G4PreCompoundIon.

Definition at line 111 of file G4PreCompoundTriton.cc.

112 {
113  G4double C = 0.0;
114  G4int aZ = theZ + ResidualZ;
115  if (aZ >= 70)
116  {
117  C = 0.10;
118  }
119  else
120  {
121  C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375;
122  }
123 
124  return 1.0 + C/3.0;
125 }
int G4int
Definition: G4Types.hh:78
double G4double
Definition: G4Types.hh:76
G4double G4PreCompoundTriton::GetOpt12 ( G4double  K)
protected

Definition at line 131 of file G4PreCompoundTriton.cc.

References G4VPreCompoundFragment::g4pow, G4INCL::Math::max(), python.hepunit::MeV, and G4Pow::powZ().

Referenced by CrossSection().

132 {
133  G4double Kc=K;
134 
135  // JMQ xsec is set constat above limit of validity
136  if (K > 50*MeV) { Kc=50*MeV; }
137 
138  G4double landa ,mu ,nu ,p , Ec,q,r,ji,xs;
139 
140  G4double p0 = -11.04;
141  G4double p1 = 619.1;
142  G4double p2 = -2147.;
143  G4double landa0 = -0.0426;
144  G4double landa1 = -10.33;
145  G4double mm0 = 601.9;
146  G4double mu1 = 0.37;
147  G4double nu0 = 583.0;
148  G4double nu1 = -546.2;
149  G4double nu2 = 1.718;
150  G4double delta=1.2;
151 
152  Ec = 1.44*theZ*ResidualZ/(1.5*ResidualAthrd+delta);
153  p = p0 + p1/Ec + p2/(Ec*Ec);
154  landa = landa0*ResidualA + landa1;
155 
156  G4double resmu1 = g4pow->powZ(ResidualA,mu1);
157  mu = mm0*resmu1;
158  nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
159  q = landa - nu/(Ec*Ec) - 2*p*Ec;
160  r = mu + 2*nu/Ec + p*(Ec*Ec);
161 
162  ji=std::max(Kc,Ec);
163  if(Kc < Ec) { xs = p*Kc*Kc + q*Kc + r;}
164  else {xs = p*(Kc - ji)*(Kc - ji) + landa*Kc + mu + nu*(2 - Kc/ji)/ji ;}
165 
166  if (xs <0.0) {xs=0.0;}
167 
168  return xs;
169 }
const char * p
Definition: xmltok.h:285
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:258
double G4double
Definition: G4Types.hh:76
G4double G4PreCompoundTriton::GetOpt34 ( G4double  K)
protected

Definition at line 172 of file G4PreCompoundTriton.cc.

References test::a, test::b, G4VPreCompoundFragment::g4pow, G4INCL::Math::max(), and G4Pow::powZ().

Referenced by CrossSection().

174 {
175  G4double landa, mu, nu, p , signor(1.),sig;
176  G4double ec,ecsq,xnulam,etest(0.),a;
177  G4double b,ecut,cut,ecut2,geom,elab;
178 
179  G4double flow = 1.e-18;
180  G4double spill= 1.e+18;
181 
182  G4double p0 = -21.45;
183  G4double p1 = 484.7;
184  G4double p2 = -1608.;
185  G4double landa0 = 0.0186;
186  G4double landa1 = -8.90;
187  G4double mm0 = 686.3;
188  G4double mu1 = 0.325;
189  G4double nu0 = 368.9;
190  G4double nu1 = -522.2;
191  G4double nu2 = -4.998;
192 
193  G4double ra=0.80;
194 
195  //JMQ 13/02/09 increase of reduced radius to lower the barrier
196  // ec = 1.44 * theZ * ResidualZ / (1.5*ResidualAthrd+ra);
197  ec = 1.44 * theZ * ResidualZ / (1.7*ResidualAthrd+ra);
198  ecsq = ec * ec;
199  p = p0 + p1/ec + p2/ecsq;
200  landa = landa0*ResidualA + landa1;
201  a = g4pow->powZ(ResidualA,mu1);
202  mu = mm0 * a;
203  nu = a* (nu0+nu1*ec+nu2*ecsq);
204  xnulam = nu / landa;
205  if (xnulam > spill) { xnulam=0.; }
206  if (xnulam >= flow) { etest = 1.2 *std::sqrt(xnulam); }
207 
208  a = -2.*p*ec + landa - nu/ecsq;
209  b = p*ecsq + mu + 2.*nu/ec;
210  ecut = 0.;
211  cut = a*a - 4.*p*b;
212  if (cut > 0.) { ecut = std::sqrt(cut); }
213  ecut = (ecut-a) / (p+p);
214  ecut2 = ecut;
215  //JMQ 290310 for avoiding unphysical increase below minimum (at ecut)
216  // ecut<0 means that there is no cut with energy axis, i.e. xs is set
217  // to 0 bellow minimum
218  // if (cut < 0.) ecut2 = ecut - 2.;
219  if (cut < 0.) { ecut2 = ecut; }
220  elab = K * FragmentA / G4double(ResidualA);
221  sig = 0.;
222 
223  if (elab <= ec) { //start for E<Ec
224  if (elab > ecut2) { sig = (p*elab*elab+a*elab+b) * signor; }
225  } //end for E<Ec
226  else { //start for E>Ec
227  sig = (landa*elab+mu+nu/elab) * signor;
228  geom = 0.;
229  if (xnulam < flow || elab < etest) { return sig; }
230  geom = std::sqrt(theA*K);
231  geom = 1.23*ResidualAthrd + ra + 4.573/geom;
232  geom = 31.416 * geom * geom;
233  sig = std::max(geom,sig);
234  } //end for E>Ec
235  return sig;
236 }
const char * p
Definition: xmltok.h:285
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:258
double G4double
Definition: G4Types.hh:76
G4double G4PreCompoundTriton::GetRj ( G4int  NumberParticles,
G4int  NumberCharged 
)
protectedvirtual

Implements G4PreCompoundIon.

Definition at line 72 of file G4PreCompoundTriton.cc.

73 {
74  G4double rj = 0.0;
75  if(nCharged >= 1 && (nParticles-nCharged) >= 2) {
76  G4double denominator =
77  G4double(nParticles*(nParticles-1)*(nParticles-2));
78  rj = G4double(3*nCharged*(nParticles-nCharged)*(nParticles-nCharged-1))
79  /denominator;
80  }
81  return rj;
82 }
double G4double
Definition: G4Types.hh:76

The documentation for this class was generated from the following files: