1 #ifndef FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H
2 #define FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H
18 #include "G4Nucleus.hh"
19 #include "G4HadProjectile.hh"
20 #include "G4LorentzVector.hh"
21 #include "G4ThreeVector.hh"
25 class G4ParticleDefinition;
28 class G4TheoFSGenerator;
30 class G4ExcitedStringDecay;
31 class G4LundStringFragmentation;
32 class G4GeneratorPrecompoundInterface;
33 class G4CascadeInterface;
34 class G4DiffuseElastic;
35 class G4PhysicsLogVector;
G4FTFModel * theStringModel
G4CascadeInterface * theBertiniCascade
G4DiffuseElastic * theDiffuseElastic
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
Generate a nuclear interaction according to the probability that it happens.
~NuclearInteractionFTFSimulator() override
Default Destructor.
void saveDaughter(ParticlePropagator &Particle, const G4LorentzVector &lv, int pdgid)
double intLengthInelastic
G4HadProjectile theProjectile
double distanceToPrimary(const RawParticle &Particle, const RawParticle &aDaughter) const
static const int numHadrons
NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut, double elimit, double eth)
Constructor.
const G4ParticleDefinition * currParticle
G4GeneratorPrecompoundInterface * theCascade
G4LundStringFragmentation * theLund
static int theId[numHadrons]
static const G4ParticleDefinition * theG4Hadron[numHadrons]
G4PhysicsLogVector * vect
G4ExcitedStringDecay * theStringDecay
G4TheoFSGenerator * theHadronicModel