G4XNDeltastarTable.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // -------------------------------------------------------------------
00028 //      GEANT4 Class file
00029 //
00030 //
00031 //      File name:     G4XNDeltastarTable
00032 //
00033 //      Author:      Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it)  
00034 // 
00035 //      Creation date: 4 June 1999
00036 //
00037 //      Modifications: 
00038 //
00039 // Hadron Kinetic Model
00040 // p p -> N Delta* cross section tables
00041 //
00042 // -------------------------------------------------------------------
00043 
00044 #include "globals.hh"
00045 #include "G4ios.hh"
00046 #include "G4SystemOfUnits.hh"
00047 #include "G4XNDeltastarTable.hh"
00048 #include "G4PhysicsFreeVector.hh"
00049 
00050 const G4int G4XNDeltastarTable::sizeNDeltastar = 121;
00051 
00052 // Energies (GeV) corresponding to the cross section table
00053 // Units are assigned while filling the PhysicsVector
00054 
00055 const G4double G4XNDeltastarTable::energyTable[121] =
00056 {
00057   0.0, 
00058   2.014,  2.014,  2.016,  2.018,  2.022,  2.026,  2.031,  2.037,  2.044,  2.052,   
00059   2.061,  2.071,  2.082,  2.094,  2.107,  2.121,  2.135,  2.151,  2.168,  2.185,   
00060   2.204,  2.223,  2.244,  2.265,  2.287,  2.311,  2.335,  2.360,  2.386,  2.413,   
00061   2.441,  2.470,  2.500,  2.531,  2.562,  2.595,  2.629,  2.664,  2.699,  2.736,
00062   2.773,  2.812,  2.851,  2.891,  2.933,  2.975,  3.018,  3.062,  3.107,  3.153,   
00063   3.200,  3.248,  3.297,  3.347,  3.397,  3.449,  3.502,  3.555,  3.610,  3.666,   
00064   3.722,  3.779,  3.838,  3.897,  3.957,  4.018,  4.081,  4.144,  4.208,  4.273,   
00065   4.339,  4.406,  4.473,  4.542,  4.612,  4.683,  4.754,  4.827,  4.900,  4.975,
00066   5.000,  6.134,  7.269,  8.403,  9.538, 10.672, 11.807, 12.941, 14.076, 15.210,  
00067  16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, 
00068  27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899,  
00069  39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244
00070 };
00071 
00072 // Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 
00073 // Units are assigned while filling the PhysicsVector
00074 
00075 const G4double G4XNDeltastarTable::sigmaND1600[121]= 
00076 {
00077   0.0, 
00078   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00079   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00080   0.000,  0.000,  0.000,  0.000,  0.000,  0.001,  0.001,  0.001,
00081   0.001,  0.002,  0.003,  0.004,  0.006,  0.009,  0.014,  0.022,
00082   0.036,  0.060,  0.104,  0.179,  0.290,  0.418,  0.543,  0.656,
00083   0.755,  0.841,  0.914,  0.976,  1.029,  1.073,  1.110,  1.139,
00084   1.163,  1.181,  1.195,  1.204,  1.210,  1.212,  1.212,  1.209,
00085   1.203,  1.196,  1.187,  1.176,  1.164,  1.150,  1.136,  1.120,
00086   1.104,  1.087,  1.070,  1.052,  1.034,  1.016,  0.997,  0.978,
00087   0.959,  0.940,  0.921,  0.903,  0.884,  0.865,  0.847,  0.828,
00088   0.822,  0.597,  0.447,  0.345,  0.274,  0.223,  0.184,  0.155,
00089   0.132,  0.114,  0.099,  0.087,  0.077,  0.069,  0.062,  0.056,
00090   0.050,  0.046,  0.042,  0.039,  0.036,  0.033,  0.030,  0.028,
00091   0.026,  0.025,  0.023,  0.022,  0.020,  0.019,  0.018,  0.017,
00092   0.016,  0.015,  0.015,  0.014,  0.013,  0.013,  0.012,  0.011
00093 };
00094 
00095 const G4double G4XNDeltastarTable::sigmaND1620[121] = 
00096 {
00097   0.0,
00098   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00099   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.001,  0.001,
00100   0.001,  0.001,  0.002,  0.002,  0.003,  0.003,  0.004,  0.005,
00101   0.006,  0.007,  0.009,  0.010,  0.013,  0.016,  0.021,  0.028,
00102   0.040,  0.060,  0.096,  0.154,  0.228,  0.304,  0.372,  0.431,
00103   0.483,  0.526,  0.563,  0.595,  0.621,  0.643,  0.660,  0.674,
00104   0.685,  0.693,  0.699,  0.702,  0.704,  0.704,  0.702,  0.699,
00105   0.694,  0.689,  0.682,  0.675,  0.669,  0.661,  0.651,  0.642,
00106   0.632,  0.621,  0.611,  0.600,  0.589,  0.577,  0.566,  0.555,
00107   0.544,  0.532,  0.521,  0.510,  0.499,  0.488,  0.477,  0.466,
00108   0.463,  0.332,  0.247,  0.189,  0.150,  0.121,  0.100,  0.084,
00109   0.071,  0.061,  0.053,  0.047,  0.041,  0.037,  0.033,  0.030,
00110   0.027,  0.025,  0.022,  0.021,  0.019,  0.018,  0.016,  0.015,
00111   0.014,  0.013,  0.012,  0.012,  0.011,  0.010,  0.010,  0.009,
00112   0.009,  0.008,  0.008,  0.007,  0.007,  0.007,  0.006,  0.006 
00113 };
00114 
00115 const G4double G4XNDeltastarTable::sigmaND1700[121] = 
00116 {
00117   0.0,
00118   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00119   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00120   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.001,
00121   0.001,  0.002,  0.003,  0.005,  0.008,  0.013,  0.020,  0.029,
00122   0.043,  0.062,  0.090,  0.131,  0.187,  0.258,  0.338,  0.418,
00123   0.495,  0.564,  0.626,  0.680,  0.726,  0.766,  0.800,  0.828,
00124   0.852,  0.871,  0.886,  0.898,  0.906,  0.911,  0.914,  0.914,
00125   0.913,  0.909,  0.904,  0.898,  0.890,  0.881,  0.871,  0.861,
00126   0.849,  0.837,  0.825,  0.812,  0.798,  0.785,  0.771,  0.756,
00127   0.742,  0.728,  0.713,  0.699,  0.685,  0.670,  0.656,  0.642,
00128   0.637,  0.462,  0.345,  0.266,  0.211,  0.171,  0.141,  0.119,
00129   0.101,  0.087,  0.076,  0.066,  0.059,  0.052,  0.047,  0.042,
00130   0.038,  0.035,  0.032,  0.029,  0.027,  0.025,  0.023,  0.021,
00131   0.020,  0.019,  0.017,  0.016,  0.015,  0.015,  0.014,  0.013,
00132   0.012,  0.012,  0.011,  0.010,  0.010,  0.009,  0.009,  0.009 
00133 };
00134 
00135 
00136 const G4double G4XNDeltastarTable::sigmaND1900[121] = 
00137 {
00138   0.0,
00139   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00140   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00141   0.001,  0.001,  0.001,  0.001,  0.001,  0.001,  0.002,  0.002,
00142   0.002,  0.003,  0.003,  0.004,  0.005,  0.006,  0.007,  0.008,
00143   0.010,  0.012,  0.015,  0.019,  0.025,  0.034,  0.048,  0.069,
00144   0.097,  0.129,  0.162,  0.193,  0.220,  0.243,  0.263,  0.280,
00145   0.294,  0.305,  0.315,  0.322,  0.328,  0.333,  0.336,  0.337,
00146   0.338,  0.338,  0.337,  0.336,  0.334,  0.331,  0.328,  0.325,
00147   0.321,  0.316,  0.312,  0.307,  0.302,  0.297,  0.292,  0.287,
00148   0.282,  0.276,  0.271,  0.265,  0.260,  0.255,  0.249,  0.244,
00149   0.242,  0.175,  0.131,  0.101,  0.080,  0.064,  0.053,  0.045,
00150   0.038,  0.033,  0.028,  0.025,  0.022,  0.020,  0.018,  0.016,
00151   0.014,  0.013,  0.012,  0.011,  0.010,  0.009,  0.009,  0.008,
00152   0.007,  0.007,  0.007,  0.006,  0.006,  0.005,  0.005,  0.005,
00153   0.005,  0.004,  0.004,  0.004,  0.004,  0.004,  0.003,  0.003
00154 };
00155 
00156 const G4double G4XNDeltastarTable::sigmaND1905[121] = 
00157 {
00158   0.0,
00159   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00160   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00161   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00162   0.000,  0.000,  0.000,  0.000,  0.000,  0.001,  0.001,  0.001,
00163   0.002,  0.003,  0.005,  0.008,  0.013,  0.023,  0.041,  0.075,
00164   0.131,  0.206,  0.286,  0.362,  0.430,  0.491,  0.542,  0.587,
00165   0.626,  0.659,  0.687,  0.710,  0.730,  0.745,  0.757,  0.767,
00166   0.774,  0.778,  0.781,  0.782,  0.781,  0.778,  0.775,  0.770,
00167   0.764,  0.757,  0.749,  0.741,  0.732,  0.722,  0.712,  0.702,
00168   0.691,  0.680,  0.669,  0.658,  0.646,  0.635,  0.623,  0.611,
00169   0.607,  0.454,  0.346,  0.270,  0.216,  0.176,  0.146,  0.123,
00170   0.105,  0.091,  0.079,  0.070,  0.066,  0.055,  0.050,  0.045,
00171   0.041,  0.037,  0.034,  0.031,  0.029,  0.027,  0.025,  0.023,
00172   0.021,  0.020,  0.019,  0.018,  0.016,  0.016,  0.015,  0.014,
00173   0.013,  0.012,  0.012,  0.011,  0.011,  0.010,  0.010,  0.009 
00174 };
00175 
00176 const G4double G4XNDeltastarTable::sigmaND1910[121] = 
00177 {
00178   0.0,
00179   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00180   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00181   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00182   0.000,  0.000,  0.000,  0.001,  0.001,  0.001,  0.001,  0.002,
00183   0.002,  0.003,  0.004,  0.006,  0.008,  0.012,  0.017,  0.026,
00184   0.041,  0.063,  0.089,  0.116,  0.142,  0.164,  0.184,  0.201,
00185   0.215,  0.227,  0.238,  0.246,  0.253,  0.259,  0.263,  0.266,
00186   0.268,  0.270,  0.270,  0.270,  0.270,  0.269,  0.267,  0.265,
00187   0.263,  0.260,  0.257,  0.254,  0.251,  0.247,  0.243,  0.240,
00188   0.236,  0.232,  0.228,  0.224,  0.219,  0.215,  0.211,  0.207,
00189   0.206,  0.152,  0.115,  0.089,  0.071,  0.058,  0.048,  0.040,
00190   0.034,  0.030,  0.027,  0.023,  0.020,  0.018,  0.016,  0.015,
00191   0.013,  0.012,  0.011,  0.010,  0.009,  0.009,  0.008,  0.007,
00192   0.007,  0.006,  0.006,  0.006,  0.005,  0.005,  0.005,  0.004,
00193   0.004,  0.004,  0.004,  0.004,  0.003,  0.003,  0.003,  0.003 
00194 };
00195 
00196 const G4double G4XNDeltastarTable::sigmaND1920[121] = 
00197 {
00198   0.0,
00199   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00200   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00201   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00202   0.000,  0.000,  0.000,  0.000,  0.000,  0.001,  0.001,  0.001,
00203   0.001,  0.002,  0.003,  0.004,  0.006,  0.009,  0.013,  0.022,
00204   0.037,  0.068,  0.123,  0.194,  0.263,  0.322,  0.371,  0.412,
00205   0.446,  0.473,  0.496,  0.515,  0.529,  0.540,  0.549,  0.555,
00206   0.559,  0.561,  0.561,  0.560,  0.558,  0.555,  0.551,  0.546,
00207   0.540,  0.534,  0.527,  0.519,  0.512,  0.504,  0.495,  0.487,
00208   0.478,  0.470,  0.461,  0.452,  0.443,  0.434,  0.425,  0.416,
00209   0.413,  0.301,  0.225,  0.174,  0.138,  0.112,  0.092,  0.078,
00210   0.066,  0.057,  0.049,  0.043,  0.038,  0.034,  0.031,  0.028,
00211   0.025,  0.023,  0.021,  0.019,  0.018,  0.016,  0.015,  0.014,
00212   0.013,  0.012,  0.011,  0.011,  0.010,  0.009,  0.009,  0.008,
00213   0.008,  0.008,  0.007,  0.007,  0.007,  0.006,  0.006,  0.006
00214 };
00215 
00216 const G4double G4XNDeltastarTable::sigmaND1930[121] = 
00217 {
00218   0.0,
00219   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00220   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00221   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00222   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.001,  0.001,
00223   0.001,  0.002,  0.003,  0.004,  0.006,  0.010,  0.016,  0.028,
00224   0.051,  0.092,  0.154,  0.227,  0.298,  0.363,  0.419,  0.468,
00225   0.509,  0.545,  0.575,  0.605,  0.626,  0.643,  0.658,  0.665,
00226   0.674,  0.680,  0.684,  0.687,  0.687,  0.687,  0.685,  0.681,
00227   0.677,  0.672,  0.666,  0.659,  0.651,  0.644,  0.635,  0.626,
00228   0.617,  0.608,  0.598,  0.588,  0.578,  0.568,  0.558,  0.547,
00229   0.544,  0.407,  0.310,  0.242,  0.193,  0.157,  0.131,  0.110,
00230   0.094,  0.081,  0.075,  0.062,  0.055,  0.049,  0.044,  0.040,
00231   0.036,  0.033,  0.030,  0.028,  0.025,  0.024,  0.022,  0.020,
00232   0.019,  0.018,  0.017,  0.016,  0.015,  0.014,  0.013,  0.012,
00233   0.012,  0.011,  0.010,  0.010,  0.009,  0.009,  0.009,  0.008 
00234 };
00235 
00236 const G4double G4XNDeltastarTable::sigmaND1950[121] = 
00237 {
00238   0.0,
00239   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00240   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00241   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,
00242   0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.000,  0.001,
00243   0.001,  0.001,  0.002,  0.003,  0.005,  0.008,  0.013,  0.023,
00244   0.041,  0.078,  0.142,  0.229,  0.319,  0.402,  0.475,  0.538,
00245   0.597,  0.643,  0.678,  0.711,  0.739,  0.762,  0.781,  0.797,
00246   0.809,  0.818,  0.824,  0.828,  0.830,  0.830,  0.829,  0.825,
00247   0.821,  0.815,  0.809,  0.801,  0.793,  0.784,  0.774,  0.764,
00248   0.753,  0.742,  0.730,  0.718,  0.706,  0.694,  0.682,  0.670,
00249   0.666,  0.500,  0.380,  0.297,  0.237,  0.193,  0.160,  0.135,
00250   0.115,  0.099,  0.087,  0.076,  0.068,  0.060,  0.054,  0.049,
00251   0.044,  0.040,  0.037,  0.034,  0.031,  0.029,  0.027,  0.025,
00252   0.023,  0.022,  0.020,  0.019,  0.018,  0.017,  0.016,  0.015,
00253   0.014,  0.013,  0.013,  0.012,  0.012,  0.011,  0.010,  0.010 
00254 };
00255 
00256 
00257 
00258 G4XNDeltastarTable::G4XNDeltastarTable() 
00259 {
00260   xMap["delta(1600)-"] = (G4double*) sigmaND1600;
00261   xMap["delta(1600)0"] = (G4double*) sigmaND1600;
00262   xMap["delta(1600)+"] = (G4double*) sigmaND1600;
00263   xMap["delta(1600)++"] = (G4double*) sigmaND1600;
00264 
00265   xMap["delta(1620)-"] = (G4double*) sigmaND1620;
00266   xMap["delta(1620)0"] = (G4double*) sigmaND1620;
00267   xMap["delta(1620)+"] = (G4double*) sigmaND1620;
00268   xMap["delta(1620)++"] = (G4double*) sigmaND1620;
00269 
00270   xMap["delta(1700)-"] = (G4double*) sigmaND1700;
00271   xMap["delta(1700)0"] = (G4double*) sigmaND1700;
00272   xMap["delta(1700)+"] = (G4double*) sigmaND1700;
00273   xMap["delta(1700)++"] = (G4double*) sigmaND1700;
00274 
00275   xMap["delta(1900)-"] = (G4double*) sigmaND1900;
00276   xMap["delta(1900)0"] = (G4double*) sigmaND1900;
00277   xMap["delta(1900)+"] = (G4double*) sigmaND1900;
00278   xMap["delta(1900)++"] = (G4double*) sigmaND1900;
00279 
00280   xMap["delta(1905)-"] = (G4double*) sigmaND1905;
00281   xMap["delta(1905)0"] = (G4double*) sigmaND1905;
00282   xMap["delta(1905)+"] = (G4double*) sigmaND1905;
00283   xMap["delta(1905)++"] = (G4double*) sigmaND1905;
00284 
00285   xMap["delta(1910)-"] = (G4double*) sigmaND1910;
00286   xMap["delta(1910)0"] = (G4double*) sigmaND1910;
00287   xMap["delta(1910)+"] = (G4double*) sigmaND1910;
00288   xMap["delta(1910)++"] = (G4double*) sigmaND1910;
00289 
00290   xMap["delta(1920)-"] = (G4double*) sigmaND1920;
00291   xMap["delta(1920)0"] = (G4double*) sigmaND1920;
00292   xMap["delta(1920)+"] = (G4double*) sigmaND1920;
00293   xMap["delta(1920)++"] = (G4double*) sigmaND1920;
00294 
00295   xMap["delta(1930)-"] = (G4double*) sigmaND1930;
00296   xMap["delta(1930)0"] = (G4double*) sigmaND1930;
00297   xMap["delta(1930)+"] = (G4double*) sigmaND1930;
00298   xMap["delta(1930)++"] = (G4double*) sigmaND1930;
00299 
00300   xMap["delta(1950)-"] = (G4double*) sigmaND1950;
00301   xMap["delta(1950)0"] = (G4double*) sigmaND1950;
00302   xMap["delta(1950)+"] = (G4double*) sigmaND1950;
00303   xMap["delta(1950)++"] = (G4double*) sigmaND1950;
00304 }
00305 
00306 
00307 G4XNDeltastarTable::~G4XNDeltastarTable()
00308 { }
00309 
00310 
00311 const G4PhysicsVector* G4XNDeltastarTable::CrossSectionTable(const G4String& particleName) const
00312 {
00313   // NOTE: the returned pointer is owned by the client
00314 
00315   if (xMap.find(particleName) != xMap.end())
00316     {
00317       // Cross section table for the requested particle available in the Map
00318       G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeNDeltastar);
00319       std::map <G4String, G4double*, std::less<G4String> >::const_iterator iter;
00320       G4double* sigmaPointer = 0;
00321       for (iter = xMap.begin(); iter != xMap.end(); ++iter)
00322         {
00323           G4String str = (*iter).first;
00324           if (str == particleName)
00325             {
00326               sigmaPointer = (*iter).second; 
00327             }
00328         }
00329 
00330       G4int i;
00331       for (i=0; i<sizeNDeltastar; i++)
00332         {
00333           G4double value = *(sigmaPointer + i) * 0.5* millibarn;
00334           G4double energy = energyTable[i] * GeV;
00335           sigmaVector->PutValue(i,energy,value);
00336         }           
00337       return sigmaVector;
00338     }
00339   else
00340     // No cross section table for the requested particle is available in the Map
00341     return 0;
00342 } 
00343 
00344 
00345 
00346 
00347 
00348 
00349 
00350 
00351 
00352 

Generated on Mon May 27 17:50:26 2013 for Geant4 by  doxygen 1.4.7