43 if ( adjustResult !=
true )
return;
52 for (
int i = 0 ; i < nSecondaries ; i++ )
62 G4bool needOneMoreSec =
false;
71 if ( max_SecA >
int(
theBaseA + 1 - sum_A) )
75 needOneMoreSec =
true;
87 if (
int(
theBaseA + 1 - sum_A) > 1 )
G4cout <<
"More than one neutron is required for the balance of baryon number!" <<
G4endl;
96 if ( resi_pd == NULL )
104 for (
int i = 0 ; i < nSecondaries ; i++ )
129 for (
G4int i = 0 ; i < n_sec ; i++ )
152 if ( slow > beta && beta != 0 )
196 if ( slow > p4.
beta() )
201 dif_4p = init_4p_lab - ( secs_4p_lab + p4 );
204 if ( needOneMoreSec )
210 if ( slow > p4.
beta() )
213 islow = nSecondaries-1;
215 dif_4p = init_4p_lab - ( secs_4p_lab + p4 );
220 if ( dif_4p.
v().
mag() < std::abs( dif_4p.
e() ) )
225 if ( minimum_energy < dif_4p.
v().
mag() && dif_4p.
v().
mag() < 1*
MeV )
253 G4double dif_e = dif_4p.
e() - ( dif_4p.
v() ).mag();
264 if ( minimum_energy < e1 )
269 std::sin(std::acos(costh))*std::sin(phi),
290 if ( ke0 + dif_e > 0 )
void SetMomentum(const G4ThreeVector &momentum)
G4HadSecondary * GetSecondary(size_t i)
G4double GetKineticEnergy() const
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4ParticleDefinition * GetDefinition() const
G4int GetAtomicNumber() const
G4HadFinalState theResult
G4GLOB_DLL std::ostream G4cout
static G4Neutron * Neutron()
G4int GetAtomicMass() const
void SetKineticEnergy(G4double aEnergy)
G4LorentzVector Get4Momentum() const
static G4IonTable * GetIonTable()
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4DynamicParticle * GetParticle()
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void adjust_final_state(G4LorentzVector)
G4int GetNumberOfSecondaries() const
void AddSecondary(G4DynamicParticle *aP)
G4ThreeVector GetMomentum() const