107 const std::vector<G4Nucleon>& nucleons=the3DNucleus->
GetNucleons();
113 }
while (index < 0 || index >=
static_cast<G4int>(nucleons.size()));
131 G4cout<<
"G4QElChan::Scatter: neutron - proton? A ="<<
A<<
", Z="<<Z<<
", projName="
136 G4double residualNucleusEnergy=std::sqrt(
sqr(residualNucleusMass) +
138 pNucleon.
setE(targetNucleusMass-residualNucleusEnergy);
141 std::pair<G4LorentzVector,G4LorentzVector> result;
147 if (result.first.e() > 0.)
148 scatteredHadron4Mom=result.second;
159 - result.first - result.second;
160 if ( (EpConservation.
vect().
mag2() > .01*MeV*MeV )
161 || (std::abs(EpConservation.
e()) > 0.1 * MeV ) )
163 G4cout <<
"Warning - G4QuasiElasticChannel::Scatter E-p non conservation : "
164 << EpConservation <<
G4endl;
172 ktv->push_back(sPrim);
173 if (result.first.e() > 0.)
177 ktv->push_back(sNuc);
184 ktv->push_back(rNuc);
188 residualNucleus4Mom/=resA;
189 for(
G4int in=0; in<resA; in++)
194 ktv->push_back(rNuc);
198 G4cout<<
"G4QElC::Scat: Nucleon: "<<result.first <<
" mass "<<result.first.mag() <<
G4endl;
199 G4cout<<
"G4QElC::Scat: Project: "<<result.second<<
" mass "<<result.second.mag()<<
G4endl;
G4ParticleDefinition * GetDefinition() const
G4LorentzVector Get4Momentum() const
G4double GetTotalMomentum() const
G4double GetPDGMass() const
G4int GetPDGEncoding() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()