Import Geant4 11.2.0 source tree
This commit is contained in:
+2
-1
@@ -50,6 +50,7 @@
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLInteractionAvatar.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
#include "G4INCLConfig.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
|
||||
@@ -89,11 +90,11 @@ namespace G4INCL {
|
||||
static G4ThreadLocal G4double cutNN;
|
||||
static G4ThreadLocal G4double cutNNSquared;
|
||||
static G4ThreadLocal G4double bias;
|
||||
|
||||
G4double theCrossSection;
|
||||
G4bool isParticle1Spectator;
|
||||
G4bool isParticle2Spectator;
|
||||
G4bool isElastic;
|
||||
|
||||
G4bool isStrangeProduction;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(BinaryCollisionAvatar)
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
#include "G4INCLLogger.hh"
|
||||
#include "G4INCLConfig.hh"
|
||||
#include "G4INCLRootFinder.hh"
|
||||
#ifndef INCLXX_IN_GEANT4_MODE
|
||||
#include "G4INCLGeant4Compat.hh"
|
||||
#endif
|
||||
|
||||
|
||||
namespace G4INCL {
|
||||
|
||||
@@ -255,11 +255,10 @@ namespace G4INCL {
|
||||
|
||||
// First compute the current CM position and total momentum
|
||||
ThreeVector theCMPosition, theTotalMomentum;
|
||||
// G4double theTotalEnergy = 0.0;
|
||||
for(ParticleIter p=particles.begin(), e=particles.end(); p!=e; ++p) {
|
||||
theCMPosition += (*p)->getPosition();
|
||||
theTotalMomentum += (*p)->getMomentum();
|
||||
// theTotalEnergy += (*p)->getEnergy();
|
||||
//theTotalEnergy += (*p)->getEnergy();
|
||||
}
|
||||
theCMPosition /= theA;
|
||||
// assert((unsigned int)theA==particles.size());
|
||||
|
||||
+2
-2
@@ -101,8 +101,8 @@ namespace G4INCL {
|
||||
const G4double reducedMass = particleMass*nucleusMass/(particleMass+nucleusMass);
|
||||
const G4double kineticEnergyInCM = kineticEnergy * reducedMass / particleMass;
|
||||
const G4double theMinimumDistance = ( kineticEnergyInCM <= 0.0 ? 0.0 :
|
||||
PhysicalConstants::eSquared * p.theZ * n->getZ() * particleMass
|
||||
/ (kineticEnergyInCM * reducedMass) );
|
||||
PhysicalConstants::eSquared * p.theZ * n->getZ() * particleMass
|
||||
/ (kineticEnergyInCM * reducedMass) );
|
||||
INCL_DEBUG("Minimum distance of approach due to Coulomb = " << theMinimumDistance << '\n');
|
||||
return theMinimumDistance;
|
||||
}
|
||||
|
||||
+35
-20
@@ -54,8 +54,8 @@ namespace G4INCL {
|
||||
G4double piNToEtaN(Particle const * const p1, Particle const * const p2);
|
||||
G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
|
||||
G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
|
||||
G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
@@ -78,39 +78,54 @@ namespace G4INCL {
|
||||
G4double NNToNSK2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NNToNNKKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NNToMissingStrangeness(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToLKpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToSKpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToNKKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2);
|
||||
G4double NLToNS(Particle const * const p1, Particle const * const p2);
|
||||
G4double NSToNL(Particle const * const p1, Particle const * const p2);
|
||||
G4double NSToNS(Particle const * const p1, Particle const * const p2);
|
||||
G4double NLToNS(Particle const * const p1, Particle const * const p2);
|
||||
G4double NSToNL(Particle const * const p1, Particle const * const p2);
|
||||
G4double NSToNS(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKToNK(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKToNKpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKToNK2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToSpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToLpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToS2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToL2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKbpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKb2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKb(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToSpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToLpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToS2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToL2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKbpi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbToNKb2pi(Particle const * const p1, Particle const * const p2);
|
||||
G4double NYelastic(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKbelastic(Particle const * const p1, Particle const * const p2);
|
||||
G4double NKelastic(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief antiparticle cross sections
|
||||
/// \brief Nucleon-AntiNucleon to Baryon-AntiBaryon cross sections
|
||||
G4double NNbarElastic(Particle const* const p1, Particle const* const p2);
|
||||
G4double NNbarCEX(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
G4double NNbarToLLbar(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections
|
||||
G4double NNbarToNNbarpi(Particle const* const p1, Particle const* const p2);
|
||||
G4double NNbarToNNbar2pi(Particle const* const p1, Particle const* const p2);
|
||||
G4double NNbarToNNbar3pi(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon total annihilation cross sections
|
||||
G4double NNbarToAnnihilation(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/** \brief Calculate the slope of the NN DDXS.
|
||||
*
|
||||
* \param energyCM energy in the CM frame, in MeV
|
||||
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
/** \file G4INCLCrossSectionsAntiparticles.hh
|
||||
* \brief Multipion, mesonic Resonances, strange cross sections and antinucleon as projectile
|
||||
*
|
||||
* \date 31st March 2023
|
||||
* \author Demid Zharenov
|
||||
*/
|
||||
|
||||
#ifndef G4INCLCROSSSECTIONSANTIPARTICLES_HH
|
||||
#define G4INCLCROSSSECTIONSANTIPARTICLES_HH
|
||||
|
||||
#include "G4INCLCrossSectionsStrangeness.hh"
|
||||
#include "G4INCLConfig.hh"
|
||||
//#include <limits>
|
||||
|
||||
namespace G4INCL {
|
||||
/// \brief Multipion, mesonic Resonances and strange cross sections
|
||||
|
||||
// class CrossSectionsAntiparticles : public CrossSectionsMultiPionsAndResonances {
|
||||
class CrossSectionsAntiparticles : public CrossSectionsStrangeness {
|
||||
public:
|
||||
CrossSectionsAntiparticles();
|
||||
|
||||
/// \brief second new total particle-particle cross section
|
||||
virtual G4double total(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief old elastic particle-particle cross section
|
||||
virtual G4double elastic(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon cross sections
|
||||
virtual G4double NNbarElastic(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarCEX(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
virtual G4double NNbarToLLbar(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections
|
||||
virtual G4double NNbarToNNbarpi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar2pi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar3pi(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon total annihilation cross sections
|
||||
virtual G4double NNbarToAnnihilation(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
protected:
|
||||
/// \brief Maximum number of outgoing pions in NN collisions
|
||||
static const G4int nMaxPiNN;
|
||||
|
||||
/// \brief Maximum number of outgoing pions in piN collisions
|
||||
static const G4int nMaxPiPiN;
|
||||
|
||||
/// \brief Horner coefficients for s11pz
|
||||
const HornerC7 s11pzHC;
|
||||
/// \brief Horner coefficients for s01pp
|
||||
const HornerC8 s01ppHC;
|
||||
/// \brief Horner coefficients for s01pz
|
||||
const HornerC4 s01pzHC;
|
||||
/// \brief Horner coefficients for s11pm
|
||||
const HornerC4 s11pmHC;
|
||||
/// \brief Horner coefficients for s12pm
|
||||
const HornerC5 s12pmHC;
|
||||
/// \brief Horner coefficients for s12pp
|
||||
const HornerC3 s12ppHC;
|
||||
/// \brief Horner coefficients for s12zz
|
||||
const HornerC4 s12zzHC;
|
||||
/// \brief Horner coefficients for s02pz
|
||||
const HornerC4 s02pzHC;
|
||||
/// \brief Horner coefficients for s02pm
|
||||
const HornerC6 s02pmHC;
|
||||
/// \brief Horner coefficients for s12mz
|
||||
const HornerC4 s12mzHC;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+25
-10
@@ -84,21 +84,21 @@ namespace G4INCL {
|
||||
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
|
||||
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
|
||||
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for Eta production - NN entrance channel
|
||||
virtual G4double NNToNNEta(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2);
|
||||
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for X pion production - NNEta Channel
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
|
||||
/// \brief Cross section for X pion production - NNEta Channel
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
|
||||
/// \brief elastic scattering for Nucleon-Strange Particles cross sections
|
||||
@@ -127,9 +127,9 @@ namespace G4INCL {
|
||||
/// \brief Nucleon-Pion to Stange particles cross sections
|
||||
virtual G4double NpiToLK(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSK(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2);
|
||||
@@ -167,6 +167,21 @@ namespace G4INCL {
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief antiparticle cross sections
|
||||
/// \brief Nucleon-AntiNucleon to Baryon-AntiBaryon cross sections
|
||||
virtual G4double NNbarElastic(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarCEX(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
virtual G4double NNbarToLLbar(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections
|
||||
virtual G4double NNbarToNNbarpi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar2pi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar3pi(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon total annihilation cross sections
|
||||
virtual G4double NNbarToAnnihilation(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/** \brief Calculate the slope of the NN DDXS.
|
||||
*
|
||||
|
||||
+25
-11
@@ -90,7 +90,7 @@ namespace G4INCL {
|
||||
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
|
||||
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
|
||||
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
@@ -99,17 +99,17 @@ namespace G4INCL {
|
||||
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for Eta production - NN entrance channel
|
||||
/// \brief Cross section for Eta production - NN entrance channel
|
||||
virtual G4double NNToNNEta(Particle const * const particle1, Particle const * const particle2);
|
||||
|
||||
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2);
|
||||
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2);
|
||||
|
||||
/// \brief Cross section for X pion production - NNEta Channel
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
|
||||
/// \brief Cross section for X pion production - NNEta Channel
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Cross section for Eta production - NN entrance channel
|
||||
virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2);
|
||||
@@ -151,9 +151,9 @@ namespace G4INCL {
|
||||
/// \brief Nucleon-Pion to Stange particles cross sections
|
||||
virtual G4double NpiToLK(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSK(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2);
|
||||
@@ -180,7 +180,21 @@ namespace G4INCL {
|
||||
virtual G4double NKbToL2pi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToNKbpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToNKb2pi(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief antiparticle cross sections
|
||||
/// \brief Nucleon-AntiNucleon to Baryon-AntiBaryon cross sections
|
||||
virtual G4double NNbarElastic(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarCEX(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
virtual G4double NNbarToLLbar(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections
|
||||
virtual G4double NNbarToNNbarpi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar2pi(Particle const* const p1, Particle const* const p2);
|
||||
virtual G4double NNbarToNNbar3pi(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
/// \brief Nucleon-AntiNucleon total annihilation cross sections
|
||||
virtual G4double NNbarToAnnihilation(Particle const* const p1, Particle const* const p2);
|
||||
|
||||
protected:
|
||||
/// \brief Maximum number of outgoing pions in NN collisions
|
||||
|
||||
+8
-9
@@ -92,12 +92,12 @@ namespace G4INCL {
|
||||
|
||||
/// \brief Nucleon-Pion to Stange particles cross sections
|
||||
virtual G4double NpiToLK(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToLK0(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pimToLK0(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSK(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pipToSpKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
G4double p_pipToSpKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToSKpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2);
|
||||
@@ -120,14 +120,13 @@ namespace G4INCL {
|
||||
virtual G4double NKbToNKb(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToSpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToLpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_kmToL_pz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_kmToL_pz(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToS2pi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToL2pi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_kmToL_pp_pm(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double p_kmToL_pp_pm(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToNKbpi(Particle const * const p1, Particle const * const p2);
|
||||
virtual G4double NKbToNKb2pi(Particle const * const p1, Particle const * const p2);
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
/// \brief Maximum number of outgoing pions in NN collisions
|
||||
static const G4int nMaxPiNN;
|
||||
|
||||
+57
-43
@@ -75,22 +75,22 @@ namespace G4INCL {
|
||||
|
||||
/// \brief Cross section for piN->piNpi
|
||||
virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for PiN->EtaN
|
||||
virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for PiN->OmegaN
|
||||
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for PiN->EtaPrimeN
|
||||
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for EtaN->PiN
|
||||
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for EtaN->PiPiN
|
||||
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for EtaN->PiN
|
||||
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for EtaN->PiPiN
|
||||
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for OmegaN->PiN
|
||||
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
@@ -99,28 +99,28 @@ namespace G4INCL {
|
||||
|
||||
/// \brief Cross section for EtaPrimeN->PiN
|
||||
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEta (inclusive)
|
||||
virtual G4double NNToNNEta(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEta (exclusive)
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEtaxPi
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for NN->NNEta (inclusive)
|
||||
virtual G4double NNToNNEta(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEta (exclusive)
|
||||
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEtaxPi
|
||||
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Cross section for NN->NNEta (inclusive)
|
||||
virtual G4double NNToNNOmega(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for NN->NNEta (exclusive)
|
||||
virtual G4double NNToNNOmegaExclu(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for NN->NNEtaxPi
|
||||
virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
|
||||
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
@@ -148,28 +148,28 @@ namespace G4INCL {
|
||||
|
||||
virtual G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-Pion to Stange particles cross sections
|
||||
virtual G4double NpiToLK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToLKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToNKKb(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2) = 0;
|
||||
/// \brief Nucleon-Pion to Stange particles cross sections
|
||||
virtual G4double NpiToLK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pimToSzKz(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pimToSmKp(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double p_pizToSzKp(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToLKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToLK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToNKKb(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-Hyperon cross sections
|
||||
virtual G4double NLToNS(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NSToNL(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NSToNS(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-Kaon inelastic cross sections
|
||||
virtual G4double NKToNK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKToNKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKToNK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
/// \brief Nucleon-Kaon inelastic cross sections
|
||||
virtual G4double NKToNK(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKToNKpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKToNK2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-antiKaon inelastic cross sections
|
||||
virtual G4double NKbToNKb(Particle const * const p1, Particle const * const p2) = 0;
|
||||
@@ -179,7 +179,21 @@ namespace G4INCL {
|
||||
virtual G4double NKbToL2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKbToNKbpi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
virtual G4double NKbToNKb2pi(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
|
||||
/// \brief NNbar Particles cross sections
|
||||
/// \brief Nucleon-AntiNucleon to Baryon-AntiBaryon cross sections
|
||||
virtual G4double NNbarElastic(Particle const* const p1, Particle const* const p2) = 0;
|
||||
virtual G4double NNbarCEX(Particle const* const p1, Particle const* const p2) = 0;
|
||||
|
||||
virtual G4double NNbarToLLbar(Particle const * const p1, Particle const * const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections
|
||||
virtual G4double NNbarToNNbarpi(Particle const* const p1, Particle const* const p2) = 0;
|
||||
virtual G4double NNbarToNNbar2pi(Particle const* const p1, Particle const* const p2) = 0;
|
||||
virtual G4double NNbarToNNbar3pi(Particle const* const p1, Particle const* const p2) = 0;
|
||||
|
||||
/// \brief Nucleon-AntiNucleon total annihilation cross sections
|
||||
virtual G4double NNbarToAnnihilation(Particle const* const p1, Particle const* const p2) = 0;
|
||||
|
||||
/** \brief Calculate the slope of the NN DDXS.
|
||||
*
|
||||
|
||||
@@ -47,6 +47,9 @@ namespace G4INCL {
|
||||
|
||||
namespace KinematicsUtils {
|
||||
|
||||
G4double fiveParFit(const G4double a, const G4double b, const G4double c, const G4double d, const G4double e, const G4double x);
|
||||
G4double compute_xs(const std::vector<G4double> coefficients, const G4double pLab);
|
||||
|
||||
void transformToLocalEnergyFrame(Nucleus const * const n, Particle * const p);
|
||||
G4double getLocalEnergy(Nucleus const * const n, Particle * const p);
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarCEXChannel_hh
|
||||
#define G4INCLNNbarCEXChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarCEXChannel : public IChannel {
|
||||
public:
|
||||
NNbarCEXChannel(Particle *, Particle *);
|
||||
virtual ~NNbarCEXChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarCEXChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarElasticChannel_hh
|
||||
#define G4INCLNNbarElasticChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarElasticChannel : public IChannel {
|
||||
public:
|
||||
NNbarElasticChannel(Particle *, Particle *);
|
||||
virtual ~NNbarElasticChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarElasticChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarToAnnihilationChannel_hh
|
||||
#define G4INCLNNbarToAnnihilationChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
#include "G4INCLNucleus.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarToAnnihilationChannel : public IChannel {
|
||||
public:
|
||||
NNbarToAnnihilationChannel(Nucleus *, Particle *, Particle *);
|
||||
virtual ~NNbarToAnnihilationChannel();
|
||||
|
||||
G4double read_file(std::string filename, std::vector<G4double>& probabilities, std::vector<std::vector<std::string>>& particle_types);
|
||||
G4int findStringNumber(G4double rdm, std::vector<G4double> yields);
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
Nucleus *theNucleus;
|
||||
|
||||
private:
|
||||
//Nucleus *theNucleus;
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarToAnnihilationChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarToLLbarChannel_hh
|
||||
#define G4INCLNNbarToLLbarChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarToLLbarChannel : public IChannel {
|
||||
public:
|
||||
NNbarToLLbarChannel(Particle *, Particle *);
|
||||
virtual ~NNbarToLLbarChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarToLLbarChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarToNNbar2piChannel_hh
|
||||
#define G4INCLNNbarToNNbar2piChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarToNNbar2piChannel : public IChannel {
|
||||
public:
|
||||
NNbarToNNbar2piChannel(Particle *, Particle *);
|
||||
virtual ~NNbarToNNbar2piChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarToNNbar2piChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarToNNbar3piChannel_hh
|
||||
#define G4INCLNNbarToNNbar3piChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarToNNbar3piChannel : public IChannel {
|
||||
public:
|
||||
NNbarToNNbar3piChannel(Particle *, Particle *);
|
||||
virtual ~NNbarToNNbar3piChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarToNNbar3piChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// INCL++ intra-nuclear cascade model
|
||||
// Alain Boudard, CEA-Saclay, France
|
||||
// Joseph Cugnon, University of Liege, Belgium
|
||||
// Jean-Christophe David, CEA-Saclay, France
|
||||
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
|
||||
// Sylvie Leray, CEA-Saclay, France
|
||||
// Davide Mancusi, CEA-Saclay, France
|
||||
//
|
||||
#define INCLXX_IN_GEANT4_MODE 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef G4INCLNNbarToNNbarpiChannel_hh
|
||||
#define G4INCLNNbarToNNbarpiChannel_hh 1
|
||||
|
||||
#include "G4INCLParticle.hh"
|
||||
#include "G4INCLIChannel.hh"
|
||||
#include "G4INCLFinalState.hh"
|
||||
#include "G4INCLAllocationPool.hh"
|
||||
|
||||
namespace G4INCL {
|
||||
class NNbarToNNbarpiChannel : public IChannel {
|
||||
public:
|
||||
NNbarToNNbarpiChannel(Particle *, Particle *);
|
||||
virtual ~NNbarToNNbarpiChannel();
|
||||
|
||||
void fillFinalState(FinalState *fs);
|
||||
|
||||
private:
|
||||
Particle *particle1, *particle2;
|
||||
|
||||
INCL_DECLARE_ALLOCATION_POOL(NNbarToNNbarpiChannel);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+1
-1
@@ -83,7 +83,7 @@ namespace G4INCL {
|
||||
*/
|
||||
G4double getTransmissionRadius(Particle const * const p) const {
|
||||
const ParticleType t = p->getType();
|
||||
// assert(t!=Neutron && t!=PiZero && t!=DeltaZero && t!=Eta && t!=Omega && t!=EtaPrime && t!=Photon && t!= Lambda && t!=SigmaZero && t!=KZero && t!=KZeroBar && t!=KShort && t!=KLong); // no neutral particles here
|
||||
// assert(t!= antiLambda && t!=antiNeutron && t!=Neutron && t!=PiZero && t!=DeltaZero && t!=Eta && t!=Omega && t!=EtaPrime && t!=Photon && t!= Lambda && t!=SigmaZero && t!=KZero && t!=KZeroBar && t!=KShort && t!=KLong); // no neutral particles here
|
||||
if(t==Composite) {
|
||||
return transmissionRadius[t] +
|
||||
ParticleTable::getNuclearRadius(t, p->getA(), p->getZ());
|
||||
|
||||
+1
@@ -65,6 +65,7 @@ namespace G4INCL {
|
||||
G4double vProton, vNeutron;
|
||||
G4double vDeltaPlusPlus, vDeltaPlus, vDeltaZero, vDeltaMinus;
|
||||
G4double vSigmaPlus, vSigmaZero, vSigmaMinus, vLambda;
|
||||
G4double vantiProton;
|
||||
|
||||
void initialize();
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
namespace G4INCL {
|
||||
|
||||
enum AnnihilationType {Def=0, PType, NType}; //D
|
||||
enum AnnihilationType {Def=0, PType, NType, PTypeInFlight, NTypeInFlight, NbarPTypeInFlight, NbarNTypeInFlight};
|
||||
|
||||
class Nucleus : public Cluster {
|
||||
public:
|
||||
@@ -75,6 +75,9 @@ namespace G4INCL {
|
||||
/// \brief Dummy assignment operator to silence Coverity warning
|
||||
Nucleus &operator=(const Nucleus &rhs);
|
||||
|
||||
AnnihilationType getAType() const;
|
||||
void setAType(AnnihilationType type);
|
||||
|
||||
/**
|
||||
* Call the Cluster method to generate the initial distribution of
|
||||
* particles. At the beginning all particles are assigned as spectators.
|
||||
@@ -99,6 +102,9 @@ namespace G4INCL {
|
||||
theNkaonplusInitial += Math::heaviside(ParticleTable::getIsospin(p->getType()));
|
||||
theNkaonminusInitial += Math::heaviside(-ParticleTable::getIsospin(p->getType()));
|
||||
}
|
||||
if(p->isAntiNucleon()) {
|
||||
theNantiprotonInitial += Math::heaviside(ParticleTable::getIsospin(p->getType()));
|
||||
}
|
||||
if(!p->isTargetSpectator()) theStore->getBook().incrementCascading();
|
||||
};
|
||||
|
||||
@@ -122,6 +128,7 @@ namespace G4INCL {
|
||||
G4int getNumberOfEnteringNeutrons() const { return theNnInitial; };
|
||||
G4int getNumberOfEnteringPions() const { return theNpionplusInitial+theNpionminusInitial; };
|
||||
G4int getNumberOfEnteringKaons() const { return theNkaonplusInitial+theNkaonminusInitial; };
|
||||
G4int getNumberOfEnteringantiProtons() const { return theNantiprotonInitial; };
|
||||
|
||||
/** \brief Outgoing - incoming separation energies.
|
||||
*
|
||||
@@ -151,7 +158,9 @@ namespace G4INCL {
|
||||
case SigmaPlus:
|
||||
case SigmaZero:
|
||||
case SigmaMinus:
|
||||
case antiProton:
|
||||
case antiProton:
|
||||
//case antiNeutron:
|
||||
//case antiLambda:
|
||||
S += thePotential->getSeparationEnergy(*i);
|
||||
break;
|
||||
case Composite:
|
||||
@@ -170,6 +179,7 @@ namespace G4INCL {
|
||||
S -= theNkaonplusInitial*thePotential->getSeparationEnergy(KPlus);
|
||||
S -= theNpionminusInitial*thePotential->getSeparationEnergy(PiMinus);
|
||||
S -= theNkaonminusInitial*thePotential->getSeparationEnergy(KMinus);
|
||||
S -= theNantiprotonInitial*thePotential->getSeparationEnergy(antiProton);
|
||||
return S;
|
||||
}
|
||||
|
||||
@@ -505,6 +515,8 @@ namespace G4INCL {
|
||||
/// \brief The number of entering kaons
|
||||
G4int theNkaonplusInitial;
|
||||
G4int theNkaonminusInitial;
|
||||
/// \brief The number of entering antiprotons
|
||||
G4int theNantiprotonInitial;
|
||||
|
||||
G4double initialInternalEnergy;
|
||||
ThreeVector incomingAngularMomentum, incomingMomentum;
|
||||
@@ -514,14 +526,7 @@ namespace G4INCL {
|
||||
G4double initialEnergy;
|
||||
Store *theStore;
|
||||
G4bool tryCN;
|
||||
|
||||
/// \brief The charge number of the projectile
|
||||
G4int projectileZ;
|
||||
/// \brief The mass number of the projectile
|
||||
G4int projectileA;
|
||||
/// \brief The strangeness number of the projectile
|
||||
G4int projectileS;
|
||||
|
||||
|
||||
/// \brief The radius of the universe
|
||||
G4double theUniverseRadius;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user