66                                 G4bool IsScatProjToProjCase,
 
   92                               IsScatProjToProjCase); 
 
   97         if (IsScatProjToProjCase) {
 
  105         projectileKinEnergy = Emin*std::pow(Emax/Emin,
G4UniformRand());
 
  113         G4double used_diffCS=
lastCS*std::log(Emax/Emin)/projectileKinEnergy;
 
  114         G4double needed_diffCS=adjointPrimKinEnergy/projectileKinEnergy;
 
  117         new_weight*=needed_diffCS/used_diffCS;
 
  133  G4double projectileTotalEnergy = projectileM0+projectileKinEnergy;
 
  134  G4double projectileP2 = projectileTotalEnergy*projectileTotalEnergy - projectileM0*projectileM0;       
 
  141  if (IsScatProjToProjCase) {
 
  144  G4double companionTotalEnergy =companionM0+ projectileKinEnergy-adjointPrimKinEnergy;
 
  145  G4double companionP2 = companionTotalEnergy*companionTotalEnergy - companionM0*companionM0;    
 
  150  G4double  P_parallel = (adjointPrimP*adjointPrimP +  projectileP2 - companionP2)/(2.*adjointPrimP);
 
  151  G4double  P_perp = std::sqrt( projectileP2 -  P_parallel*P_parallel);
 
  155  projectileMomentum.rotateUz(dir_parallel);
 
  159  if (!IsScatProjToProjCase ){ 
 
  187  if (kinEnergyProj>Emin_proj && kinEnergyProj<=Emax_proj){ 
 
  201   G4double x   = kinEnergyProd/kinEnergyProj;
 
  206   G4double gg = (2.0*gam - 1.0)/gamma2;
 
  209   G4double dCS = fac*( 1.-gg + ((1.0 - gg*x)/(x*x)) 
 
  210                        + ((1.0 - gg*y)/(y*y)))/(beta2*(gam-1));
 
  211   return dCS/kinEnergyProj;
 
virtual void SampleSecondaries(const G4Track &aTrack, G4bool IsScatProjToProjCase, G4ParticleChange *fParticleChange)
 
virtual ~G4AdjointeIonisationModel()
 
virtual G4double DiffCrossSectionPerVolumePrimToSecond(const G4Material *aMaterial, G4double kinEnergyProj, G4double kinEnergyProd)
 
virtual G4double GetSecondAdjEnergyMaxForProdToProjCase(G4double PrimAdjEnergy)
 
G4double lastAdjointCSForScatProjToProjCase
 
static const G4double fac
 
G4double GetKineticEnergy() const 
 
CLHEP::Hep3Vector G4ThreeVector
 
const G4DynamicParticle * GetDynamicParticle() const 
 
G4double SampleAdjSecEnergyFromCSMatrix(size_t MatrixIndex, G4double prim_energy, G4bool IsScatProjToProjCase)
 
G4ParticleDefinition * theDirectPrimaryPartDef
 
void ProposeParentWeight(G4double finalWeight)
 
virtual G4double DiffCrossSectionPerVolumePrimToScatPrim(const G4Material *aMaterial, G4double kinEnergyProj, G4double kinEnergyScatProj)
 
static G4AdjointElectron * AdjointElectron()
 
G4double CS_biasing_factor
 
G4Material * currentMaterial
 
G4ParticleDefinition * theAdjEquivOfDirectPrimPartDef
 
virtual G4double GetSecondAdjEnergyMaxForScatProjToProjCase(G4double PrimAdjEnergy)
 
G4double GetTotalMomentum() const 
 
virtual G4double DiffCrossSectionPerAtomPrimToSecond(G4double kinEnergyProj, G4double kinEnergyProd, G4double Z, G4double A=0.)
 
void SetSecondaryWeightByProcess(G4bool)
 
void SetParentWeightByProcess(G4bool)
 
virtual G4double GetSecondAdjEnergyMinForProdToProjCase(G4double PrimAdjEnergy)
 
const G4ThreeVector & GetMomentumDirection() const 
 
G4bool UseOnlyOneMatrixForAllElements
 
G4double GetPDGMass() const 
 
G4double energy(const ThreeVector &p, const G4double m)
 
virtual G4double GetSecondAdjEnergyMinForScatProjToProjCase(G4double PrimAdjEnergy, G4double Tcut=0)
 
void ProposeEnergy(G4double finalEnergy)
 
void AddSecondary(G4Track *aSecondary)
 
G4double GetWeight() const 
 
static const G4double Emin
 
static G4Electron * Electron()
 
static const G4double Emax
 
G4ParticleDefinition * theAdjEquivOfDirectSecondPartDef
 
G4double currentTcutForDirectSecond
 
G4double lastAdjointCSForProdToProjCase
 
G4bool UseMatrixPerElement
 
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
 
void ProposeTrackStatus(G4TrackStatus status)
 
G4AdjointeIonisationModel()
 
G4double DiffCrossSectionMoller(G4double kinEnergyProj, G4double kinEnergyProd)
 
virtual void CorrectPostStepWeight(G4ParticleChange *fParticleChange, G4double old_weight, G4double adjointPrimKinEnergy, G4double projectileKinEnergy, G4bool IsScatProjToProjCase)
 
G4bool second_part_of_same_type