source: trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPomeron.cc @ 1055

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

maj sur la beta de geant 4.9.3

File size: 5.0 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//
27// $Id: G4QPomeron.cc,v 1.3 2009/02/23 09:49:24 mkossov Exp $
28// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
29//
30// ------------------------------------------------------------
31//      GEANT 4 class implementation file
32//
33//      ---------------- G4QPomeron ----------------
34//      by Mikhail Kossov Oct, 2006
35//      class for a Pomeron used by Parton String Models
36//   For comparison mirror member functions are taken from G4 class:
37//   G4PomeronCrossSection
38// ------------------------------------------------------------------
39// Short description: Pomeron is one of the possible vacuum pole (the
40// second is Oderon, but they are identical in the present model), by
41// which particle exchang in the ellastic scattering process. Strings,
42// which appear as a cut of the Pomeron (optic theorem connects the
43// amplitude of scattering at zero angle with the total inelastic
44// cross-section), describe most of the processes at high energies.
45// ------------------------------------------------------------------
46
47#include "G4QPomeron.hh"
48
49G4QPomeron::G4QPomeron(G4int PDG)
50{
51  pomeron_Alpha=  1.0808;
52  pomeron_Alphaprime = 0.25/GeV/GeV;     
53  pomeron_Gamma_Hard = 0.0002/GeV/GeV;
54  pomeron_Alpha_Hard = 1.47;
55  G4int aP = std::abs(PDG);
56  if     (aP==2212||aP==2112)                   InitForNucleon();
57  else if(PDG==111||aP==211)                    InitForPion();
58  else if(PDG==130||PDG==310||aP==311||aP==321) InitForKaon();
59  else if(PDG==22)                              InitForGamma();
60  else if(aP==3122||aP==3222||aP==3212||aP==3112||aP==3322||aP==3312||aP==3334)
61                                                InitForNucleon();
62  else
63  {
64    G4cout<<"-Warning-G4QPomeron is initialised for PDGCode="<<PDG<<" as a pion"<<G4endl;
65    InitForPion();
66  }
67}
68
69G4double G4QPomeron::GetCutPomeronProbability(const G4double s,const G4double imp2,
70                                              const G4int nPom)
71{
72  G4double f=1; if(nPom>1) for(G4int i=2; i<= nPom; i++) f*=i; // Calculate factorial
73  G4double e=Eikonal(s,imp2); e+=e;                            // Doubled Eikonal
74  return std::exp(-e)*std::pow(e,nPom)/pomeron_C/f;
75}
76
77void G4QPomeron::InitForNucleon()
78{
79  // pomeron_S=  3.0*GeV*GeV; 
80  pomeron_S=  2.7*GeV*GeV;
81  // pomeron_Gamma=  2.16/GeV/GeV;      // ? M.K.
82  // pomeron_Gamma=  3.96/GeV/GeV;      // ? M.K.
83  pomeron_Gamma   = (2.6+3.96)/GeV/GeV; // ? M.K.
84  pomeron_C       = 1.4;
85  pomeron_Rsquare = 3.56/GeV/GeV;
86  /////pomeron_Alpha=  0.9808;          // This is very strange M.K. (was in GHAD QGSM)
87  // If pomeron_Gamma_Hard!=0 to fit total pp XS use pomeron_Gamma_Soft=2.35/GeV/GeV ? M.K.
88}
89
90void G4QPomeron::InitForPion()
91{
92  pomeron_S       = 1.5*GeV*GeV;
93  //pomeron_Gamma = 1.46/GeV/GeV;  // ? M.K.
94  pomeron_Gamma   = 2.17/GeV/GeV;  // ? M.K.
95  pomeron_C       = 1.6;
96  pomeron_Rsquare = 2.36/GeV/GeV;
97}
98
99void G4QPomeron::InitForKaon()
100{
101  pomeron_S       = 2.3*GeV*GeV;
102  //pomeron_Gamma = 1.31/GeV/GeV;  // ? M.K.
103  pomeron_Gamma   = 1.92/GeV/GeV;  // ? M.K.
104  pomeron_C       = 1.8;
105  pomeron_Rsquare = 1.96/GeV/GeV;
106}
107
108void G4QPomeron::InitForGamma()
109{
110  pomeron_S       = 1.7*GeV*GeV;
111  //pomeron_Gamma =  1.42/GeV/GeV; // ? M.K.
112  pomeron_Gamma   = 2.07/GeV/GeV;  // ? M.K.
113  pomeron_C       = 1.7;
114  pomeron_Rsquare = 2.16/GeV/GeV;
115}
116
117G4double G4QPomeron::Expand(G4double z)
118{
119
120 G4double sum=1.;
121 G4double current=1.;
122 for(G4int j=2; j<21; j++)
123 {
124   current *= -z*(j-1)/j/j;
125   sum+=current;
126 }
127 return sum;
128}
129
130
131
132
133
134
135
136
137   
138
139
Note: See TracBrowser for help on using the repository browser.