48 : theDecay(nullptr), rndmEngine(nullptr),
maxZ(9),
maxA(17), secID(-1)
82 G4MUTEXLOCK(&G4FermiBreakUpVI::FermiBreakUpVIMutex);
94 return (ZZ <
maxZ && AA < maxA && AA > 0 && eexc <=
elim
102 G4cout <<
"### G4FermiBreakUpVI::BreakFragment start new fragment "
130 for(
size_t i=0; i<
frag.size(); ++i) {
137 G4cout <<
"# FermiFrag " << i <<
". Z= " <<
Z <<
" A= " <<
A
138 <<
" mass= " <<
mass <<
" exc= "
148 theResult->push_back(f);
162 if(!chan) {
return false; }
165 G4cout <<
"== SampleDecay " <<
nn <<
" channels Eex= "
168 if(0 ==
nn) {
return false; }
186 const std::vector<const G4FermiPair*>& pvect = chan->
GetChannels();
187 if(
nn > 12) {
prob.resize(
nn, 0.0); }
192 for(
size_t i=0; i<
nn; ++i) {
194 pvect[i]->GetFragment1(),
195 pvect[i]->GetFragment2());
199 <<
" Z1= " << pvect[i]->GetFragment1()->GetZ()
200 <<
" A1= " << pvect[i]->GetFragment1()->GetA()
201 <<
" Z2= " << pvect[i]->GetFragment2()->GetZ()
202 <<
" A2= " << pvect[i]->GetFragment2()->GetA()
207 for(
size_t i=0; i<
nn; ++i) {
208 if(ptot <=
prob[i] || i+1 ==
nn) {
215 if(!fpair) {
return false; }
223 G4cout <<
" M= " <<
mass <<
" M1= " << mass1 <<
" M2= " << mass2
232 p1 = std::sqrt((
e1 - mass1)*(
e1 + mass1));
252 lvect.push_back(lv1);
static const G4double e1[44]
static const G4double e2[44]
std::vector< G4Fragment * > G4FragmentVector
CLHEP::HepLorentzVector G4LorentzVector
G4ThreeVector G4RandomDirection()
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
G4GLOB_DLL std::ostream G4cout
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
void set(double x, double y, double z, double t)
G4ThreeVector boostVector
CLHEP::HepRandomEngine * rndmEngine
std::vector< G4double > prob
const G4FermiFragment * frag2
static G4FermiFragmentsPoolVI * thePool
void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus) final
std::vector< G4LorentzVector > lvect
~G4FermiBreakUpVI() final
const G4FermiFragment * frag1
std::vector< const G4FermiFragment * > frag
G4bool IsApplicable(G4int ZZ, G4int AA, G4double etot) const final
const G4FermiDecayProbability * theDecay
G4double GetExcitation() const
const G4FermiPair * SamplePair(G4double rand) const
const G4FermiPair * GetPair(size_t idx) const
size_t GetNumberOfChannels() const
const std::vector< const G4FermiPair * > & GetChannels() const
G4double ComputeProbability(G4int Z, G4int A, G4int spin, G4double TotalE, const G4FermiFragment *f1, const G4FermiFragment *f2) const
G4double GetExcitationEnergy(void) const
G4double GetTotalEnergy(void) const
G4double GetEnergyLimit() const
const G4FermiDecayProbability * FermiDecayProbability() const
G4bool HasChannels(G4int Z, G4int A, G4double exc) const
const G4FermiChannels * ClosestChannels(G4int Z, G4int A, G4double mass) const
const G4FermiFragment * GetFragment2() const
const G4FermiFragment * GetFragment1() const
G4double GetGroundStateMass() const
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
void SetCreatorModelID(G4int value)
G4double GetCreationTime() const
void SetCreationTime(G4double time)
void SetSpin(G4double value)
static G4int GetModelID(const G4int modelIndex)
static constexpr double MeV
static const G4double AA[5]