74 { 
if (IsScatProjToProjCase) return ;
   103    for (i=0; i<nShells-1; i++){
   117     G4double beta  = std::sqrt(gamma*gamma-1.)/gamma;
   118     G4double b     = 0.5*gamma*(gamma-1.)*(gamma-2);
   121     if (gamma < 2.) grejsup = gamma*gamma*(1.+
b-beta*
b);
   122     else            grejsup = gamma*gamma*(1.+
b+beta*
b);
   125             cos_theta = (rndm+beta)/(rndm*beta+1.);
   126             term = 1.-beta*cos_theta;
   127             greject = (1.-cos_theta*cos_theta)*(1.+
b*term)/(term*term);
   136   G4double sin_theta = std::sqrt(1.-cos_theta*cos_theta);
   138   G4double dirx = sin_theta*std::cos(Phi),diry = sin_theta*std::sin(Phi),dirz = cos_theta;
   140   adjoint_gammaDirection.rotateUz(electronDirection);
   146   CorrectPostStepWeight(fParticleChange, aTrack.GetWeight(), electronEnergy,gammaEnergy,IsScatProjToProjCase);  
   159   fParticleChange->ProposeTrackStatus(fStopAndKill);
   160   fParticleChange->AddSecondary(anAdjointGamma);    
 static G4AdjointGamma * AdjointGamma()
 
virtual void CorrectPostStepWeight(G4ParticleChange *fParticleChange, G4double old_weight, G4double adjointPrimKinEnergy, G4double projectileKinEnergy, G4bool IsScatProjToProjCase)
 
std::vector< G4Element * > G4ElementVector
 
G4Material * currentMaterial
 
G4double pre_step_AdjointCS
 
G4double GetKineticEnergy() const
 
virtual G4double AdjointCrossSection(const G4MaterialCutsCouple *aCouple, G4double primEnergy, G4bool IsScatProjToProjCase)
 
G4double post_step_AdjointCS
 
static const double twopi
 
G4double shell_prob[40][40]
 
const G4ThreeVector & GetMomentumDirection() const
 
size_t GetNumberOfElements() const
 
const G4ElementVector * GetElementVector() const