81 std::vector<G4DynamicParticle*>* fvect,
101 eMomDir *= std::sqrt(eMomentumC2);
128 G4double alpha2 = 0.5*(1.- epsilon0sq);
135 if(nloop > 1000) {
return; }
146 epsilon = sqrt(epsilonsq);
149 onecost = (1.-
epsilon)/(epsilon*E0_m);
150 sint2 = onecost*(2.-onecost);
151 greject = 1. - epsilon*sint2/(1.+ epsilonsq);
163 G4double dirx = sinTeta*cos(Phi), diry = sinTeta*sin(Phi), dirz = cosTeta;
170 gamDirection1.
rotateUz(gamDirection0);
171 G4double gamEnergy1 = epsilon*gamEnergy0;
172 gamDirection1 *= gamEnergy1;
180 G4double eKinEnergy = gamEnergy0 - gamEnergy1;
181 G4ThreeVector eDirection = gamEnergy0*gamDirection0 - gamEnergy1*gamDirection1;
182 eDirection = eDirection.
unit();
183 G4double eFinalMom = std::sqrt(eKinEnergy*(eKinEnergy+2*electron_mass_c2));
184 eDirection *= eFinalMom;
187 gamma4vfinal.
boost(bst);
190 gamDirection1 = gamma4vfinal.
vect();
191 gamEnergy1 = gamDirection1.
mag();
192 gamDirection1 /= gamEnergy1;
211 eDirection = e4vfinal.
vect().
unit();
216 fvect->push_back(dp);