Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4PomeronCrossSection Class Reference

#include <G4PomeronCrossSection.hh>

Public Member Functions

 G4PomeronCrossSection (const G4ParticleDefinition *)
 
 G4PomeronCrossSection (const G4Proton *)
 
 G4PomeronCrossSection (const G4Neutron *)
 
 G4PomeronCrossSection (const G4PionPlus *)
 
 G4PomeronCrossSection (const G4PionMinus *)
 
 G4PomeronCrossSection (const G4PionZero *)
 
 G4PomeronCrossSection (const G4KaonPlus *)
 
 G4PomeronCrossSection (const G4KaonMinus *)
 
 G4PomeronCrossSection (const G4KaonZero *)
 
 G4PomeronCrossSection (const G4KaonZeroLong *)
 
 G4PomeronCrossSection (const G4KaonZeroShort *)
 
 G4PomeronCrossSection (const G4Gamma *)
 
 ~G4PomeronCrossSection ()
 
G4double GetTotalCrossSection (const G4double s)
 
G4double GetDiffractiveCrossSection (const G4double s)
 
G4double GetElasticCrossSection (const G4double s)
 
G4double GetInelasticCrossSection (const G4double s)
 
G4double GetTotalProbability (const G4double s, const G4double impactsquare)
 
G4double GetDiffractiveProbability (const G4double s, const G4double impactsquare)
 
G4double GetNondiffractiveProbability (const G4double s, const G4double impactsquare)
 
G4double GetElasticProbability (const G4double s, const G4double impactsquare)
 
G4double GetInelasticProbability (const G4double s, const G4double impactsquare)
 
G4double GetCutPomeronProbability (const G4double s, const G4double impactsquare, const G4int nPomerons)
 
void Setgamma (const G4double agam)
 
G4double SoftEikonal (G4double s, G4double impactsquare)
 
G4double HardEikonal (G4double s, G4double impactsquare)
 
void Pomeron_S (G4double apomeron_S)
 
void Pomeron_Gamma (G4double apomeron_Gamma)
 
void Pomeron_C (G4double apomeron_C)
 
void Pomeron_Rsquare (G4double apomeron_Rsquare)
 
void Pomeron_Alpha (G4double apomeron_Alpha)
 
void Pomeron_Alphaprime (G4double apomeron_Alphaprime)
 
void Pomeron_Gamma_Hard (G4double apomeron_Gamma_Hard)
 
void Pomeron_Alpha_Hard (G4double apomeron_Alpha_Hard)
 

Detailed Description

Definition at line 45 of file G4PomeronCrossSection.hh.

Constructor & Destructor Documentation

G4PomeronCrossSection::G4PomeronCrossSection ( const G4ParticleDefinition particle)

Definition at line 50 of file G4PomeronCrossSection.cc.

51 {
52  G4int Encoding = std::abs(particle->GetPDGEncoding());
53 
54  if (std::abs(particle->GetBaryonNumber())!=0)
55  InitForNucleon();
56  else if (Encoding/100== 3 || Encoding/10 == 3)
57  InitForKaon();
58  else
59  InitForPion();
60 }
int G4int
Definition: G4Types.hh:78

Here is the call graph for this function:

Here is the caller graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Proton )

Definition at line 64 of file G4PomeronCrossSection.cc.

65 {
66  InitForNucleon();
67 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Neutron )

Definition at line 69 of file G4PomeronCrossSection.cc.

70 {
71  InitForNucleon();
72 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionPlus )

Definition at line 74 of file G4PomeronCrossSection.cc.

75 {
76  InitForPion();
77 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionMinus )

Definition at line 79 of file G4PomeronCrossSection.cc.

80 {
81  InitForPion();
82 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionZero )

Definition at line 84 of file G4PomeronCrossSection.cc.

85 {
86  InitForPion();
87 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonPlus )

Definition at line 89 of file G4PomeronCrossSection.cc.

90 {
91  InitForKaon();
92 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonMinus )

Definition at line 94 of file G4PomeronCrossSection.cc.

95 {
96  InitForKaon();
97 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZero )

Definition at line 99 of file G4PomeronCrossSection.cc.

100 {
101  InitForKaon();
102 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroLong )

Definition at line 104 of file G4PomeronCrossSection.cc.

105 {
106  InitForKaon();
107 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroShort )

Definition at line 109 of file G4PomeronCrossSection.cc.

110 {
111  InitForKaon();
112 }

Here is the call graph for this function:

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Gamma )

Definition at line 114 of file G4PomeronCrossSection.cc.

115 {
116  InitForGamma();
117 }

Here is the call graph for this function:

G4PomeronCrossSection::~G4PomeronCrossSection ( )

Definition at line 45 of file G4PomeronCrossSection.cc.

46 {;}

Member Function Documentation

G4double G4PomeronCrossSection::GetCutPomeronProbability ( const G4double  s,
const G4double  impactsquare,
const G4int  nPomerons 
)

Definition at line 173 of file G4PomeronCrossSection.cc.

175 {
176  G4double factorial=G4Pow::GetInstance()->factorial(nPomerons);
177 
178  return G4Exp(-2*Eikonal(S,impactsquare))/pomeron_C*
179  G4Pow::GetInstance()->powN(2*Eikonal(S,impactsquare),nPomerons)/factorial;
180 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:128
double S(double temp)
G4double factorial(G4int Z) const
Definition: G4Pow.hh:264
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double G4PomeronCrossSection::GetDiffractiveCrossSection ( const G4double  s)

Definition at line 130 of file G4PomeronCrossSection.cc.

131 {
132  return ( pomeron_C -1) * GetElasticCrossSection(S);
133 }
double S(double temp)
G4double GetElasticCrossSection(const G4double s)

Here is the call graph for this function:

G4double G4PomeronCrossSection::GetDiffractiveProbability ( const G4double  s,
const G4double  impactsquare 
)

Definition at line 148 of file G4PomeronCrossSection.cc.

150 {
151  return (pomeron_C-1)/pomeron_C *
152  (GetTotalProbability(S,impactsquare) - GetNondiffractiveProbability(S,impactsquare));
153 }
double S(double temp)
G4double GetTotalProbability(const G4double s, const G4double impactsquare)
G4double GetNondiffractiveProbability(const G4double s, const G4double impactsquare)

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4PomeronCrossSection::GetElasticCrossSection ( const G4double  s)

Definition at line 125 of file G4PomeronCrossSection.cc.

126 {
127  return SigP(S)/pomeron_C *(Expand(Z(S)/2) - Expand(Z(S)));
128 }
double S(double temp)

Here is the caller graph for this function:

G4double G4PomeronCrossSection::GetElasticProbability ( const G4double  s,
const G4double  impactsquare 
)

Definition at line 161 of file G4PomeronCrossSection.cc.

163 {
164  return (GetTotalProbability(S,impactsquare) - GetInelasticProbability(S,impactsquare));
165 }
double S(double temp)
G4double GetInelasticProbability(const G4double s, const G4double impactsquare)
G4double GetTotalProbability(const G4double s, const G4double impactsquare)

Here is the call graph for this function:

G4double G4PomeronCrossSection::GetInelasticCrossSection ( const G4double  s)

Definition at line 135 of file G4PomeronCrossSection.cc.

136 {
138 }
G4double GetTotalCrossSection(const G4double s)
double S(double temp)
G4double GetElasticCrossSection(const G4double s)

Here is the call graph for this function:

G4double G4PomeronCrossSection::GetInelasticProbability ( const G4double  s,
const G4double  impactsquare 
)

Definition at line 167 of file G4PomeronCrossSection.cc.

169 {
170  return GetNondiffractiveProbability(S,impactsquare) + GetDiffractiveProbability(S,impactsquare);
171 }
double S(double temp)
G4double GetNondiffractiveProbability(const G4double s, const G4double impactsquare)
G4double GetDiffractiveProbability(const G4double s, const G4double impactsquare)

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4PomeronCrossSection::GetNondiffractiveProbability ( const G4double  s,
const G4double  impactsquare 
)

Definition at line 155 of file G4PomeronCrossSection.cc.

157 {
158  return (1-G4Exp(-2*Eikonal(S,impactsquare)))/pomeron_C;
159 }
double S(double temp)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4PomeronCrossSection::GetTotalCrossSection ( const G4double  s)

Definition at line 119 of file G4PomeronCrossSection.cc.

120 {
121  G4double FZ2= Expand(Z(S)/2);
122  return SigP(S) * FZ2;
123 }
double S(double temp)
double G4double
Definition: G4Types.hh:76

Here is the caller graph for this function:

G4double G4PomeronCrossSection::GetTotalProbability ( const G4double  s,
const G4double  impactsquare 
)

Definition at line 142 of file G4PomeronCrossSection.cc.

144 {
145  return 2/pomeron_C*(1-G4Exp(-1*Eikonal(S,impactsquare)));
146 }
double S(double temp)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4PomeronCrossSection::HardEikonal ( G4double  s,
G4double  impactsquare 
)

Definition at line 320 of file G4PomeronCrossSection.cc.

321 {
322  return Zhard(S)/2*G4Exp(-impactsquare/LambdaHard(S)/hbarc_squared/4);
323 }
double S(double temp)
static constexpr double hbarc_squared
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183

Here is the call graph for this function:

void G4PomeronCrossSection::Pomeron_Alpha ( G4double  apomeron_Alpha)
inline

Definition at line 89 of file G4PomeronCrossSection.hh.

89 { pomeron_Alpha = apomeron_Alpha;}
void G4PomeronCrossSection::Pomeron_Alpha_Hard ( G4double  apomeron_Alpha_Hard)
inline

Definition at line 92 of file G4PomeronCrossSection.hh.

92 { pomeron_Alpha_Hard = apomeron_Alpha_Hard;}
void G4PomeronCrossSection::Pomeron_Alphaprime ( G4double  apomeron_Alphaprime)
inline

Definition at line 90 of file G4PomeronCrossSection.hh.

90 { pomeron_Alphaprime = apomeron_Alphaprime;}
void G4PomeronCrossSection::Pomeron_C ( G4double  apomeron_C)
inline

Definition at line 87 of file G4PomeronCrossSection.hh.

87 { pomeron_C = apomeron_C;}
void G4PomeronCrossSection::Pomeron_Gamma ( G4double  apomeron_Gamma)
inline

Definition at line 86 of file G4PomeronCrossSection.hh.

86 { pomeron_Gamma = apomeron_Gamma;}
void G4PomeronCrossSection::Pomeron_Gamma_Hard ( G4double  apomeron_Gamma_Hard)
inline

Definition at line 91 of file G4PomeronCrossSection.hh.

91 { pomeron_Gamma_Hard = apomeron_Gamma_Hard;}
void G4PomeronCrossSection::Pomeron_Rsquare ( G4double  apomeron_Rsquare)
inline

Definition at line 88 of file G4PomeronCrossSection.hh.

88 { pomeron_Rsquare = apomeron_Rsquare;}
void G4PomeronCrossSection::Pomeron_S ( G4double  apomeron_S)
inline

Definition at line 85 of file G4PomeronCrossSection.hh.

85 { pomeron_S = apomeron_S;}
void G4PomeronCrossSection::Setgamma ( const G4double  agam)

Definition at line 183 of file G4PomeronCrossSection.cc.

184 {
185  pomeron_Gamma=agam/GeV/GeV;
186 }
static constexpr double GeV
Definition: G4SIunits.hh:217
G4double G4PomeronCrossSection::SoftEikonal ( G4double  s,
G4double  impactsquare 
)

Definition at line 315 of file G4PomeronCrossSection.cc.

316 {
317  return Zsoft(S)/2*G4Exp(-impactsquare/LambdaSoft(S)/hbarc_squared/4);
318 }
double S(double temp)
static constexpr double hbarc_squared
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183

Here is the call graph for this function:


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