Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // INCL++ intra-nuclear cascade model 26 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H 30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland 31 // Sylvie Leray, CEA-Saclay, France 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 34 #define INCLXX_IN_GEANT4_MODE 1 35 35 36 #include "globals.hh" 36 #include "globals.hh" 37 37 38 /** \file G4INCLCrossSectionsMultiPionsAndReso 38 /** \file G4INCLCrossSectionsMultiPionsAndResonances.hh 39 * \brief Multipion and mesonic Resonances cro 39 * \brief Multipion and mesonic Resonances cross sections 40 * 40 * 41 * \date 4th February 2014 41 * \date 4th February 2014 42 * \author Jean-Christophe David 42 * \author Jean-Christophe David 43 */ 43 */ 44 44 45 #ifndef G4INCLCROSSSECTIONSMULTIPIONSANDRESONA 45 #ifndef G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH 46 #define G4INCLCROSSSECTIONSMULTIPIONSANDRESONA 46 #define G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH 47 47 48 #include "G4INCLCrossSectionsMultiPions.hh" 48 #include "G4INCLCrossSectionsMultiPions.hh" 49 //#include <limits> 49 //#include <limits> 50 50 51 namespace G4INCL { 51 namespace G4INCL { 52 /// \brief Multipion and mesonic Resonances 52 /// \brief Multipion and mesonic Resonances cross sections 53 53 54 class CrossSectionsMultiPionsAndResonances : 54 class CrossSectionsMultiPionsAndResonances : public CrossSectionsMultiPions { 55 public: 55 public: 56 CrossSectionsMultiPionsAndResonances(); 56 CrossSectionsMultiPionsAndResonances(); 57 57 58 /// \brief new elastic particle-particle 58 /// \brief new elastic particle-particle cross section 59 virtual G4double elastic(Particle const 59 virtual G4double elastic(Particle const * const p1, Particle const * const p2); 60 60 61 /// \brief new total particle-particle c 61 /// \brief new total particle-particle cross section 62 virtual G4double total(Particle const * 62 virtual G4double total(Particle const * const p1, Particle const * const p2); 63 63 64 /// \brief Cross section for X pion prod 64 /// \brief Cross section for X pion production - piN Channel (modified due to the mesonic resonances) 65 virtual G4double piNToxPiN(const G4int x 65 virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2); 66 66 67 /// \brief Cross sections for mesonic re 67 /// \brief Cross sections for mesonic resonance production - piN Channel 68 virtual G4double piNToEtaN(Particle cons 68 virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2); 69 virtual G4double piNToOmegaN(Particle co 69 virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2); 70 virtual G4double piNToEtaPrimeN(Particle 70 virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2); 71 71 72 /// \brief Cross sections for mesonic re 72 /// \brief Cross sections for mesonic resonance absorption on nucleon - piN Channel 73 virtual G4double etaNToPiN(Particle cons 73 virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2); 74 virtual G4double omegaNToPiN(Particle co 74 virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2); 75 virtual G4double etaPrimeNToPiN(Particle 75 virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2); 76 76 77 /// \brief Cross sections for mesonic 77 /// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel 78 virtual G4double etaNToPiPiN(Particle 78 virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2); 79 79 80 /// \brief Cross section for Eta product 80 /// \brief Cross section for Eta production (inclusive) - NN entrance channel 81 virtual G4double NNToNNEta(Particle cons 81 virtual G4double NNToNNEta(Particle const * const particle1, Particle const * const particle2); 82 82 83 /// \brief Cross section for Eta product 83 /// \brief Cross section for Eta production (exclusive) - NN entrance channel 84 virtual G4double NNToNNEtaExclu(Particle 84 virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2); 85 85 86 /// \brief Cross section for Omega produ 86 /// \brief Cross section for Omega production (inclusive) - NN entrance channel 87 virtual G4double NNToNNOmega(Particle co 87 virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2); 88 88 89 /// \brief Cross section for Omega produ 89 /// \brief Cross section for Omega production (exclusive) - NN entrance channel 90 virtual G4double NNToNNOmegaExclu(Partic 90 virtual G4double NNToNNOmegaExclu(Particle const * const particle1, Particle const * const particle2); 91 91 92 /// \brief Cross section for X pion prod 92 /// \brief Cross section for X pion production - NN Channel 93 virtual G4double NNToxPiNN(const G4int x 93 virtual G4double NNToxPiNN(const G4int xpi, Particle const * const p1, Particle const * const p2); 94 94 95 /// \brief Cross section for X pion pr 95 /// \brief Cross section for X pion production - NNEta Channel 96 virtual G4double NNToNNEtaxPi(const G4 96 virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2); 97 97 98 /// \brief Cross section for N-Delta- 98 /// \brief Cross section for N-Delta-Eta production - NNEta Channel 99 virtual G4double NNToNDeltaEta(Partic 99 virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2); 100 100 101 /// \brief Cross section for X pion prod 101 /// \brief Cross section for X pion production - NNOmega Channel 102 virtual G4double NNToNNOmegaxPi(const G4 102 virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2); 103 103 104 /// \brief Cross section for N-Delta-Eta 104 /// \brief Cross section for N-Delta-Eta production - NNOmega Channel 105 virtual G4double NNToNDeltaOmega(Particl 105 virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2); 106 106 107 107 108 protected: 108 protected: 109 /// \brief Maximum number of outgoing pi 109 /// \brief Maximum number of outgoing pions in NN collisions 110 static const G4int nMaxPiNN; 110 static const G4int nMaxPiNN; 111 111 112 /// \brief Maximum number of outgoing pi 112 /// \brief Maximum number of outgoing pions in piN collisions 113 static const G4int nMaxPiPiN; 113 static const G4int nMaxPiPiN; 114 114 115 /// \brief Horner coefficients for s11pz 115 /// \brief Horner coefficients for s11pz 116 const HornerC7 s11pzHC; 116 const HornerC7 s11pzHC; 117 /// \brief Horner coefficients for s01pp 117 /// \brief Horner coefficients for s01pp 118 const HornerC8 s01ppHC; 118 const HornerC8 s01ppHC; 119 /// \brief Horner coefficients for s01pz 119 /// \brief Horner coefficients for s01pz 120 const HornerC4 s01pzHC; 120 const HornerC4 s01pzHC; 121 /// \brief Horner coefficients for s11pm 121 /// \brief Horner coefficients for s11pm 122 const HornerC4 s11pmHC; 122 const HornerC4 s11pmHC; 123 /// \brief Horner coefficients for s12pm 123 /// \brief Horner coefficients for s12pm 124 const HornerC5 s12pmHC; 124 const HornerC5 s12pmHC; 125 /// \brief Horner coefficients for s12pp 125 /// \brief Horner coefficients for s12pp 126 const HornerC3 s12ppHC; 126 const HornerC3 s12ppHC; 127 /// \brief Horner coefficients for s12zz 127 /// \brief Horner coefficients for s12zz 128 const HornerC4 s12zzHC; 128 const HornerC4 s12zzHC; 129 /// \brief Horner coefficients for s02pz 129 /// \brief Horner coefficients for s02pz 130 const HornerC4 s02pzHC; 130 const HornerC4 s02pzHC; 131 /// \brief Horner coefficients for s02pm 131 /// \brief Horner coefficients for s02pm 132 const HornerC6 s02pmHC; 132 const HornerC6 s02pmHC; 133 /// \brief Horner coefficients for s12mz 133 /// \brief Horner coefficients for s12mz 134 const HornerC4 s12mzHC; 134 const HornerC4 s12mzHC; 135 135 136 /// \brief One over threshold for s11pz 136 /// \brief One over threshold for s11pz 137 static const G4double s11pzOOT; 137 static const G4double s11pzOOT; 138 /// \brief One over threshold for s01pp 138 /// \brief One over threshold for s01pp 139 static const G4double s01ppOOT; 139 static const G4double s01ppOOT; 140 /// \brief One over threshold for s01pz 140 /// \brief One over threshold for s01pz 141 static const G4double s01pzOOT; 141 static const G4double s01pzOOT; 142 /// \brief One over threshold for s11pm 142 /// \brief One over threshold for s11pm 143 static const G4double s11pmOOT; 143 static const G4double s11pmOOT; 144 /// \brief One over threshold for s12pm 144 /// \brief One over threshold for s12pm 145 static const G4double s12pmOOT; 145 static const G4double s12pmOOT; 146 /// \brief One over threshold for s12pp 146 /// \brief One over threshold for s12pp 147 static const G4double s12ppOOT; 147 static const G4double s12ppOOT; 148 /// \brief One over threshold for s12zz 148 /// \brief One over threshold for s12zz 149 static const G4double s12zzOOT; 149 static const G4double s12zzOOT; 150 /// \brief One over threshold for s02pz 150 /// \brief One over threshold for s02pz 151 static const G4double s02pzOOT; 151 static const G4double s02pzOOT; 152 /// \brief One over threshold for s02pm 152 /// \brief One over threshold for s02pm 153 static const G4double s02pmOOT; 153 static const G4double s02pmOOT; 154 /// \brief One over threshold for s12mz 154 /// \brief One over threshold for s12mz 155 static const G4double s12mzOOT; 155 static const G4double s12mzOOT; 156 156 157 157 158 /// \brief Internal function for pion cr 158 /// \brief Internal function for pion cross sections 159 G4double piMinuspToEtaN(Particle const * c 159 G4double piMinuspToEtaN(Particle const * const p1, Particle const * const p2); 160 G4double piMinuspToEtaN(const G4double ECM 160 G4double piMinuspToEtaN(const G4double ECM); 161 G4double piMinuspToOmegaN(Particle const * 161 G4double piMinuspToOmegaN(Particle const * const p1, Particle const * const p2); 162 G4double piMinuspToOmegaN(const G4double E 162 G4double piMinuspToOmegaN(const G4double ECM); 163 // G4double piPluspOnePi(Particle const * 163 // G4double piPluspOnePi(Particle const * const p1, Particle const * const p2); 164 // G4double piMinuspOnePi(Particle const * 164 // G4double piMinuspOnePi(Particle const * const p1, Particle const * const p2); 165 // G4double piPluspTwoPi(Particle const * 165 // G4double piPluspTwoPi(Particle const * const p1, Particle const * const p2); 166 // G4double piMinuspTwoPi(Particle const * 166 // G4double piMinuspTwoPi(Particle const * const p1, Particle const * const p2); 167 167 168 /// \brief Cross section for One (more) 168 /// \brief Cross section for One (more) pion production - piN entrance channel 169 // virtual G4double piNOnePi(Particle con 169 // virtual G4double piNOnePi(Particle const * const p1, Particle const * const p2); 170 170 171 /// \brief Cross section for Two (more) 171 /// \brief Cross section for Two (more) pion production - piN entrance channel 172 // virtual G4double piNTwoPi(Particle con 172 // virtual G4double piNTwoPi(Particle const * const p1, Particle const * const p2); 173 173 174 /// \brief Cross section for Three (more 174 /// \brief Cross section for Three (more) pion production - piN entrance channel 175 ///virtual G4double piNThreePi(Particle 175 ///virtual G4double piNThreePi(Particle const * const p1, Particle const * const p2); 176 176 177 /// \brief Isotopic Cross section for 177 /// \brief Isotopic Cross section for Eta production (inclusive) - NN entrance channel 178 virtual G4double NNToNNEtaIso(const G4 178 virtual G4double NNToNNEtaIso(const G4double ener, const G4int iso); 179 179 180 /// \brief Isotopic Cross section for E 180 /// \brief Isotopic Cross section for Eta production (exclusive) - NN entrance channel 181 virtual G4double NNToNNEtaExcluIso(con 181 virtual G4double NNToNNEtaExcluIso(const G4double ener, const G4int iso); 182 182 183 /// \brief Cross section for direct 1- 183 /// \brief Cross section for direct 1-pion production - NNEta channel 184 virtual G4double NNToNNEtaOnePi(Parti 184 virtual G4double NNToNNEtaOnePi(Particle const * const part1, Particle const * const part2); 185 /// \brief Cross section for direc 185 /// \brief Cross section for direct 1-pion production - NNEta channel 186 virtual G4double NNToNNEtaOnePiOrDelta 186 virtual G4double NNToNNEtaOnePiOrDelta(Particle const * const part1, Particle const * const part2); 187 /// \brief Cross section for direct 2 187 /// \brief Cross section for direct 2-pion production - NNEta channel 188 virtual G4double NNToNNEtaTwoPi(Partic 188 virtual G4double NNToNNEtaTwoPi(Particle const * const part1, Particle const * const part2); 189 /// \brief Cross section for direct 3- 189 /// \brief Cross section for direct 3-pion production - NNEta channel 190 virtual G4double NNToNNEtaThreePi(Part 190 virtual G4double NNToNNEtaThreePi(Particle const * const part1, Particle const * const part2); 191 /// \brief Cross section for direct 4- 191 /// \brief Cross section for direct 4-pion production - NNEta channel 192 virtual G4double NNToNNEtaFourPi(Parti 192 virtual G4double NNToNNEtaFourPi(Particle const * const part1, Particle const * const part2); 193 193 194 194 195 /// \brief Isotopic Cross section for Om 195 /// \brief Isotopic Cross section for Omega production (inclusive) - NN entrance channel 196 virtual G4double NNToNNOmegaIso(const G4 196 virtual G4double NNToNNOmegaIso(const G4double ener, const G4int iso); 197 197 198 /// \brief Isotopic Cross section for Om 198 /// \brief Isotopic Cross section for Omega production (exclusive) - NN entrance channel 199 virtual G4double NNToNNOmegaExcluIso(con 199 virtual G4double NNToNNOmegaExcluIso(const G4double ener, const G4int iso); 200 200 201 /// \brief Cross section for direct 1-pi 201 /// \brief Cross section for direct 1-pion production - NNOmega channel 202 virtual G4double NNToNNOmegaOnePi(Partic 202 virtual G4double NNToNNOmegaOnePi(Particle const * const part1, Particle const * const part2); 203 /// \brief Cross section for direct 1-pi 203 /// \brief Cross section for direct 1-pion production - NNOmega channel 204 virtual G4double NNToNNOmegaOnePiOrDelta 204 virtual G4double NNToNNOmegaOnePiOrDelta(Particle const * const part1, Particle const * const part2); 205 /// \brief Cross section for direct 2-pi 205 /// \brief Cross section for direct 2-pion production - NNOmega channel 206 virtual G4double NNToNNOmegaTwoPi(Partic 206 virtual G4double NNToNNOmegaTwoPi(Particle const * const part1, Particle const * const part2); 207 /// \brief Cross section for direct 3-pi 207 /// \brief Cross section for direct 3-pion production - NNOmega channel 208 virtual G4double NNToNNOmegaThreePi(Part 208 virtual G4double NNToNNOmegaThreePi(Particle const * const part1, Particle const * const part2); 209 /// \brief Cross section for direct 4-pi 209 /// \brief Cross section for direct 4-pion production - NNOmega channel 210 virtual G4double NNToNNOmegaFourPi(Parti 210 virtual G4double NNToNNOmegaFourPi(Particle const * const part1, Particle const * const part2); 211 211 212 212 213 /// \brief Cross sections for mesonic 213 /// \brief Cross sections for mesonic resonance absorption on nucleon - elastic Channel 214 virtual G4double etaNElastic(Particle 214 virtual G4double etaNElastic(Particle const * const p1, Particle const * const p2); 215 virtual G4double omegaNElastic(Particle 215 virtual G4double omegaNElastic(Particle const * const p1, Particle const * const p2); 216 216 217 217 218 /// \brief Cross sections for mesonic re 218 /// \brief Cross sections for mesonic resonance absorption on nucleon - inelastic Channel 219 virtual G4double omegaNInelastic(Particl 219 virtual G4double omegaNInelastic(Particle const * const p1, Particle const * const p2); 220 220 221 /// \brief Cross sections for omega-indu 221 /// \brief Cross sections for omega-induced 2Pi emission on nucleon 222 virtual G4double omegaNToPiPiN(Particle 222 virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2); 223 223 224 }; 224 }; 225 } 225 } 226 226 227 #endif 227 #endif 228 228