82 std::pair<G4double,G4double> ratios;
88 G4cout <<
"G4QuasiElasticChannel::ratios " << ratios.first <<
" x " <<ratios.second
89 <<
" = " << ratios.first*ratios.second <<
G4endl;
92 return ratios.first*ratios.second;
108 }
while (index < 0 || index >= static_cast<G4int>(nucleons.size()));
126 G4cout<<
"G4QElChan::Scatter: neutron - proton? A ="<<A<<
", Z="<<Z<<
", projName="
131 G4double residualNucleusEnergy=std::sqrt(
sqr(residualNucleusMass) +
132 pNucleon.vect().mag2());
133 pNucleon.setE(targetNucleusMass-residualNucleusEnergy);
136 std::pair<G4LorentzVector,G4LorentzVector> result;
142 if (result.first.e() > 0.)
143 scatteredHadron4Mom=result.second;
154 - result.first - result.second;
155 if ( (EpConservation.vect().mag2() > .01*
MeV*
MeV )
156 || (std::abs(EpConservation.e()) > 0.1 *
MeV ) )
158 G4cout <<
"Warning - G4QuasiElasticChannel::Scatter E-p non conservation : "
159 << EpConservation <<
G4endl;
166 ktv->push_back(sPrim);
167 if (result.first.e() > 0.)
170 ktv->push_back(sNuc);
176 ktv->push_back(rNuc);
180 residualNucleus4Mom/=resA;
181 for(
G4int in=0; in<resA; in++)
185 ktv->push_back(rNuc);
189 G4cout<<
"G4QElC::Scat: Nucleon: "<<result.first <<
" mass "<<result.first.mag() <<
G4endl;
190 G4cout<<
"G4QElC::Scat: Project: "<<result.second<<
" mass "<<result.second.mag()<<
G4endl;
std::pair< G4double, G4double > GetRatios(G4double pIU, G4int prPDG, G4int tgZ, G4int tgN)
CLHEP::Hep3Vector G4ThreeVector
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4QuasiElRatios * theQuasiElastic
G4int GetPDGEncoding() const
G4ParticleDefinition * GetDefinition() const
G4KineticTrackVector * Scatter(G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary)
std::pair< G4LorentzVector, G4LorentzVector > Scatter(G4int NPDG, G4LorentzVector N4M, G4int pPDG, G4LorentzVector p4M)
const G4String & GetParticleName() const
G4double GetTotalMomentum() const
G4IonTable * GetIonTable() const
G4GLOB_DLL std::ostream G4cout
virtual void Init(G4int theA, G4int theZ)=0
static G4Neutron * Neutron()
G4double GetFraction(G4Nucleus &theNucleus, const G4DynamicParticle &thePrimary)
static const G4double A[nN]
G4LorentzVector Get4Momentum() const
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
G4V3DNucleus * the3DNucleus
virtual G4double GetMass()=0
virtual const std::vector< G4Nucleon > & GetNucleons()=0
G4double GetPDGCharge() const
CLHEP::HepLorentzVector G4LorentzVector