85 if(S>=0)
return G4QContent(Z+N+N+S,Z+Z+N+S,S,0,0,0);
86 else return G4QContent(Z+N+N+S,Z+Z+N+S,0,0,0,-S);
94 {
return 1./(1.+std::exp((r-radius)/WoodSaxonSurf));}
103 return (currentNucleon>=0&¤tNucleon<
GetA()) ? theNucleons[currentNucleon++] : 0;
110 for(
unsigned i=0; i<theNucleons.size(); i++) sum += theNucleons[i]->
Get4Momentum();
158 for(
unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->
Boost(theBoost);
163 for(
unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->
LorentzRotate(theLoRot);
168 for(
unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->
Boost(theBeta);
204 static const G4int nDefMesonC =45;
205 static const G4int nDefBaryonC=72;
225 G4int currentNucleon;
228 std::vector<G4double> Tb;
CLHEP::HepLorentzVector G4LorentzVector
std::vector< G4QCandidate * > G4QCandidateVector
std::vector< G4QHadron * > G4QHadronVector
std::ostream & operator<<(std::ostream &lhs, G4QNucleus &rhs)
HepLorentzVector & boost(double, double, double)
G4LorentzVector Get4Momentum() const
void Boost(const G4LorentzVector &theBoost)
void LorentzRotate(const G4LorentzRotation &rotation)
G4LorentzVector theMomentum
void Set4Momentum(const G4LorentzVector &aMom)
G4QPDGCode GetQPDG() const
G4double BindingEnergy(const G4double &cZ=0, const G4double &cA=0, G4double dZ=0., G4double dA=0.)
G4int GetNDefMesonC() const
void SimpleSumReduction(G4ThreeVector *vectors, G4ThreeVector sum)
void InitByPDG(G4int newPDG)
G4double GetRelativeDensity(const G4ThreeVector &aPosition)
void DecayAlphaBar(G4QHadron *dB, G4QHadronVector *oHV)
G4double GetProbability(G4int bn=0) const
std::pair< G4double, G4double > ChooseImpactXandY(G4double maxImpact)
G4double GetRelOMDensity(const G4double &r2)
G4bool operator!=(const G4QNucleus &right) const
G4double GetRelWSDensity(const G4double &r)
G4double GetOuterRadius()
G4double CoulombBarGen(const G4double &rZ, const G4double &rA, const G4double &cZ, const G4double &cA)
G4int RandomizeBinom(G4double p, G4int N)
G4QNucleus operator-=(const G4QNucleus &rhs)
void SubtractNucleon(G4QHadron *pNucleon)
G4int HadrToNucPDG(G4int hPDG)
void InitCandidateVector(G4QCandidateVector &theQCandidates, G4int nM=45, G4int nB=72, G4int nC=117)
void DecayAntiDibaryon(G4QHadron *dB, G4QHadronVector *oHV)
void DoLorentzBoost(const G4LorentzVector &theBoost)
void Increase(G4int PDG, G4LorentzVector LV=G4LorentzVector(0., 0., 0., 0.))
void SetMaxClust(G4int maxC)
G4double GetDeriv(const G4ThreeVector &point)
void DoLorentzRotation(const G4LorentzRotation &theLoRot)
void DecayIsonucleus(G4QHadron *dB, G4QHadronVector *oHV)
void DecayAntiStrange(G4QHadron *dB, G4QHadronVector *oHV)
void DecayAlphaAlpha(G4QHadron *dB, G4QHadronVector *oHV)
void DecayMultyBaryon(G4QHadron *dB, G4QHadronVector *oHV)
G4double GetRadius(const G4double maxRelativeDenisty=0.5)
G4QContent GetQCZNS() const
const G4QNucleus & operator=(const G4QNucleus &right)
void IncProbability(G4int bn)
G4int GetMaxClust() const
void ChooseFermiMomenta()
G4double CoulBarPenProb(const G4double &CB, const G4double &E, const G4int &C, const G4int &B)
G4bool operator==(const G4QNucleus &right) const
G4int GetNDefBaryonC() const
void DecayDibaryon(G4QHadron *dB, G4QHadronVector *oHV)
static void SetParameters(G4double fN=.1, G4double fD=.05, G4double cP=4., G4double mR=1., G4double nD=.8 *CLHEP::fermi)
void PrepareCandidates(G4QCandidateVector &theQCandidates, G4bool piF=false, G4bool gaF=false, G4LorentzVector LV=G4LorentzVector(0., 0., 0., 0.))
void ActivateBThickness()
G4int NucToHadrPDG(G4int nPDG)
G4bool ReduceSum(G4ThreeVector *vectors, G4ThreeVector sum)
void DecayAlphaDiN(G4QHadron *dB, G4QHadronVector *oHV)
G4double GetThickness(G4double b)
void DoLorentzBoost(const G4ThreeVector &theBeta)
G4LorentzVector GetNucleons4Momentum()
G4QHadron * GetNextNucleon()
std::vector< G4double > const * GetBThickness()
G4bool EvaporateBaryon(G4QHadron *h1, G4QHadron *h2)
G4double GetFermiMomentum(G4double density)
G4int UpdateClusters(G4bool din)
void InitByQC(G4QContent newQC)
G4double FissionCoulombBarrier(const G4double &cZ, const G4double &cA, G4double dZ=0., G4double dA=0.)
G4QNucleus operator+=(const G4QNucleus &rhs)
G4QNucleus operator*=(const G4int &rhs)
G4double GetDensity(const G4ThreeVector &aPos)
void DoLorentzContraction(const G4LorentzVector &B)
void DoTranslation(const G4ThreeVector &theShift)
G4double CoulombBarrier(const G4double &cZ=1, const G4double &cA=1, G4double dZ=0., G4double dA=0.)
void EvaporateNucleus(G4QHadron *hA, G4QHadronVector *oHV)
G4double GetGSMass() const
G4double GetNuclMass(G4int Z, G4int N, G4int S)