56{
57
58
60 callingProcess->GetWrappedProcess()->PostStepDoIt(*track, *step);
61
62
63
65
66
67
68
69
70
71 if ( processFinalState->GetNumberOfSecondaries() == 0 ) return processFinalState;
72
73
74
75
76
77
78
79
80
81
82
83
84
87
89
90
92 ProposeTrackStatus ( actualParticleChange->GetTrackStatus() );
94 ProposeEnergy ( actualParticleChange->GetProposedKineticEnergy() );
96 ProposeMomentumDirection( actualParticleChange->GetProposedMomentumDirection() );
97
98
99
101
102
104
105
106
108
109
110 G4Track* gammaTrack = actualParticleChange->GetSecondary(0);
111 gammaTrack->SetWeight( gammaWeight );
113
114 actualParticleChange->Clear();
115
116
117
118 G4int nCalls = 1;
120 {
121
122
123 processFinalState = callingProcess->GetWrappedProcess()->PostStepDoIt(*track, *step);
124 if ( processFinalState->GetNumberOfSecondaries() == 1 )
125 {
126 gammaTrack = processFinalState->GetSecondary(0);
127 gammaTrack->SetWeight( gammaWeight );
129 nCalls++;
130 }
131
132 else if ( processFinalState->GetNumberOfSecondaries() > 1 )
133 {
134 for ( G4int i = 0 ; i < processFinalState->GetNumberOfSecondaries() ; i++)
135 delete processFinalState->GetSecondary(i);
136 }
137 processFinalState->Clear();
138 }
139
140
142}