Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4GamP2PPi0AngDst.cc
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 // $Id: G4GamP2PPi0AngDst.cc 67433 2013-02-20 21:27:31Z mkelsey $
27 // Author: Dennis Wright (SLAC)
28 // Date: 28 January 2013
29 //
30 // Description: implementation of numerically integrated angular distribution
31 // class for gamma p -> p pi0 reaction
32 //
33 // 20130219 Inherit from templated base, move arrays to namespace statics
34 
35 #include "G4GamP2PPi0AngDst.hh"
36 
37 namespace {
38  static const G4double eBins[15] =
39  { 0.145, 0.169, 0.240, 0.300, 0.360, 0.420, 0.480,
40  0.700, 1.050, 1.238, 1.400, 1.575, 1.825, 2.450,
41  2.900 };
42 
43  static const G4double angleBins[19] =
44  { -1.000, -0.985, -0.940, -0.866, -0.766, -0.643, -0.500, -0.342, -0.174,
45  0.000, 0.174, 0.342, 0.500, 0.643, 0.766, 0.866, 0.940, 0.985,
46  1.000 };
47 
48  static const G4double integralTable[15][19] = {
49  {0.0000, 0.0075, 0.0300, 0.0670, 0.1170, 0.1785, 0.2500, 0.3290, 0.4130,
50  0.5000, 0.5870, 0.6710, 0.7500, 0.8215, 0.8830, 0.9330, 0.9700, 0.9925,
51  1.0000},
52  {0.0000, 0.0123, 0.0482, 0.1041, 0.1739, 0.2514, 0.3315, 0.4098, 0.4840,
53  0.5543, 0.6214, 0.6862, 0.7500, 0.8124, 0.8711, 0.9231, 0.9644, 0.9909,
54  1.0000},
55  {0.0000, 0.0059, 0.0242, 0.0564, 0.1039, 0.1676, 0.2475, 0.3409, 0.4434,
56  0.5499, 0.6534, 0.7473, 0.8274, 0.8910, 0.9374, 0.9686, 0.9875, 0.9971,
57  1.0000},
58  {0.0000, 0.0039, 0.0164, 0.0399, 0.0769, 0.1300, 0.2003, 0.2865, 0.3851,
59  0.4913, 0.5980, 0.6981, 0.7866, 0.8598, 0.9158, 0.9558, 0.9816, 0.9956,
60  1.0000},
61  {0.0000, 0.0025, 0.0113, 0.0294, 0.0605, 0.1082, 0.1749, 0.2598, 0.3594,
62  0.4686, 0.5798, 0.6848, 0.7780, 0.8550, 0.9136, 0.9549, 0.9814, 0.9956,
63  1.0000},
64  {0.0000, 0.0015, 0.0074, 0.0212, 0.0476, 0.0910, 0.1544, 0.2377, 0.3374,
65  0.4485, 0.5627, 0.6714, 0.7684, 0.8486, 0.9098, 0.9530, 0.9806, 0.9954,
66  1.0000},
67  {0.0000, 0.0009, 0.0051, 0.0160, 0.0383, 0.0765, 0.1342, 0.2116, 0.3062,
68  0.4135, 0.5260, 0.6356, 0.7360, 0.8220, 0.8902, 0.9408, 0.9748, 0.9939,
69  1.0000},
70  {0.0000, 0.0022, 0.0105, 0.0290, 0.0630, 0.1170, 0.1937, 0.2914, 0.4047,
71  0.5261, 0.6454, 0.7529, 0.8421, 0.9092, 0.9542, 0.9807, 0.9938, 0.9988,
72  1.0000},
73  {0.0000, 0.0080, 0.0333, 0.0785, 0.1424, 0.2194, 0.3003, 0.3759, 0.4433,
74  0.5071, 0.5757, 0.6547, 0.7432, 0.8313, 0.9058, 0.9578, 0.9863, 0.9975,
75  1.0000},
76  {0.0000, 0.0064, 0.0288, 0.0717, 0.1333, 0.2036, 0.2718, 0.3330, 0.3919,
77  0.4566, 0.5307, 0.6114, 0.6937, 0.7726, 0.8448, 0.9078, 0.9575, 0.9892,
78  1.0000},
79  {0.0000, 0.0129, 0.0517, 0.1132, 0.1849, 0.2517, 0.3063, 0.3558, 0.4142,
80  0.4878, 0.5668, 0.6343, 0.6844, 0.7265, 0.7772, 0.8444, 0.9189, 0.9778,
81  1.0000},
82  {0.0000, 0.0027, 0.0197, 0.0638, 0.1277, 0.1895, 0.2402, 0.2972, 0.3824,
83  0.4892, 0.5796, 0.6246, 0.6388, 0.6663, 0.7363, 0.8357, 0.9271, 0.9827,
84  1.0000},
85  {0.0000, 0.0025, 0.0142, 0.0401, 0.0761, 0.1140, 0.1572, 0.2217, 0.3174,
86  0.4282, 0.5179, 0.5649, 0.5863, 0.6227, 0.6997, 0.8068, 0.9095, 0.9773,
87  1.0000},
88  {0.0000, 0.0010, 0.0036, 0.0062, 0.0083, 0.0111, 0.0174, 0.0302, 0.0518,
89  0.0844, 0.1307, 0.1957, 0.2864, 0.4073, 0.5541, 0.7132, 0.8598, 0.9630,
90  1.0000},
91  {0.0000, 0.0013, 0.0044, 0.0079, 0.0111, 0.0149, 0.0219, 0.0351, 0.0569,
92  0.0895, 0.1359, 0.2010, 0.2917, 0.4121, 0.5582, 0.7160, 0.8612, 0.9634,
93  1.0000}
94  };
95 }
96 
97 // Constructor passes arrays to templated base class
98 
100  : G4NumIntTwoBodyAngDst<15,19>("G4GamP2PPi0AngDist", eBins, angleBins,
101  integralTable, 1.5, verbose) {;}
G4GamP2PPi0AngDst(G4int verbose=0)
int G4int
Definition: G4Types.hh:78
double G4double
Definition: G4Types.hh:76