Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -78,10 +78,17 @@ namespace G4INCL {
static G4double getCutNN() { return cutNN; }
static G4double getCutNNSquared() { return cutNNSquared; }
/// \brief Get the bias
static G4double getBias() { return bias; }
/// \brief Set the bias
static void setBias(const G4double b) { bias=b; }
private:
static G4ThreadLocal G4double cutNN;
static G4ThreadLocal G4double cutNNSquared;
static G4ThreadLocal G4double bias;
G4double theCrossSection;
G4bool isParticle1Spectator;
G4bool isParticle2Spectator;
@@ -52,7 +52,7 @@ namespace G4INCL {
G4bool isBlocked(ParticleList const &, Nucleus const * const);
inline void processOneParticle(Particle const * const p) {
if(p->isNucleon()) {
if(p->isBaryon()) {
const G4double Tf = thePotential->getFermiEnergy(p);
const G4double T = p->getKineticEnergy();
@@ -62,7 +62,7 @@ namespace G4INCL {
} else {
TbelowTf += T - p->getPotentialEnergy();
}
} else if(p->isPion() || p->isResonance()) {
} else if(p->isMeson() || p->isResonance()) {
const G4double sep = thePotential->getSeparationEnergy(p);
Sk += sep;
}
@@ -61,29 +61,32 @@ namespace G4INCL {
/// \brief Dummy assignment operator to silence Coverity warning
INCL &operator=(const INCL &rhs);
G4bool prepareReaction(const ParticleSpecies &projectileSpecies, const G4double kineticEnergy, const G4int A, const G4int Z);
G4bool initializeTarget(const G4int A, const G4int Z);
G4bool prepareReaction(const ParticleSpecies &projectileSpecies, const G4double kineticEnergy, const G4int A, const G4int Z, const G4int S);
G4bool initializeTarget(const G4int A, const G4int Z, const G4int S);
inline const EventInfo &processEvent() {
return processEvent(
theConfig->getProjectileSpecies(),
theConfig->getProjectileKineticEnergy(),
theConfig->getTargetA(),
theConfig->getTargetZ()
theConfig->getTargetZ(),
theConfig->getTargetS()
);
}
const EventInfo &processEvent(
ParticleSpecies const &projectileSpecies,
const G4double kineticEnergy,
const G4int targetA,
const G4int targetZ
const G4int targetZ,
const G4int targetS
);
void finalizeGlobalInfo(Random::SeedVector const &initialSeeds);
const GlobalInfo &getGlobalInfo() const { return theGlobalInfo; }
private:
IPropagationModel *propagationModel;
G4int theA, theZ;
G4int theA, theZ, theS;
G4bool targetInitSuccess;
G4double maxImpactParameter;
G4double maxUniverseRadius;
@@ -93,7 +96,7 @@ namespace G4INCL {
Config const * const theConfig;
Nucleus *nucleus;
G4bool forceTransparent;
EventInfo theEventInfo;
GlobalInfo theGlobalInfo;
@@ -57,7 +57,7 @@ namespace G4INCL {
* This constructor should mainly be used when constructing Nucleus or
* when constructing Clusters to be used as composite projectiles.
*/
Cluster(const G4int Z, const G4int A, const G4bool createParticleSampler=true) :
Cluster(const G4int Z, const G4int A, const G4int S, const G4bool createParticleSampler=true) :
Particle(),
theExcitationEnergy(0.),
theSpin(0.,0.,0.),
@@ -66,6 +66,7 @@ namespace G4INCL {
setType(Composite);
theZ = Z;
theA = A;
theS = S;
setINCLMass();
if(createParticleSampler)
theParticleSampler = new ParticleSampler(A,Z);
@@ -129,7 +130,7 @@ namespace G4INCL {
}
ParticleSpecies getSpecies() const {
return ParticleSpecies(theA, theZ);
return ParticleSpecies(theA, theZ, theS);
}
void deleteParticles() {
@@ -147,6 +148,9 @@ namespace G4INCL {
/// \brief Set the mass number of the cluster
void setA(const G4int A) { theA = A; }
/// \brief Set the strangess number of the cluster
void setS(const G4int S) { theS = S; }
/// \brief Get the excitation energy of the cluster.
G4double getExcitationEnergy() const { return theExcitationEnergy; }
@@ -179,6 +183,7 @@ namespace G4INCL {
thePosition += p->getPosition();
theA += p->getA();
theZ += p->getZ();
theS += p->getS();
nCollisions += p->getNumberOfCollisions();
}
@@ -190,6 +195,7 @@ namespace G4INCL {
thePosition = ThreeVector();
theA = 0;
theZ = 0;
theS = 0;
nCollisions = 0;
for(ParticleIter p=particles.begin(), e=particles.end(); p!=e; ++p) {
theEnergy += (*p)->getEnergy();
@@ -198,6 +204,7 @@ namespace G4INCL {
thePosition += (*p)->getPosition();
theA += (*p)->getA();
theZ += (*p)->getZ();
theS += (*p)->getS();
nCollisions += (*p)->getNumberOfCollisions();
}
}
@@ -218,6 +225,7 @@ namespace G4INCL {
ss << '\n'
<< " A = " << theA << '\n'
<< " Z = " << theZ << '\n'
<< " S = " << theS << '\n'
<< " mass = " << getMass() << '\n'
<< " energy = " << theEnergy << '\n'
<< " momentum = "
@@ -59,6 +59,7 @@ namespace G4INCL {
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);
G4double NNToNNEta(Particle const * const p1, Particle const * const p2);
G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2);
G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
@@ -67,7 +68,49 @@ namespace G4INCL {
G4double NNToNNOmegaExclu(Particle const * const p1, Particle const * const p2);
G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2);
/// \brief Strange cross sections
G4double NNToNLK(Particle const * const p1, Particle const * const p2);
G4double NNToNSK(Particle const * const p1, Particle const * const p2);
G4double NNToNLKpi(Particle const * const p1, Particle const * const p2);
G4double NNToNSKpi(Particle const * const p1, Particle const * const p2);
G4double NNToNLK2pi(Particle const * const p1, Particle const * const p2);
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 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 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 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 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 Calculate the slope of the NN DDXS.
*
* \param energyCM energy in the CM frame, in MeV
@@ -95,6 +138,33 @@ namespace G4INCL {
*/
G4double interactionDistancePiN(const G4double projectileKineticEnergy);
/** \brief Compute the "interaction distance".
*
* Defined on the basis of the average value of the K-N cross sections at
* the given kinetic energy.
*
* \return the interaction distance
*/
G4double interactionDistanceKN(const G4double projectileKineticEnergy);
/** \brief Compute the "interaction distance".
*
* Defined on the basis of the average value of the Kbar-N cross sections at
* the given kinetic energy.
*
* \return the interaction distance
*/
G4double interactionDistanceKbarN(const G4double projectileKineticEnergy);
/** \brief Compute the "interaction distance".
*
* Defined on the basis of the average value of the Y-N cross sections at
* the given kinetic energy.
*
* \return the interaction distance
*/
G4double interactionDistanceYN(const G4double projectileKineticEnergy);
void setCrossSections(ICrossSections *c);
void deleteCrossSections();
@@ -98,7 +98,63 @@ namespace G4INCL {
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);
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
/// \brief elastic scattering for Nucleon-Strange Particles cross sections
virtual G4double NYelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKbelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKelastic(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Nucleon to Stange particles cross sections
virtual G4double NNToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NNToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Delta to Stange particles cross sections
virtual G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2);
/// \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 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);
virtual G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Hyperon cross sections
virtual G4double NLToNS(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNL(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNS(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Kaon inelastic cross sections
virtual G4double NKToNK(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNK2pi(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-antiKaon inelastic cross sections
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 NKbToS2pi(Particle const * const p1, Particle const * const p2);
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 Cross section for Eta production - NN entrance channel
virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2);
@@ -122,7 +122,66 @@ namespace G4INCL {
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2);
/// \brief elastic scattering for Nucleon-Strange Particles cross sections
virtual G4double NYelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKbelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKelastic(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Nucleon to Stange particles cross sections
virtual G4double NNToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NNToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Delta to Stange particles cross sections
virtual G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2);
/// \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 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);
virtual G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Hyperon cross sections
virtual G4double NLToNS(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNL(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNS(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Kaon quasi-elastic and inelastic cross sections
virtual G4double NKToNK(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNK2pi(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-antiKaon quasi-elastic and inelastic cross sections
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 NKbToS2pi(Particle const * const p1, Particle const * const p2);
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);
protected:
/// \brief Maximum number of outgoing pions in NN collisions
static const G4int nMaxPiNN;
@@ -0,0 +1,163 @@
//
// ********************************************************************
// * 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 G4INCLCrossSectionsStrangeness.hh
* \brief Multipion, mesonic Resonances and strange cross sections
*
* \date 1st March 2016
* \author Jason Hirtz
*/
#ifndef G4INCLCROSSSECTIONSSTRANGENESS_HH
#define G4INCLCROSSSECTIONSSTRANGENESS_HH
#include "G4INCLCrossSectionsMultiPionsAndResonances.hh"
#include "G4INCLConfig.hh"
//#include <limits>
namespace G4INCL {
/// \brief Multipion, mesonic Resonances and strange cross sections
class CrossSectionsStrangeness : public CrossSectionsMultiPionsAndResonances {
public:
CrossSectionsStrangeness();
/// \brief second new total particle-particle cross section
virtual G4double total(Particle const * const p1, Particle const * const p2);
/// \brief second new elastic particle-particle cross section
virtual G4double elastic(Particle const * const p1, Particle const * const p2);
/// \brief correction to old cross section
virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2);
virtual G4double NNToxPiNN(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief elastic scattering for Nucleon-Strange Particles cross sections
virtual G4double NYelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKbelastic(Particle const * const p1, Particle const * const p2);
virtual G4double NKelastic(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Nucleon to Stange particles cross sections
virtual G4double NNToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNLK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NNToNNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NNToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Delta to Stange particles cross sections
virtual G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2);
virtual G4double NDeltaToNNKKb(Particle const * const p1, Particle const * const p2);
/// \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);
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);
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);
virtual G4double NpiToSK2pi(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToNKKb(Particle const * const p1, Particle const * const p2);
virtual G4double NpiToMissingStrangeness(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Hyperon quasi-elastic cross sections
virtual G4double NLToNS(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNL(Particle const * const p1, Particle const * const p2);
virtual G4double NSToNS(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-Kaon cross sections
virtual G4double NKToNK(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNKpi(Particle const * const p1, Particle const * const p2);
virtual G4double NKToNK2pi(Particle const * const p1, Particle const * const p2);
/// \brief Nucleon-antiKaon cross sections
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 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 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;
/// \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
@@ -55,6 +55,7 @@ namespace G4INCL {
class DecayAvatar: public InteractionAvatar {
public:
DecayAvatar(G4INCL::Particle *aParticle, G4double time, G4INCL::Nucleus *aNucleus, G4bool force=false);
DecayAvatar(G4INCL::Particle *aParticle, G4INCL::Particle *bParticle, G4double time, G4INCL::Nucleus *aNucleus, G4bool force=false);
virtual ~DecayAvatar();
IChannel* getChannel();
@@ -111,7 +111,7 @@ namespace G4INCL {
/// \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;
@@ -123,7 +123,64 @@ namespace G4INCL {
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2) = 0;
/// \brief elastic scattering for Nucleon-Strange Particles cross sections
virtual G4double NYelastic(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NKbelastic(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NKelastic(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Nucleon-Nucleon to Stange particles cross sections
virtual G4double NNToNLK(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNSK(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNLKpi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNSKpi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNLK2pi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNSK2pi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToNNKKb(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NNToMissingStrangeness(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Nucleon-Delta to Stange particles cross sections
virtual G4double NDeltaToNLK(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NDeltaToNSK(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NDeltaToDeltaLK(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NDeltaToDeltaSK(Particle const * const p1, Particle const * const p2) = 0;
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-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-antiKaon inelastic cross sections
virtual G4double NKbToNKb(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NKbToSpi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NKbToLpi(Particle const * const p1, Particle const * const p2) = 0;
virtual G4double NKbToS2pi(Particle const * const p1, Particle const * const p2) = 0;
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 Calculate the slope of the NN DDXS.
*
* \param energyCM energy in the CM frame, in MeV
@@ -58,7 +58,6 @@
namespace G4INCL {
namespace NuclearPotential {
class INuclearPotential {
public:
INuclearPotential(const G4int A, const G4int Z, const G4bool pionPot) :
@@ -76,10 +75,18 @@ namespace G4INCL {
vPiPlus = vPionDefault + 71.*xsi - vc;
vPiZero = vPionDefault;
vPiMinus = vPionDefault - 71.*xsi + vc;
vKPlus = vKPlusDefault;
vKZero = vKPlusDefault + 10.; // Hypothesis to be check
vKMinus = vKMinusDefault;
vKZeroBar = vKMinusDefault - 10.; // Hypothesis to be check
} else {
vPiPlus = 0.0;
vPiZero = 0.0;
vPiMinus = 0.0;
vKPlus = 0.0;
vKZero = 0.0;
vKMinus = 0.0;
vKZeroBar = 0.0;
}
}
@@ -185,6 +192,37 @@ namespace G4INCL {
return 0.0;
}
protected:
/// \brief Compute the potential energy for the given kaon.
G4double computeKaonPotentialEnergy(const Particle * const p) const {
// assert(p->getType()==KPlus || p->getType()==KZero || p->getType()==KZeroBar || p->getType()==KMinus|| p->getType()==KShort|| p->getType()==KLong);
if(pionPotential && !p->isOutOfWell()) { // if pionPotental false -> kaonPotential false
switch( p->getType() ) {
case KPlus:
return vKPlus;
break;
case KZero:
return vKZero;
break;
case KZeroBar:
return vKZeroBar;
break;
case KShort:
case KLong:
return 0.0; // Should never be in the nucleus
break;
case KMinus:
return vKMinus;
break;
default:
return 0.0;
break;
}
}
else
return 0.0;
}
protected:
/// \brief Compute the potential energy for the given pion resonances (Eta, Omega and EtaPrime and Gamma also).
G4double computePionResonancePotentialEnergy(const Particle * const p) const {
@@ -223,6 +261,9 @@ namespace G4INCL {
const G4bool pionPotential;
G4double vPiPlus, vPiZero, vPiMinus;
static const G4double vPionDefault;
G4double vKPlus, vKZero, vKZeroBar, vKMinus;
static const G4double vKPlusDefault;
static const G4double vKMinusDefault;
protected:
/* \brief map of Fermi energies per particle type */
std::map<ParticleType,G4double> fermiEnergy;
@@ -109,6 +109,7 @@ namespace G4INCL {
ThreeVector boostVector;
G4double oldTotalEnergy, oldXSec;
G4bool isPiN;
G4double weight;
private:
/// \brief RootFunctor-derived object for enforcing energy conservation in N-N.
@@ -219,7 +220,7 @@ namespace G4INCL {
*/
G4bool enforceEnergyConservation(FinalState * const fs);
ParticleList modified, created, modifiedAndCreated;
ParticleList modified, created, modifiedAndCreated, Destroyed, ModifiedAndDestroyed;
INCL_DECLARE_ALLOCATION_POOL(InteractionAvatar)
};
@@ -87,9 +87,7 @@ namespace G4INCL {
inline G4double operator()(const G4double r) const {
const G4double arg = std::pow((r/theDiffusenessParameter),2);
return normalisation * r * arg
* (theDiffusenessParameter + theRadiusParameter * (arg - 1.) )
* std::exp(-arg);
return r*r*( 1. + theRadiusParameter * arg) * std::exp(-arg);
}
inline G4double getRadiusParameter() { return theRadiusParameter; };
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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 G4INCLNDeltaToDeltaLKChannel_hh
#define G4INCLNDeltaToDeltaLKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaToDeltaLKChannel : public IChannel {
public:
NDeltaToDeltaLKChannel(Particle *, Particle *);
virtual ~NDeltaToDeltaLKChannel();
void fillFinalState(FinalState *fs);
private:
G4double sampleDeltaMass(G4double ecm);
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NDeltaToDeltaLKChannel);
};
}
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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 G4INCLNDeltaToDeltaSKChannel_hh
#define G4INCLNDeltaToDeltaSKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaToDeltaSKChannel : public IChannel {
public:
NDeltaToDeltaSKChannel(Particle *, Particle *);
virtual ~NDeltaToDeltaSKChannel();
void fillFinalState(FinalState *fs);
private:
G4double sampleDeltaMass(G4double ecm);
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NDeltaToDeltaSKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNDeltaToNLKChannel_hh
#define G4INCLNDeltaToNLKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaToNLKChannel : public IChannel {
public:
NDeltaToNLKChannel(Particle *, Particle *);
virtual ~NDeltaToNLKChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NDeltaToNLKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNDeltaToNNKKbChannel_hh
#define G4INCLNDeltaToNNKKbChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaToNNKKbChannel : public IChannel {
public:
NDeltaToNNKKbChannel(Particle *, Particle *);
virtual ~NDeltaToNNKKbChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NDeltaToNNKKbChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNDeltaToNSKChannel_hh
#define G4INCLNDeltaToNSKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaToNSKChannel : public IChannel {
public:
NDeltaToNSKChannel(Particle *, Particle *);
virtual ~NDeltaToNSKChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NDeltaToNSKChannel);
};
}
#endif
@@ -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 G4INCLNKElasticChannel_hh
#define G4INCLNKElasticChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKElasticChannel : public IChannel {
public:
NKElasticChannel(Particle *, Particle *);
virtual ~NKElasticChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKElasticChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKToNK2piChannel_hh
#define G4INCLNKToNK2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKToNK2piChannel : public IChannel {
public:
NKToNK2piChannel(Particle *, Particle *);
virtual ~NKToNK2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKToNK2piChannel);
};
}
#endif
@@ -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 G4INCLNKToNKChannel_hh
#define G4INCLNKToNKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKToNKChannel : public IChannel {
public:
NKToNKChannel(Particle *, Particle *);
virtual ~NKToNKChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKToNKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKToNKpiChannel_hh
#define G4INCLNKToNKpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKToNKpiChannel : public IChannel {
public:
NKToNKpiChannel(Particle *, Particle *);
virtual ~NKToNKpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKToNKpiChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbElasticChannel_hh
#define G4INCLNKbElasticChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbElasticChannel : public IChannel {
public:
NKbElasticChannel(Particle *, Particle *);
virtual ~NKbElasticChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const kaon, Particle const * const nucleon);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKbElasticChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToL2piChannel_hh
#define G4INCLNKbToL2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToL2piChannel : public IChannel {
public:
NKbToL2piChannel(Particle *, Particle *);
virtual ~NKbToL2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKbToL2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToLpiChannel_hh
#define G4INCLNKbToLpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToLpiChannel : public IChannel {
public:
NKbToLpiChannel(Particle *, Particle *);
virtual ~NKbToLpiChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const kaon, Particle const * const nucleon);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKbToLpiChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToNKb2piChannel_hh
#define G4INCLNKbToNKb2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToNKb2piChannel : public IChannel {
public:
NKbToNKb2piChannel(Particle *, Particle *);
virtual ~NKbToNKb2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKbToNKb2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToNKbChannel_hh
#define G4INCLNKbToNKbChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToNKbChannel : public IChannel {
public:
NKbToNKbChannel(Particle *, Particle *);
virtual ~NKbToNKbChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const kaon, Particle const * const nucleon);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKbToNKbChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToNKbpiChannel_hh
#define G4INCLNKbToNKbpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToNKbpiChannel : public IChannel {
public:
NKbToNKbpiChannel(Particle *, Particle *);
virtual ~NKbToNKbpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKbToNKbpiChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToS2piChannel_hh
#define G4INCLNKbToS2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToS2piChannel : public IChannel {
public:
NKbToS2piChannel(Particle *, Particle *);
virtual ~NKbToS2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NKbToS2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNKbToSpiChannel_hh
#define G4INCLNKbToSpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NKbToSpiChannel : public IChannel {
public:
NKbToSpiChannel(Particle *, Particle *);
virtual ~NKbToSpiChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const kaon, Particle const * const nucleon, const G4int WhichChannel);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NKbToSpiChannel);
};
}
#endif
@@ -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 G4INCLNLToNSChannel_hh
#define G4INCLNLToNSChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NLToNSChannel : public IChannel {
public:
NLToNSChannel(Particle *, Particle *);
virtual ~NLToNSChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NLToNSChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToMissingStrangenessChannel_hh
#define G4INCLNNToMissingStrangenessChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToMissingStrangenessChannel : public IChannel {
public:
NNToMissingStrangenessChannel(Particle *, Particle *);
virtual ~NNToMissingStrangenessChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToMissingStrangenessChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNLK2piChannel_hh
#define G4INCLNNToNLK2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNLK2piChannel : public IChannel {
public:
NNToNLK2piChannel(Particle *, Particle *);
virtual ~NNToNLK2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNLK2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNLKChannel_hh
#define G4INCLNNToNLKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNLKChannel : public IChannel {
public:
NNToNLKChannel(Particle *, Particle *);
virtual ~NNToNLKChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNLKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNLKpiChannel_hh
#define G4INCLNNToNLKpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNLKpiChannel : public IChannel {
public:
NNToNLKpiChannel(Particle *, Particle *);
virtual ~NNToNLKpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNLKpiChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNNKKbChannel_hh
#define G4INCLNNToNNKKbChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNNKKbChannel : public IChannel {
public:
NNToNNKKbChannel(Particle *, Particle *);
virtual ~NNToNNKKbChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNNKKbChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNSK2piChannel_hh
#define G4INCLNNToNSK2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNSK2piChannel : public IChannel {
public:
NNToNSK2piChannel(Particle *, Particle *);
virtual ~NNToNSK2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNSK2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNSKChannel_hh
#define G4INCLNNToNSKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNSKChannel : public IChannel {
public:
NNToNSKChannel(Particle *, Particle *);
virtual ~NNToNSKChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNSKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNNToNSKpiChannel_hh
#define G4INCLNNToNSKpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNSKpiChannel : public IChannel {
public:
NNToNSKpiChannel(Particle *, Particle *);
virtual ~NNToNSKpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNSKpiChannel);
};
}
#endif
@@ -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 G4INCLNSToNLChannel_hh
#define G4INCLNSToNLChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NSToNLChannel : public IChannel {
public:
NSToNLChannel(Particle *, Particle *);
virtual ~NSToNLChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NSToNLChannel);
};
}
#endif
@@ -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 G4INCLNSToNSChannel_hh
#define G4INCLNSToNSChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NSToNSChannel : public IChannel {
public:
NSToNSChannel(Particle *, Particle *);
virtual ~NSToNSChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NSToNSChannel);
};
}
#endif
@@ -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 G4INCLNYElasticChannel_hh
#define G4INCLNYElasticChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NYElasticChannel : public IChannel {
public:
NYElasticChannel(Particle *, Particle *);
virtual ~NYElasticChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NYElasticChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNeutralKaonDecayChannel_hh
#define G4INCLNeutralKaonDecayChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NeutralKaonDecayChannel : public IChannel {
public:
NeutralKaonDecayChannel(Particle *);
virtual ~NeutralKaonDecayChannel();
void fillFinalState(FinalState *fs);
private:
Particle *theParticle;
INCL_DECLARE_ALLOCATION_POOL(NeutralKaonDecayChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToLK2piChannel_hh
#define G4INCLNpiToLK2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToLK2piChannel : public IChannel {
public:
NpiToLK2piChannel(Particle *, Particle *);
virtual ~NpiToLK2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToLK2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToLKChannel_hh
#define G4INCLNpiToLKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToLKChannel : public IChannel {
public:
NpiToLKChannel(Particle *, Particle *);
virtual ~NpiToLKChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const pion, Particle const * const nucleon);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NpiToLKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToLKpiChannel_hh
#define G4INCLNpiToLKpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToLKpiChannel : public IChannel {
public:
NpiToLKpiChannel(Particle *, Particle *);
virtual ~NpiToLKpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToLKpiChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToMissingStrangenessChannel_hh
#define G4INCLNpiToMissingStrangenessChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToMissingStrangenessChannel : public IChannel {
public:
NpiToMissingStrangenessChannel(Particle *, Particle *);
virtual ~NpiToMissingStrangenessChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToMissingStrangenessChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToNKKbChannel_hh
#define G4INCLNpiToNKKbChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToNKKbChannel : public IChannel {
public:
NpiToNKKbChannel(Particle *, Particle *);
virtual ~NpiToNKKbChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToNKKbChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToSK2piChannel_hh
#define G4INCLNpiToSK2piChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToSK2piChannel : public IChannel {
public:
NpiToSK2piChannel(Particle *, Particle *);
virtual ~NpiToSK2piChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToSK2piChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToSKChannel_hh
#define G4INCLNpiToSKChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToSKChannel : public IChannel {
public:
NpiToSKChannel(Particle *, Particle *);
virtual ~NpiToSKChannel();
void fillFinalState(FinalState *fs);
ThreeVector KaonMomentum(Particle const * const pion, Particle const * const nucleon, G4int WhichChannel);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(NpiToSKChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLNpiToSKpiChannel_hh
#define G4INCLNpiToSKpiChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NpiToSKpiChannel : public IChannel {
public:
NpiToSKpiChannel(Particle *, Particle *);
virtual ~NpiToSKpiChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NpiToSKpiChannel);
};
}
#endif
@@ -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); // no neutral particles here
// 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
if(t==Composite) {
return transmissionRadius[t] +
ParticleTable::getNuclearRadius(t, p->getA(), p->getZ());
@@ -65,7 +65,7 @@ namespace G4INCL {
virtual G4double computePotentialEnergy(const Particle * const p) const;
private:
G4double vNucleon, vDelta;
G4double vNucleon, vDelta, vSigma, vLambda;
void initialize();
@@ -64,6 +64,7 @@ namespace G4INCL {
private:
G4double vProton, vNeutron;
G4double vDeltaPlusPlus, vDeltaPlus, vDeltaZero, vDeltaMinus;
G4double vSigmaPlus, vSigmaZero, vSigmaMinus, vLambda;
void initialize();
@@ -64,7 +64,7 @@ namespace G4INCL {
class Nucleus : public Cluster {
public:
Nucleus(G4int mass, G4int charge, Config const * const conf, const G4double universeRadius=-1.);
Nucleus(G4int mass, G4int charge, G4int strangess, Config const * const conf, const G4double universeRadius=-1.);
virtual ~Nucleus();
/// \brief Dummy copy constructor to silence Coverity warning
@@ -83,11 +83,20 @@ namespace G4INCL {
void insertParticle(Particle *p) {
theZ += p->getZ();
theA += p->getA();
theS += p->getS();
theStore->particleHasEntered(p);
if(p->isNucleon()) {
theNpInitial += Math::heaviside(ParticleTable::getIsospin(p->getType()));
theNnInitial += Math::heaviside(-ParticleTable::getIsospin(p->getType()));
}
if(p->isPion()) {
theNpionplusInitial += Math::heaviside(ParticleTable::getIsospin(p->getType()));
theNpionminusInitial += Math::heaviside(-ParticleTable::getIsospin(p->getType()));
}
if(p->isKaon() || p->isAntiKaon()) {
theNkaonplusInitial += Math::heaviside(ParticleTable::getIsospin(p->getType()));
theNkaonminusInitial += Math::heaviside(-ParticleTable::getIsospin(p->getType()));
}
if(!p->isTargetSpectator()) theStore->getBook().incrementCascading();
};
@@ -98,6 +107,7 @@ namespace G4INCL {
G4int getInitialA() const { return theInitialA; };
G4int getInitialZ() const { return theInitialZ; };
G4int getInitialS() const { return theInitialS; };
/**
* Propagate the particles one time step.
@@ -108,6 +118,8 @@ namespace G4INCL {
G4int getNumberOfEnteringProtons() const { return theNpInitial; };
G4int getNumberOfEnteringNeutrons() const { return theNnInitial; };
G4int getNumberOfEnteringPions() const { return theNpionplusInitial+theNpionminusInitial; };
G4int getNumberOfEnteringKaons() const { return theNkaonplusInitial+theNkaonminusInitial; };
/** \brief Outgoing - incoming separation energies.
*
@@ -125,18 +137,20 @@ namespace G4INCL {
case DeltaPlus:
case DeltaZero:
case DeltaMinus:
case Lambda:
case PiPlus:
case PiMinus:
case KPlus:
case KMinus:
case SigmaPlus:
case SigmaZero:
case SigmaMinus:
S += thePotential->getSeparationEnergy(*i);
break;
case Composite:
S += (*i)->getZ() * thePotential->getSeparationEnergy(Proton)
+ ((*i)->getA() - (*i)->getZ()) * thePotential->getSeparationEnergy(Neutron);
break;
case PiPlus:
S += thePotential->getSeparationEnergy(Proton) - thePotential->getSeparationEnergy(Neutron);
break;
case PiMinus:
S += thePotential->getSeparationEnergy(Neutron) - thePotential->getSeparationEnergy(Proton);
break;
default:
break;
}
@@ -144,6 +158,10 @@ namespace G4INCL {
S -= theNpInitial * thePotential->getSeparationEnergy(Proton);
S -= theNnInitial * thePotential->getSeparationEnergy(Neutron);
S -= theNpionplusInitial*thePotential->getSeparationEnergy(PiPlus);;
S -= theNkaonplusInitial*thePotential->getSeparationEnergy(KPlus);
S -= theNpionminusInitial*thePotential->getSeparationEnergy(PiMinus);
S -= theNkaonminusInitial*thePotential->getSeparationEnergy(KMinus);
return S;
}
@@ -158,13 +176,31 @@ namespace G4INCL {
* \return true if any delta was forced to decay.
*/
G4bool decayInsideDeltas();
/** \brief Force the decay of outgoing PionResonances (eta/omega).
*
* \return true if any eta was forced to decay.
*/
G4bool decayOutgoingPionResonances(G4double timeThreshold);
/** \brief Force the transformation of strange particles into a Lambda;
*
* \return true if any strange particles was forced to absorb.
*/
G4bool decayInsideStrangeParticles();
/** \brief Force the decay of outgoing PionResonances (eta/omega).
*
* \return true if any eta was forced to decay.
*/
G4bool decayOutgoingPionResonances(G4double timeThreshold);
/** \brief Force the decay of outgoing Neutral Sigma.
*
* \return true if any Sigma was forced to decay.
*/
G4bool decayOutgoingSigmaZero(G4double timeThreshold);
/** \brief Force the transformation of outgoing Neutral Kaon into propation eigenstate.
*
* \return true if any kaon was forced to decay.
*/
G4bool decayOutgoingNeutralKaon();
/** \brief Force the decay of unstable outgoing clusters.
*
* \return true if any cluster was forced to decay.
@@ -181,6 +217,15 @@ namespace G4INCL {
/// \brief Force emission of all pions inside the nucleus.
void emitInsidePions();
/// \brief Force emission of all strange particles inside the nucleus.
void emitInsideStrangeParticles();
/// \brief Force emission of all Lambda (desexitation code with strangeness not implanted yet)
G4int emitInsideLambda();
/// \brief Force emission of all Kaon inside the nucleus
G4bool emitInsideKaon();
/** \brief Compute the recoil momentum and spin of the nucleus. */
void computeRecoilKinematics();
@@ -240,23 +285,55 @@ namespace G4INCL {
if((*i)->isDelta()) return true;
return false;
}
///\brief Returns true if the nucleus contains any etas.
inline G4bool containsEtas() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isEta()) return true;
return false;
}
///\brief Returns true if the nucleus contains any omegas.
inline G4bool containsOmegas() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isOmega()) return true;
return false;
}
///\brief Returns true if the nucleus contains any anti Kaons.
inline G4bool containsAntiKaon() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isAntiKaon()) return true;
return false;
}
///\brief Returns true if the nucleus contains any Lambda.
inline G4bool containsLambda() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isLambda()) return true;
return false;
}
///\brief Returns true if the nucleus contains any Sigma.
inline G4bool containsSigma() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isSigma()) return true;
return false;
}
///\brief Returns true if the nucleus contains any Kaons.
inline G4bool containsKaon() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isKaon()) return true;
return false;
}
///\brief Returns true if the nucleus contains any etas.
inline G4bool containsEtas() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isEta()) return true;
return false;
}
///\brief Returns true if the nucleus contains any omegas.
inline G4bool containsOmegas() {
ParticleList const &inside = theStore->getParticles();
for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
if((*i)->isOmega()) return true;
return false;
}
/**
* Print the nucleus info
*/
@@ -300,7 +377,7 @@ namespace G4INCL {
struct ConservationBalance {
ThreeVector momentum;
G4double energy;
G4int Z, A;
G4int Z, A, S;
};
/// \brief Compute charge, mass, energy and momentum balance
@@ -318,17 +395,17 @@ namespace G4INCL {
* \return surface radius
*/
G4double getSurfaceRadius(Particle const * const particle) const {
// if(particle->isPion())
if(particle->isPion() || particle->isEta() || particle->isOmega() || particle->isEtaPrime())
// Temporarily set RPION = RMAX
return getUniverseRadius();
//return 0.5*(theDensity->getTransmissionRadius(particle)+getUniverseRadius());
else {
if(particle->isNucleon() || particle->isLambda() || particle->isResonance()){
const G4double pr = particle->getReflectionMomentum()/thePotential->getFermiMomentum(particle);
if(pr>=1.)
return getUniverseRadius();
else
return theDensity->getMaxRFromP(particle->getType(), pr);
}
else {
// Temporarily set RPION = RMAX
return getUniverseRadius();
//return 0.5*(theDensity->getTransmissionRadius(particle)+getUniverseRadius());
}
}
@@ -399,11 +476,17 @@ namespace G4INCL {
void computeOneNucleonRecoilKinematics();
private:
G4int theInitialZ, theInitialA;
G4int theInitialZ, theInitialA, theInitialS;
/// \brief The number of entering protons
G4int theNpInitial;
/// \brief The number of entering neutrons
G4int theNnInitial;
/// \brief The number of entering pions
G4int theNpionplusInitial;
G4int theNpionminusInitial;
/// \brief The number of entering kaons
G4int theNkaonplusInitial;
G4int theNkaonminusInitial;
G4double initialInternalEnergy;
ThreeVector incomingAngularMomentum, incomingMomentum;
ThreeVector initialCenterOfMass;
@@ -417,7 +500,9 @@ namespace G4INCL {
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;
@@ -63,7 +63,7 @@ namespace G4INCL {
typedef std::map<long, G4double> EnergyLevelMap;
ProjectileRemnant(ParticleSpecies const &species, const G4double kineticEnergy)
: Cluster(species.theZ, species.theA) {
: Cluster(species.theZ, species.theA, species.theS) {
// Use the table mass
setTableMass();
@@ -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 G4INCLSigmaZeroDecayChannel_hh
#define G4INCLSigmaZeroDecayChannel_hh 1
#include "G4INCLIChannel.hh"
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class SigmaZeroDecayChannel : public IChannel {
public:
SigmaZeroDecayChannel(Particle *, ThreeVector const &);
virtual ~SigmaZeroDecayChannel();
static G4double computeDecayTime(Particle *p);
void fillFinalState(FinalState *fs);
private:
void sampleAngles(G4double*, G4double*, G4double*);
Particle *theParticle;
ThreeVector const incidentDirection;
INCL_DECLARE_ALLOCATION_POOL(SigmaZeroDecayChannel);
};
}
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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 G4INCLStrangeAbsorbtionChannel_hh
#define G4INCLStrangeAbsorbtionChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class StrangeAbsorbtionChannel : public IChannel {
public:
StrangeAbsorbtionChannel(Particle *, Particle *);
virtual ~StrangeAbsorbtionChannel();
void fillFinalState(FinalState *fs);
private:
void sampleAngles(G4double*, G4double*, G4double*);
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(StrangeAbsorbtionChannel);
};
}
#endif