65    leptonKE(0.0), photonEnergy(0.0), photonQ2(0.0)
 
  100   delete theFragmentation;
 
  101   delete theStringDecay;
 
  106   outFile << 
"G4ElectroVDNuclearModel handles the inelastic scattering\n" 
  107           << 
"of e- and e+ from nuclei using the equivalent photon\n" 
  108           << 
"approximation in which the incoming lepton generates a\n" 
  109           << 
"virtual photon at the electromagnetic vertex, and the\n" 
  110           << 
"virtual photon is converted to a real photon.  At low\n" 
  111           << 
"energies, the photon interacts directly with the nucleus\n" 
  112           << 
"using the Bertini cascade.  At high energies the photon\n" 
  113           << 
"is converted to a pi0 which interacts using the FTFP\n" 
  114           << 
"model.  The electro- and gamma-nuclear cross sections of\n" 
  115           << 
"M. Kossov are used to generate the virtual photon spectrum\n";
 
  140     if (photonEnergy < leptonKE) {
 
  144         if (photonEnergy > photonQ2/dM) {
 
  148             if (transferredPhoton) CalculateHadronicVertex(transferredPhoton, targetNucleus);
 
  156 G4ElectroVDNuclearModel::CalculateEMVertex(
const G4HadProjectile& aTrack,
 
  170   photon.SetKineticEnergy(photonEnergy - photonQ2/dM);      
 
  182   G4double finE = iniE - photonEnergy;            
 
  184   G4double iniP = std::sqrt(iniE*iniE-mProj2);    
 
  185   G4double finP = std::sqrt(finE*finE-mProj2);    
 
  186   G4double cost = (iniE*finE - mProj2 - photonQ2/2.)/iniP/finP;  
 
  187   if (cost > 1.) cost= 1.;
 
  188   if (cost < -1.) cost=-1.;
 
  189   G4double sint = std::sqrt(1.-cost*cost);
 
  203                                                    photonEnergy, photonMomentum);
 
  215   if (gammaE < 10*
GeV) {
 
  221     G4double piMom = std::sqrt(gammaE*gammaE - piMass*piMass);
 
~G4ElectroVDNuclearModel()
 
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &theNucleus)
 
void AddSecondaries(const std::vector< G4HadSecondary > &addSecs)
 
virtual void ModelDescription(std::ostream &outFile) const 
 
CLHEP::Hep3Vector G4ThreeVector
 
G4double GetTotalEnergy() const 
 
void SetFragmentationModel(G4VStringFragmentation *aModel)
 
G4double GetEquivalentPhotonQ2(G4double nu)
 
static const char * Default_Name()
 
G4ElectroVDNuclearModel()
 
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
 
static constexpr double twopi
 
G4double GetEquivalentPhotonEnergy()
 
void SetStatusChange(G4HadFinalStateStatus aS)
 
void SetMinEnergy(G4double anEnergy)
 
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
 
const G4ParticleDefinition * GetDefinition() const 
 
const G4ThreeVector & GetMomentumDirection() const 
 
G4double GetKineticEnergy() const 
 
static G4CrossSectionDataSetRegistry * Instance()
 
static G4Proton * Proton()
 
static constexpr double PeV
 
static G4Neutron * Neutron()
 
const G4LorentzVector & Get4Momentum() const 
 
static G4PionZero * PionZero()
 
G4HadronicInteraction * FindModel(const G4String &name)
 
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *)
 
void SetEnergyChange(G4double anEnergy)
 
G4double GetPDGMass() const 
 
G4double GetVirtualFactor(G4double nu, G4double Q2)
 
static G4HadronicInteractionRegistry * Instance()
 
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat)
 
Hep3Vector orthogonal() const 
 
static constexpr double GeV
 
void SetMaxEnergy(const G4double anEnergy)
 
void SetDeExcitation(G4VPreCompoundModel *ptr)
 
G4HadFinalState theParticleChange
 
void SetTransport(G4VIntraNuclearTransportModel *const value)
 
Hep3Vector cross(const Hep3Vector &) const 
 
static const char * Default_Name()
 
void SetMomentumChange(const G4ThreeVector &aV)
 
G4HadFinalState * ApplyYourself(const G4HadProjectile &thePrimary, G4Nucleus &theNucleus)