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  ) 

Definition at line 46 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection(), G4ParticleDefinition::GetBaryonNumber(), and G4ParticleDefinition::GetPDGEncoding().

Referenced by G4PomeronCrossSection().

00047     {
00048     G4int Encoding = std::abs(particle->GetPDGEncoding());
00049 
00050     if (std::abs(particle->GetBaryonNumber())!=0)
00051         InitForNucleon();
00052     else if (Encoding/100== 3 || Encoding/10 == 3)
00053         InitForKaon();
00054     else
00055         InitForPion();
00056     }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Proton  ) 

Definition at line 60 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00061 {
00062         InitForNucleon();
00063 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Neutron  ) 

Definition at line 64 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00065 {
00066         InitForNucleon();
00067 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionPlus  ) 

Definition at line 69 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00070 {
00071         InitForPion();
00072 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionMinus  ) 

Definition at line 73 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00074 {
00075         InitForPion();
00076 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4PionZero  ) 

Definition at line 77 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00078 {
00079         InitForPion();
00080 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonPlus  ) 

Definition at line 82 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00083 {
00084         InitForKaon();
00085 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonMinus  ) 

Definition at line 86 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00087 {
00088         InitForKaon();
00089 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZero  ) 

Definition at line 90 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00091 {
00092         InitForKaon();
00093 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroLong  ) 

Definition at line 94 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00095 {
00096         InitForKaon();
00097 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4KaonZeroShort  ) 

Definition at line 98 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00099 {
00100         InitForKaon();
00101 }

G4PomeronCrossSection::G4PomeronCrossSection ( const G4Gamma  ) 

Definition at line 102 of file G4PomeronCrossSection.cc.

References G4PomeronCrossSection().

00103 {
00104         InitForGamma();
00105 }

G4PomeronCrossSection::~G4PomeronCrossSection (  ) 

Definition at line 42 of file G4PomeronCrossSection.cc.

00043 {;}


Member Function Documentation

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

Definition at line 165 of file G4PomeronCrossSection.cc.

References G4Pow::factorial(), and G4Pow::GetInstance().

00167 {
00168         G4double factorial=G4Pow::GetInstance()->factorial(nPomerons);
00169          
00170         return std::exp(-2*Eikonal(S,impactsquare))/pomeron_C*
00171                 std::pow(2*Eikonal(S,impactsquare),nPomerons)/factorial;
00172 }

G4double G4PomeronCrossSection::GetDiffractiveCrossSection ( const G4double  s  ) 

Definition at line 119 of file G4PomeronCrossSection.cc.

References GetElasticCrossSection().

00120 {
00121         return ( pomeron_C -1) * GetElasticCrossSection(S);
00122 }

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

Definition at line 137 of file G4PomeronCrossSection.cc.

References GetNondiffractiveProbability(), and GetTotalProbability().

Referenced by GetInelasticProbability().

00139 {
00140         return (pomeron_C-1)/pomeron_C * 
00141                              (GetTotalProbability(S,impactsquare) -
00142                               GetNondiffractiveProbability(S,impactsquare));
00143 }

G4double G4PomeronCrossSection::GetElasticCrossSection ( const G4double  s  ) 

Definition at line 114 of file G4PomeronCrossSection.cc.

Referenced by GetDiffractiveCrossSection(), and GetInelasticCrossSection().

00115 {
00116         return SigP(S)/pomeron_C *(Expand(Z(S)/2) - Expand(Z(S)));
00117 }

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

Definition at line 151 of file G4PomeronCrossSection.cc.

References GetInelasticProbability(), and GetTotalProbability().

00153 {
00154         return (GetTotalProbability(S,impactsquare) -
00155                 GetInelasticProbability(S,impactsquare));
00156 }

G4double G4PomeronCrossSection::GetInelasticCrossSection ( const G4double  s  ) 

Definition at line 124 of file G4PomeronCrossSection.cc.

References GetElasticCrossSection(), and GetTotalCrossSection().

00125 {
00126         return GetTotalCrossSection(S) - GetElasticCrossSection(S);
00127 }

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

Definition at line 158 of file G4PomeronCrossSection.cc.

References GetDiffractiveProbability(), and GetNondiffractiveProbability().

Referenced by GetElasticProbability().

00160 {
00161         return GetNondiffractiveProbability(S,impactsquare) +
00162                 GetDiffractiveProbability(S,impactsquare);
00163 }

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

Definition at line 145 of file G4PomeronCrossSection.cc.

Referenced by GetDiffractiveProbability(), and GetInelasticProbability().

00147 {
00148         return (1-std::exp(-2*Eikonal(S,impactsquare)))/pomeron_C;
00149 }

G4double G4PomeronCrossSection::GetTotalCrossSection ( const G4double  s  ) 

Definition at line 107 of file G4PomeronCrossSection.cc.

Referenced by GetInelasticCrossSection().

00108 {
00109         G4double FZ2= Expand(Z(S)/2);
00110         return SigP(S) * FZ2;
00111 }

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

Definition at line 131 of file G4PomeronCrossSection.cc.

Referenced by GetDiffractiveProbability(), and GetElasticProbability().

00133 {
00134         return 2/pomeron_C*(1-std::exp(-1*Eikonal(S,impactsquare)));
00135 }

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

Definition at line 313 of file G4PomeronCrossSection.cc.

00314     {
00315     return Zhard(S)/2*std::exp(-impactsquare/LambdaHard(S)/hbarc_squared/4);
00316     }

void G4PomeronCrossSection::Pomeron_Alpha ( G4double  apomeron_Alpha  )  [inline]

Definition at line 95 of file G4PomeronCrossSection.hh.

00095 { pomeron_Alpha = apomeron_Alpha;}

void G4PomeronCrossSection::Pomeron_Alpha_Hard ( G4double  apomeron_Alpha_Hard  )  [inline]

Definition at line 98 of file G4PomeronCrossSection.hh.

00098 { pomeron_Alpha_Hard = apomeron_Alpha_Hard;}

void G4PomeronCrossSection::Pomeron_Alphaprime ( G4double  apomeron_Alphaprime  )  [inline]

Definition at line 96 of file G4PomeronCrossSection.hh.

00096 { pomeron_Alphaprime = apomeron_Alphaprime;}

void G4PomeronCrossSection::Pomeron_C ( G4double  apomeron_C  )  [inline]

Definition at line 93 of file G4PomeronCrossSection.hh.

00093 { pomeron_C = apomeron_C;}

void G4PomeronCrossSection::Pomeron_Gamma ( G4double  apomeron_Gamma  )  [inline]

Definition at line 92 of file G4PomeronCrossSection.hh.

00092 { pomeron_Gamma = apomeron_Gamma;}

void G4PomeronCrossSection::Pomeron_Gamma_Hard ( G4double  apomeron_Gamma_Hard  )  [inline]

Definition at line 97 of file G4PomeronCrossSection.hh.

00097 { pomeron_Gamma_Hard = apomeron_Gamma_Hard;}

void G4PomeronCrossSection::Pomeron_Rsquare ( G4double  apomeron_Rsquare  )  [inline]

Definition at line 94 of file G4PomeronCrossSection.hh.

00094 { pomeron_Rsquare = apomeron_Rsquare;}

void G4PomeronCrossSection::Pomeron_S ( G4double  apomeron_S  )  [inline]

Definition at line 91 of file G4PomeronCrossSection.hh.

00091 { pomeron_S = apomeron_S;}

void G4PomeronCrossSection::Setgamma ( const G4double  agam  ) 

Definition at line 175 of file G4PomeronCrossSection.cc.

00176 {
00177         pomeron_Gamma=agam/GeV/GeV;
00178 }

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

Definition at line 308 of file G4PomeronCrossSection.cc.

00309     {
00310     return Zsoft(S)/2*std::exp(-impactsquare/LambdaSoft(S)/hbarc_squared/4);
00311     }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:58 2013 for Geant4 by  doxygen 1.4.7