Geant4 Cross Reference |
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 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 35 36 #include "globals.hh" 37 38 /** \file G4INCLCrossSectionsMultiPionsAndResonances.hh 39 * \brief Multipion and mesonic Resonances cross sections 40 * 41 * \date 4th February 2014 42 * \author Jean-Christophe David 43 */ 44 45 #ifndef G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH 46 #define G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH 47 48 #include "G4INCLCrossSectionsMultiPions.hh" 49 //#include <limits> 50 51 namespace G4INCL { 52 /// \brief Multipion and mesonic Resonances cross sections 53 54 class CrossSectionsMultiPionsAndResonances : public CrossSectionsMultiPions { 55 public: 56 CrossSectionsMultiPionsAndResonances(); 57 58 /// \brief new elastic particle-particle cross section 59 virtual G4double elastic(Particle const * const p1, Particle const * const p2); 60 61 /// \brief new total particle-particle cross section 62 virtual G4double total(Particle const * const p1, Particle const * const p2); 63 64 /// \brief Cross section for X pion production - piN Channel (modified due to the mesonic resonances) 65 virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2); 66 67 /// \brief Cross sections for mesonic resonance production - piN Channel 68 virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2); 69 virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2); 70 virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2); 71 72 /// \brief Cross sections for mesonic resonance absorption on nucleon - piN Channel 73 virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2); 74 virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2); 75 virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2); 76 77 /// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel 78 virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2); 79 80 /// \brief Cross section for Eta production (inclusive) - NN entrance channel 81 virtual G4double NNToNNEta(Particle const * const particle1, Particle const * const particle2); 82 83 /// \brief Cross section for Eta production (exclusive) - NN entrance channel 84 virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2); 85 86 /// \brief Cross section for Omega production (inclusive) - NN entrance channel 87 virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2); 88 89 /// \brief Cross section for Omega production (exclusive) - NN entrance channel 90 virtual G4double NNToNNOmegaExclu(Particle const * const particle1, Particle const * const particle2); 91 92 /// \brief Cross section for X pion production - NN Channel 93 virtual G4double NNToxPiNN(const G4int xpi, Particle const * const p1, Particle const * const p2); 94 95 /// \brief Cross section for X pion production - NNEta Channel 96 virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2); 97 98 /// \brief Cross section for N-Delta-Eta production - NNEta Channel 99 virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2); 100 101 /// \brief Cross section for X pion production - NNOmega Channel 102 virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2); 103 104 /// \brief Cross section for N-Delta-Eta production - NNOmega Channel 105 virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2); 106 107 108 protected: 109 /// \brief Maximum number of outgoing pions in NN collisions 110 static const G4int nMaxPiNN; 111 112 /// \brief Maximum number of outgoing pions in piN collisions 113 static const G4int nMaxPiPiN; 114 115 /// \brief Horner coefficients for s11pz 116 const HornerC7 s11pzHC; 117 /// \brief Horner coefficients for s01pp 118 const HornerC8 s01ppHC; 119 /// \brief Horner coefficients for s01pz 120 const HornerC4 s01pzHC; 121 /// \brief Horner coefficients for s11pm 122 const HornerC4 s11pmHC; 123 /// \brief Horner coefficients for s12pm 124 const HornerC5 s12pmHC; 125 /// \brief Horner coefficients for s12pp 126 const HornerC3 s12ppHC; 127 /// \brief Horner coefficients for s12zz 128 const HornerC4 s12zzHC; 129 /// \brief Horner coefficients for s02pz 130 const HornerC4 s02pzHC; 131 /// \brief Horner coefficients for s02pm 132 const HornerC6 s02pmHC; 133 /// \brief Horner coefficients for s12mz 134 const HornerC4 s12mzHC; 135 136 /// \brief One over threshold for s11pz 137 static const G4double s11pzOOT; 138 /// \brief One over threshold for s01pp 139 static const G4double s01ppOOT; 140 /// \brief One over threshold for s01pz 141 static const G4double s01pzOOT; 142 /// \brief One over threshold for s11pm 143 static const G4double s11pmOOT; 144 /// \brief One over threshold for s12pm 145 static const G4double s12pmOOT; 146 /// \brief One over threshold for s12pp 147 static const G4double s12ppOOT; 148 /// \brief One over threshold for s12zz 149 static const G4double s12zzOOT; 150 /// \brief One over threshold for s02pz 151 static const G4double s02pzOOT; 152 /// \brief One over threshold for s02pm 153 static const G4double s02pmOOT; 154 /// \brief One over threshold for s12mz 155 static const G4double s12mzOOT; 156 157 158 /// \brief Internal function for pion cross sections 159 G4double piMinuspToEtaN(Particle const * const p1, Particle const * const p2); 160 G4double piMinuspToEtaN(const G4double ECM); 161 G4double piMinuspToOmegaN(Particle const * const p1, Particle const * const p2); 162 G4double piMinuspToOmegaN(const G4double ECM); 163 // G4double piPluspOnePi(Particle const * const p1, Particle const * const p2); 164 // G4double piMinuspOnePi(Particle const * const p1, Particle const * const p2); 165 // G4double piPluspTwoPi(Particle const * const p1, Particle const * const p2); 166 // G4double piMinuspTwoPi(Particle const * const p1, Particle const * const p2); 167 168 /// \brief Cross section for One (more) pion production - piN entrance channel 169 // virtual G4double piNOnePi(Particle const * const p1, Particle const * const p2); 170 171 /// \brief Cross section for Two (more) pion production - piN entrance channel 172 // virtual G4double piNTwoPi(Particle const * const p1, Particle const * const p2); 173 174 /// \brief Cross section for Three (more) pion production - piN entrance channel 175 ///virtual G4double piNThreePi(Particle const * const p1, Particle const * const p2); 176 177 /// \brief Isotopic Cross section for Eta production (inclusive) - NN entrance channel 178 virtual G4double NNToNNEtaIso(const G4double ener, const G4int iso); 179 180 /// \brief Isotopic Cross section for Eta production (exclusive) - NN entrance channel 181 virtual G4double NNToNNEtaExcluIso(const G4double ener, const G4int iso); 182 183 /// \brief Cross section for direct 1-pion production - NNEta channel 184 virtual G4double NNToNNEtaOnePi(Particle const * const part1, Particle const * const part2); 185 /// \brief Cross section for direct 1-pion production - NNEta channel 186 virtual G4double NNToNNEtaOnePiOrDelta(Particle const * const part1, Particle const * const part2); 187 /// \brief Cross section for direct 2-pion production - NNEta channel 188 virtual G4double NNToNNEtaTwoPi(Particle const * const part1, Particle const * const part2); 189 /// \brief Cross section for direct 3-pion production - NNEta channel 190 virtual G4double NNToNNEtaThreePi(Particle const * const part1, Particle const * const part2); 191 /// \brief Cross section for direct 4-pion production - NNEta channel 192 virtual G4double NNToNNEtaFourPi(Particle const * const part1, Particle const * const part2); 193 194 195 /// \brief Isotopic Cross section for Omega production (inclusive) - NN entrance channel 196 virtual G4double NNToNNOmegaIso(const G4double ener, const G4int iso); 197 198 /// \brief Isotopic Cross section for Omega production (exclusive) - NN entrance channel 199 virtual G4double NNToNNOmegaExcluIso(const G4double ener, const G4int iso); 200 201 /// \brief Cross section for direct 1-pion production - NNOmega channel 202 virtual G4double NNToNNOmegaOnePi(Particle const * const part1, Particle const * const part2); 203 /// \brief Cross section for direct 1-pion production - NNOmega channel 204 virtual G4double NNToNNOmegaOnePiOrDelta(Particle const * const part1, Particle const * const part2); 205 /// \brief Cross section for direct 2-pion production - NNOmega channel 206 virtual G4double NNToNNOmegaTwoPi(Particle const * const part1, Particle const * const part2); 207 /// \brief Cross section for direct 3-pion production - NNOmega channel 208 virtual G4double NNToNNOmegaThreePi(Particle const * const part1, Particle const * const part2); 209 /// \brief Cross section for direct 4-pion production - NNOmega channel 210 virtual G4double NNToNNOmegaFourPi(Particle const * const part1, Particle const * const part2); 211 212 213 /// \brief Cross sections for mesonic resonance absorption on nucleon - elastic Channel 214 virtual G4double etaNElastic(Particle const * const p1, Particle const * const p2); 215 virtual G4double omegaNElastic(Particle const * const p1, Particle const * const p2); 216 217 218 /// \brief Cross sections for mesonic resonance absorption on nucleon - inelastic Channel 219 virtual G4double omegaNInelastic(Particle const * const p1, Particle const * const p2); 220 221 /// \brief Cross sections for omega-induced 2Pi emission on nucleon 222 virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2); 223 224 }; 225 } 226 227 #endif 228