32{
33
35
37
38
39
40
41 G4int iZ = aTarg.GetZ_asInt();
42 G4int iA = aTarg.GetA_asInt();
43
44
46
47
50
52 std::vector<G4GIDI_Product>* products = aTarget->
getOthersFinalState( ke*MeV, temp, NULL, NULL );
53 if ( products != NULL )
54 {
55
57
58 int totN = 0;
59 for (
G4int j = 0; j < int( products->size() ); j++ )
60 {
61
62 G4int jZ = (*products)[j].Z;
63 G4int jA = (*products)[j].A;
64
65
66
67
68
69
70
71
73
74 if ( jA == 1 && jZ == 1 )
75 {
77 totN += 1;
78 }
79 else if ( jA == 1 && jZ == 0 )
80 {
82 totN += 1;
83 }
84 else if ( jZ > 0 )
85 {
86 if ( jA != 0 )
87 {
89 totN += jA;
90 }
91 else
92 {
94 }
95 }
96 else
97 {
99 }
100
101 G4ThreeVector p( (*products)[j].px*MeV , (*products)[j].py*MeV , (*products)[j].pz*MeV );
102 psum += p;
103 if ( p.mag() == 0 ) p = proj_p - psum;
104
106
108 }
109 }
110 delete products;
111
113
114 return theResult;
115
116}
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetMomentum(const G4ThreeVector &momentum)
std::vector< G4GIDI_Product > * getOthersFinalState(double e_in, double temperature, double(*rng)(void *), void *rngState)
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP)
const G4Material * GetMaterial() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4HadFinalState theParticleChange
G4int GetNucleusEncoding(G4int iZ, G4int iA)
std::map< G4int, G4LENDUsedTarget * > usedTarget_map
G4LENDManager * lend_manager
G4double GetTemperature() const
static G4Neutron * Neutron()
G4ParticleDefinition * FindIon(G4int atomicNumber, G4int atomicMass, G4double excitationEnergy)
static G4ParticleTable * GetParticleTable()
static G4Proton * Proton()