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 ) {
void SetMomentum(const G4ThreeVector &momentum)
static constexpr double second
std::vector< G4GIDI_Product > * getOthersFinalState(double e_in, double temperature, double(*rng)(void *), void *rngState)
G4int GetAtomicNumber() const
void SetStatusChange(G4HadFinalStateStatus aS)
G4int GetNucleusEncoding(G4int iZ, G4int iA, G4int iM)
const G4ParticleDefinition * GetDefinition() const
std::map< G4int, G4LENDUsedTarget * > usedTarget_map
G4double GetKineticEnergy() const
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
static G4Proton * Proton()
static G4Neutron * Neutron()
const G4LorentzVector & Get4Momentum() const
G4int GetAtomicMass() const
static G4IonTable * GetIonTable()
const G4Isotope * GetIsotope()
G4HadFinalState theParticleChange
G4double GetTemperature() const
static constexpr double MeV
const G4Material * GetMaterial() const
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
G4LENDManager * lend_manager
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0