00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef G4RPGPionInelastic_h
00033 #define G4RPGPionInelastic_h 1
00034
00035
00036
00037
00038
00039
00040 #include "G4RPGInelastic.hh"
00041
00042 class G4RPGPionInelastic : public G4RPGInelastic
00043 {
00044 public:
00045
00046 G4RPGPionInelastic(const G4String& modelName = "RPGPionInelastic");
00047
00048 ~G4RPGPionInelastic() { }
00049
00050
00051
00052 protected:
00053
00054 G4int GetMultiplicityT12(G4double KE) const;
00055 G4int GetMultiplicityT32(G4double KE) const;
00056
00057 std::vector<G4int>
00058 GetFSPartTypesForT32(G4int mult, G4double KE, G4int tindex) const;
00059 std::vector<G4int>
00060 GetFSPartTypesForT12(G4int mult, G4double KE, G4int tindex) const;
00061
00062 std::vector<G4int> GetFSPartTypesForPipP(G4int mult, G4double KE) const
00063 {return GetFSPartTypesForT32(mult, KE, 0); }
00064
00065 std::vector<G4int> GetFSPartTypesForPimN(G4int mult, G4double KE) const
00066 {return GetFSPartTypesForT32(mult, KE, 1); }
00067
00068 std::vector<G4int> GetFSPartTypesForPipN(G4int mult, G4double KE) const
00069 {return GetFSPartTypesForT12(mult, KE, 1); }
00070
00071 std::vector<G4int> GetFSPartTypesForPimP(G4int mult, G4double KE) const
00072 {return GetFSPartTypesForT12(mult, KE, 0); }
00073
00074 static const G4int pipPindex[8][2];
00075 static const G4int pimPindex[8][2];
00076
00077 static const G4int T32_2bfs[2][2][2];
00078 static const G4int T32_3bfs[2][7][3];
00079 static const G4int T32_4bfs[2][15][4];
00080 static const G4int T32_5bfs[2][24][5];
00081 static const G4int T32_6bfs[2][5][6];
00082 static const G4int T32_7bfs[2][6][7];
00083 static const G4int T32_8bfs[2][7][8];
00084 static const G4int T32_9bfs[2][8][9];
00085
00086 static const G4int T12_2bfs[2][5][2];
00087 static const G4int T12_3bfs[2][13][3];
00088 static const G4int T12_4bfs[2][22][4];
00089 static const G4int T12_5bfs[2][31][5];
00090 static const G4int T12_6bfs[2][6][6];
00091 static const G4int T12_7bfs[2][7][7];
00092 static const G4int T12_8bfs[2][8][8];
00093 static const G4int T12_9bfs[2][9][9];
00094
00095 static G4double pipPtot[30];
00096 static G4double pimPtot[30];
00097 static G4double t12_dSigma_dMult[8][30];
00098 static G4double t32_dSigma_dMult[8][30];
00099
00100 static const G4float pipPCrossSections[74][30];
00101 static const G4float pimPCrossSections[101][30];
00102
00103 };
00104 #endif