#include <G4CascadeRecoilMaker.hh>
Definition at line 65 of file G4CascadeRecoilMaker.hh.
Definition at line 67 of file G4CascadeRecoilMaker.cc.
69 excTolerance(tolerance), inputEkin(0.),
70 recoilA(0), recoilZ(0), excitationEnergy(0.) {
G4VCascadeCollider(const G4String &name, G4int verbose=0)
G4CascadeRecoilMaker::~G4CascadeRecoilMaker |
( |
| ) |
|
|
virtual |
Implements G4VCascadeCollider.
Definition at line 81 of file G4CascadeRecoilMaker.cc.
85 G4cout <<
" >>> G4CascadeRecoilMaker::collide" <<
G4endl;
91 balance->
collide(bullet, target, output);
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
virtual void setVerboseLevel(G4int verbose=0)
G4double getKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
Definition at line 97 of file G4CascadeRecoilMaker.cc.
102 G4cout <<
" >>> G4CascadeRecoilMaker::collide(<EP>,<CP>)" <<
G4endl;
108 balance->
collide(bullet, target, output, cparticles);
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
virtual void setVerboseLevel(G4int verbose=0)
G4double getKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4double G4CascadeRecoilMaker::deltaM |
( |
| ) |
const |
|
protected |
void G4CascadeRecoilMaker::fillRecoil |
( |
| ) |
|
|
protected |
Definition at line 116 of file G4CascadeRecoilMaker.cc.
117 recoilZ = -(balance->
deltaQ());
118 recoilA = -(balance->
deltaB());
119 recoilMomentum = -(balance->
deltaLV());
128 if (std::abs(excitationEnergy) < excTolerance) excitationEnergy = 0.;
131 G4cout <<
" recoil px " << recoilMomentum.
px()
132 <<
" py " << recoilMomentum.
py() <<
" pz " << recoilMomentum.
pz()
133 <<
" E " << recoilMomentum.
e() <<
" baryon " << recoilA
134 <<
" charge " << recoilZ
135 <<
"\n recoil mass " << recoilMomentum.
m()
136 <<
" 'excitation' energy " << excitationEnergy <<
G4endl;
G4LorentzVector deltaLV() const
G4GLOB_DLL std::ostream G4cout
G4bool goodFragment() const
static constexpr double GeV
G4int G4CascadeRecoilMaker::getRecoilA |
( |
| ) |
const |
|
inline |
G4double G4CascadeRecoilMaker::getRecoilExcitation |
( |
| ) |
const |
|
inline |
G4int G4CascadeRecoilMaker::getRecoilZ |
( |
| ) |
const |
|
inline |
G4bool G4CascadeRecoilMaker::goodFragment |
( |
| ) |
const |
G4bool G4CascadeRecoilMaker::goodNucleus |
( |
| ) |
const |
Definition at line 235 of file G4CascadeRecoilMaker.cc.
237 G4cout <<
" >>> G4CascadeRecoilMaker::goodNucleus" <<
G4endl;
241 const G4double reasonableExcitation = 7.0;
242 const G4double fractionalExcitation = 0.2;
247 else if (excitationEnergy < -excTolerance)
248 G4cerr <<
" goodNucleus: negative excitation" <<
G4endl;
253 if (excitationEnergy <= minExcitation)
return true;
257 G4double exc_max0z = fractionalExcitation * inputEkin*
GeV;
258 G4double exc_dm = reasonableExcitation * dm;
259 G4double exc_max = (exc_max0z > exc_dm) ? exc_max0z : exc_dm;
262 G4cout <<
" eexs " << excitationEnergy <<
" max " << exc_max
263 <<
" dm " << dm <<
G4endl;
267 G4cerr <<
" goodNucleus: too much excitation" <<
G4endl;
269 return (excitationEnergy < exc_max);
G4bool goodRecoil() const
G4GLOB_DLL std::ostream G4cout
G4bool goodFragment() const
static constexpr double GeV
G4double bindingEnergy(G4int A, G4int Z)
static constexpr double keV
G4GLOB_DLL std::ostream G4cerr
G4bool G4CascadeRecoilMaker::goodRecoil |
( |
| ) |
const |
G4Fragment * G4CascadeRecoilMaker::makeRecoilFragment |
( |
| ) |
|
Definition at line 165 of file G4CascadeRecoilMaker.cc.
167 G4cout <<
" >>> G4CascadeRecoilMaker::makeRecoilFragment" <<
G4endl;
195 return &theRecoilFragment;
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
G4bool wholeEvent() const
void setVectM(const Hep3Vector &spatial, double mass)
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
G4bool goodRecoil() const
G4GLOB_DLL std::ostream G4cout
void SetMomentum(const G4LorentzVector &value)
G4double getNucleiMass() const
void SetZandA_asInt(G4int Znew, G4int Anew)
static constexpr double GeV
G4int neutronQuasiParticles
G4int protonQuasiParticles
Definition at line 144 of file G4CascadeRecoilMaker.cc.
146 G4cout <<
" >>> G4CascadeRecoilMaker::makeRecoilNuclei" <<
G4endl;
155 theRecoilNuclei.
fill(recoilMomentum, recoilA, recoilZ,
156 excitationEnergy,
model);
159 return &theRecoilNuclei;
void fill(G4int a, G4int z, G4double exc=0., Model model=DefaultModel)
G4bool wholeEvent() const
G4bool goodRecoil() const
G4GLOB_DLL std::ostream G4cout
void setExitonConfiguration(const G4ExitonConfiguration &config)
const XML_Char XML_Content * model
void G4CascadeRecoilMaker::setRecoilExcitation |
( |
G4double |
Eexc | ) |
|
|
inline |
void G4CascadeRecoilMaker::setTolerance |
( |
G4double |
tolerance | ) |
|
|
inline |
G4bool G4CascadeRecoilMaker::unphysicalRecoil |
( |
| ) |
const |
|
inline |
G4bool G4CascadeRecoilMaker::wholeEvent |
( |
| ) |
const |
Definition at line 217 of file G4CascadeRecoilMaker.cc.
219 G4cout <<
" >>> G4CascadeRecoilMaker::wholeEvent:"
220 <<
" A " << recoilA <<
" Z " << recoilZ
221 <<
" P " << recoilMomentum.
rho() <<
" E " << recoilMomentum.
e()
222 <<
"\n wholeEvent returns "
223 << (recoilA==0 && recoilZ==0 &&
224 recoilMomentum.
rho() < excTolerance/
GeV &&
225 std::abs(recoilMomentum.
e()) < excTolerance/
GeV) <<
G4endl;
228 return (recoilA==0 && recoilZ==0 &&
229 recoilMomentum.
rho() < excTolerance/
GeV &&
230 std::abs(recoilMomentum.
e()) < excTolerance/
GeV);
G4GLOB_DLL std::ostream G4cout
static constexpr double GeV
The documentation for this class was generated from the following files: