source: trunk/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh @ 1199

Last change on this file since 1199 was 1196, checked in by garnier, 15 years ago

update CVS release candidate geant4.9.3.01

File size: 5.3 KB
Line 
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: G4PomeronCrossSection.hh,v 1.3 2006/06/29 20:55:19 gunter Exp $
30// GEANT4 tag $Name: geant4-09-03-cand-01 $
31//
32#include "G4Proton.hh"
33#include "G4Neutron.hh"
34
35#include "G4PionPlus.hh"
36#include "G4PionMinus.hh"
37#include "G4PionZero.hh"
38
39#include "G4KaonPlus.hh"
40#include "G4KaonMinus.hh"
41#include "G4KaonZero.hh"
42#include "G4KaonZeroShort.hh"
43#include "G4KaonZeroLong.hh"
44#include "G4Gamma.hh"
45
46class G4PomeronCrossSection
47{
48
49  public:
50        G4PomeronCrossSection(const G4ParticleDefinition * );
51        G4PomeronCrossSection(const G4Proton * );
52        G4PomeronCrossSection(const G4Neutron * );
53
54        G4PomeronCrossSection(const G4PionPlus * );
55        G4PomeronCrossSection(const G4PionMinus * );
56        G4PomeronCrossSection(const G4PionZero * );
57
58        G4PomeronCrossSection(const G4KaonPlus * );
59        G4PomeronCrossSection(const G4KaonMinus * );
60        G4PomeronCrossSection(const G4KaonZero * );
61        G4PomeronCrossSection(const G4KaonZeroLong * );
62        G4PomeronCrossSection(const G4KaonZeroShort * );
63
64        G4PomeronCrossSection(const G4Gamma * );
65
66        ~G4PomeronCrossSection();
67//                                      s = (center of mass energy)**2 
68        G4double GetTotalCrossSection(const G4double s);
69        G4double GetDiffractiveCrossSection(const G4double s);
70        G4double GetElasticCrossSection(const G4double s);
71        G4double GetInelasticCrossSection(const G4double s);
72
73        G4double GetTotalProbability(const G4double s, 
74                                  const G4double impactsquare);
75        G4double GetDiffractiveProbability(const G4double s,
76                                        const G4double impactsquare);
77        G4double GetNondiffractiveProbability(const G4double s,
78                                        const G4double impactsquare);
79        G4double GetElasticProbability(const G4double s,
80                                    const G4double impactsquare);
81
82        G4double GetInelasticProbability(const G4double s, 
83                                      const G4double impactsquare);
84                                     
85        G4double GetCutPomeronProbability(const G4double s,
86                        const G4double impactsquare, const G4int nPomerons);
87       
88        void Setgamma(const G4double agam); // temporary only! GF.
89        G4double SoftEikonal(G4double s, G4double impactsquare);
90        G4double HardEikonal(G4double s, G4double impactsquare);
91       
92        void Pomeron_S(G4double apomeron_S){ pomeron_S = apomeron_S;}
93        void Pomeron_Gamma(G4double apomeron_Gamma){ pomeron_Gamma = apomeron_Gamma;}
94        void Pomeron_C(G4double apomeron_C){ pomeron_C = apomeron_C;}
95        void Pomeron_Rsquare(G4double apomeron_Rsquare){ pomeron_Rsquare = apomeron_Rsquare;}
96        void Pomeron_Alpha(G4double apomeron_Alpha){ pomeron_Alpha = apomeron_Alpha;}
97        void Pomeron_Alphaprime(G4double apomeron_Alphaprime){ pomeron_Alphaprime = apomeron_Alphaprime;}
98        void Pomeron_Gamma_Hard(G4double apomeron_Gamma_Hard){ pomeron_Gamma_Hard = apomeron_Gamma_Hard;}
99        void Pomeron_Alpha_Hard(G4double apomeron_Alpha_Hard){ pomeron_Alpha_Hard = apomeron_Alpha_Hard;}
100
101  private: 
102        G4double PowerSoft(const G4double s);
103        G4double PowerHard(const G4double s);
104        G4double LambdaSoft(const G4double s);
105        G4double LambdaHard(const G4double s);
106        G4double Zsoft(const G4double s);
107        G4double Zhard(const G4double s);
108 
109        G4PomeronCrossSection();
110        void InitForNucleon();
111        void InitForPion();
112        void InitForKaon();
113        void InitForGamma();
114       
115        G4double Expand(G4double z);
116        inline G4double Z(const G4double Scms);
117        inline G4double SigP(const G4double Scms);
118        inline G4double Power(const G4double Scms);
119        inline G4double Lambda(const G4double s);
120        inline G4double Eikonal(const G4double s,const G4double impactsquare);
121       
122        G4double pomeron_S;
123        G4double pomeron_Gamma;
124        G4double pomeron_C;
125        G4double pomeron_Rsquare;
126        G4double pomeron_Alpha;
127        G4double pomeron_Alphaprime;
128        G4double pomeron_Gamma_Hard;
129        G4double pomeron_Alpha_Hard;
130       
131
132};
133#endif
Note: See TracBrowser for help on using the repository browser.