150 G4bool nuclearCapture =
true;
160 G4int nEmCascadeSec = nSecondaries;
177 nuclearCapture =
false;
179 resultDecay->
Clear();
196 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
199 DumpState(track,
"ChooseHadronicInteraction",ed);
200 ed <<
" No HadronicInteraction found out" <<
G4endl;
201 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had005",
206 G4int reentryCount = 0;
218 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
222 ed <<
" ApplyYourself failed" <<
G4endl;
223 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had006",
230 if(reentryCount>100) {
233 ed <<
"Target element "<<elm->
GetName()<<
" Z= "
237 ed <<
" ApplyYourself does not completed after 100 attempts" <<
G4endl;
238 G4Exception(
"G4HadronStoppingProcess::AtRestDoIt",
"had006",
248 for(
size_t i=0; i<nnuc; ++i) {
253 nSecondaries += nnuc;
265 for(
G4int i=0; i<nSecondaries; ++i) {
270 if(time < 0.0) { time = 0.0; }
280 if (i<nEmCascadeSec) {
282 }
else if (nuclearCapture) {
303 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)
void SetGlobalTime(G4double t)
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)
void SetCreatorModelIndex(G4int idx)
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
G4double GetGlobalTime() const
G4bool enablePostStepDoIt
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4double GetGlobalTime() const
const G4String & GetProcessName() 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 &)
void SetTime(G4double aT)
G4Nucleus * GetTargetNucleusPointer()
void SetNumberOfSecondaries(G4int totSecondaries)
static G4int Register(const G4String &)
G4DynamicParticle * GetParticle()
void SetBoundEnergy(G4double e)
virtual void ProcessDescription(std::ostream &outFile) const
void AddSecondary(G4Track *aSecondary)
G4double GetWeight() const
G4HadronicInteraction * ChooseHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, G4Material *aMaterial, G4Element *anElement)
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
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result)
G4HadFinalStateStatus GetStatusChange() const
void PrintInfo(const G4ParticleDefinition *)
G4double GetWeight() const