61 std::vector<G4GIDI_Product>* products;
62 for (
G4int i = 0 ; i != 1024 ; i++ ) {
64 if ( products != NULL )
break;
71 if ( products != NULL )
76 G4bool needResidual =
true;
79 for (
G4int j = 0; j <
int( products->size() ); j++ )
82 G4int jZ = (*products)[j].Z;
83 G4int jA = (*products)[j].A;
84 G4int jm = (*products)[j].m;
102 if ( jA == 1 && jZ == 1 )
108 else if ( jA == 1 && jZ == 0 )
134 G4ThreeVector p( (*products)[j].px*
MeV , (*products)[j].py*MeV , (*products)[j].pz*MeV );
136 if ( p.
mag() == 0 ) p = proj_p - psum;
143 if ( !( iTotZ == 0 && iTotA == 0 ) ) {
145 if ( iTotZ >= 0 && iTotA > 0 ) {
146 if ( needResidual ) {
150 }
else if ( iTotA == 1 ) {
164 if ( needResidual ) {
G4int GetAtomicNumber() const
static constexpr double MeV
static G4IonTable * GetIonTable()
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
static G4Proton * Proton()
G4VPreCompoundModel * preco
G4LENDManager * lend_manager
G4int GetNucleusEncoding(G4int iZ, G4int iA, G4int iM)
const G4Material * GetMaterial() const
const G4Isotope * GetIsotope()
G4HadFinalState * returnUnchanged(const G4HadProjectile &aTrack, G4HadFinalState *theResult)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
const G4LorentzVector & Get4Momentum() const
G4double GetKineticEnergy() const
const G4ParticleDefinition * GetDefinition() const
static G4Neutron * Neutron()
G4int GetAtomicMass() const
void SetMomentum(const G4ThreeVector &momentum)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
std::vector< G4GIDI_Product > * getOthersFinalState(double e_in, double temperature, double(*rng)(void *), void *rngState)
G4GIDI_target * get_target_from_map(G4int nuclear_code)
G4HadFinalState theParticleChange
void SetStatusChange(G4HadFinalStateStatus aS)
G4double GetTemperature() const