Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QProbability Class Reference

#include <G4QProbability.hh>

Public Member Functions

 G4QProbability (G4int PDGCode=2212)
 
 ~G4QProbability ()
 
void SetS0 (G4double aS0)
 
void SetPom_Gamma (G4double aPom_Gamma)
 
void SetGamma (const G4double aGam)
 
void SetPom_C (G4double aPom_C)
 
void SetPom_R2 (G4double aPom_R2)
 
void SetPom_Alpha (G4double aPom_Alpha)
 
void SetPom_Alphaprime (G4double aPom_Alphaprime)
 
G4double GetQexTotProbability (const G4double s, const G4double imp2)
 
G4double GetQexCohProbability (const G4double s, const G4double imp2)
 
G4double GetQexDiffProbability (const G4double s, const G4double imp2)
 
G4double GetQexDubDiffProbability (const G4double s, const G4double imp2)
 
G4double GetQexSinDiffProbability (const G4double s, const G4double imp2)
 
G4double GetQexAbsProbability (const G4double s, const G4double imp2)
 
G4double GetQexElProbability (const G4double s, const G4double imp2)
 
G4double GetQexInelProbability (const G4double s, const G4double imp2)
 
G4double GetPomTotProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomCohProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomDiffProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomDubDiffProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomSinDiffProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomAbsProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomElProbability (const G4double s_value, const G4double imp2)
 
G4double GetPomInelProbability (const G4double s_value, const G4double imp2)
 
G4double GetCutPomProbability (const G4double s, const G4double ip2, const G4int nPom)
 
G4double GetCutQexProbability (const G4double s, const G4double ip2, const G4int nQex)
 

Detailed Description

Definition at line 52 of file G4QProbability.hh.

Constructor & Destructor Documentation

◆ G4QProbability()

G4QProbability::G4QProbability ( G4int  PDGCode = 2212)

Definition at line 50 of file G4QProbability.cc.

51{
52 S0 = 1.*GeV*GeV; // Must be a constant (just GeV^2 unit !)
53 pom_Alpha = 1.0808; // Must be the same for all hadrons
54 pom_Alphaprime = 0.25/GeV/GeV;
55 qex_Gamma = 9./GeV/GeV;
56 qex_R2 = 27./GeV/GeV;
57 qex_Alphaprime = 1.5/GeV/GeV;
58
59 G4int aP = std::abs(PDG);
60 if (PDG==2212 || PDG==2112) InitForNucleon();
61 else if(PDG==111 || aP==211) InitForPion();
62 else if(PDG==130 || PDG==310 || aP==311 || aP==321) InitForKaon();
63 else if(PDG==22) InitForGamma();
64 else if(PDG > 3000) InitForHyperon();
65 else if(PDG <-2000) InitForAntiBaryon();
66 else
67 {
68 G4cout<<"-Warning-G4QProbability is initialized for PDGCode="<<PDG<<" as Pion"<<G4endl;
69 InitForPion();
70 }
71 pom_sqC=std::sqrt(pom_C);
72}
int G4int
Definition: G4Types.hh:66
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout

◆ ~G4QProbability()

G4QProbability::~G4QProbability ( )
inline

Definition at line 56 of file G4QProbability.hh.

56{;}

Member Function Documentation

◆ GetCutPomProbability()

G4double G4QProbability::GetCutPomProbability ( const G4double  s,
const G4double  ip2,
const G4int  nPom 
)

Definition at line 74 of file G4QProbability.cc.

76{
77 static const G4int nft=11;
78 static const G4int nf1=nft-1;
79 static const G4double ft[nft]={1.,1.,2.,6.,24.,120.,720.,5040.,40320.,362880.,3628800.};
80 if(nPom<0) return 0.;
81 G4double f=ft[nf1];
82 if(nPom<nft) f=ft[nPom];
83 else for(G4int i=nft; i<= nPom; i++) f*=i; // Calculate factorial for high nPom
84 G4double e=PomEikonal(s_value,imp2); e+=e; // Doubled Eikonal
85 return std::exp(-e)*std::pow(e,nPom)/pom_C/f;
86}
double G4double
Definition: G4Types.hh:64

Referenced by G4QFragmentation::G4QFragmentation(), and G4QIonIonCollision::G4QIonIonCollision().

◆ GetCutQexProbability()

G4double G4QProbability::GetCutQexProbability ( const G4double  s,
const G4double  ip2,
const G4int  nQex 
)

Definition at line 88 of file G4QProbability.cc.

90{
91 static const G4int nft=11;
92 static const G4int nf1=nft-1;
93 static const G4double ft[nft]={1.,1.,2.,6.,24.,120.,720.,5040.,40320.,362880.,3628800.};
94 if(nQex<0) return 0.;
95 G4double f=ft[nf1];
96 if(nQex<nft) f=ft[nQex];
97 else for(G4int i=nft; i<= nQex; i++) f*=i; // Calculate factorial for high nPom
98 G4double e=QexEikonal(s_value,imp2); e+=e; // Doubled Eikonal
99 return std::exp(-e)*std::pow(e,nQex)/f;
100}

◆ GetPomAbsProbability()

G4double G4QProbability::GetPomAbsProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 84 of file G4QProbability.hh.

85 {return (1.-std::exp(-2*PomEikonal(s_value,imp2)))/pom_C;}

Referenced by GetPomInelProbability().

◆ GetPomCohProbability()

G4double G4QProbability::GetPomCohProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 76 of file G4QProbability.hh.

77 {return sqr(1.-std::exp(-PomEikonal(s_value,imp2)))/pom_C;}
T sqr(const T &x)
Definition: templates.hh:145

Referenced by GetPomDiffProbability(), GetPomDubDiffProbability(), GetPomElProbability(), and GetPomSinDiffProbability().

◆ GetPomDiffProbability()

G4double G4QProbability::GetPomDiffProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 78 of file G4QProbability.hh.

79 {return ((pom_C-1.)/pom_C)*GetPomCohProbability(s_value,imp2);}
G4double GetPomCohProbability(const G4double s_value, const G4double imp2)

Referenced by G4QFragmentation::G4QFragmentation(), G4QIonIonCollision::G4QIonIonCollision(), and GetPomInelProbability().

◆ GetPomDubDiffProbability()

G4double G4QProbability::GetPomDubDiffProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 80 of file G4QProbability.hh.

81 {return (sqr(pom_sqC-1.)/pom_C)*GetPomCohProbability(s_value,imp2);}

◆ GetPomElProbability()

G4double G4QProbability::GetPomElProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 86 of file G4QProbability.hh.

87 {return GetPomCohProbability(s_value,imp2)/pom_C;}

◆ GetPomInelProbability()

G4double G4QProbability::GetPomInelProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 88 of file G4QProbability.hh.

89 {return GetPomDiffProbability(s_value,imp2) + GetPomAbsProbability(s_value,imp2);}
G4double GetPomDiffProbability(const G4double s_value, const G4double imp2)
G4double GetPomAbsProbability(const G4double s_value, const G4double imp2)

Referenced by G4QFragmentation::G4QFragmentation(), and G4QIonIonCollision::G4QIonIonCollision().

◆ GetPomSinDiffProbability()

G4double G4QProbability::GetPomSinDiffProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 82 of file G4QProbability.hh.

83 {return ((pom_sqC-1.)/pom_C)*GetPomCohProbability(s_value,imp2);}

◆ GetPomTotProbability()

G4double G4QProbability::GetPomTotProbability ( const G4double  s_value,
const G4double  imp2 
)
inline

Definition at line 74 of file G4QProbability.hh.

75 {return 2*(1.-std::exp(-PomEikonal(s_value,imp2)))/pom_C;}

◆ GetQexAbsProbability()

G4double G4QProbability::GetQexAbsProbability ( const G4double  s,
const G4double  imp2 
)

◆ GetQexCohProbability()

G4double G4QProbability::GetQexCohProbability ( const G4double  s,
const G4double  imp2 
)

◆ GetQexDiffProbability()

G4double G4QProbability::GetQexDiffProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 187 of file G4QProbability.cc.

188{
189 return GetQexDubDiffProbability(s_value,imp2)+2*GetQexSinDiffProbability(s_value,imp2);
190}
G4double GetQexDubDiffProbability(const G4double s, const G4double imp2)
G4double GetQexSinDiffProbability(const G4double s, const G4double imp2)

◆ GetQexDubDiffProbability()

G4double G4QProbability::GetQexDubDiffProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 171 of file G4QProbability.cc.

172{
173 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
174 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
175 G4double Amp=sqr(pom_sqC-1.)*(ExpQex*(1.-ExpPom) + ExpPom*(1.-ExpQex))/pom_C;
176 return Amp*Amp;
177}

Referenced by GetQexDiffProbability().

◆ GetQexElProbability()

G4double G4QProbability::GetQexElProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 163 of file G4QProbability.cc.

164{
165 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
166 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
167 G4double Amp=(ExpQex*(1.-ExpPom) + sqr(pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
168 return Amp*Amp;
169}

◆ GetQexInelProbability()

G4double G4QProbability::GetQexInelProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 192 of file G4QProbability.cc.

193{
194 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
195 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
196 G4double Amp=sqr(pom_sqC-1.)*(ExpQex*(1.-ExpPom) + ExpPom*(1.-ExpQex))/pom_C;
197 return Amp+Amp-Amp*Amp;
198}

◆ GetQexSinDiffProbability()

G4double G4QProbability::GetQexSinDiffProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 179 of file G4QProbability.cc.

180{
181 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
182 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
183 G4double Amp=(pom_sqC-1.)*(ExpQex*(1.-ExpPom) - (pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
184 return Amp*Amp;
185}

Referenced by GetQexDiffProbability().

◆ GetQexTotProbability()

G4double G4QProbability::GetQexTotProbability ( const G4double  s,
const G4double  imp2 
)

Definition at line 155 of file G4QProbability.cc.

156{
157 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
158 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
159 G4double Amp=(ExpQex*(1.-ExpPom) + sqr(pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
160 return Amp+Amp;
161}

◆ SetGamma()

void G4QProbability::SetGamma ( const G4double  aGam)
inline

Definition at line 59 of file G4QProbability.hh.

59{pom_Gamma=aGam/CLHEP::GeV/CLHEP::GeV;}// @@ Temporary?

◆ SetPom_Alpha()

void G4QProbability::SetPom_Alpha ( G4double  aPom_Alpha)
inline

Definition at line 62 of file G4QProbability.hh.

62{pom_Alpha = aPom_Alpha;}

◆ SetPom_Alphaprime()

void G4QProbability::SetPom_Alphaprime ( G4double  aPom_Alphaprime)
inline

Definition at line 63 of file G4QProbability.hh.

63{pom_Alphaprime = aPom_Alphaprime;}

◆ SetPom_C()

void G4QProbability::SetPom_C ( G4double  aPom_C)
inline

Definition at line 60 of file G4QProbability.hh.

60{pom_C = aPom_C;}

◆ SetPom_Gamma()

void G4QProbability::SetPom_Gamma ( G4double  aPom_Gamma)
inline

Definition at line 58 of file G4QProbability.hh.

58{pom_Gamma = aPom_Gamma;}

◆ SetPom_R2()

void G4QProbability::SetPom_R2 ( G4double  aPom_R2)
inline

Definition at line 61 of file G4QProbability.hh.

61{pom_R2 = aPom_R2;}

◆ SetS0()

void G4QProbability::SetS0 ( G4double  aS0)
inline

Definition at line 57 of file G4QProbability.hh.

57{S0 = aS0;}

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