138 G4bool nuclearCapture =
true;
164 nuclearCapture =
false;
166 resultDecay->
Clear();
178 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
181 DumpState(track,
"ChooseHadronicInteraction",ed);
182 ed <<
" No HadronicInteraction found out" <<
G4endl;
183 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had005",
188 G4int reentryCount = 0;
200 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
204 ed <<
" ApplyYourself failed" <<
G4endl;
205 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had006",
212 if(reentryCount>100) {
215 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
219 ed <<
" ApplyYourself does not completed after 100 attempts" <<
G4endl;
220 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had006",
239 for(
G4int i=0; i<nSecondaries; ++i) {
244 if(time < 0.0) { time = 0.0; }
267 outFile <<
"Base process for negatively charged particle capture at rest.\n";
G4double condition(const G4ErrorSymMatrix &m)
void DeRegisterExtraProcess(G4VProcess *)
virtual G4Element * SelectZandA(const G4Track &track, G4Nucleus *)
void AddSecondaries(const std::vector< G4HadSecondary > &addSecs)
virtual ~G4HadronStoppingProcess()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
std::ostringstream G4ExceptionDescription
G4HadSecondary * GetSecondary(size_t i)
static G4HadronicProcessStore * Instance()
const G4ThreeVector & GetPosition() const
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4HadronicInteraction * fEmCascade
void CheckEnergyMomentumConservation(const G4Track &, const G4Nucleus &)
const G4String & GetModelName() const
void SetWeight(G4double aValue)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4HadronStoppingProcess(const G4String &name="hadronCaptureAtRest")
void ProposeWeight(G4double finalWeight)
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
void RegisterParticleForExtraProcess(G4VProcess *, const G4ParticleDefinition *)
G4ParticleChange * theTotalResult
G4HadronicInteraction * ChooseHadronicInteraction(G4double kineticEnergy, G4Material *aMaterial, G4Element *anElement)
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result) const
G4bool enablePostStepDoIt
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4double GetGlobalTime() const
const G4TouchableHandle & GetTouchableHandle() const
G4HadronicInteraction * fBoundDecay
G4Material * GetMaterial() const
void Initialise(const G4Track &aT)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4ElementSelector * fElementSelector
void RegisterExtraProcess(G4VProcess *)
virtual void Initialize(const G4Track &)
G4Nucleus * GetTargetNucleusPointer()
void SetNumberOfSecondaries(G4int totSecondaries)
G4DynamicParticle * GetParticle()
void SetBoundEnergy(G4double e)
virtual void ProcessDescription(std::ostream &outFile) const
void AddSecondary(G4Track *aSecondary)
G4double GetWeight() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
void ProposeTrackStatus(G4TrackStatus status)
const G4String & GetName() const
G4double GetPDGCharge() const
G4int GetNumberOfSecondaries() const
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0
G4double GetLocalEnergyDeposit() const
G4HadFinalStateStatus GetStatusChange() const
void PrintInfo(const G4ParticleDefinition *)
G4double GetWeight() const