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

Last change on this file since 836 was 819, checked in by garnier, 16 years ago

import all except CVS

File size: 4.5 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.2 2006/12/12 11:02:22 mkossov Exp $
28// GEANT4 tag $Name:  $
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
40#include "G4QPomeron.hh"
41
42G4QPomeron::G4QPomeron(G4int PDG)
43{
44         pomeron_Alpha=         1.0808;
45         pomeron_Alphaprime =   0.25/GeV/GeV;     
46  pomeron_Gamma_Hard = 0.0002/GeV/GeV;
47  pomeron_Alpha_Hard = 1.47;
48  G4int aP = std::abs(PDG);
49  if     (aP==2212||aP==2112)                   InitForNucleon();
50  else if(PDG==111||aP==211)                    InitForPion();
51  else if(PDG==130||PDG==310||aP==311||aP==321) InitForKaon();
52  else if(PDG==22)                              InitForGamma();
53  else if(aP==3122||aP==3222||aP==3212||aP==3112||aP==3322||aP==3312||aP==3334)
54                                                InitForNucleon();
55  else
56                {
57    G4cout<<"-Warning-G4QPomeron is initialised for PDGCode="<<PDG<<" as a pion"<<G4endl;
58    InitForPion();
59  }
60}
61
62G4double G4QPomeron::GetCutPomeronProbability(const G4double s,const G4double imp2,
63                                              const G4int nPom)
64{
65         G4double f=1; if(nPom>1) for(G4int i=2; i<= nPom; i++) f*=i; // Calculate factorial
66  G4double e=Eikonal(s,imp2); e+=e;                            // Doubled Eikonal
67        return std::exp(-e)*std::pow(e,nPom)/pomeron_C/f;
68}
69
70void G4QPomeron::InitForNucleon()
71{
72  // pomeron_S=         3.0*GeV*GeV; 
73         pomeron_S=             2.7*GeV*GeV;
74  //    pomeron_Gamma=          2.16/GeV/GeV;      // ? M.K.
75  //    pomeron_Gamma=          3.96/GeV/GeV;      // ? M.K.
76         pomeron_Gamma   =      (2.6+3.96)/GeV/GeV; // ? M.K.
77         pomeron_C       =      1.4;
78         pomeron_Rsquare =      3.56/GeV/GeV;
79         /////pomeron_Alpha=            0.9808;          // This is very strange M.K. (was in GHAD QGSM)
80  // If pomeron_Gamma_Hard!=0 to fit total pp XS use pomeron_Gamma_Soft=2.35/GeV/GeV ? M.K.
81}
82
83void G4QPomeron::InitForPion()
84{
85         pomeron_S       =      1.5*GeV*GeV;
86  //pomeron_Gamma =     1.46/GeV/GeV;  // ? M.K.
87         pomeron_Gamma   =      2.17/GeV/GeV;  // ? M.K.
88         pomeron_C       =      1.6;
89         pomeron_Rsquare =      2.36/GeV/GeV;
90}
91
92void G4QPomeron::InitForKaon()
93{
94         pomeron_S       =      2.3*GeV*GeV;
95  //pomeron_Gamma =     1.31/GeV/GeV;  // ? M.K.
96         pomeron_Gamma   = 1.92/GeV/GeV;  // ? M.K.
97         pomeron_C       =      1.8;
98         pomeron_Rsquare =      1.96/GeV/GeV;
99}
100
101void G4QPomeron::InitForGamma()
102{
103         pomeron_S       =      1.7*GeV*GeV;
104  //pomeron_Gamma =             1.42/GeV/GeV; // ? M.K.
105         pomeron_Gamma   =      2.07/GeV/GeV;  // ? M.K.
106         pomeron_C       =      1.7;
107         pomeron_Rsquare =      2.16/GeV/GeV;
108}
109
110G4double G4QPomeron::Expand(G4double z)
111{
112
113        G4double sum=1.;
114        G4double current=1.;
115        for(G4int j=2; j<21; j++)
116        {
117                 current *= -z*(j-1)/j/j;
118                 sum+=current;
119        }
120        return sum;
121}
122
123
124
125
126
127
128
129
130   
131
132
Note: See TracBrowser for help on using the repository browser.