Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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() [1/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4ParticleDefinition particle)

Definition at line 46 of file G4PomeronCrossSection.cc.

47 {
48 G4int Encoding = std::abs(particle->GetPDGEncoding());
49
50 if (std::abs(particle->GetBaryonNumber())!=0)
51 InitForNucleon();
52 else if (Encoding/100== 3 || Encoding/10 == 3)
53 InitForKaon();
54 else
55 InitForPion();
56 }
int G4int
Definition: G4Types.hh:66

Referenced by G4PomeronCrossSection().

◆ G4PomeronCrossSection() [2/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Proton )

Definition at line 60 of file G4PomeronCrossSection.cc.

61{
62 InitForNucleon();
63}

◆ G4PomeronCrossSection() [3/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Neutron )

Definition at line 64 of file G4PomeronCrossSection.cc.

65{
66 InitForNucleon();
67}

◆ G4PomeronCrossSection() [4/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionPlus )

Definition at line 69 of file G4PomeronCrossSection.cc.

70{
71 InitForPion();
72}

◆ G4PomeronCrossSection() [5/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionMinus )

Definition at line 73 of file G4PomeronCrossSection.cc.

74{
75 InitForPion();
76}

◆ G4PomeronCrossSection() [6/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionZero )

Definition at line 77 of file G4PomeronCrossSection.cc.

78{
79 InitForPion();
80}

◆ G4PomeronCrossSection() [7/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonPlus )

Definition at line 82 of file G4PomeronCrossSection.cc.

83{
84 InitForKaon();
85}

◆ G4PomeronCrossSection() [8/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonMinus )

Definition at line 86 of file G4PomeronCrossSection.cc.

87{
88 InitForKaon();
89}

◆ G4PomeronCrossSection() [9/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZero )

Definition at line 90 of file G4PomeronCrossSection.cc.

91{
92 InitForKaon();
93}

◆ G4PomeronCrossSection() [10/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroLong )

Definition at line 94 of file G4PomeronCrossSection.cc.

95{
96 InitForKaon();
97}

◆ G4PomeronCrossSection() [11/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroShort )

Definition at line 98 of file G4PomeronCrossSection.cc.

99{
100 InitForKaon();
101}

◆ G4PomeronCrossSection() [12/12]

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Gamma )

Definition at line 102 of file G4PomeronCrossSection.cc.

103{
104 InitForGamma();
105}

◆ ~G4PomeronCrossSection()

G4PomeronCrossSection::~G4PomeronCrossSection ( )

Definition at line 42 of file G4PomeronCrossSection.cc.

43{;}

Member Function Documentation

◆ GetCutPomeronProbability()

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

Definition at line 165 of file G4PomeronCrossSection.cc.

167{
168 G4double factorial=G4Pow::GetInstance()->factorial(nPomerons);
169
170 return std::exp(-2*Eikonal(S,impactsquare))/pomeron_C*
171 std::pow(2*Eikonal(S,impactsquare),nPomerons)/factorial;
172}
double G4double
Definition: G4Types.hh:64
static G4Pow * GetInstance()
Definition: G4Pow.cc:50
G4double factorial(G4int Z)
Definition: G4Pow.hh:190

Referenced by G4QGSParticipants::SelectInteractions().

◆ GetDiffractiveCrossSection()

G4double G4PomeronCrossSection::GetDiffractiveCrossSection ( const G4double  s)

Definition at line 119 of file G4PomeronCrossSection.cc.

120{
121 return ( pomeron_C -1) * GetElasticCrossSection(S);
122}
G4double GetElasticCrossSection(const G4double s)

◆ GetDiffractiveProbability()

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

Definition at line 137 of file G4PomeronCrossSection.cc.

139{
140 return (pomeron_C-1)/pomeron_C *
141 (GetTotalProbability(S,impactsquare) -
142 GetNondiffractiveProbability(S,impactsquare));
143}
G4double GetNondiffractiveProbability(const G4double s, const G4double impactsquare)
G4double GetTotalProbability(const G4double s, const G4double impactsquare)

Referenced by GetInelasticProbability(), and G4QGSParticipants::SelectInteractions().

◆ GetElasticCrossSection()

G4double G4PomeronCrossSection::GetElasticCrossSection ( const G4double  s)

Definition at line 114 of file G4PomeronCrossSection.cc.

115{
116 return SigP(S)/pomeron_C *(Expand(Z(S)/2) - Expand(Z(S)));
117}

Referenced by GetDiffractiveCrossSection(), and GetInelasticCrossSection().

◆ GetElasticProbability()

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

Definition at line 151 of file G4PomeronCrossSection.cc.

153{
154 return (GetTotalProbability(S,impactsquare) -
155 GetInelasticProbability(S,impactsquare));
156}
G4double GetInelasticProbability(const G4double s, const G4double impactsquare)

◆ GetInelasticCrossSection()

G4double G4PomeronCrossSection::GetInelasticCrossSection ( const G4double  s)

Definition at line 124 of file G4PomeronCrossSection.cc.

125{
127}
G4double GetTotalCrossSection(const G4double s)

◆ GetInelasticProbability()

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

Definition at line 158 of file G4PomeronCrossSection.cc.

160{
161 return GetNondiffractiveProbability(S,impactsquare) +
162 GetDiffractiveProbability(S,impactsquare);
163}
G4double GetDiffractiveProbability(const G4double s, const G4double impactsquare)

Referenced by GetElasticProbability(), and G4QGSParticipants::SelectInteractions().

◆ GetNondiffractiveProbability()

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

Definition at line 145 of file G4PomeronCrossSection.cc.

147{
148 return (1-std::exp(-2*Eikonal(S,impactsquare)))/pomeron_C;
149}

Referenced by GetDiffractiveProbability(), and GetInelasticProbability().

◆ GetTotalCrossSection()

G4double G4PomeronCrossSection::GetTotalCrossSection ( const G4double  s)

Definition at line 107 of file G4PomeronCrossSection.cc.

108{
109 G4double FZ2= Expand(Z(S)/2);
110 return SigP(S) * FZ2;
111}

Referenced by GetInelasticCrossSection().

◆ GetTotalProbability()

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

Definition at line 131 of file G4PomeronCrossSection.cc.

133{
134 return 2/pomeron_C*(1-std::exp(-1*Eikonal(S,impactsquare)));
135}

Referenced by GetDiffractiveProbability(), and GetElasticProbability().

◆ HardEikonal()

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

Definition at line 313 of file G4PomeronCrossSection.cc.

314 {
315 return Zhard(S)/2*std::exp(-impactsquare/LambdaHard(S)/hbarc_squared/4);
316 }

◆ Pomeron_Alpha()

void G4PomeronCrossSection::Pomeron_Alpha ( G4double  apomeron_Alpha)
inline

Definition at line 95 of file G4PomeronCrossSection.hh.

95{ pomeron_Alpha = apomeron_Alpha;}

◆ Pomeron_Alpha_Hard()

void G4PomeronCrossSection::Pomeron_Alpha_Hard ( G4double  apomeron_Alpha_Hard)
inline

Definition at line 98 of file G4PomeronCrossSection.hh.

98{ pomeron_Alpha_Hard = apomeron_Alpha_Hard;}

◆ Pomeron_Alphaprime()

void G4PomeronCrossSection::Pomeron_Alphaprime ( G4double  apomeron_Alphaprime)
inline

Definition at line 96 of file G4PomeronCrossSection.hh.

96{ pomeron_Alphaprime = apomeron_Alphaprime;}

◆ Pomeron_C()

void G4PomeronCrossSection::Pomeron_C ( G4double  apomeron_C)
inline

Definition at line 93 of file G4PomeronCrossSection.hh.

93{ pomeron_C = apomeron_C;}

◆ Pomeron_Gamma()

void G4PomeronCrossSection::Pomeron_Gamma ( G4double  apomeron_Gamma)
inline

Definition at line 92 of file G4PomeronCrossSection.hh.

92{ pomeron_Gamma = apomeron_Gamma;}

◆ Pomeron_Gamma_Hard()

void G4PomeronCrossSection::Pomeron_Gamma_Hard ( G4double  apomeron_Gamma_Hard)
inline

Definition at line 97 of file G4PomeronCrossSection.hh.

97{ pomeron_Gamma_Hard = apomeron_Gamma_Hard;}

◆ Pomeron_Rsquare()

void G4PomeronCrossSection::Pomeron_Rsquare ( G4double  apomeron_Rsquare)
inline

Definition at line 94 of file G4PomeronCrossSection.hh.

94{ pomeron_Rsquare = apomeron_Rsquare;}

◆ Pomeron_S()

void G4PomeronCrossSection::Pomeron_S ( G4double  apomeron_S)
inline

Definition at line 91 of file G4PomeronCrossSection.hh.

91{ pomeron_S = apomeron_S;}

◆ Setgamma()

void G4PomeronCrossSection::Setgamma ( const G4double  agam)

Definition at line 175 of file G4PomeronCrossSection.cc.

176{
177 pomeron_Gamma=agam/GeV/GeV;
178}

◆ SoftEikonal()

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

Definition at line 308 of file G4PomeronCrossSection.cc.

309 {
310 return Zsoft(S)/2*std::exp(-impactsquare/LambdaSoft(S)/hbarc_squared/4);
311 }

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