Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4PomeronCrossSection.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26#ifndef G4PomeronCrossSection_h
27#define G4PomeronCrossSection_h 1
28//
29// $Id$
30//
31#include "G4Proton.hh"
32#include "G4Neutron.hh"
33
34#include "G4PionPlus.hh"
35#include "G4PionMinus.hh"
36#include "G4PionZero.hh"
37
38#include "G4KaonPlus.hh"
39#include "G4KaonMinus.hh"
40#include "G4KaonZero.hh"
41#include "G4KaonZeroShort.hh"
42#include "G4KaonZeroLong.hh"
43#include "G4Gamma.hh"
44
46{
47
48 public:
52
56
62
64
66// s = (center of mass energy)**2
71
73 const G4double impactsquare);
75 const G4double impactsquare);
77 const G4double impactsquare);
79 const G4double impactsquare);
80
82 const G4double impactsquare);
83
85 const G4double impactsquare, const G4int nPomerons);
86
87 void Setgamma(const G4double agam); // temporary only! GF.
88 G4double SoftEikonal(G4double s, G4double impactsquare);
89 G4double HardEikonal(G4double s, G4double impactsquare);
90
91 void Pomeron_S(G4double apomeron_S){ pomeron_S = apomeron_S;}
92 void Pomeron_Gamma(G4double apomeron_Gamma){ pomeron_Gamma = apomeron_Gamma;}
93 void Pomeron_C(G4double apomeron_C){ pomeron_C = apomeron_C;}
94 void Pomeron_Rsquare(G4double apomeron_Rsquare){ pomeron_Rsquare = apomeron_Rsquare;}
95 void Pomeron_Alpha(G4double apomeron_Alpha){ pomeron_Alpha = apomeron_Alpha;}
96 void Pomeron_Alphaprime(G4double apomeron_Alphaprime){ pomeron_Alphaprime = apomeron_Alphaprime;}
97 void Pomeron_Gamma_Hard(G4double apomeron_Gamma_Hard){ pomeron_Gamma_Hard = apomeron_Gamma_Hard;}
98 void Pomeron_Alpha_Hard(G4double apomeron_Alpha_Hard){ pomeron_Alpha_Hard = apomeron_Alpha_Hard;}
99
100 private:
101 G4double PowerSoft(const G4double s);
102 G4double PowerHard(const G4double s);
103 G4double LambdaSoft(const G4double s);
104 G4double LambdaHard(const G4double s);
105 G4double Zsoft(const G4double s);
106 G4double Zhard(const G4double s);
107
109 void InitForNucleon();
110 void InitForPion();
111 void InitForKaon();
112 void InitForGamma();
113
114 G4double Expand(G4double z);
115 inline G4double Z(const G4double Scms);
116 inline G4double SigP(const G4double Scms);
117 inline G4double Power(const G4double Scms);
118 inline G4double Lambda(const G4double s);
119 inline G4double Eikonal(const G4double s,const G4double impactsquare);
120
121 G4double pomeron_Alpha;
122 G4double pomeron_Alpha_Hard;
123 G4double pomeron_Alphaprime;
124 G4double pomeron_C;
125 G4double pomeron_Gamma;
126 G4double pomeron_Gamma_Hard;
127 G4double pomeron_Rsquare;
128 G4double pomeron_S;
129
130
131};
132#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void Pomeron_Gamma_Hard(G4double apomeron_Gamma_Hard)
G4double GetTotalCrossSection(const G4double s)
void Pomeron_Gamma(G4double apomeron_Gamma)
G4double GetElasticCrossSection(const G4double s)
void Pomeron_Alpha(G4double apomeron_Alpha)
void Pomeron_C(G4double apomeron_C)
G4double HardEikonal(G4double s, G4double impactsquare)
void Pomeron_Alpha_Hard(G4double apomeron_Alpha_Hard)
void Setgamma(const G4double agam)
G4double GetNondiffractiveProbability(const G4double s, const G4double impactsquare)
G4double GetInelasticProbability(const G4double s, const G4double impactsquare)
G4double GetDiffractiveProbability(const G4double s, const G4double impactsquare)
void Pomeron_S(G4double apomeron_S)
G4double GetCutPomeronProbability(const G4double s, const G4double impactsquare, const G4int nPomerons)
G4double GetInelasticCrossSection(const G4double s)
void Pomeron_Rsquare(G4double apomeron_Rsquare)
G4double SoftEikonal(G4double s, G4double impactsquare)
G4double GetDiffractiveCrossSection(const G4double s)
void Pomeron_Alphaprime(G4double apomeron_Alphaprime)
G4double GetElasticProbability(const G4double s, const G4double impactsquare)
G4double GetTotalProbability(const G4double s, const G4double impactsquare)