64 const std::vector<const G4VFermiFragment*>& conf)
70 size_t nn = conf.size();
71 for (
size_t i=0; i<
nn; ++i) {
78 CoulombEnergy -= SumZ*SumZ/
g4pow->
Z13(SumA);
79 return -
Coef * CoulombEnergy;
94 std::set<G4int> combSet;
95 std::multiset<G4int> combmSet;
97 const std::vector<const G4VFermiFragment*> flist =
101 G4int K = flist.size();
103 for (
G4int i=0; i<K; ++i) {
104 G4int a = flist[i]->GetA();
107 G4double mass = flist[i]->GetFragmentMass();
111 S_n *= flist[i]->GetPolarization();
112 KineticEnergy -= mass + flist[i]->GetExcitationEnergy();
117 if (KineticEnergy <= 0.0) {
return 0.0; }
119 G4double MassFactor = ProdMass/SumMass;
120 MassFactor *= std::sqrt(MassFactor);
162 for (std::set<G4int>::iterator itr = combSet.begin();
163 itr != combSet.end(); ++itr)
165 for (
G4int ni = combmSet.count(*itr); ni > 1; ni--) { G_n *= ni; }
168 G4double Weight = Coeff * MassFactor * (S_n / G_n) / Gamma;
169 Weight *= std::sqrt(
g4pow->
powN(KineticEnergy,3*(K-1)))/KineticEnergy;
179 const std::vector<const G4VFermiFragment*>* conf =
185 size_t nn = conf->size();
187 theResult->push_back(
new G4Fragment(theNucleus));
193 std::vector<G4double> mr;
195 for(
size_t i=0; i<
nn; ++i) {
196 mr.push_back( (*conf)[i]->GetTotalEnergy() );
204 size_t nmom = mom->size();
208 for (
size_t j=0; j<nmom; ++j) {
212 FourMomentum->boost(boostVector);
216 size_t nfrag = fragment->size();
217 for (
size_t k=0; k<nfrag; ++k) { theResult->push_back((*fragment)[k]); }
228 const std::vector<const G4VFermiFragment*>*
231 std::vector<const G4VFermiFragment*>* res =
232 new std::vector<const G4VFermiFragment*>;
233 const std::vector<G4FermiConfiguration*>* conflist =
235 if(!conflist) {
return res; }
236 size_t nn = conflist->size();
245 for(
size_t i=0; i<
nn; ++i) {
250 for(idx=0; idx<
nn; ++idx) {
254 const std::vector<const G4VFermiFragment*> flist =
255 (*conflist)[idx]->GetFragmentList();
256 size_t nf = flist.size();
257 for(
size_t i=0; i<nf; ++i) { res->push_back(flist[i]); }
static G4Pow * GetInstance()
G4double powN(G4double x, G4int n) const
CLHEP::Hep3Vector G4ThreeVector
G4FermiConfigurationList()
const std::vector< const G4VFermiFragment * > & GetFragmentList()
G4FermiFragmentsPool * thePool
G4FragmentVector * GetFragments(const G4Fragment &theNucleus)
G4double CoulombBarrier(const std::vector< const G4VFermiFragment * > &v)
std::vector< G4double > NormalizedWeights
std::vector< G4LorentzVector * > * Decay(const G4double, const std::vector< G4double > &) const
G4double Z13(G4int Z) const
const std::vector< const G4VFermiFragment * > * SelectConfiguration(G4int Z, G4int A, G4double mass)
const G4LorentzVector & GetMomentum() const
~G4FermiConfigurationList()
std::vector< G4Fragment * > G4FragmentVector
static const G4double A[nN]
G4FermiPhaseSpaceDecay thePhaseSpace
const std::vector< G4FermiConfiguration * > * GetConfigurationList(G4int Z, G4int A, G4double mass)
G4double powZ(G4int Z, G4double y) const
static G4FermiFragmentsPool * Instance()
G4double DecayProbability(G4int A, G4double TotalE, G4FermiConfiguration *)
static const G4double Kappa
static const double fermi
CLHEP::HepLorentzVector G4LorentzVector