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";
G4ParticleChange * theTotalResult
G4Nucleus * GetTargetNucleusPointer()
G4double GetWeight() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
std::ostringstream G4ExceptionDescription
virtual void ProcessDescription(std::ostream &outFile) const
void SetWeight(G4double aValue)
void RegisterExtraProcess(G4VProcess *)
const G4String & GetName() const
G4HadSecondary * GetSecondary(size_t i)
void ProposeWeight(G4double finalWeight)
void SetCreatorModelIndex(G4int idx)
void SetGlobalTime(G4double t)
G4HadFinalStateStatus GetStatusChange() const
const G4TouchableHandle & GetTouchableHandle() const
G4double GetPDGCharge() const
G4bool enablePostStepDoIt
G4double condition(const G4ErrorSymMatrix &m)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)
void AddSecondary(G4Track *aSecondary)
G4double GetWeight() const
G4HadronicInteraction * fEmCascade
void Initialise(const G4Track &aT)
G4double GetGlobalTime() const
virtual void Initialize(const G4Track &)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0
G4HadronicInteraction * fBoundDecay
G4double GetGlobalTime() const
G4ElementSelector * fElementSelector
void SetTouchableHandle(const G4TouchableHandle &apValue)
const G4String & GetProcessName() const
const G4ThreeVector & GetPosition() const
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result)
G4Material * GetMaterial() const
G4int GetNumberOfSecondaries() const
void PrintInfo(const G4ParticleDefinition *)
static G4HadronicProcessStore * Instance()
G4double G4ParticleHPJENDLHEData::G4double result
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4double GetLocalEnergyDeposit() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
void CheckEnergyMomentumConservation(const G4Track &, const G4Nucleus &)
G4DynamicParticle * GetParticle()
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
virtual ~G4HadronStoppingProcess()
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
void SetTime(G4double aT)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4HadronStoppingProcess(const G4String &name="hadronCaptureAtRest")
void AddSecondaries(const std::vector< G4HadSecondary > &addSecs)
const XML_Char XML_Content * model
void ProposeTrackStatus(G4TrackStatus status)
void SetBoundEnergy(G4double e)
virtual G4Element * SelectZandA(const G4Track &track, G4Nucleus *)
G4HadronicInteraction * ChooseHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement)
virtual G4bool IsApplicable(const G4ParticleDefinition &)
void RegisterParticleForExtraProcess(G4VProcess *, const G4ParticleDefinition *)
const G4String & GetModelName() const
void SetNumberOfSecondaries(G4int totSecondaries)
static G4int Register(const G4String &)