Import Geant4 10.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-12-09 12:35:28 +01:00
parent 4ec577e5c4
commit a3452e42ac
3514 changed files with 210500 additions and 89628 deletions
@@ -87,7 +87,7 @@ namespace G4INCL {
G4bool isParticle2Spectator;
G4bool isElastic;
INCL_DECLARE_ALLOCATION_POOL(BinaryCollisionAvatar);
INCL_DECLARE_ALLOCATION_POOL(BinaryCollisionAvatar)
};
}
@@ -445,7 +445,7 @@ namespace G4INCL {
ThreeVector theSpin;
ParticleSampler *theParticleSampler;
INCL_DECLARE_ALLOCATION_POOL(Cluster);
INCL_DECLARE_ALLOCATION_POOL(Cluster)
};
}
@@ -51,7 +51,23 @@ namespace G4INCL {
G4double NNToxPiNN(const G4int xpi, Particle const * const p1, Particle const * const p2);
G4double piNToDelta(Particle const * const p1, Particle const * const p2);
G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2);
G4double piNToEtaN(Particle const * const p1, Particle const * const p2);
G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
G4double 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);
G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
G4double NNToNNOmega(Particle const * const p1, Particle const * const p2);
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 Calculate the slope of the NN DDXS.
*
* \param energyCM energy in the CM frame, in MeV
@@ -73,7 +73,45 @@ namespace G4INCL {
/// \brief Cross section for X pion production - piN Channel
virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance production - piN Channel
virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleons - piN Channel
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production - NN entrance channel
virtual G4double NNToNNEta(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for X pion production - NNEta Channel
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production - NN entrance channel
virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNOmegaExclu(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for X pion production - NNEta Channel
virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaOmega(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
@@ -93,7 +131,7 @@ namespace G4INCL {
G4double spnPiPlusPHE(const G4double x);
G4double spnPiMinusPHE(const G4double x);
};
}
@@ -84,7 +84,45 @@ namespace G4INCL {
* \return the slope of the angular distribution
*/
virtual G4double calculateNNAngularSlope(G4double energyCM, G4int iso);
/// \brief Cross sections for mesonic resonance production - piN Channel
virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - piN Channel
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production - NN entrance channel
virtual G4double NNToNNEta(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for X pion production - NNEta Channel
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production - NN entrance channel
virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNOmegaExclu(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for X pion production - NNEta Channel
virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2);
protected:
/// \brief Maximum number of outgoing pions in NN collisions
static const G4int nMaxPiNN;
@@ -174,13 +212,20 @@ namespace G4INCL {
G4double piNIne(Particle const * const p1, Particle const * const p2);
G4double piNTot(Particle const * const p1, Particle const * const p2);
G4double piNTopiN(Particle const * const p1, Particle const * const p2);
G4double piPluspIne(Particle const * const p1, Particle const * const p2);
G4double piMinuspIne(Particle const * const p1, Particle const * const p2);
G4double piPluspOnePi(Particle const * const p1, Particle const * const p2);
G4double piMinuspOnePi(Particle const * const p1, Particle const * const p2);
G4double piPluspTwoPi(Particle const * const p1, Particle const * const p2);
G4double piMinuspTwoPi(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for One (more) pion production - piN entrance channel
virtual G4double piNOnePi(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Two (more) pion production - piN entrance channel
virtual G4double piNTwoPi(Particle const * const p1, Particle const * const p2);
};
}
@@ -0,0 +1,227 @@
//
// ********************************************************************
// * 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 G4INCLCrossSectionsMultiPionsAndResonances.hh
* \brief Multipion and mesonic Resonances cross sections
*
* \date 4th February 2014
* \author Jean-Christophe David
*/
#ifndef G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH
#define G4INCLCROSSSECTIONSMULTIPIONSANDRESONANCES_HH
#include "G4INCLCrossSectionsMultiPions.hh"
//#include <limits>
namespace G4INCL {
/// \brief Multipion and mesonic Resonances cross sections
class CrossSectionsMultiPionsAndResonances : public CrossSectionsMultiPions {
public:
CrossSectionsMultiPionsAndResonances();
/// \brief new elastic particle-particle cross section
virtual G4double elastic(Particle const * const p1, Particle const * const p2);
/// \brief new total particle-particle cross section
virtual G4double total(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for X pion production - piN Channel (modified due to the mesonic resonances)
virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance production - piN Channel
virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2);
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - piN Channel
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2);
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - pipiN Channel
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Eta production (inclusive) - NN entrance channel
virtual G4double NNToNNEta(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNEtaExclu(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Omega production (inclusive) - NN entrance channel
virtual G4double NNToNNOmega(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for Omega production (exclusive) - NN entrance channel
virtual G4double NNToNNOmegaExclu(Particle const * const particle1, Particle const * const particle2);
/// \brief Cross section for X pion production - NN Channel
virtual G4double NNToxPiNN(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for X pion production - NNEta Channel
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for X pion production - NNOmega Channel
virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2);
/// \brief Cross section for N-Delta-Eta production - NNOmega Channel
virtual G4double NNToNDeltaOmega(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;
/// \brief One over threshold for s11pz
static const G4double s11pzOOT;
/// \brief One over threshold for s01pp
static const G4double s01ppOOT;
/// \brief One over threshold for s01pz
static const G4double s01pzOOT;
/// \brief One over threshold for s11pm
static const G4double s11pmOOT;
/// \brief One over threshold for s12pm
static const G4double s12pmOOT;
/// \brief One over threshold for s12pp
static const G4double s12ppOOT;
/// \brief One over threshold for s12zz
static const G4double s12zzOOT;
/// \brief One over threshold for s02pz
static const G4double s02pzOOT;
/// \brief One over threshold for s02pm
static const G4double s02pmOOT;
/// \brief One over threshold for s12mz
static const G4double s12mzOOT;
/// \brief Internal function for pion cross sections
G4double piMinuspToEtaN(Particle const * const p1, Particle const * const p2);
G4double piMinuspToEtaN(const G4double ECM);
G4double piMinuspToOmegaN(Particle const * const p1, Particle const * const p2);
G4double piMinuspToOmegaN(const G4double ECM);
// G4double piPluspOnePi(Particle const * const p1, Particle const * const p2);
// G4double piMinuspOnePi(Particle const * const p1, Particle const * const p2);
// G4double piPluspTwoPi(Particle const * const p1, Particle const * const p2);
// G4double piMinuspTwoPi(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for One (more) pion production - piN entrance channel
// virtual G4double piNOnePi(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Two (more) pion production - piN entrance channel
// virtual G4double piNTwoPi(Particle const * const p1, Particle const * const p2);
/// \brief Cross section for Three (more) pion production - piN entrance channel
///virtual G4double piNThreePi(Particle const * const p1, Particle const * const p2);
/// \brief Isotopic Cross section for Eta production (inclusive) - NN entrance channel
virtual G4double NNToNNEtaIso(const G4double ener, const G4int iso);
/// \brief Isotopic Cross section for Eta production (exclusive) - NN entrance channel
virtual G4double NNToNNEtaExcluIso(const G4double ener, const G4int iso);
/// \brief Cross section for direct 1-pion production - NNEta channel
virtual G4double NNToNNEtaOnePi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 1-pion production - NNEta channel
virtual G4double NNToNNEtaOnePiOrDelta(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 2-pion production - NNEta channel
virtual G4double NNToNNEtaTwoPi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 3-pion production - NNEta channel
virtual G4double NNToNNEtaThreePi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 4-pion production - NNEta channel
virtual G4double NNToNNEtaFourPi(Particle const * const part1, Particle const * const part2);
/// \brief Isotopic Cross section for Omega production (inclusive) - NN entrance channel
virtual G4double NNToNNOmegaIso(const G4double ener, const G4int iso);
/// \brief Isotopic Cross section for Omega production (exclusive) - NN entrance channel
virtual G4double NNToNNOmegaExcluIso(const G4double ener, const G4int iso);
/// \brief Cross section for direct 1-pion production - NNOmega channel
virtual G4double NNToNNOmegaOnePi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 1-pion production - NNOmega channel
virtual G4double NNToNNOmegaOnePiOrDelta(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 2-pion production - NNOmega channel
virtual G4double NNToNNOmegaTwoPi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 3-pion production - NNOmega channel
virtual G4double NNToNNOmegaThreePi(Particle const * const part1, Particle const * const part2);
/// \brief Cross section for direct 4-pion production - NNOmega channel
virtual G4double NNToNNOmegaFourPi(Particle const * const part1, Particle const * const part2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - elastic Channel
virtual G4double etaNElastic(Particle const * const p1, Particle const * const p2);
virtual G4double omegaNElastic(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for mesonic resonance absorption on nucleon - inelastic Channel
virtual G4double omegaNInelastic(Particle const * const p1, Particle const * const p2);
/// \brief Cross sections for omega-induced 2Pi emission on nucleon
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2);
};
}
#endif
@@ -74,7 +74,7 @@ namespace G4INCL {
G4bool forced;
ThreeVector const incidentDirection;
INCL_DECLARE_ALLOCATION_POOL(DecayAvatar);
INCL_DECLARE_ALLOCATION_POOL(DecayAvatar)
};
}
@@ -60,7 +60,7 @@ namespace G4INCL {
Particle *theParticle;
ThreeVector const incidentDirection;
INCL_DECLARE_ALLOCATION_POOL(DeltaDecayChannel);
INCL_DECLARE_ALLOCATION_POOL(DeltaDecayChannel)
};
}
@@ -58,7 +58,7 @@ namespace G4INCL {
Particle *particle1, *particle2;
static const G4int maxTries;
INCL_DECLARE_ALLOCATION_POOL(DeltaProductionChannel);
INCL_DECLARE_ALLOCATION_POOL(DeltaProductionChannel)
};
}
@@ -57,7 +57,7 @@ namespace G4INCL {
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(ElasticChannel);
INCL_DECLARE_ALLOCATION_POOL(ElasticChannel)
};
}
@@ -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 G4INCLEtaNElasticChannel_hh
#define G4INCLEtaNElasticChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class EtaNElasticChannel : public IChannel {
public:
EtaNElasticChannel(Particle *, Particle *);
virtual ~EtaNElasticChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(EtaNElasticChannel);
};
}
#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 G4INCLEtaNToPiNChannel_hh
#define G4INCLEtaNToPiNChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class EtaNToPiNChannel : public IChannel {
public:
EtaNToPiNChannel(Particle *, Particle *);
virtual ~EtaNToPiNChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(EtaNToPiNChannel);
};
}
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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 G4INCLEtaNToPiPiNChannel_hh
#define G4INCLEtaNToPiPiNChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class EtaNToPiPiNChannel : public IChannel {
public:
EtaNToPiPiNChannel(Particle *, Particle *);
virtual ~EtaNToPiPiNChannel();
void fillFinalState(FinalState *fs);
private:
G4int ind2; // can be changed
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(EtaNToPiPiNChannel);
};
}
#endif
@@ -75,7 +75,55 @@ namespace G4INCL {
/// \brief Cross section for piN->piNpi
virtual G4double piNToxPiN(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for PiN->EtaN
virtual G4double piNToEtaN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for PiN->OmegaN
virtual G4double piNToOmegaN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for PiN->EtaPrimeN
virtual G4double piNToEtaPrimeN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for EtaN->PiN
virtual G4double etaNToPiN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for EtaN->PiPiN
virtual G4double etaNToPiPiN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for OmegaN->PiN
virtual G4double omegaNToPiN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for OmegaN->PiPiN
virtual G4double omegaNToPiPiN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for EtaPrimeN->PiN
virtual G4double etaPrimeNToPiN(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEta (inclusive)
virtual G4double NNToNNEta(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEta (exclusive)
virtual G4double NNToNNEtaExclu(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEtaxPi
virtual G4double NNToNNEtaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaEta(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEta (inclusive)
virtual G4double NNToNNOmega(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEta (exclusive)
virtual G4double NNToNNOmegaExclu(Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for NN->NNEtaxPi
virtual G4double NNToNNOmegaxPi(const G4int xpi, Particle const * const p1, Particle const * const p2) = 0;
/// \brief Cross section for N-Delta-Eta production - NNEta Channel
virtual G4double NNToNDeltaOmega(Particle const * const p1, Particle const * const p2) = 0;
/** \brief Calculate the slope of the NN DDXS.
*
* \param energyCM energy in the CM frame, in MeV
@@ -185,6 +185,35 @@ namespace G4INCL {
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 {
// assert(p->getType()==Eta || p->getType()==Omega || p->getType()==EtaPrime || p->getType()==Photon);
if(pionPotential && !p->isOutOfWell()) {
switch( p->getType() ) {
case Eta:
//jcd return vPiZero;
//jcd return vPiZero*1.5;
return 0.0; // (JCD: seems to give better results)
break;
case Omega:
return 15.0; // S.Friedrich et al., Physics Letters B736(2014)26-32. (V. Metag in Hyperfine Interact (2015) 234:25-31 gives 29 MeV)
break;
case EtaPrime:
return 37.0; // V. Metag in Hyperfine Interact (2015) 234:25-31
break;
case Photon:
return 0.0;
break;
default:
return 0.0;
break;
}
}
else
return 0.0;
}
protected:
/// \brief The mass number of the nucleus
const G4int theA;
@@ -221,7 +221,7 @@ namespace G4INCL {
ParticleList modified, created, modifiedAndCreated;
INCL_DECLARE_ALLOCATION_POOL(InteractionAvatar);
INCL_DECLARE_ALLOCATION_POOL(InteractionAvatar)
};
}
@@ -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 G4INCLNDeltaEtaProductionChannel_hh
#define G4INCLNDeltaEtaProductionChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaEtaProductionChannel : public IChannel {
public:
NDeltaEtaProductionChannel(Particle *, Particle *);
virtual ~NDeltaEtaProductionChannel();
void fillFinalState(FinalState *fs);
private:
G4double sampleDeltaMass(G4double ecm);
Particle *particle1, *particle2;
static const G4double angularSlope;
static const G4int maxTries;
INCL_DECLARE_ALLOCATION_POOL(NDeltaEtaProductionChannel);
};
}
#endif
@@ -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 G4INCLNDeltaOmegaProductionChannel_hh
#define G4INCLNDeltaOmegaProductionChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NDeltaOmegaProductionChannel : public IChannel {
public:
NDeltaOmegaProductionChannel(Particle *, Particle *);
virtual ~NDeltaOmegaProductionChannel();
void fillFinalState(FinalState *fs);
private:
G4double sampleDeltaMass(G4double ecm);
Particle *particle1, *particle2;
static const G4double angularSlope;
static const G4int maxTries;
INCL_DECLARE_ALLOCATION_POOL(NDeltaOmegaProductionChannel);
};
}
#endif
@@ -0,0 +1,124 @@
//
// ********************************************************************
// * 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 G4INCLNNEtaToMultiPionsChannel_hh
#define G4INCLNNEtaToMultiPionsChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNEtaToMultiPionsChannel : public IChannel {
public:
NNEtaToMultiPionsChannel(const G4int, Particle *, Particle *);
virtual ~NNEtaToMultiPionsChannel();
void fillFinalState(FinalState *fs);
private:
G4int npion;
G4int iso1; // like isosp, can be changed in isospinRepartition
G4int iso2; // like isosp, can be changed in isospinRepartition
G4int isosp[4];
Particle *particle1, *particle2;
static const G4double angularSlope;
void inter2Part(const G4double p);
void pn_ppPim();
void pn_pnPi0();
void pn_nnPip();
void pp_nnPipPip();
void nn_ppPimPim();
void pn_pnPipPim();
void pn_pnPi0Pi0();
void pp_ppPipPim();
void nn_nnPipPim();
void pp_ppPi0Pi0();
void nn_nnPi0Pi0();
void pp_pnPipPi0();
void pn_ppPimPi0();
void pn_nnPipPi0();
void nn_pnPimPi0();
void pp_pnPipPi0Pi0();
void nn_pnPimPi0Pi0();
void pn_nnPipPi0Pi0();
void pp_ppPipPimPi0();
void nn_nnPipPimPi0();
void pp_ppPi0Pi0Pi0();
void nn_nnPi0Pi0Pi0();
void pp_pnPipPipPim();
void pp_nnPipPipPi0();
void pn_ppPimPi0Pi0();
void pn_ppPimPimPip();
void pn_pnPi0PipPim();
void pn_pnPi0Pi0Pi0();
void pn_nnPipPipPim();
void nn_pnPipPimPim();
void nn_ppPimPimPi0();
void pp_nnPipPipPi0Pi0();
void pp_nnPipPipPipPim();
void nn_ppPi0Pi0PimPim();
void nn_ppPipPimPimPim();
void pp_ppPi0Pi0Pi0Pi0();
void nn_nnPi0Pi0Pi0Pi0();
void pn_pnPi0Pi0Pi0Pi0();
void pp_ppPipPi0Pi0Pim();
void nn_nnPipPi0Pi0Pim();
void pn_pnPipPi0Pi0Pim();
void pp_ppPipPipPimPim();
void nn_nnPipPipPimPim();
void pn_pnPipPipPimPim();
void pp_pnPipPi0Pi0Pi0();
void pn_nnPipPi0Pi0Pi0();
void pp_nnPipPi0Pi0Pi0();
void pp_pnPipPipPi0Pim();
void pn_nnPipPipPi0Pim();
void pp_nnPipPipPi0Pim();
void nn_pnPi0Pi0Pi0Pim();
void pn_ppPi0Pi0Pi0Pim();
void nn_pnPipPi0PimPim();
void pn_ppPipPi0PimPim();
void isospinRepartition();
INCL_DECLARE_ALLOCATION_POOL(NNEtaToMultiPionsChannel);
};
}
#endif
@@ -0,0 +1,124 @@
//
// ********************************************************************
// * 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 G4INCLNNOmegaToMultiPionsChannel_hh
#define G4INCLNNOmegaToMultiPionsChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNOmegaToMultiPionsChannel : public IChannel {
public:
NNOmegaToMultiPionsChannel(const G4int, Particle *, Particle *);
virtual ~NNOmegaToMultiPionsChannel();
void fillFinalState(FinalState *fs);
private:
G4int npion;
G4int iso1; // like isosp, can be changed in isospinRepartition
G4int iso2; // like isosp, can be changed in isospinRepartition
G4int isosp[4];
Particle *particle1, *particle2;
static const G4double angularSlope;
void inter2Part(const G4double p);
void pn_ppPim();
void pn_pnPi0();
void pn_nnPip();
void pp_nnPipPip();
void nn_ppPimPim();
void pn_pnPipPim();
void pn_pnPi0Pi0();
void pp_ppPipPim();
void nn_nnPipPim();
void pp_ppPi0Pi0();
void nn_nnPi0Pi0();
void pp_pnPipPi0();
void pn_ppPimPi0();
void pn_nnPipPi0();
void nn_pnPimPi0();
void pp_pnPipPi0Pi0();
void nn_pnPimPi0Pi0();
void pn_nnPipPi0Pi0();
void pp_ppPipPimPi0();
void nn_nnPipPimPi0();
void pp_ppPi0Pi0Pi0();
void nn_nnPi0Pi0Pi0();
void pp_pnPipPipPim();
void pp_nnPipPipPi0();
void pn_ppPimPi0Pi0();
void pn_ppPimPimPip();
void pn_pnPi0PipPim();
void pn_pnPi0Pi0Pi0();
void pn_nnPipPipPim();
void nn_pnPipPimPim();
void nn_ppPimPimPi0();
void pp_nnPipPipPi0Pi0();
void pp_nnPipPipPipPim();
void nn_ppPi0Pi0PimPim();
void nn_ppPipPimPimPim();
void pp_ppPi0Pi0Pi0Pi0();
void nn_nnPi0Pi0Pi0Pi0();
void pn_pnPi0Pi0Pi0Pi0();
void pp_ppPipPi0Pi0Pim();
void nn_nnPipPi0Pi0Pim();
void pn_pnPipPi0Pi0Pim();
void pp_ppPipPipPimPim();
void nn_nnPipPipPimPim();
void pn_pnPipPipPimPim();
void pp_pnPipPi0Pi0Pi0();
void pn_nnPipPi0Pi0Pi0();
void pp_nnPipPi0Pi0Pi0();
void pp_pnPipPipPi0Pim();
void pn_nnPipPipPi0Pim();
void pp_nnPipPipPi0Pim();
void nn_pnPi0Pi0Pi0Pim();
void pn_ppPi0Pi0Pi0Pim();
void nn_pnPipPi0PimPim();
void pn_ppPipPi0PimPim();
void isospinRepartition();
INCL_DECLARE_ALLOCATION_POOL(NNOmegaToMultiPionsChannel);
};
}
#endif
@@ -117,7 +117,7 @@ namespace G4INCL {
void pn_ppPipPi0PimPim();
void isospinRepartition();
INCL_DECLARE_ALLOCATION_POOL(NNToMultiPionsChannel);
INCL_DECLARE_ALLOCATION_POOL(NNToMultiPionsChannel)
};
}
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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 G4INCLNNToNNEtaChannel_hh
#define G4INCLNNToNNEtaChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNNEtaChannel : public IChannel {
public:
NNToNNEtaChannel(Particle *, Particle *);
virtual ~NNToNNEtaChannel();
void fillFinalState(FinalState *fs);
private:
G4int iso1; // like isosp, can be changed in isospinRepartition
G4int iso2; // like isosp, can be changed in isospinRepartition
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNNEtaChannel);
};
}
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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 G4INCLNNToNNOmegaChannel_hh
#define G4INCLNNToNNOmegaChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class NNToNNOmegaChannel : public IChannel {
public:
NNToNNOmegaChannel(Particle *, Particle *);
virtual ~NNToNNOmegaChannel();
void fillFinalState(FinalState *fs);
private:
G4int iso1; // like isosp, can be changed in isospinRepartition
G4int iso2; // like isosp, can be changed in isospinRepartition
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(NNToNNOmegaChannel);
};
}
#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); // no neutral particles here
// assert(t!=Neutron && t!=PiZero && t!=DeltaZero && t!=Eta && t!=Omega && t!=EtaPrime && t!=Photon); // no neutral particles here
if(t==Composite) {
return transmissionRadius[t] +
ParticleTable::getNuclearRadius(t, p->getA(), p->getZ());
@@ -158,7 +158,13 @@ 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 decay of unstable outgoing clusters.
*
* \return true if any cluster was forced to decay.
@@ -234,7 +240,23 @@ 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;
}
/**
* Print the nucleus info
*/
@@ -296,7 +318,8 @@ namespace G4INCL {
* \return surface radius
*/
G4double getSurfaceRadius(Particle const * const particle) const {
if(particle->isPion())
// 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());
@@ -416,7 +439,7 @@ namespace G4INCL {
/// \brief Pointer to the NuclearPotential object
NuclearPotential::INuclearPotential const *thePotential;
INCL_DECLARE_ALLOCATION_POOL(Nucleus);
INCL_DECLARE_ALLOCATION_POOL(Nucleus)
};
}
@@ -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 G4INCLOmegaNElasticChannel_hh
#define G4INCLOmegaNElasticChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class OmegaNElasticChannel : public IChannel {
public:
OmegaNElasticChannel(Particle *, Particle *);
virtual ~OmegaNElasticChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(OmegaNElasticChannel);
};
}
#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 G4INCLOmegaNToPiNChannel_hh
#define G4INCLOmegaNToPiNChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class OmegaNToPiNChannel : public IChannel {
public:
OmegaNToPiNChannel(Particle *, Particle *);
virtual ~OmegaNToPiNChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(OmegaNToPiNChannel);
};
}
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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 G4INCLOmegaNToPiPiNChannel_hh
#define G4INCLOmegaNToPiPiNChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class OmegaNToPiPiNChannel : public IChannel {
public:
OmegaNToPiPiNChannel(Particle *, Particle *);
virtual ~OmegaNToPiPiNChannel();
void fillFinalState(FinalState *fs);
private:
G4int ind2; // can be changed
Particle *particle1, *particle2;
static const G4double angularSlope;
INCL_DECLARE_ALLOCATION_POOL(OmegaNToPiPiNChannel);
};
}
#endif
@@ -63,7 +63,7 @@ namespace G4INCL {
Nucleus *theNucleus;
Particle *theParticle;
INCL_DECLARE_ALLOCATION_POOL(ParticleEntryAvatar);
INCL_DECLARE_ALLOCATION_POOL(ParticleEntryAvatar)
};
}
@@ -66,7 +66,7 @@ namespace G4INCL {
Nucleus *theNucleus;
Particle *theParticle;
INCL_DECLARE_ALLOCATION_POOL(ParticleEntryChannel);
INCL_DECLARE_ALLOCATION_POOL(ParticleEntryChannel)
};
}
@@ -54,7 +54,7 @@ namespace G4INCL {
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(PiNElasticChannel);
INCL_DECLARE_ALLOCATION_POOL(PiNElasticChannel)
};
}
@@ -54,7 +54,7 @@ namespace G4INCL {
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(PiNToDeltaChannel);
INCL_DECLARE_ALLOCATION_POOL(PiNToDeltaChannel)
};
}
@@ -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 G4INCLPiNToEtaChannel_hh
#define G4INCLPiNToEtaChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class PiNToEtaChannel : public IChannel {
public:
PiNToEtaChannel(Particle *, Particle *);
virtual ~PiNToEtaChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(PiNToEtaChannel);
};
}
#endif
@@ -61,7 +61,7 @@ namespace G4INCL {
void isospinRepartition(G4int ipi);
INCL_DECLARE_ALLOCATION_POOL(PiNToMultiPionsChannel);
INCL_DECLARE_ALLOCATION_POOL(PiNToMultiPionsChannel)
};
}
@@ -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 G4INCLPiNToOmegaChannel_hh
#define G4INCLPiNToOmegaChannel_hh 1
#include "G4INCLParticle.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class PiNToOmegaChannel : public IChannel {
public:
PiNToOmegaChannel(Particle *, Particle *);
virtual ~PiNToOmegaChannel();
void fillFinalState(FinalState *fs);
private:
Particle *particle1, *particle2;
INCL_DECLARE_ALLOCATION_POOL(PiNToOmegaChannel);
};
}
#endif
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * 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 G4INCLPionResonanceDecayChannel_hh
#define G4INCLPionResonanceDecayChannel_hh 1
#include "G4INCLIChannel.hh"
#include "G4INCLParticle.hh"
#include "G4INCLNucleus.hh"
#include "G4INCLIChannel.hh"
#include "G4INCLFinalState.hh"
#include "G4INCLAllocationPool.hh"
namespace G4INCL {
class PionResonanceDecayChannel : public IChannel {
public:
PionResonanceDecayChannel(Particle *, ThreeVector const &);
virtual ~PionResonanceDecayChannel();
static G4double computeDecayTime(Particle *p);
void fillFinalState(FinalState *fs);
private:
void sampleAngles(G4double*, G4double*, G4double*);
static const G4double angularSlope;
Particle *theParticle;
ThreeVector const incidentDirection;
INCL_DECLARE_ALLOCATION_POOL(PionResonanceDecayChannel);
};
}
#endif
@@ -280,7 +280,7 @@ namespace G4INCL {
/// \brief Ground-state energies for any number of nucleons
EnergyLevels theGroundStateEnergies;
INCL_DECLARE_ALLOCATION_POOL(ProjectileRemnant);
INCL_DECLARE_ALLOCATION_POOL(ProjectileRemnant)
};
}
@@ -63,7 +63,7 @@ namespace G4INCL {
private:
Particle *theNucleon, *theDelta;
INCL_DECLARE_ALLOCATION_POOL(RecombinationChannel);
INCL_DECLARE_ALLOCATION_POOL(RecombinationChannel)
};
}
@@ -68,7 +68,7 @@ namespace G4INCL {
Nucleus *theNucleus;
Particle *theParticle;
INCL_DECLARE_ALLOCATION_POOL(ReflectionChannel);
INCL_DECLARE_ALLOCATION_POOL(ReflectionChannel)
};
}
#endif //REFLECTIONCHANNEL_HH_
@@ -107,7 +107,7 @@ namespace G4INCL {
G4double refractionIndexRatio;
G4bool internalReflection;
INCL_DECLARE_ALLOCATION_POOL(SurfaceAvatar);
INCL_DECLARE_ALLOCATION_POOL(SurfaceAvatar)
};
}
@@ -85,7 +85,7 @@ namespace G4INCL {
/// \brief Cosine of the refraction angle
const G4double cosRefractionAngle;
INCL_DECLARE_ALLOCATION_POOL(TransmissionChannel);
INCL_DECLARE_ALLOCATION_POOL(TransmissionChannel)
};
}
#endif // TransmissionChannel_hh