78 #ifndef G4NUCLEI_MODEL_HH 
   79 #define G4NUCLEI_MODEL_HH 
  108              const std::vector<G4ThreeVector>* hitPoints=0);
 
  123     if (ip == 9 || ip < 0) 
return 0.0;          
 
  124     G4int ip0 = ip < 3 ? ip - 1 : 2;
 
  125     if (ip > 10 && ip < 18) ip0 = 3;
 
  126     if (ip > 20) ip0 = 4;
 
  135     return ( (izone<0) ? 0.
 
  139     return ( (izone<0) ? 0.
 
  163   typedef std::pair<std::vector<G4CascadParticle>, std::vector<G4InuclElementaryParticle> > 
modelLists;
 
  175                             std::vector<G4CascadParticle>& cascade); 
 
  192   G4bool passFermi(
const std::vector<G4InuclElementaryParticle>& particles, 
 
  205   typedef std::pair<G4InuclElementaryParticle, G4double> 
partner;
 
  212     return (p2.second > p1.second);
 
  266   std::vector<G4double> 
rod;    
 
  267   std::vector<G4double> 
pf;     
 
  268   std::vector<G4double> 
vz;     
 
  327 #endif // G4NUCLEI_MODEL_HH  
void reset(G4int nHitNeutrons=0, G4int nHitProtons=0, const std::vector< G4ThreeVector > *hitPoints=0)
 
G4double zoneIntegralWoodsSaxon(G4double ur1, G4double ur2, G4double nuclearRadius) const 
 
G4double getRadius(G4int izone) const 
 
G4InuclElementaryParticle generateQuasiDeuteron(G4int type1, G4int type2, G4int zone) const 
 
std::pair< std::vector< G4CascadParticle >, std::vector< G4InuclElementaryParticle > > modelLists
 
std::pair< G4int, G4int > getTypesOfNucleonsInvolved() const 
 
const G4double gammaQDscale
 
std::vector< G4double > vz
 
CLHEP::Hep3Vector G4ThreeVector
 
void generateInteractionPartners(G4CascadParticle &cparticle)
 
std::vector< G4double > zone_radii
 
std::vector< G4double > zone_volumes
 
G4CascadeInterpolator< 30 > gammaQDinterp
 
G4double inverseMeanFreePath(const G4CascadParticle &cparticle, const G4InuclElementaryParticle &target, G4int zone=-1)
 
G4double getFermiKinetic(G4int ip, G4int izone) const 
 
G4bool passFermi(const std::vector< G4InuclElementaryParticle > &particles, G4int zone)
 
G4bool stillInside(const G4CascadParticle &cparticle)
 
G4double zoneIntegralGaussian(G4double ur1, G4double ur2, G4double nuclearRadius) const 
 
std::vector< partner > thePartners
 
G4LorentzVector generateNucleonMomentum(G4int type, G4int zone) const 
 
void boundaryTransition(G4CascadParticle &cparticle)
 
const G4InuclElementaryParticle protonEP
 
static G4bool useQuasiDeuteron(G4int ptype, G4int qdtype=0)
 
G4CascadParticle initializeCascad(G4InuclElementaryParticle *particle)
 
G4InuclNuclei * theNucleus
 
G4double getVolume(G4int izone) const 
 
std::vector< G4double > pf
 
const G4double radiusScale
 
G4double absorptionCrossSection(G4double e, G4int type) const 
 
static const G4double large
 
const G4double radiusScale2
 
G4bool isProjectile(const G4CascadParticle &cparticle) const 
 
static const G4double piTimes4thirds
 
void fillBindingEnergies()
 
G4CollisionOutput EPCoutput
 
const G4double radScaleAlpha
 
G4double getCurrentDensity(G4int ip, G4int izone) const 
 
void fillZoneRadii(G4double nuclearRadius)
 
G4LorentzConvertor dummy_convertor
 
static const G4double kaon_vp
 
G4int protonNumberCurrent
 
void fillPotentials(G4int type, G4double tot_vol)
 
static const G4double alfa6[6]
 
std::vector< G4LorentzVector > momentums
 
std::vector< G4ThreeVector > coordinates
 
G4double generateInteractionLength(const G4CascadParticle &cparticle, G4double path, G4double invmfp) const 
 
std::vector< std::vector< G4double > > nucleon_densities
 
G4double fillZoneVolumes(G4double nuclearRadius)
 
void generateModel(G4InuclNuclei *nuclei)
 
std::pair< G4InuclElementaryParticle, G4double > partner
 
static const G4double pion_vp_small
 
const G4double crossSectionUnits
 
std::vector< G4double > binding_energies
 
const G4double radiusUnits
 
G4double getRadius() const 
 
std::vector< G4InuclElementaryParticle > qdeutrons
 
G4int getNumberOfZones() const 
 
static const G4double alfa3[3]
 
void generateParticleFate(G4CascadParticle &cparticle, G4ElementaryParticleCollider *theEPCollider, std::vector< G4CascadParticle > &cascade)
 
std::vector< G4double > rod
 
G4double getRatio(G4int ip) const 
 
G4int getNumberOfProtons() const 
 
G4double totalCrossSection(G4double ke, G4int rtype) const 
 
static const G4double small
 
G4double getFermiMomentum(G4int ip, G4int izone) const 
 
std::vector< G4InuclElementaryParticle > raw_particles
 
G4bool worthToPropagate(const G4CascadParticle &cparticle) const 
 
static G4bool sortPartners(const partner &p1, const partner &p2)
 
static const G4double hyperon_vp
 
void choosePointAlongTraj(G4CascadParticle &cparticle)
 
G4int getCurrentZone() const 
 
G4int getNumberOfNeutrons() const 
 
void setVerboseLevel(G4int verbose)
 
const G4InuclElementaryParticle neutronEP
 
std::vector< G4ThreeVector > collisionPts
 
std::vector< G4double > acsecs
 
G4InuclElementaryParticle generateNucleon(G4int type, G4int zone) const 
 
const G4double fermiMomentum
 
std::vector< std::vector< G4double > > fermi_momenta
 
std::vector< std::vector< G4double > > zone_potentials
 
G4int neutronNumberCurrent
 
G4double getDensity(G4int ip, G4int izone) const 
 
G4double getRadiusUnits() const 
 
G4bool passTrailing(const G4ThreeVector &hit_position)
 
G4int getZone(G4double r) const 
 
static const G4double pion_vp
 
const G4double radiusForSmall
 
G4bool forceFirst(const G4CascadParticle &cparticle) const 
 
static const double fermi
 
CLHEP::HepLorentzVector G4LorentzVector
 
G4double getPotential(G4int ip, G4int izone) const