32 #define ABLAXX_IN_GEANT4_MODE 1
36 #ifdef ABLAXX_IN_GEANT4_MODE
53 theABLAModel(new
G4Abla(volant, ablaResult)),
76 const G4double eKinRem = (eTotRem - pRem.invariantMass()) /
MeV;
103 result->push_back(product);
116 else if(A == 3 && Z == 2)
return G4He3::He3();
118 else if(A > 0 && Z > 0 && A >= Z) {
121 G4cout <<
"Can't convert particle with A=" << A <<
", Z=" << Z <<
" to G4ParticleDefinition, trouble ahead" <<
G4endl;
144 outFile <<
"ABLA V3 does not provide an implementation of the ApplyYourself method!\n\n";
148 outFile <<
"ABLA V3 is a statistical model for nuclear de-excitation. It simulates\n"
149 <<
"evaporation of neutrons, protons and alpha particles, as well as fission\n"
150 <<
"where applicable. The code included in Geant4 is a C++ translation of the\n"
151 <<
"original Fortran code. More details about the physics are available in the\n"
152 <<
"the Geant4 Physics Reference Manual and in the reference articles.\n\n"
153 <<
"References: A.R. Junghans et al., Nucl. Phys. A629 (1998) 635;\n"
154 <<
" J. Benlliure et al., Nucl. Phys. A628 (1998) 458.\n\n"; }
156 #endif // ABLAXX_IN_GEANT4_MODE
Class containing ABLA de-excitation code.
CLHEP::Hep3Vector G4ThreeVector
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4double plab[VARNTPSIZE]
Momentum.
virtual G4ReactionProductVector * DeExcite(G4Fragment &aFragment)
G4int avv[VARNTPSIZE]
A (-1 for pions).
G4ThreeVector GetAngularMomentum() const
G4double enerj[VARNTPSIZE]
Kinetic energy.
std::vector< G4ReactionProduct * > G4ReactionProductVector
void breakItUp(G4int nucleusA, G4int nucleusZ, G4double nucleusMass, G4double excitationEnergy, G4double angularMomentum, G4double recoilEnergy, G4double momX, G4double momY, G4double momZ, G4int eventnumber)
Main interface to the de-excitation code.
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Evaporation and fission output data.
virtual void ModelDescription(std::ostream &outFile) const
virtual ~G4AblaInterface()
const G4LorentzVector & GetMomentum() const
static G4Triton * Triton()
G4double tetlab[VARNTPSIZE]
Theta angle.
static G4Proton * Proton()
static G4PionPlus * PionPlus()
G4double GetGroundStateMass() const
static G4Neutron * Neutron()
static G4PionZero * PionZero()
static G4Deuteron * Deuteron()
G4ReactionProduct * toG4Particle(G4int A, G4int Z, G4double kinE, G4double px, G4double py, G4double pz) const
Convert an Abla particle to a G4ReactionProduct.
static G4IonTable * GetIonTable()
virtual void DeExciteModelDescription(std::ostream &outFile) const
G4int ntrack
Number of particles.
void initEvapora()
Initialize ABLA evaporation code.
G4double energy(const ThreeVector &p, const G4double m)
static G4PionMinus * PionMinus()
void clear()
Clear and initialize all variables and arrays.
G4double philab[VARNTPSIZE]
Phi angle.
static constexpr double MeV
static constexpr double pi
G4ParticleDefinition * toG4ParticleDefinition(G4int A, G4int Z) const
Convert A and Z to a G4ParticleDefinition.
G4double GetExcitationEnergy() const
CLHEP::HepLorentzVector G4LorentzVector