Geant4-11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4HadronStoppingProcess Class Reference

#include <G4HadronStoppingProcess.hh>

Inheritance diagram for G4HadronStoppingProcess:
G4HadronicProcess G4VDiscreteProcess G4VProcess G4HadronicAbsorptionBertini G4HadronicAbsorptionFritiof G4HadronicAbsorptionFritiofWithBinaryCascade G4MuonMinusCapture

Public Member Functions

void AddDataSet (G4VCrossSectionDataSet *aDataSet)
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *condition)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
void BiasCrossSectionByFactor (G4double aScale)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
G4double CrossSectionFactor () const
 
virtual void DumpInfo () const
 
void DumpPhysicsTable (const G4ParticleDefinition &p)
 
virtual void EndTracking ()
 
 G4HadronStoppingProcess (const G4String &name="hadronCaptureAtRest")
 
G4CrossSectionDataStoreGetCrossSectionDataStore ()
 
G4double GetCurrentInteractionLength () const
 
G4double GetElementCrossSection (const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=nullptr)
 
std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
G4HadronicInteractionGetHadronicInteraction () const
 
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList ()
 
G4HadronicInteractionGetHadronicModel (const G4String &)
 
const G4VProcessGetMasterProcess () const
 
G4double GetMeanFreePath (const G4Track &aTrack, G4double, G4ForceCondition *) override
 
G4double GetMicroscopicCrossSection (const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=nullptr)
 
G4double GetNumberOfInteractionLengthLeft () const
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
virtual const G4ProcessManagerGetProcessManager ()
 
const G4StringGetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
const G4IsotopeGetTargetIsotope ()
 
const G4NucleusGetTargetNucleus () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4bool isAlongStepDoItIsEnabled () const
 
virtual G4bool IsApplicable (const G4ParticleDefinition &)
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
void MultiplyCrossSectionBy (G4double factor)
 
G4bool operator!= (const G4VProcess &right) const
 
G4bool operator== (const G4VProcess &right) const
 
G4VParticleChangePostStepDoIt (const G4Track &aTrack, const G4Step &aStep) override
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
virtual void ProcessDescription (std::ostream &outFile) const
 
void RegisterMe (G4HadronicInteraction *a)
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
void SetBoundDecay (G4HadronicInteraction *ptr)
 
void SetElementSelector (G4ElementSelector *ptr)
 
void SetEmCascade (G4HadronicInteraction *ptr)
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
void SetEpReportLevel (G4int level)
 
void SetIntegral (G4bool val)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetVerboseLevel (G4int value)
 
virtual void StartTracking (G4Track *)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
virtual ~G4HadronStoppingProcess ()
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

void CheckEnergyMomentumConservation (const G4Track &, const G4Nucleus &)
 
G4HadFinalStateCheckResult (const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result)
 
G4HadronicInteractionChooseHadronicInteraction (const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement)
 
void ClearNumberOfInteractionLengthLeft ()
 
void DumpState (const G4Track &, const G4String &, G4ExceptionDescription &)
 
void FillResult (G4HadFinalState *aR, const G4Track &aT)
 
G4double GetLastCrossSection ()
 
G4double GetMeanLifeTime (const G4Track &, G4ForceCondition *)
 
G4NucleusGetTargetNucleusPointer ()
 
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 

Protected Attributes

G4ParticleChange aParticleChange
 
const G4ProcessManageraProcessManager = nullptr
 
G4double currentInteractionLength = -1.0
 
G4bool enableAlongStepDoIt = true
 
G4bool enableAtRestDoIt = true
 
G4bool enablePostStepDoIt = true
 
G4int epReportLevel
 
G4double fWeight
 
G4VParticleChangepParticleChange = nullptr
 
G4double theNumberOfInteractionLengthLeft = -1.0
 
G4String thePhysicsTableFileName
 
G4double thePILfactor = 1.0
 
G4HadProjectile thePro
 
G4String theProcessName
 
G4int theProcessSubType = -1
 
G4ProcessType theProcessType = fNotDefined
 
G4ParticleChangetheTotalResult
 
G4int verboseLevel = 0
 

Private Member Functions

 G4HadronStoppingProcess (const G4HadronStoppingProcess &)
 
void GetEnergyMomentumCheckEnvvars ()
 
void InitialiseLocal ()
 
G4HadronStoppingProcessoperator= (const G4HadronStoppingProcess &right)
 
G4double XBiasSecondaryWeight ()
 
G4double XBiasSurvivalProbability ()
 

Private Attributes

G4double aScaleFactor
 
G4int dioID
 
G4int emcID
 
std::pair< G4double, G4doubleepCheckLevels
 
G4HadronicInteractionfBoundDecay
 
G4ElementSelectorfElementSelector
 
G4HadronicInteractionfEmCascade
 
G4ProcessTablefProcessTable = nullptr
 
bool G4HadronicProcess_debug_flag
 
G4bool levelsSetByProcess
 
G4VProcessmasterProcessShadow = nullptr
 
G4int ncID
 
G4int nICelectrons
 
G4int nKaonWarn
 
G4int nMatWarn
 
G4Nucleus targetNucleus
 
std::vector< G4VLeadingParticleBiasing * > theBias
 
G4CrossSectionDataStoretheCrossSectionDataStore
 
G4EnergyRangeManager theEnergyRangeManager
 
G4double theInitialNumberOfInteractionLength
 
G4HadronicInteractiontheInteraction
 
G4double theLastCrossSection
 
G4HadronicProcessStoretheProcessStore
 
bool useIntegralXS
 

Detailed Description

Definition at line 62 of file G4HadronStoppingProcess.hh.

Constructor & Destructor Documentation

◆ G4HadronStoppingProcess() [1/2]

G4HadronStoppingProcess::G4HadronStoppingProcess ( const G4String name = "hadronCaptureAtRest")
explicit

Definition at line 63 of file G4HadronStoppingProcess.cc.

66 fEmCascade(new G4EmCaptureCascade()), // Owned by InteractionRegistry
67 fBoundDecay(0),
68 emcID(-1),
69 ncID(-1),
70 dioID(-1)
71{
72 // Modify G4VProcess flags to emulate G4VRest instead of G4VDiscrete
73 enableAtRestDoIt = true;
74 enablePostStepDoIt = false;
75
77}
@ fHadronAtRest
G4HadronicInteraction * fBoundDecay
G4ElementSelector * fElementSelector
G4HadronicInteraction * fEmCascade
void RegisterExtraProcess(G4VProcess *)
static G4HadronicProcessStore * Instance()
G4HadronicProcess(const G4String &processName="Hadronic", G4ProcessType procType=fHadronic)
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:359
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:361
const char * name(G4int ptype)

References G4VProcess::enableAtRestDoIt, G4VProcess::enablePostStepDoIt, G4HadronicProcessStore::Instance(), and G4HadronicProcessStore::RegisterExtraProcess().

◆ ~G4HadronStoppingProcess()

G4HadronStoppingProcess::~G4HadronStoppingProcess ( )
virtual

Definition at line 81 of file G4HadronStoppingProcess.cc.

82{
83 //G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this);
84 delete fElementSelector;
85 // NOTE: fEmCascade and fEmBoundDecay owned by registry, not locally
86}

References fElementSelector.

◆ G4HadronStoppingProcess() [2/2]

G4HadronStoppingProcess::G4HadronStoppingProcess ( const G4HadronStoppingProcess )
private

Member Function Documentation

◆ AddDataSet()

void G4HadronicProcess::AddDataSet ( G4VCrossSectionDataSet aDataSet)
inherited

Definition at line 762 of file G4HadronicProcess.cc.

763{
765}
void AddDataSet(G4VCrossSectionDataSet *)
G4CrossSectionDataStore * theCrossSectionDataStore

References G4CrossSectionDataStore::AddDataSet(), and G4HadronicProcess::theCrossSectionDataStore.

Referenced by G4HadProcesses::AddCaptureCrossSection(), G4HadProcesses::AddElasticCrossSection(), G4HadProcesses::AddFissionCrossSection(), G4HadProcesses::AddInelasticCrossSection(), G4IonQMDPhysics::AddProcess(), G4IonINCLXXPhysics::AddProcess(), G4IonPhysics::AddProcess(), G4IonPhysicsXS::AddProcess(), G4IonPhysicsPHP::AddProcess(), G4HadronElasticPhysics::AddXSection(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPiKBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4NeutronCrossSectionXS::ConstructProcess(), G4EmExtraPhysics::ConstructProcess(), G4HadronElasticPhysicsHP::ConstructProcess(), G4HadronElasticPhysicsLEND::ConstructProcess(), G4HadronElasticPhysicsPHP::ConstructProcess(), G4ChargeExchangePhysics::ConstructProcess(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4ThermalNeutrons::ConstructProcess(), G4HadronInelasticQBBC::ConstructProcess(), G4HadronPhysicsFTFQGSP_BERT::ConstructProcess(), G4ChargeExchangeProcess::G4ChargeExchangeProcess(), G4MuonNuclearProcess::G4MuonNuclearProcess(), G4NeutronCaptureProcess::G4NeutronCaptureProcess(), G4NeutronFissionProcess::G4NeutronFissionProcess(), G4HadronPhysicsFTFP_BERT::Neutron(), G4HadronPhysicsQGSP_BERT::Neutron(), G4HadronPhysicsQGSP_BIC::Neutron(), G4HadronPhysicsFTF_BIC::Neutron(), and G4HadronPhysicsQGS_BIC::Neutron().

◆ AlongStepDoIt()

virtual G4VParticleChange * G4VDiscreteProcess::AlongStepDoIt ( const G4Track ,
const G4Step  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 90 of file G4VDiscreteProcess.hh.

93 { return 0; }

◆ AlongStepGetPhysicalInteractionLength()

virtual G4double G4VDiscreteProcess::AlongStepGetPhysicalInteractionLength ( const G4Track ,
G4double  ,
G4double  ,
G4double ,
G4GPILSelection  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 70 of file G4VDiscreteProcess.hh.

76 { return -1.0; }

◆ AlongStepGPIL()

G4double G4VProcess::AlongStepGPIL ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double proposedSafety,
G4GPILSelection selection 
)
inlineinherited

Definition at line 461 of file G4VProcess.hh.

466{
467 return AlongStepGetPhysicalInteractionLength(track, previousStepSize,
468 currentMinimumStep, proposedSafety, selection);
469}
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0

References G4VProcess::AlongStepGetPhysicalInteractionLength().

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ AtRestDoIt()

G4VParticleChange * G4HadronStoppingProcess::AtRestDoIt ( const G4Track track,
const G4Step  
)
virtual

Reimplemented from G4VDiscreteProcess.

Definition at line 133 of file G4HadronStoppingProcess.cc.

135{
136 // if primary is not Alive then do nothing
138
140 const G4Element* elm = fElementSelector->SelectZandA(track, nucleus);
141
142 G4HadFinalState* result = 0;
143 thePro.Initialise(track);
144
145 // save track time an dstart capture from zero time
147 G4double time0 = track.GetGlobalTime();
148
149 G4bool nuclearCapture = true;
150
151 // Do the electromagnetic cascade in the nuclear field.
152 // EM cascade should keep G4HadFinalState object,
153 // because it will not be deleted at the end of this method
154 //
155 result = fEmCascade->ApplyYourself(thePro, *nucleus);
156 G4double ebound = result->GetLocalEnergyDeposit();
157 G4double edep = 0.0;
158 G4int nSecondaries = result->GetNumberOfSecondaries();
159 G4int nEmCascadeSec = nSecondaries;
160
161 // Try decay from bound level
162 // For mu- the time of projectile should be changed.
163 // Decay should keep G4HadFinalState object,
164 // because it will not be deleted at the end of this method.
165 //
166 thePro.SetBoundEnergy(ebound);
167 if(fBoundDecay) {
168 G4HadFinalState* resultDecay =
169 fBoundDecay->ApplyYourself(thePro, *nucleus);
170 G4int n = resultDecay->GetNumberOfSecondaries();
171 if(0 < n) {
172 nSecondaries += n;
173 result->AddSecondaries(resultDecay);
174 }
175 if(resultDecay->GetStatusChange() == stopAndKill) {
176 nuclearCapture = false;
177 }
178 resultDecay->Clear();
179 }
180
181 if(nuclearCapture) {
182
183 // delay of capture
184 G4double capTime = thePro.GetGlobalTime();
186
187 // select model
188 G4HadronicInteraction* model = 0;
189 try {
190 model = ChooseHadronicInteraction(thePro, *nucleus,
191 track.GetMaterial(), elm);
192 }
193 catch(G4HadronicException & aE) {
195 ed << "Target element "<<elm->GetName()<<" Z= "
196 << nucleus->GetZ_asInt() << " A= "
197 << nucleus->GetA_asInt() << G4endl;
198 DumpState(track,"ChooseHadronicInteraction",ed);
199 ed << " No HadronicInteraction found out" << G4endl;
200 G4Exception("G4HadronStoppingProcess::AtRestDoIt", "had005",
201 FatalException, ed);
202 }
203
204 G4HadFinalState* resultNuc = 0;
205 G4int reentryCount = 0;
206 do {
207 // sample final state
208 // nuclear interaction should keep G4HadFinalState object
209 // model should define time of each secondary particle
210 try {
211 resultNuc = model->ApplyYourself(thePro, *nucleus);
212 ++reentryCount;
213 }
214 catch(G4HadronicException & aR) {
216 ed << "Call for " << model->GetModelName() << G4endl;
217 ed << "Target element "<<elm->GetName()<<" Z= "
218 << nucleus->GetZ_asInt()
219 << " A= " << nucleus->GetA_asInt() << G4endl;
220 DumpState(track,"ApplyYourself",ed);
221 ed << " ApplyYourself failed" << G4endl;
222 G4Exception("G4HadronStoppingProcess::AtRestDoIt", "had006",
223 FatalException, ed);
224 }
225
226 // Check the result for catastrophic energy non-conservation
227 resultNuc = CheckResult(thePro, *nucleus, resultNuc);
228
229 if(reentryCount>100) {
231 ed << "Call for " << model->GetModelName() << G4endl;
232 ed << "Target element "<<elm->GetName()<<" Z= "
233 << nucleus->GetZ_asInt()
234 << " A= " << nucleus->GetA_asInt() << G4endl;
235 DumpState(track,"ApplyYourself",ed);
236 ed << " ApplyYourself does not completed after 100 attempts" << G4endl;
237 G4Exception("G4HadronStoppingProcess::AtRestDoIt", "had006",
238 FatalException, ed);
239 }
240 // Loop checking, 06-Aug-2015, Vladimir Ivanchenko
241 } while(!resultNuc);
242
243 edep = resultNuc->GetLocalEnergyDeposit();
244 size_t nnuc = resultNuc->GetNumberOfSecondaries();
245
246 // add delay time of capture
247 for(size_t i=0; i<nnuc; ++i) {
248 G4HadSecondary* sec = resultNuc->GetSecondary(i);
249 sec->SetTime(capTime + sec->GetTime());
250 }
251
252 nSecondaries += nnuc;
253 result->AddSecondaries(resultNuc);
254 resultNuc->Clear();
255 }
256
257 // Fill results
258 //
262 G4double w = track.GetWeight();
264 for(G4int i=0; i<nSecondaries; ++i) {
265 G4HadSecondary* sec = result->GetSecondary(i);
266
267 // add track global time to the reaction time
268 G4double time = sec->GetTime();
269 if(time < 0.0) { time = 0.0; }
270 time += time0;
271
272 // create secondary track
273 G4Track* t = new G4Track(sec->GetParticle(),
274 time,
275 track.GetPosition());
276 t->SetWeight(w*sec->GetWeight());
277
278 // use SetCreatorModelID to "label" the track
279 if (i<nEmCascadeSec) {
281 } else if (nuclearCapture) {
283 } else {
285 }
286
289 }
290 result->Clear();
291
292 if (epReportLevel != 0) {
293 CheckEnergyMomentumConservation(track, *nucleus);
294 }
295 return theTotalResult;
296}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
@ stopAndKill
@ fStopAndKill
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
virtual const G4Element * SelectZandA(const G4Track &track, G4Nucleus *)
const G4String & GetName() const
Definition: G4Element.hh:127
G4HadFinalStateStatus GetStatusChange() const
G4double GetLocalEnergyDeposit() const
void AddSecondaries(const std::vector< G4HadSecondary > &addSecs)
std::size_t GetNumberOfSecondaries() const
G4HadSecondary * GetSecondary(size_t i)
void Initialise(const G4Track &aT)
void SetGlobalTime(G4double t)
void SetBoundEnergy(G4double e)
G4double GetGlobalTime() const
G4DynamicParticle * GetParticle()
G4double GetWeight() const
void SetTime(G4double aT)
G4double GetTime() const
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
const G4String & GetModelName() const
G4HadProjectile thePro
G4Nucleus * GetTargetNucleusPointer()
G4HadFinalState * CheckResult(const G4HadProjectile &thePro, const G4Nucleus &targetNucleus, G4HadFinalState *result)
G4ParticleChange * theTotalResult
G4HadronicInteraction * ChooseHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement)
void CheckEnergyMomentumConservation(const G4Track &, const G4Nucleus &)
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
G4int GetA_asInt() const
Definition: G4Nucleus.hh:99
G4int GetZ_asInt() const
Definition: G4Nucleus.hh:105
void AddSecondary(G4Track *aSecondary)
virtual void Initialize(const G4Track &)
G4double GetWeight() const
void SetWeight(G4double aValue)
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
G4Material * GetMaterial() const
const G4TouchableHandle & GetTouchableHandle() const
void SetCreatorModelID(const G4int id)
void ProposeTrackStatus(G4TrackStatus status)
void ProposeWeight(G4double finalWeight)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)

References G4HadFinalState::AddSecondaries(), G4ParticleChange::AddSecondary(), G4HadronicInteraction::ApplyYourself(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4HadronicProcess::CheckResult(), G4HadronicProcess::ChooseHadronicInteraction(), G4HadFinalState::Clear(), dioID, G4HadronicProcess::DumpState(), emcID, G4HadronicProcess::epReportLevel, FatalException, fBoundDecay, fElementSelector, fEmCascade, fStopAndKill, G4endl, G4Exception(), G4Nucleus::GetA_asInt(), G4HadProjectile::GetGlobalTime(), G4Track::GetGlobalTime(), G4HadFinalState::GetLocalEnergyDeposit(), G4Track::GetMaterial(), G4HadronicInteraction::GetModelName(), G4Element::GetName(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4Track::GetPosition(), G4HadFinalState::GetSecondary(), G4HadFinalState::GetStatusChange(), G4HadronicProcess::GetTargetNucleusPointer(), G4HadSecondary::GetTime(), G4Track::GetTouchableHandle(), G4HadSecondary::GetWeight(), G4Track::GetWeight(), G4Nucleus::GetZ_asInt(), G4HadProjectile::Initialise(), G4ParticleChange::Initialize(), CLHEP::detail::n, ncID, G4VParticleChange::ProposeLocalEnergyDeposit(), G4VParticleChange::ProposeTrackStatus(), G4VParticleChange::ProposeWeight(), G4ElementSelector::SelectZandA(), G4HadProjectile::SetBoundEnergy(), G4Track::SetCreatorModelID(), G4HadProjectile::SetGlobalTime(), G4VParticleChange::SetNumberOfSecondaries(), G4HadSecondary::SetTime(), G4Track::SetTouchableHandle(), G4Track::SetWeight(), stopAndKill, G4HadronicProcess::thePro, and G4HadronicProcess::theTotalResult.

◆ AtRestGetPhysicalInteractionLength()

G4double G4HadronStoppingProcess::AtRestGetPhysicalInteractionLength ( const G4Track track,
G4ForceCondition condition 
)
virtual

Reimplemented from G4VDiscreteProcess.

Definition at line 115 of file G4HadronStoppingProcess.cc.

117{
119 return 0.0;
120}
G4double condition(const G4ErrorSymMatrix &m)
@ NotForced

References condition(), and NotForced.

◆ AtRestGPIL()

G4double G4VProcess::AtRestGPIL ( const G4Track track,
G4ForceCondition condition 
)
inlineinherited

Definition at line 472 of file G4VProcess.hh.

474{
476}
G4double thePILfactor
Definition: G4VProcess.hh:352
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)=0

References G4VProcess::AtRestGetPhysicalInteractionLength(), condition(), and G4VProcess::thePILfactor.

Referenced by G4ITStepProcessor::GetAtRestIL(), and G4SteppingManager::InvokeAtRestDoItProcs().

◆ BiasCrossSectionByFactor()

void G4HadronicProcess::BiasCrossSectionByFactor ( G4double  aScale)
inherited

Definition at line 483 of file G4HadronicProcess.cc.

484{
485 if (aScale <= 0.0) {
487 ed << " Wrong biasing factor " << aScale << " for " << GetProcessName();
488 G4Exception("G4HadronicProcess::BiasCrossSectionByFactor", "had010",
489 JustWarning, ed, "Cross-section bias is ignored");
490 } else {
491 aScaleFactor = aScale;
492 }
493}
@ JustWarning
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

References G4HadronicProcess::aScaleFactor, G4Exception(), G4VProcess::GetProcessName(), and JustWarning.

Referenced by G4HadronicProcess::MultiplyCrossSectionBy().

◆ BuildPhysicsTable()

void G4HadronStoppingProcess::BuildPhysicsTable ( const G4ParticleDefinition p)
virtual

Reimplemented from G4HadronicProcess.

Definition at line 108 of file G4HadronStoppingProcess.cc.

109{
111}
void PrintInfo(const G4ParticleDefinition *)

References G4HadronicProcessStore::Instance(), and G4HadronicProcessStore::PrintInfo().

◆ BuildWorkerPhysicsTable()

void G4VProcess::BuildWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 200 of file G4VProcess.cc.

201{
202 BuildPhysicsTable(part);
203}
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:187

References G4VProcess::BuildPhysicsTable().

Referenced by G4BiasingProcessInterface::BuildWorkerPhysicsTable().

◆ CheckEnergyMomentumConservation()

void G4HadronicProcess::CheckEnergyMomentumConservation ( const G4Track aTrack,
const G4Nucleus aNucleus 
)
protectedinherited

Definition at line 587 of file G4HadronicProcess.cc.

589{
590 G4int target_A=aNucleus.GetA_asInt();
591 G4int target_Z=aNucleus.GetZ_asInt();
592 G4double targetMass = G4NucleiProperties::GetNuclearMass(target_A,target_Z);
593 G4LorentzVector target4mom(0, 0, 0, targetMass
595
596 G4LorentzVector projectile4mom = aTrack.GetDynamicParticle()->Get4Momentum();
597 G4int track_A = aTrack.GetDefinition()->GetBaryonNumber();
598 G4int track_Z = G4lrint(aTrack.GetDefinition()->GetPDGCharge());
599
600 G4int initial_A = target_A + track_A;
601 G4int initial_Z = target_Z + track_Z - nICelectrons;
602
603 G4LorentzVector initial4mom = projectile4mom + target4mom;
604
605 // Compute final-state momentum for scattering and "do nothing" results
606 G4LorentzVector final4mom;
607 G4int final_A(0), final_Z(0);
608
610 if (theTotalResult->GetTrackStatus() != fStopAndKill) { // If it is Alive
611 // Either interaction didn't complete, returned "do nothing" state
612 // or the primary survived the interaction (e.g. electro-nucleus )
613
614 // Interaction didn't complete, returned "do nothing" state
615 // - or suppressed recoil (e.g. Neutron elastic )
616 final4mom = initial4mom;
617 final_A = initial_A;
618 final_Z = initial_Z;
619 if (nSec > 0) {
620 // The primary remains in final state (e.g. electro-nucleus )
621 // Use the final energy / momentum
624 G4double mass = aTrack.GetDefinition()->GetPDGMass();
625 G4double ptot = std::sqrt(ekin*(ekin + 2*mass));
626 final4mom.set(ptot*v.x(), ptot*v.y(), ptot*v.z(), mass + ekin);
627 final_A = track_A;
628 final_Z = track_Z;
629 // Expect that the target nucleus will have interacted,
630 // and its products, including recoil, will be included in secondaries.
631 }
632 }
633 if( nSec > 0 ) {
634 G4Track* sec;
635
636 for (G4int i = 0; i < nSec; i++) {
638 final4mom += sec->GetDynamicParticle()->Get4Momentum();
639 final_A += sec->GetDefinition()->GetBaryonNumber();
640 final_Z += G4lrint(sec->GetDefinition()->GetPDGCharge());
641 }
642 }
643
644 // Get level-checking information (used to cut-off relative checks)
645 G4String processName = GetProcessName();
647 G4String modelName("none");
648 if (theModel) modelName = theModel->GetModelName();
649 std::pair<G4double, G4double> checkLevels = epCheckLevels;
650 if (!levelsSetByProcess) {
651 if (theModel) checkLevels = theModel->GetEnergyMomentumCheckLevels();
652 checkLevels.first= std::min(checkLevels.first, epCheckLevels.first);
653 checkLevels.second=std::min(checkLevels.second, epCheckLevels.second);
654 }
655
656 // Compute absolute total-energy difference, and relative kinetic-energy
657 G4bool checkRelative = (aTrack.GetKineticEnergy() > checkLevels.second);
658
659 G4LorentzVector diff = initial4mom - final4mom;
660 G4double absolute = diff.e();
661 G4double relative = checkRelative ? absolute/aTrack.GetKineticEnergy() : 0.;
662
663 G4double absolute_mom = diff.vect().mag();
664 G4double relative_mom = checkRelative ? absolute_mom/aTrack.GetMomentum().mag() : 0.;
665
666 // Evaluate relative and absolute conservation
667 G4bool relPass = true;
668 G4String relResult = "pass";
669 if ( std::abs(relative) > checkLevels.first
670 || std::abs(relative_mom) > checkLevels.first) {
671 relPass = false;
672 relResult = checkRelative ? "fail" : "N/A";
673 }
674
675 G4bool absPass = true;
676 G4String absResult = "pass";
677 if ( std::abs(absolute) > checkLevels.second
678 || std::abs(absolute_mom) > checkLevels.second ) {
679 absPass = false ;
680 absResult = "fail";
681 }
682
683 G4bool chargePass = true;
684 G4String chargeResult = "pass";
685 if ( (initial_A-final_A)!=0
686 || (initial_Z-final_Z)!=0 ) {
687 chargePass = checkLevels.second < DBL_MAX ? false : true;
688 chargeResult = "fail";
689 }
690
691 G4bool conservationPass = (relPass || absPass) && chargePass;
692
693 std::stringstream Myout;
694 G4bool Myout_notempty(false);
695 // Options for level of reporting detail:
696 // 0. off
697 // 1. report only when E/p not conserved
698 // 2. report regardless of E/p conservation
699 // 3. report only when E/p not conserved, with model names, process names, and limits
700 // 4. report regardless of E/p conservation, with model names, process names, and limits
701 // negative -1.., as above, but send output to stderr
702
703 if( std::abs(epReportLevel) == 4
704 || ( std::abs(epReportLevel) == 3 && ! conservationPass ) ){
705 Myout << " Process: " << processName << " , Model: " << modelName << G4endl;
706 Myout << " Primary: " << aTrack.GetParticleDefinition()->GetParticleName()
707 << " (" << aTrack.GetParticleDefinition()->GetPDGEncoding() << "),"
708 << " E= " << aTrack.GetDynamicParticle()->Get4Momentum().e()
709 << ", target nucleus (" << aNucleus.GetZ_asInt() << ","
710 << aNucleus.GetA_asInt() << ")" << G4endl;
711 Myout_notempty=true;
712 }
713 if ( std::abs(epReportLevel) == 4
714 || std::abs(epReportLevel) == 2
715 || ! conservationPass ){
716
717 Myout << " "<< relResult <<" relative, limit " << checkLevels.first << ", values E/T(0) = "
718 << relative << " p/p(0)= " << relative_mom << G4endl;
719 Myout << " "<< absResult << " absolute, limit (MeV) " << checkLevels.second/MeV << ", values E / p (MeV) = "
720 << absolute/MeV << " / " << absolute_mom/MeV << " 3mom: " << (diff.vect())*1./MeV << G4endl;
721 Myout << " "<< chargeResult << " charge/baryon number balance " << (initial_Z-final_Z) << " / " << (initial_A-final_A) << " "<< G4endl;
722 Myout_notempty=true;
723
724 }
725 Myout.flush();
726 if ( Myout_notempty ) {
727 if (epReportLevel > 0) G4cout << Myout.str()<< G4endl;
728 else if (epReportLevel < 0) G4cerr << Myout.str()<< G4endl;
729 }
730}
static constexpr double MeV
Definition: G4SIunits.hh:200
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
double z() const
double x() const
double y() const
double mag() const
Hep3Vector vect() const
void set(double x, double y, double z, double t)
G4LorentzVector Get4Momentum() const
virtual std::pair< G4double, G4double > GetEnergyMomentumCheckLevels() const
G4HadronicInteraction * GetHadronicInteraction() const
std::pair< G4double, G4double > epCheckLevels
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetEnergy() const
const G4ThreeVector * GetMomentumDirection() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
const G4ParticleDefinition * GetParticleDefinition() const
G4ThreeVector GetMomentum() const
G4ParticleDefinition * GetDefinition() const
const G4DynamicParticle * GetDynamicParticle() const
G4double GetKineticEnergy() const
G4int GetNumberOfSecondaries() const
G4Track * GetSecondary(G4int anIndex) const
G4TrackStatus GetTrackStatus() const
static constexpr double electron_mass_c2
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
int G4lrint(double ad)
Definition: templates.hh:134
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, CLHEP::HepLorentzVector::e(), CLHEP::electron_mass_c2, G4HadronicProcess::epCheckLevels, G4HadronicProcess::epReportLevel, fStopAndKill, G4cerr, G4cout, G4endl, G4lrint(), G4DynamicParticle::Get4Momentum(), G4Nucleus::GetA_asInt(), G4ParticleDefinition::GetBaryonNumber(), G4Track::GetDefinition(), G4Track::GetDynamicParticle(), G4ParticleChange::GetEnergy(), G4HadronicInteraction::GetEnergyMomentumCheckLevels(), G4HadronicProcess::GetHadronicInteraction(), G4Track::GetKineticEnergy(), G4HadronicInteraction::GetModelName(), G4Track::GetMomentum(), G4ParticleChange::GetMomentumDirection(), G4NucleiProperties::GetNuclearMass(), G4VParticleChange::GetNumberOfSecondaries(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetPDGMass(), G4VProcess::GetProcessName(), G4VParticleChange::GetSecondary(), G4VParticleChange::GetTrackStatus(), G4Nucleus::GetZ_asInt(), G4HadronicProcess::levelsSetByProcess, CLHEP::Hep3Vector::mag(), MeV, G4INCL::Math::min(), G4HadronicProcess::nICelectrons, CLHEP::HepLorentzVector::set(), G4HadronicProcess::theTotalResult, CLHEP::HepLorentzVector::vect(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by AtRestDoIt(), G4HadronicProcess::PostStepDoIt(), and G4HadronElasticProcess::PostStepDoIt().

◆ CheckResult()

G4HadFinalState * G4HadronicProcess::CheckResult ( const G4HadProjectile thePro,
const G4Nucleus targetNucleus,
G4HadFinalState result 
)
protectedinherited

Definition at line 495 of file G4HadronicProcess.cc.

498{
499 // check for catastrophic energy non-conservation
500 // to re-sample the interaction
501
503 G4double nuclearMass(0);
504 if (theModel) {
505
506 // Compute final-state total energy
507 G4double finalE(0.);
508 G4int nSec = result->GetNumberOfSecondaries();
509
510 nuclearMass = G4NucleiProperties::GetNuclearMass(aNucleus.GetA_asInt(),
511 aNucleus.GetZ_asInt());
512 if (result->GetStatusChange() != stopAndKill) {
513 // Interaction didn't complete, returned "do nothing" state
514 // and reset nucleus or the primary survived the interaction
515 // (e.g. electro-nuclear ) => keep nucleus
516 finalE=result->GetLocalEnergyDeposit() +
517 aPro.GetDefinition()->GetPDGMass() + result->GetEnergyChange();
518 if( nSec == 0 ){
519 // Since there are no secondaries, there is no recoil nucleus.
520 // To check energy balance we must neglect the initial nucleus too.
521 nuclearMass=0.0;
522 }
523 }
524 for (G4int i = 0; i < nSec; i++) {
525 G4DynamicParticle *pdyn=result->GetSecondary(i)->GetParticle();
526 finalE += pdyn->GetTotalEnergy();
527 G4double mass_pdg=pdyn->GetDefinition()->GetPDGMass();
528 G4double mass_dyn=pdyn->GetMass();
529 if ( std::abs(mass_pdg - mass_dyn) > 0.1*mass_pdg + 1.*MeV ) {
530 // If it is shortlived, then a difference less than 3 times the width is acceptable
531 if ( pdyn->GetDefinition()->IsShortLived() &&
532 std::abs(mass_pdg - mass_dyn) < 3.0*pdyn->GetDefinition()->GetPDGWidth() ) {
533 continue;
534 }
535 result->Clear();
536 result = nullptr;
538 desc << "Warning: Secondary with off-shell dynamic mass detected: "
539 << G4endl
540 << " " << pdyn->GetDefinition()->GetParticleName()
541 << ", PDG mass: " << mass_pdg << ", dynamic mass: "
542 << mass_dyn << G4endl
543 << (epReportLevel<0 ? "abort the event"
544 : "re-sample the interaction") << G4endl
545 << " Process / Model: " << GetProcessName()<< " / "
546 << theModel->GetModelName() << G4endl
547 << " Primary: " << aPro.GetDefinition()->GetParticleName()
548 << " (" << aPro.GetDefinition()->GetPDGEncoding() << "), "
549 << " E= " << aPro.Get4Momentum().e()
550 << ", target nucleus (" << aNucleus.GetZ_asInt() << ", "
551 << aNucleus.GetA_asInt() << ")" << G4endl;
552 G4Exception("G4HadronicProcess:CheckResult()", "had012",
554 // must return here.....
555 return result;
556 }
557 }
558 G4double deltaE= nuclearMass + aPro.GetTotalEnergy() - finalE;
559
560 std::pair<G4double, G4double> checkLevels =
561 theModel->GetFatalEnergyCheckLevels(); // (relative, absolute)
562 if (std::abs(deltaE) > checkLevels.second &&
563 std::abs(deltaE) > checkLevels.first*aPro.GetKineticEnergy()){
564 // do not delete result, this is a pointer to a data member;
565 result->Clear();
566 result = nullptr;
568 desc << "Warning: Bad energy non-conservation detected, will "
569 << (epReportLevel<0 ? "abort the event"
570 : "re-sample the interaction") << G4endl
571 << " Process / Model: " << GetProcessName()<< " / "
572 << theModel->GetModelName() << G4endl
573 << " Primary: " << aPro.GetDefinition()->GetParticleName()
574 << " (" << aPro.GetDefinition()->GetPDGEncoding() << "), "
575 << " E= " << aPro.Get4Momentum().e()
576 << ", target nucleus (" << aNucleus.GetZ_asInt() << ", "
577 << aNucleus.GetA_asInt() << ")" << G4endl
578 << " E(initial - final) = " << deltaE << " MeV." << G4endl;
579 G4Exception("G4HadronicProcess:CheckResult()", "had012",
581 }
582 }
583 return result;
584}
@ EventMustBeAborted
G4double GetMass() const
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetEnergyChange() const
virtual const std::pair< G4double, G4double > GetFatalEnergyCheckLevels() const
G4double GetPDGWidth() const

References G4HadFinalState::Clear(), CLHEP::HepLorentzVector::e(), G4HadronicProcess::epReportLevel, EventMustBeAborted, G4endl, G4Exception(), G4HadProjectile::Get4Momentum(), G4Nucleus::GetA_asInt(), G4DynamicParticle::GetDefinition(), G4HadProjectile::GetDefinition(), G4HadFinalState::GetEnergyChange(), G4HadronicInteraction::GetFatalEnergyCheckLevels(), G4HadronicProcess::GetHadronicInteraction(), G4HadProjectile::GetKineticEnergy(), G4HadFinalState::GetLocalEnergyDeposit(), G4DynamicParticle::GetMass(), G4HadronicInteraction::GetModelName(), G4NucleiProperties::GetNuclearMass(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetPDGMass(), G4ParticleDefinition::GetPDGWidth(), G4VProcess::GetProcessName(), G4HadFinalState::GetSecondary(), G4HadFinalState::GetStatusChange(), G4DynamicParticle::GetTotalEnergy(), G4HadProjectile::GetTotalEnergy(), G4Nucleus::GetZ_asInt(), G4ParticleDefinition::IsShortLived(), JustWarning, MeV, and stopAndKill.

Referenced by AtRestDoIt(), G4HadronicProcess::PostStepDoIt(), and G4HadronElasticProcess::PostStepDoIt().

◆ ChooseHadronicInteraction()

G4HadronicInteraction * G4HadronicProcess::ChooseHadronicInteraction ( const G4HadProjectile aHadProjectile,
G4Nucleus aTargetNucleus,
const G4Material aMaterial,
const G4Element anElement 
)
inlineprotectedinherited

Definition at line 139 of file G4HadronicProcess.hh.

142 { return theEnergyRangeManager.GetHadronicInteraction(aHadProjectile,
143 aTargetNucleus,
144 aMaterial,anElement);
145 }
G4HadronicInteraction * GetHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement) const
G4EnergyRangeManager theEnergyRangeManager

References G4EnergyRangeManager::GetHadronicInteraction(), and G4HadronicProcess::theEnergyRangeManager.

Referenced by AtRestDoIt(), G4HadronicProcess::PostStepDoIt(), and G4HadronElasticProcess::PostStepDoIt().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ CrossSectionFactor()

G4double G4HadronicProcess::CrossSectionFactor ( ) const
inlineinherited

Definition at line 156 of file G4HadronicProcess.hh.

157 { return aScaleFactor; }

References G4HadronicProcess::aScaleFactor.

◆ DumpInfo()

void G4VProcess::DumpInfo ( ) const
virtualinherited

Reimplemented in G4AdjointAlongStepWeightCorrection, G4AdjointForcedInteractionForGamma, G4AdjointhMultipleScattering, G4ContinuousGainOfEnergy, G4eAdjointMultipleScattering, G4eInverseBremsstrahlung, G4eInverseCompton, G4eInverseIonisation, G4InversePEEffect, G4IonInverseIonisation, G4PolarizedAnnihilation, G4PolarizedBremsstrahlung, G4PolarizedCompton, G4PolarizedGammaConversion, G4PolarizedIonisation, G4PolarizedPhotoElectric, G4Cerenkov, G4ForwardXrayTR, G4GammaXTRadiator, G4GaussXTRadiator, G4RegularXTRadiator, G4Scintillation, G4StrawTubeXTRadiator, G4SynchrotronRadiation, G4TransitionRadiation, G4TransparentRegXTRadiator, G4VTransitionRadiation, G4VXTRenergyLoss, G4XTRGammaRadModel, G4XTRRegularRadModel, and G4XTRTransparentRegRadModel.

Definition at line 167 of file G4VProcess.cc.

168{
169 G4cout << "Process Name " << theProcessName ;
170 G4cout << " : Type[" << GetProcessTypeName(theProcessType) << "]";
171 G4cout << " : SubType[" << theProcessSubType << "]"<< G4endl;
172}
static const G4String & GetProcessTypeName(G4ProcessType)
Definition: G4VProcess.cc:134
G4ProcessType theProcessType
Definition: G4VProcess.hh:346
G4int theProcessSubType
Definition: G4VProcess.hh:349
G4String theProcessName
Definition: G4VProcess.hh:341

References G4cout, G4endl, G4VProcess::GetProcessTypeName(), G4VProcess::theProcessName, G4VProcess::theProcessSubType, and G4VProcess::theProcessType.

Referenced by G4ProcessTable::DumpInfo(), export_G4VProcess(), G4Scintillation::ProcessDescription(), G4Cerenkov::ProcessDescription(), and G4ProcessManagerMessenger::SetNewValue().

◆ DumpPhysicsTable()

void G4HadronicProcess::DumpPhysicsTable ( const G4ParticleDefinition p)
inherited

◆ DumpState()

void G4HadronicProcess::DumpState ( const G4Track aTrack,
const G4String method,
G4ExceptionDescription ed 
)
protectedinherited

Definition at line 732 of file G4HadronicProcess.cc.

735{
736 ed << "Unrecoverable error in the method " << method << " of "
737 << GetProcessName() << G4endl;
738 ed << "TrackID= "<< aTrack.GetTrackID() << " ParentID= "
739 << aTrack.GetParentID()
740 << " " << aTrack.GetParticleDefinition()->GetParticleName()
741 << G4endl;
742 ed << "Ekin(GeV)= " << aTrack.GetKineticEnergy()/CLHEP::GeV
743 << "; direction= " << aTrack.GetMomentumDirection() << G4endl;
744 ed << "Position(mm)= " << aTrack.GetPosition()/CLHEP::mm << ";";
745
746 if (aTrack.GetMaterial()) {
747 ed << " material " << aTrack.GetMaterial()->GetName();
748 }
749 ed << G4endl;
750
751 if (aTrack.GetVolume()) {
752 ed << "PhysicalVolume <" << aTrack.GetVolume()->GetName()
753 << ">" << G4endl;
754 }
755}
const G4String & GetName() const
Definition: G4Material.hh:173
G4int GetTrackID() const
G4VPhysicalVolume * GetVolume() const
const G4ThreeVector & GetMomentumDirection() const
G4int GetParentID() const
const G4String & GetName() const
static constexpr double mm
Definition: SystemOfUnits.h:96
static constexpr double GeV

References G4endl, G4Track::GetKineticEnergy(), G4Track::GetMaterial(), G4Track::GetMomentumDirection(), G4VPhysicalVolume::GetName(), G4Material::GetName(), G4Track::GetParentID(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), G4Track::GetPosition(), G4VProcess::GetProcessName(), G4Track::GetTrackID(), G4Track::GetVolume(), CLHEP::GeV, and CLHEP::mm.

Referenced by AtRestDoIt(), G4HadronicProcess::FillResult(), G4NeutrinoElectronProcess::GetMeanFreePath(), G4NeutrinoElectronProcess::PostStepDoIt(), G4HadronicProcess::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), and G4MuNeutrinoNucleusProcess::PostStepDoIt().

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ FillResult()

void G4HadronicProcess::FillResult ( G4HadFinalState aR,
const G4Track aT 
)
protectedinherited

Definition at line 381 of file G4HadronicProcess.cc.

382{
384 const G4ThreeVector& dir = aT.GetMomentumDirection();
385
386 G4double efinal = std::max(aR->GetEnergyChange(), 0.0);
387
388 // check status of primary
389 if(aR->GetStatusChange() == stopAndKill) {
392
393 // check its final energy
394 } else if(0.0 == efinal) {
397 ->GetAtRestProcessVector()->size() > 0)
400
401 // primary is not killed apply rotation and Lorentz transformation
402 } else {
404 G4ThreeVector newDir = aR->GetMomentumChange();
405 newDir.rotateUz(dir);
408 }
409 //G4cout << "FillResult: Efinal= " << efinal << " status= "
410 // << theTotalResult->GetTrackStatus()
411 // << " fKill= " << fStopAndKill << G4endl;
412
413 // check secondaries
414 nICelectrons = 0;
415 G4int nSec = aR->GetNumberOfSecondaries();
417 G4double time0 = aT.GetGlobalTime();
418
419 for (G4int i = 0; i < nSec; ++i) {
420 G4DynamicParticle* dynParticle = aR->GetSecondary(i)->GetParticle();
421
422 // apply rotation
423 G4ThreeVector newDir = dynParticle->GetMomentumDirection();
424 newDir.rotateUz(dir);
425 dynParticle->SetMomentumDirection(newDir);
426
427 // check if secondary is on the mass shell
428 const G4ParticleDefinition* part = dynParticle->GetDefinition();
429 G4double mass = part->GetPDGMass();
430 G4double dmass= dynParticle->GetMass();
431 const G4double delta_mass_lim = 1.0*CLHEP::keV;
432 const G4double delta_ekin = 0.001*CLHEP::eV;
433 if(std::abs(dmass - mass) > delta_mass_lim) {
434 G4double e = std::max(dynParticle->GetKineticEnergy() + dmass - mass, delta_ekin);
437 ed << "TrackID= "<< aT.GetTrackID()
438 << " " << aT.GetParticleDefinition()->GetParticleName()
439 << " Target Z= " << targetNucleus.GetZ_asInt() << " A= "
441 << " Ekin(GeV)= " << aT.GetKineticEnergy()/CLHEP::GeV
442 << "\n Secondary is out of mass shell: " << part->GetParticleName()
443 << " EkinNew(MeV)= " << e
444 << " DeltaMass(MeV)= " << dmass - mass << G4endl;
445 G4Exception("G4HadronicProcess::FillResults", "had012", JustWarning, ed);
446 }
447 dynParticle->SetKineticEnergy(e);
448 dynParticle->SetMass(mass);
449 }
450 G4int idModel = aR->GetSecondary(i)->GetCreatorModelID();
451 if(part->GetPDGEncoding() == 11) { ++nICelectrons; }
452
453 // time of interaction starts from zero + global time
454 G4double time = std::max(aR->GetSecondary(i)->GetTime(), 0.0) + time0;
455
456 G4Track* track = new G4Track(dynParticle, time, aT.GetPosition());
457 track->SetCreatorModelID(idModel);
458 G4double newWeight = fWeight*aR->GetSecondary(i)->GetWeight();
459 track->SetWeight(newWeight);
463 G4double e = dynParticle->GetKineticEnergy();
464 if (e == 0.0) {
466 DumpState(aT,"Secondary has zero energy",ed);
467 ed << "Secondary " << part->GetParticleName()
468 << G4endl;
469 G4Exception("G4HadronicProcess::FillResults", "had011",
470 JustWarning,ed);
471 }
472 }
473 }
474 aR->Clear();
475 // G4cout << "FillResults done nICe= " << nICelectrons << G4endl;
476}
@ fAlive
@ fStopButAlive
Hep3Vector & rotateUz(const Hep3Vector &)
Definition: ThreeVector.cc:33
void SetMomentumDirection(const G4ThreeVector &aDirection)
const G4ThreeVector & GetMomentumDirection() const
void SetMass(G4double mass)
G4double GetKineticEnergy() const
void SetKineticEnergy(G4double aEnergy)
const G4ThreeVector & GetMomentumChange() const
G4int GetCreatorModelID() const
void ProposeEnergy(G4double finalEnergy)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
G4ProcessManager * GetProcessManager() const
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
std::size_t size() const
static constexpr double keV
static constexpr double eV
T max(const T t1, const T t2)
brief Return the largest of the two arguments

References G4ParticleChange::AddSecondary(), G4HadFinalState::Clear(), G4HadronicProcess::DumpState(), CLHEP::eV, fAlive, fStopAndKill, fStopButAlive, G4HadronicProcess::fWeight, G4endl, G4Exception(), G4HadronicProcess::G4HadronicProcess_debug_flag, G4Nucleus::GetA_asInt(), G4ProcessManager::GetAtRestProcessVector(), G4HadSecondary::GetCreatorModelID(), G4DynamicParticle::GetDefinition(), G4HadFinalState::GetEnergyChange(), G4Track::GetGlobalTime(), G4DynamicParticle::GetKineticEnergy(), G4Track::GetKineticEnergy(), G4HadFinalState::GetLocalEnergyDeposit(), G4DynamicParticle::GetMass(), G4HadFinalState::GetMomentumChange(), G4DynamicParticle::GetMomentumDirection(), G4Track::GetMomentumDirection(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetPDGMass(), G4Track::GetPosition(), G4ParticleDefinition::GetProcessManager(), G4HadFinalState::GetSecondary(), G4HadFinalState::GetStatusChange(), G4HadSecondary::GetTime(), G4Track::GetTouchableHandle(), G4Track::GetTrackID(), G4HadSecondary::GetWeight(), G4Nucleus::GetZ_asInt(), CLHEP::GeV, JustWarning, CLHEP::keV, G4INCL::Math::max(), G4HadronicProcess::nICelectrons, G4ParticleChange::ProposeEnergy(), G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChange::ProposeMomentumDirection(), G4VParticleChange::ProposeTrackStatus(), CLHEP::Hep3Vector::rotateUz(), G4Track::SetCreatorModelID(), G4DynamicParticle::SetKineticEnergy(), G4DynamicParticle::SetMass(), G4DynamicParticle::SetMomentumDirection(), G4VParticleChange::SetNumberOfSecondaries(), G4Track::SetTouchableHandle(), G4Track::SetWeight(), G4ProcessVector::size(), stopAndKill, G4HadronicProcess::targetNucleus, and G4HadronicProcess::theTotalResult.

Referenced by G4NeutrinoElectronProcess::PostStepDoIt(), G4HadronicProcess::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), and G4MuNeutrinoNucleusProcess::PostStepDoIt().

◆ GetCrossSectionDataStore()

G4CrossSectionDataStore * G4HadronicProcess::GetCrossSectionDataStore ( )
inlineinherited

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetElementCrossSection()

G4double G4HadronicProcess::GetElementCrossSection ( const G4DynamicParticle part,
const G4Element elm,
const G4Material mat = nullptr 
)
inherited

Definition at line 149 of file G4HadronicProcess.cc.

152{
153 if(!mat)
154 {
155 static const G4int nmax = 5;
156 if(nMatWarn < nmax) {
157 ++nMatWarn;
159 ed << "Cannot compute Element x-section for " << GetProcessName()
160 << " because no material defined \n"
161 << " Please, specify material pointer or define simple material"
162 << " for Z= " << elm->GetZasInt();
163 G4Exception("G4HadronicProcess::GetElementCrossSection", "had066",
164 JustWarning, ed);
165 }
166 }
167 return
169}
G4double GetCrossSection(const G4DynamicParticle *, const G4Material *)
G4int GetZasInt() const
Definition: G4Element.hh:132

References G4Exception(), G4CrossSectionDataStore::GetCrossSection(), G4VProcess::GetProcessName(), G4Element::GetZasInt(), JustWarning, G4INCL::Math::max(), G4HadronicProcess::nMatWarn, and G4HadronicProcess::theCrossSectionDataStore.

Referenced by G4HadronicProcessStore::GetCaptureCrossSectionPerAtom(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerAtom(), G4HadronicProcessStore::GetElasticCrossSectionPerAtom(), G4HadronicProcessStore::GetFissionCrossSectionPerAtom(), G4HadronicProcessStore::GetInelasticCrossSectionPerAtom(), and G4HadronicProcess::GetMicroscopicCrossSection().

◆ GetEnergyMomentumCheckEnvvars()

void G4HadronicProcess::GetEnergyMomentumCheckEnvvars ( )
privateinherited

Definition at line 129 of file G4HadronicProcess.cc.

129 {
130 if ( std::getenv("G4Hadronic_epReportLevel") ) {
131 epReportLevel = std::strtol(std::getenv("G4Hadronic_epReportLevel"),0,10);
132 }
133 if ( std::getenv("G4Hadronic_epCheckRelativeLevel") ) {
134 epCheckLevels.first = std::strtod(std::getenv("G4Hadronic_epCheckRelativeLevel"),0);
135 }
136 if ( std::getenv("G4Hadronic_epCheckAbsoluteLevel") ) {
137 epCheckLevels.second = std::strtod(std::getenv("G4Hadronic_epCheckAbsoluteLevel"),0);
138 }
139}

References G4HadronicProcess::epCheckLevels, and G4HadronicProcess::epReportLevel.

Referenced by G4HadronicProcess::InitialiseLocal().

◆ GetEnergyMomentumCheckLevels()

std::pair< G4double, G4double > G4HadronicProcess::GetEnergyMomentumCheckLevels ( ) const
inlineinherited

◆ GetHadronicInteraction()

G4HadronicInteraction * G4HadronicProcess::GetHadronicInteraction ( ) const
inlineinherited

◆ GetHadronicInteractionList()

std::vector< G4HadronicInteraction * > & G4HadronicProcess::GetHadronicInteractionList ( )
inherited

◆ GetHadronicModel()

G4HadronicInteraction * G4HadronicProcess::GetHadronicModel ( const G4String modelName)
inherited

Definition at line 774 of file G4HadronicProcess.cc.

775{
776 std::vector<G4HadronicInteraction*>& list
778 for (size_t li=0; li<list.size(); li++) {
779 if (list[li]->GetModelName() == modelName) return list[li];
780 }
781 return nullptr;
782}

References G4EnergyRangeManager::GetHadronicInteractionList(), and G4HadronicProcess::theEnergyRangeManager.

◆ GetLastCrossSection()

G4double G4HadronicProcess::GetLastCrossSection ( )
inlineprotectedinherited

Definition at line 185 of file G4HadronicProcess.hh.

186 { return theLastCrossSection; }

References G4HadronicProcess::theLastCrossSection.

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMeanFreePath()

G4double G4HadronicProcess::GetMeanFreePath ( const G4Track aTrack,
G4double  ,
G4ForceCondition  
)
overridevirtualinherited

Implements G4VDiscreteProcess.

Reimplemented in G4NeutrinoElectronProcess, G4ElNeutrinoNucleusProcess, and G4MuNeutrinoNucleusProcess.

Definition at line 186 of file G4HadronicProcess.cc.

188{
189 //G4cout << "GetMeanFreePath " << aTrack.GetDefinition()->GetParticleName()
190 // << " Ekin= " << aTrack.GetKineticEnergy() << G4endl;
194 //G4cout << " xsection= " << theLastCrossSection << G4endl;
195 return res;
196}
G4double ComputeCrossSection(const G4DynamicParticle *, const G4Material *)

References G4HadronicProcess::aScaleFactor, G4CrossSectionDataStore::ComputeCrossSection(), DBL_MAX, G4Track::GetDynamicParticle(), G4Track::GetMaterial(), G4HadronicProcess::theCrossSectionDataStore, and G4HadronicProcess::theLastCrossSection.

◆ GetMeanLifeTime()

G4double G4HadronStoppingProcess::GetMeanLifeTime ( const G4Track ,
G4ForceCondition  
)
inlineprotected

Definition at line 98 of file G4HadronStoppingProcess.hh.

99 { return -1.0; }

◆ GetMicroscopicCrossSection()

G4double G4HadronicProcess::GetMicroscopicCrossSection ( const G4DynamicParticle part,
const G4Element elm,
const G4Material mat = nullptr 
)
inlineinherited

Definition at line 90 of file G4HadronicProcess.hh.

93 { return GetElementCrossSection(part, elm, mat); }
G4double GetElementCrossSection(const G4DynamicParticle *part, const G4Element *elm, const G4Material *mat=nullptr)

References G4HadronicProcess::GetElementCrossSection().

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetPhysicsTableFileName()

const G4String & G4VProcess::GetPhysicsTableFileName ( const G4ParticleDefinition particle,
const G4String directory,
const G4String tableName,
G4bool  ascii = false 
)
inherited

Definition at line 181 of file G4VProcess.cc.

186{
187 G4String thePhysicsTableFileExt;
188 if (ascii) thePhysicsTableFileExt = ".asc";
189 else thePhysicsTableFileExt = ".dat";
190
191 thePhysicsTableFileName = directory + "/";
192 thePhysicsTableFileName += tableName + "." + theProcessName + ".";
194 + thePhysicsTableFileExt;
195
197}
G4String thePhysicsTableFileName
Definition: G4VProcess.hh:344

References G4ParticleDefinition::GetParticleName(), G4VProcess::thePhysicsTableFileName, and G4VProcess::theProcessName.

Referenced by export_G4VProcess(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4GammaGeneralProcess::StorePhysicsTable(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), and G4VEnergyLossProcess::StoreTable().

◆ GetPILfactor()

G4double G4VProcess::GetPILfactor ( ) const
inlineinherited

Definition at line 455 of file G4VProcess.hh.

456{
457 return thePILfactor;
458}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ GetProcessManager()

const G4ProcessManager * G4VProcess::GetProcessManager ( )
inlinevirtualinherited

Reimplemented in G4BiasingProcessInterface, and G4WrapperProcess.

Definition at line 494 of file G4VProcess.hh.

495{
496 return aProcessManager;
497}
const G4ProcessManager * aProcessManager
Definition: G4VProcess.hh:319

References G4VProcess::aProcessManager.

Referenced by G4BiasingProcessInterface::GetProcessManager(), and G4WrapperProcess::GetProcessManager().

◆ GetProcessName()

const G4String & G4VProcess::GetProcessName ( ) const
inlineinherited

Definition at line 382 of file G4VProcess.hh.

383{
384 return theProcessName;
385}

References G4VProcess::theProcessName.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4ProcessManager::ActivateProcess(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4ParallelGeometriesLimiterProcess::AddParallelWorld(), G4IonQMDPhysics::AddProcess(), G4IonINCLXXPhysics::AddProcess(), G4ProcessManager::AddProcess(), G4ProcessPlacer::AddProcessAs(), G4ITSteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerboseWithUnits::AlongStepDoItAllDone(), G4ITSteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerboseWithUnits::AlongStepDoItOneByOne(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4BOptnLeadingParticle::ApplyFinalStateBiasing(), G4ITSteppingVerbose::AtRestDoItInvoked(), G4SteppingVerbose::AtRestDoItInvoked(), G4SteppingVerboseWithUnits::AtRestDoItInvoked(), G4ITSteppingVerbose::AtRestDoItOneByOne(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4HadronicProcess::BiasCrossSectionByFactor(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VEnergyLossProcess::BuildDEDXTable(), G4VUserPhysicsList::BuildIntegralPhysicsTable(), G4VEmProcess::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4DNABrownianTransportation::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4LossTableManager::BuildPhysicsTable(), G4LossTableManager::BuildTables(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4ProcessManager::CheckOrderingParameters(), G4HadronicProcess::CheckResult(), G4StackChecker::ClassifyNewTrack(), G4BOptrForceCollision::ConfigureForWorker(), G4RunManagerKernel::ConfirmCoupledTransportation(), G4FastSimulationPhysics::ConstructProcess(), G4GenericBiasingPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4LossTableManager::CopyTables(), G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4VPhononProcess::CreateSecondary(), G4EmExtraParameters::DefineRegParamForEM(), G4EmExtraParameters::DefineRegParamForLoss(), G4HadronicProcessStore::DeRegisterExtraProcess(), G4ITSteppingVerbose::DPSLAlongStep(), G4SteppingVerbose::DPSLAlongStep(), G4SteppingVerboseWithUnits::DPSLAlongStep(), G4ITSteppingVerbose::DPSLPostStep(), G4SteppingVerbose::DPSLPostStep(), G4SteppingVerboseWithUnits::DPSLPostStep(), G4HadronicProcessStore::Dump(), G4HadronicProcess::DumpState(), G4MuonicAtomDecay::DumpState(), G4ExceptionHandler::DumpTrackInfo(), export_G4VProcess(), G4EmCalculator::FindEmModel(), G4VEmProcess::FindLambdaMax(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4HadronicProcess::GetElementCrossSection(), G4VEmProcess::GetEmProcess(), G4GammaGeneralProcess::GetEmProcess(), G4WeightWindowProcess::GetName(), G4ProcessManager::GetProcess(), G4ProcessManager::GetProcessVectorIndex(), G4GammaGeneralProcess::GetSubProcessName(), G4ProcessManager::InActivateProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4ProcessTable::Insert(), G4ITStepProcessor::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAtRestDoItProcs(), G4SteppingManager::InvokePSDIP(), G4LossTableManager::LocalPhysicsTables(), G4ErrorPropagator::MakeOneStep(), G4VEmProcess::PostStepDoIt(), G4ITSteppingVerbose::PostStepDoItAllDone(), G4SteppingVerbose::PostStepDoItAllDone(), G4SteppingVerboseWithUnits::PostStepDoItAllDone(), G4ITSteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerboseWithUnits::PostStepDoItOneByOne(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4ITSteppingVerbose::PostStepVerbose(), G4EmConfigurator::PrepareModels(), PreparePhysicsTable(), G4GammaGeneralProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4LossTableManager::PreparePhysicsTable(), G4HadronicProcessStore::Print(), G4HadronicProcessStore::PrintHtml(), G4AnnihiToMuPair::PrintInfoDefinition(), G4GammaConversionToMuons::PrintInfoDefinition(), G4hImpactIonisation::PrintInfoDefinition(), G4ProcessPlacer::PrintProcVec(), G4VEnergyLossProcess::PrintWarning(), G4VEmProcess::PrintWarning(), G4SynchrotronRadiation::ProcessDescription(), G4Decay::ProcessDescription(), G4DecayWithSpin::ProcessDescription(), G4PionDecayMakeSpin::ProcessDescription(), G4UnknownDecay::ProcessDescription(), G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(), G4StackManager::PushOneTrack(), G4HadronicProcessStore::Register(), G4LossTableManager::Register(), G4LossTableManager::RegisterExtraParticle(), G4HadronicProcessStore::RegisterExtraProcess(), G4HadronicProcessStore::RegisterParticle(), G4WrapperProcess::RegisterProcess(), G4PhysicsListHelper::RegisterProcess(), G4ProcessTable::Remove(), G4ParallelGeometriesLimiterProcess::RemoveParallelWorld(), G4ProcessManager::RemoveProcess(), G4ProcessPlacer::RemoveProcess(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4VEnergyLossProcess::SetInverseRangeTable(), G4VEnergyLossProcess::SetLambdaTable(), G4ProcessTableMessenger::SetNewValue(), G4ProcessTable::SetProcessActivation(), G4ProcessManager::SetProcessOrdering(), G4ProcessManager::SetProcessOrderingToFirst(), G4ProcessManager::SetProcessOrderingToLast(), G4ProcessManager::SetProcessOrderingToSecond(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4FastSimulationManagerProcess::SetWorldVolume(), G4ITSteppingVerbose::ShowStep(), G4SteppingVerbose::ShowStep(), G4SteppingVerboseWithUnits::ShowStep(), G4ChannelingOptrChangeCrossSection::StartRun(), G4ITSteppingVerbose::StepInfo(), G4SteppingVerbose::StepInfo(), G4SteppingVerboseWithUnits::StepInfo(), G4ITSteppingVerbose::StepInfoForLeadingTrack(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4EmCalculator::UpdateParticle(), G4ParallelWorldScoringProcess::Verbose(), G4ScoreSplittingProcess::Verbose(), G4ITSteppingVerbose::VerboseTrack(), G4SteppingVerbose::VerboseTrack(), and G4SteppingVerboseWithUnits::VerboseTrack().

◆ GetProcessSubType()

G4int G4VProcess::GetProcessSubType ( ) const
inlineinherited

◆ GetProcessType()

G4ProcessType G4VProcess::GetProcessType ( ) const
inlineinherited

◆ GetProcessTypeName()

const G4String & G4VProcess::GetProcessTypeName ( G4ProcessType  aType)
staticinherited

Definition at line 134 of file G4VProcess.cc.

135{
136 switch (aType)
137 {
138 case fNotDefined: return typeNotDefined; break;
139 case fTransportation: return typeTransportation; break;
140 case fElectromagnetic: return typeElectromagnetic; break;
141 case fOptical: return typeOptical; break;
142 case fHadronic: return typeHadronic; break;
144 case fDecay: return typeDecay; break;
145 case fGeneral: return typeGeneral; break;
146 case fParameterisation: return typeParameterisation; break;
147 case fUserDefined: return typeUserDefined; break;
148 case fPhonon: return typePhonon; break;
149 default: ;
150 }
151 return noType;
152}
@ fOptical
@ fPhonon
@ fParameterisation
@ fGeneral
@ fDecay
@ fElectromagnetic
@ fHadronic
@ fUserDefined
@ fTransportation
@ fPhotolepton_hadron
@ fNotDefined
static const G4String typeNotDefined
Definition: G4VProcess.cc:119
static const G4String typeParameterisation
Definition: G4VProcess.cc:127
static const G4String typePhotolepton_hadron
Definition: G4VProcess.cc:124
static const G4String typeElectromagnetic
Definition: G4VProcess.cc:121
static const G4String noType
Definition: G4VProcess.cc:130
static const G4String typeUserDefined
Definition: G4VProcess.cc:128
static const G4String typeDecay
Definition: G4VProcess.cc:125
static const G4String typeTransportation
Definition: G4VProcess.cc:120
static const G4String typeHadronic
Definition: G4VProcess.cc:123
static const G4String typeOptical
Definition: G4VProcess.cc:122
static const G4String typeGeneral
Definition: G4VProcess.cc:126
static const G4String typePhonon
Definition: G4VProcess.cc:129

References fDecay, fElectromagnetic, fGeneral, fHadronic, fNotDefined, fOptical, fParameterisation, fPhonon, fPhotolepton_hadron, fTransportation, fUserDefined, anonymous_namespace{G4VProcess.cc}::noType, anonymous_namespace{G4VProcess.cc}::typeDecay, anonymous_namespace{G4VProcess.cc}::typeElectromagnetic, anonymous_namespace{G4VProcess.cc}::typeGeneral, anonymous_namespace{G4VProcess.cc}::typeHadronic, anonymous_namespace{G4VProcess.cc}::typeNotDefined, anonymous_namespace{G4VProcess.cc}::typeOptical, anonymous_namespace{G4VProcess.cc}::typeParameterisation, anonymous_namespace{G4VProcess.cc}::typePhonon, anonymous_namespace{G4VProcess.cc}::typePhotolepton_hadron, anonymous_namespace{G4VProcess.cc}::typeTransportation, and anonymous_namespace{G4VProcess.cc}::typeUserDefined.

Referenced by G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4ProcessManager::DumpInfo(), G4VProcess::DumpInfo(), G4ProcessTableMessenger::G4ProcessTableMessenger(), G4ProcessTableMessenger::GetProcessType(), G4ProcessTableMessenger::GetProcessTypeName(), and G4ProcessTableMessenger::SetNumberOfProcessType().

◆ GetTargetIsotope()

const G4Isotope * G4HadronicProcess::GetTargetIsotope ( )
inlineinherited

Definition at line 130 of file G4HadronicProcess.hh.

131 { return targetNucleus.GetIsotope(); }
const G4Isotope * GetIsotope()
Definition: G4Nucleus.hh:111

References G4Nucleus::GetIsotope(), and G4HadronicProcess::targetNucleus.

◆ GetTargetNucleus()

const G4Nucleus * G4HadronicProcess::GetTargetNucleus ( ) const
inlineinherited

Definition at line 126 of file G4HadronicProcess.hh.

127 { return &targetNucleus; }

References G4HadronicProcess::targetNucleus.

◆ GetTargetNucleusPointer()

G4Nucleus * G4HadronicProcess::GetTargetNucleusPointer ( )
inlineprotectedinherited

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ InitialiseLocal()

void G4HadronicProcess::InitialiseLocal ( )
privateinherited

Definition at line 107 of file G4HadronicProcess.cc.

107 {
110 theInteraction = nullptr;
115 aScaleFactor = 1.0;
116 fWeight = 1.0;
117 nMatWarn = nKaonWarn = 0;
118 useIntegralXS = true;
120 nICelectrons = 0;
122 levelsSetByProcess = false;
123 epReportLevel = 0;
124 epCheckLevels.first = DBL_MAX;
125 epCheckLevels.second = DBL_MAX;
127}
void Register(G4HadronicProcess *)
G4double theInitialNumberOfInteractionLength
G4HadronicProcessStore * theProcessStore
void GetEnergyMomentumCheckEnvvars()
void SetSecondaryWeightByProcess(G4bool)

References G4HadronicProcess::aScaleFactor, DBL_MAX, G4HadronicProcess::epCheckLevels, G4HadronicProcess::epReportLevel, G4HadronicProcess::fWeight, G4HadronicProcess::G4HadronicProcess_debug_flag, G4HadronicProcess::GetEnergyMomentumCheckEnvvars(), G4HadronicProcessStore::Instance(), G4HadronicProcess::levelsSetByProcess, G4HadronicProcess::nICelectrons, G4HadronicProcess::nKaonWarn, G4HadronicProcess::nMatWarn, G4HadronicProcessStore::Register(), G4VParticleChange::SetSecondaryWeightByProcess(), G4HadronicProcess::theCrossSectionDataStore, G4HadronicProcess::theInitialNumberOfInteractionLength, G4HadronicProcess::theInteraction, G4HadronicProcess::theLastCrossSection, G4HadronicProcess::theProcessStore, G4HadronicProcess::theTotalResult, and G4HadronicProcess::useIntegralXS.

Referenced by G4HadronicProcess::G4HadronicProcess().

◆ isAlongStepDoItIsEnabled()

G4bool G4VProcess::isAlongStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 506 of file G4VProcess.hh.

507{
508 return enableAlongStepDoIt;
509}
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:360

References G4VProcess::enableAlongStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsApplicable()

G4bool G4HadronStoppingProcess::IsApplicable ( const G4ParticleDefinition p)
virtual

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

501{
502 return enableAtRestDoIt;
503}

References G4VProcess::enableAtRestDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ isPostStepDoItIsEnabled()

G4bool G4VProcess::isPostStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 512 of file G4VProcess.hh.

513{
514 return enablePostStepDoIt;
515}

References G4VProcess::enablePostStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ MultiplyCrossSectionBy()

void G4HadronicProcess::MultiplyCrossSectionBy ( G4double  factor)
inherited

◆ operator!=()

G4bool G4VProcess::operator!= ( const G4VProcess right) const
inherited

Definition at line 161 of file G4VProcess.cc.

162{
163 return (this != &right);
164}

◆ operator=()

G4HadronStoppingProcess & G4HadronStoppingProcess::operator= ( const G4HadronStoppingProcess right)
private

◆ operator==()

G4bool G4VProcess::operator== ( const G4VProcess right) const
inherited

Definition at line 155 of file G4VProcess.cc.

156{
157 return (this == &right);
158}

◆ PostStepDoIt()

G4VParticleChange * G4HadronicProcess::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Reimplemented in G4NeutrinoElectronProcess, G4ElNeutrinoNucleusProcess, G4HadronElasticProcess, and G4MuNeutrinoNucleusProcess.

Definition at line 199 of file G4HadronicProcess.cc.

200{
201 //G4cout << "PostStepDoIt " << aTrack.GetDefinition()->GetParticleName()
202 // << " Ekin= " << aTrack.GetKineticEnergy() << G4endl;
203 // if primary is not Alive then do nothing
205 theTotalResult->Initialize(aTrack);
206 fWeight = aTrack.GetWeight();
208 if(aTrack.GetTrackStatus() != fAlive) { return theTotalResult; }
209
210 // Find cross section at end of step and check if <= 0
211 //
212 const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
213 const G4Material* aMaterial = aTrack.GetMaterial();
214
215 // check only for charged particles
216 if(aParticle->GetDefinition()->GetPDGCharge() != 0.0) {
218 theCrossSectionDataStore->ComputeCrossSection(aParticle,aMaterial);
219 if(xs <= 0.0 || xs < theLastCrossSection*G4UniformRand()) {
220 // No interaction
221 return theTotalResult;
222 }
223 }
224
225 const G4Element* anElement =
227
228 // Next check for illegal track status
229 //
230 if (aTrack.GetTrackStatus() != fAlive &&
231 aTrack.GetTrackStatus() != fSuspend) {
232 if (aTrack.GetTrackStatus() == fStopAndKill ||
236 ed << "G4HadronicProcess: track in unusable state - "
237 << aTrack.GetTrackStatus() << G4endl;
238 ed << "G4HadronicProcess: returning unchanged track " << G4endl;
239 DumpState(aTrack,"PostStepDoIt",ed);
240 G4Exception("G4HadronicProcess::PostStepDoIt", "had004", JustWarning, ed);
241 }
242 // No warning for fStopButAlive which is a legal status here
243 return theTotalResult;
244 }
245
246 // Initialize the hadronic projectile from the track
247 thePro.Initialise(aTrack);
248
250 aMaterial, anElement);
251 if(!theInteraction) {
253 ed << "Target element "<<anElement->GetName()<<" Z= "
254 << targetNucleus.GetZ_asInt() << " A= "
256 DumpState(aTrack,"ChooseHadronicInteraction",ed);
257 ed << " No HadronicInteraction found out" << G4endl;
258 G4Exception("G4HadronicProcess::PostStepDoIt", "had005", FatalException, ed);
259 return theTotalResult;
260 }
261
262 G4HadFinalState* result = nullptr;
263 G4int reentryCount = 0;
264 /*
265 G4cout << "### " << aParticle->GetDefinition()->GetParticleName()
266 << " Ekin(MeV)= " << aParticle->GetKineticEnergy()
267 << " Z= " << targetNucleus.GetZ_asInt()
268 << " A= " << targetNucleus.GetA_asInt()
269 << " by " << theInteraction->GetModelName()
270 << G4endl;
271 */
272 do
273 {
274 try
275 {
276 // Save random engine if requested for debugging
279 }
280 // Call the interaction
282 ++reentryCount;
283 }
284 catch(G4HadronicException & aR)
285 {
287 aR.Report(ed);
288 ed << "Call for " << theInteraction->GetModelName() << G4endl;
289 ed << "Target element "<<anElement->GetName()<<" Z= "
291 << " A= " << targetNucleus.GetA_asInt() << G4endl;
292 DumpState(aTrack,"ApplyYourself",ed);
293 ed << " ApplyYourself failed" << G4endl;
294 G4Exception("G4HadronicProcess::PostStepDoIt", "had006", FatalException,
295 ed);
296 }
297
298 // Check the result for catastrophic energy non-conservation
299 result = CheckResult(thePro, targetNucleus, result);
300
301 if(reentryCount>100) {
303 ed << "Call for " << theInteraction->GetModelName() << G4endl;
304 ed << "Target element "<<anElement->GetName()<<" Z= "
306 << " A= " << targetNucleus.GetA_asInt() << G4endl;
307 DumpState(aTrack,"ApplyYourself",ed);
308 ed << " ApplyYourself does not completed after 100 attempts" << G4endl;
309 G4Exception("G4HadronicProcess::PostStepDoIt", "had006", FatalException,
310 ed);
311 }
312 }
313 while(!result); /* Loop checking, 30-Oct-2015, G.Folger */
314
315 // Check whether kaon0 or anti_kaon0 are present between the secondaries:
316 // if this is the case, transform them into either kaon0S or kaon0L,
317 // with equal, 50% probability, keeping their dynamical masses (and
318 // the other kinematical properties).
319 // When this happens - very rarely - a "JustWarning" exception is thrown.
320 G4int nSec = result->GetNumberOfSecondaries();
321 if ( nSec > 0 ) {
322 for ( G4int i = 0; i < nSec; ++i ) {
323 G4DynamicParticle* dynamicParticle = result->GetSecondary(i)->GetParticle();
324 const G4ParticleDefinition* particleDefinition =
325 dynamicParticle->GetParticleDefinition();
326 if ( particleDefinition == G4KaonZero::Definition() ||
327 particleDefinition == G4AntiKaonZero::Definition() ) {
328 G4ParticleDefinition* newPart;
329 if( G4UniformRand() > 0.5 ) { newPart = G4KaonZeroShort::Definition(); }
330 else { newPart = G4KaonZeroLong::Definition(); }
331 dynamicParticle->SetDefinition( newPart );
332 if(nKaonWarn < 5) {
333 ++nKaonWarn;
335 ed << " Hadronic model " << theInteraction->GetModelName() << G4endl;
336 ed << " created " << particleDefinition->GetParticleName() << G4endl;
337 ed << " -> forced to be " << newPart->GetParticleName() << G4endl;
338 G4Exception( "G4HadronicProcess::PostStepDoIt", "had007", JustWarning, ed );
339 }
340 }
341 }
342 }
343
345
347
348 FillResult(result, aTrack);
349
350 if (epReportLevel != 0) {
352 }
353 //G4cout << "PostStepDoIt done nICelectrons= " << nICelectrons << G4endl;
354 return theTotalResult;
355}
static const char * G4Hadronic_Random_File
@ fKillTrackAndSecondaries
@ fSuspend
@ fPostponeToNextEvent
#define G4UniformRand()
Definition: Randomize.hh:52
static void saveEngineStatus(const char filename[]="Config.conf")
Definition: Random.cc:278
static G4AntiKaonZero * Definition()
const G4Element * SampleZandA(const G4DynamicParticle *, const G4Material *, G4Nucleus &target)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
const G4ParticleDefinition * GetParticleDefinition() const
void SetTrafoToLab(const G4LorentzRotation &aT)
G4LorentzRotation & GetTrafoToLab()
void Report(std::ostream &aS) const
void FillResult(G4HadFinalState *aR, const G4Track &aT)
static G4KaonZeroLong * Definition()
static G4KaonZeroShort * Definition()
static G4KaonZero * Definition()
Definition: G4KaonZero.cc:52
G4TrackStatus GetTrackStatus() const
void ClearNumberOfInteractionLengthLeft()
Definition: G4VProcess.hh:424

References G4HadronicInteraction::ApplyYourself(), G4HadronicProcess::aScaleFactor, G4HadronicProcess::CheckEnergyMomentumConservation(), G4HadronicProcess::CheckResult(), G4HadronicProcess::ChooseHadronicInteraction(), G4VParticleChange::Clear(), G4VProcess::ClearNumberOfInteractionLengthLeft(), G4CrossSectionDataStore::ComputeCrossSection(), G4AntiKaonZero::Definition(), G4KaonZero::Definition(), G4KaonZeroLong::Definition(), G4KaonZeroShort::Definition(), G4HadronicProcess::DumpState(), G4HadronicProcess::epReportLevel, fAlive, FatalException, G4HadronicProcess::FillResult(), fKillTrackAndSecondaries, fPostponeToNextEvent, fStopAndKill, fSuspend, G4HadronicProcess::fWeight, G4endl, G4Exception(), G4Hadronic_Random_File, G4UniformRand, G4Nucleus::GetA_asInt(), G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4Track::GetMaterial(), G4HadronicInteraction::GetModelName(), G4Element::GetName(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4DynamicParticle::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4HadFinalState::GetSecondary(), G4Track::GetTrackStatus(), G4HadProjectile::GetTrafoToLab(), G4Track::GetWeight(), G4Nucleus::GetZ_asInt(), G4HadProjectile::Initialise(), G4ParticleChange::Initialize(), JustWarning, G4HadronicProcess::nKaonWarn, G4VParticleChange::ProposeWeight(), G4HadronicException::Report(), G4CrossSectionDataStore::SampleZandA(), CLHEP::HepRandom::saveEngineStatus(), G4DynamicParticle::SetDefinition(), G4HadFinalState::SetTrafoToLab(), G4HadronicProcess::targetNucleus, G4HadronicProcess::theCrossSectionDataStore, G4HadronicProcess::theInteraction, G4HadronicProcess::theLastCrossSection, G4HadronicProcess::thePro, and G4HadronicProcess::theTotalResult.

◆ PostStepGetPhysicalInteractionLength()

G4double G4HadronStoppingProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
virtual

Reimplemented from G4VDiscreteProcess.

Definition at line 124 of file G4HadronStoppingProcess.cc.

126{
128 return DBL_MAX;
129}

References condition(), DBL_MAX, and NotForced.

◆ PostStepGPIL()

G4double G4VProcess::PostStepGPIL ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
inlineinherited

Definition at line 479 of file G4VProcess.hh.

482{
483 return thePILfactor *
484 PostStepGetPhysicalInteractionLength(track, previousStepSize, condition);
485}
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0

References condition(), G4VProcess::PostStepGetPhysicalInteractionLength(), and G4VProcess::thePILfactor.

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ PreparePhysicsTable()

void G4HadronStoppingProcess::PreparePhysicsTable ( const G4ParticleDefinition p)
virtual

◆ PrepareWorkerPhysicsTable()

void G4VProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 206 of file G4VProcess.cc.

207{
209}
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:194

References G4VProcess::PreparePhysicsTable().

Referenced by G4BiasingProcessInterface::PrepareWorkerPhysicsTable().

◆ ProcessDescription()

void G4HadronStoppingProcess::ProcessDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4HadronicProcess.

Reimplemented in G4HadronicAbsorptionBertini, G4HadronicAbsorptionFritiof, G4HadronicAbsorptionFritiofWithBinaryCascade, and G4MuonMinusCapture.

Definition at line 300 of file G4HadronStoppingProcess.cc.

301{
302 outFile << "Base process for negatively charged particle capture at rest.\n";
303}

◆ RegisterMe()

void G4HadronicProcess::RegisterMe ( G4HadronicInteraction a)
inherited

Definition at line 141 of file G4HadronicProcess.cc.

142{
143 if(!a) { return; }
146}
void RegisterMe(G4HadronicInteraction *a)
void RegisterInteraction(G4HadronicProcess *, G4HadronicInteraction *)

References G4HadronicProcessStore::Instance(), G4HadronicProcessStore::RegisterInteraction(), G4EnergyRangeManager::RegisterMe(), and G4HadronicProcess::theEnergyRangeManager.

Referenced by G4IonQMDPhysics::AddProcess(), G4IonINCLXXPhysics::AddProcess(), G4IonPhysics::AddProcess(), G4IonPhysicsXS::AddProcess(), G4IonPhysicsPHP::AddProcess(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniNeutronBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BertiniProtonBuilder::Build(), G4BinaryAlphaBuilder::Build(), G4BinaryDeuteronBuilder::Build(), G4BinaryHe3Builder::Build(), G4BinaryNeutronBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4BinaryProtonBuilder::Build(), G4BinaryTritonBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryKaonBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPiKBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPKaonBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryKaonBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPKaonBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4EmExtraPhysics::ConstructProcess(), G4HadronElasticPhysicsHP::ConstructProcess(), G4HadronElasticPhysicsLEND::ConstructProcess(), G4HadronElasticPhysicsPHP::ConstructProcess(), G4ChargeExchangePhysics::ConstructProcess(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4ThermalNeutrons::ConstructProcess(), G4HadronInelasticQBBC::ConstructProcess(), G4HadronPhysicsFTFQGSP_BERT::ConstructProcess(), G4HadronicAbsorptionBertini::G4HadronicAbsorptionBertini(), G4HadronicAbsorptionFritiof::G4HadronicAbsorptionFritiof(), G4HadronicAbsorptionFritiofWithBinaryCascade::G4HadronicAbsorptionFritiofWithBinaryCascade(), G4MuonMinusCapture::G4MuonMinusCapture(), G4HadronPhysicsFTFP_BERT::Neutron(), G4HadronPhysicsQGSP_BERT::Neutron(), G4HadronPhysicsQGSP_BIC::Neutron(), G4HadronPhysicsFTF_BIC::Neutron(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGS_BIC::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), and G4HadronPhysicsShielding::Neutron().

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

◆ RetrievePhysicsTable()

virtual G4bool G4VProcess::RetrievePhysicsTable ( const G4ParticleDefinition ,
const G4String ,
G4bool   
)
inlinevirtualinherited

◆ SetBoundDecay()

void G4HadronStoppingProcess::SetBoundDecay ( G4HadronicInteraction ptr)
inline

Definition at line 137 of file G4HadronStoppingProcess.hh.

138{
139 fBoundDecay = ptr;
140}

References fBoundDecay.

Referenced by G4MuonMinusCapture::G4MuonMinusCapture().

◆ SetElementSelector()

void G4HadronStoppingProcess::SetElementSelector ( G4ElementSelector ptr)
inline

Definition at line 122 of file G4HadronStoppingProcess.hh.

123{
124 if(fElementSelector != ptr) {
125 delete fElementSelector;
126 fElementSelector = ptr;
127 }
128}

References fElementSelector.

◆ SetEmCascade()

void G4HadronStoppingProcess::SetEmCascade ( G4HadronicInteraction ptr)
inline

Definition at line 131 of file G4HadronStoppingProcess.hh.

132{
133 fEmCascade = ptr;
134}

References fEmCascade.

◆ SetEnergyMomentumCheckLevels()

void G4HadronicProcess::SetEnergyMomentumCheckLevels ( G4double  relativeLevel,
G4double  absoluteLevel 
)
inlineinherited

Definition at line 167 of file G4HadronicProcess.hh.

168 { epCheckLevels.first = relativeLevel;
169 epCheckLevels.second = absoluteLevel;
170 levelsSetByProcess = true;
171 }

References G4HadronicProcess::epCheckLevels, and G4HadronicProcess::levelsSetByProcess.

Referenced by G4HadronicProcessStore::SetProcessAbsLevel(), and G4HadronicProcessStore::SetProcessRelLevel().

◆ SetEpReportLevel()

void G4HadronicProcess::SetEpReportLevel ( G4int  level)
inlineinherited

Definition at line 164 of file G4HadronicProcess.hh.

165 { epReportLevel = level; }

References G4HadronicProcess::epReportLevel.

◆ SetIntegral()

void G4HadronicProcess::SetIntegral ( G4bool  val)
inlineinherited

Definition at line 160 of file G4HadronicProcess.hh.

161 { useIntegralXS = val; }

References G4HadronicProcess::useIntegralXS.

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

450{
451 if (value>0.) { thePILfactor = value; }
452}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

Referenced by G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4AnnihiToMuPair::G4AnnihiToMuPair(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ComptonScattering::G4ComptonScattering(), G4CoulombScattering::G4CoulombScattering(), G4CoupledTransportation::G4CoupledTransportation(), G4Decay::G4Decay(), G4DecayWithSpin::G4DecayWithSpin(), G4DNAAttachment::G4DNAAttachment(), G4DNABrownianTransportation::G4DNABrownianTransportation(), G4DNAChargeDecrease::G4DNAChargeDecrease(), G4DNAChargeIncrease::G4DNAChargeIncrease(), G4DNAElastic::G4DNAElastic(), G4DNAElectronSolvation::G4DNAElectronSolvation(), G4DNAExcitation::G4DNAExcitation(), G4DNAIonisation::G4DNAIonisation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4DNAVibExcitation::G4DNAVibExcitation(), G4eBremsstrahlung::G4eBremsstrahlung(), G4eeToHadrons::G4eeToHadrons(), G4eIonisation::G4eIonisation(), G4ePairProduction::G4ePairProduction(), G4eplusAnnihilation::G4eplusAnnihilation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GammaConversion::G4GammaConversion(), G4GammaConversionToMuons::G4GammaConversionToMuons(), G4GammaGeneralProcess::G4GammaGeneralProcess(), G4HadronicProcess::G4HadronicProcess(), G4hhIonisation::G4hhIonisation(), G4hIonisation::G4hIonisation(), G4ionIonisation::G4ionIonisation(), G4ITTransportation::G4ITTransportation(), G4JAEAElasticScattering::G4JAEAElasticScattering(), G4MicroElecElastic::G4MicroElecElastic(), G4MicroElecInelastic::G4MicroElecInelastic(), G4MicroElecLOPhononScattering::G4MicroElecLOPhononScattering(), G4MicroElecSurface::G4MicroElecSurface(), G4mplIonisation::G4mplIonisation(), G4MuBremsstrahlung::G4MuBremsstrahlung(), G4MuIonisation::G4MuIonisation(), G4MuonMinusAtomicCapture::G4MuonMinusAtomicCapture(), G4MuPairProduction::G4MuPairProduction(), G4NeutronKiller::G4NeutronKiller(), G4NuclearStopping::G4NuclearStopping(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4PhotoElectricEffect::G4PhotoElectricEffect(), G4PionDecayMakeSpin::G4PionDecayMakeSpin(), G4PolarizedCompton::G4PolarizedCompton(), G4PolarizedGammaConversion::G4PolarizedGammaConversion(), G4PolarizedIonisation::G4PolarizedIonisation(), G4PolarizedPhotoElectric::G4PolarizedPhotoElectric(), G4RadioactiveDecay::G4RadioactiveDecay(), G4RayleighScattering::G4RayleighScattering(), G4Scintillation::G4Scintillation(), G4StepLimiter::G4StepLimiter(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(), G4TransitionRadiation::G4TransitionRadiation(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UnknownDecay::G4UnknownDecay(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VMultipleScattering::G4VMultipleScattering(), G4VTransitionRadiation::G4VTransitionRadiation(), G4VXTRenergyLoss::G4VXTRenergyLoss(), and G4Decay::SetExtDecayer().

◆ SetProcessType()

void G4VProcess::SetProcessType ( G4ProcessType  aType)
inlineinherited

Definition at line 394 of file G4VProcess.hh.

395{
396 theProcessType = aType;
397}

References G4VProcess::theProcessType.

Referenced by G4MaxTimeCuts::G4MaxTimeCuts(), and G4MinEkineCuts::G4MinEkineCuts().

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ StartTracking()

void G4VProcess::StartTracking ( G4Track )
virtualinherited

Reimplemented in G4ParallelGeometriesLimiterProcess, G4ImportanceProcess, G4WeightCutOffProcess, G4WeightWindowProcess, G4VITProcess, G4DNASecondOrderReaction, G4WrapperProcess, G4FastSimulationManagerProcess, G4ParallelWorldProcess, G4ParallelWorldScoringProcess, G4ScoreSplittingProcess, G4GammaGeneralProcess, G4Decay, G4AdjointProcessEquivalentToDirectProcess, G4eAdjointMultipleScattering, G4DNAElectronHoleRecombination, G4DNAScavengerProcess, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4ITTransportation, G4DNABrownianTransportation, G4CoupledTransportation, G4Transportation, G4BiasingProcessInterface, and G4VPhononProcess.

Definition at line 87 of file G4VProcess.cc.

88{
92#ifdef G4VERBOSE
93 if (verboseLevel>2)
94 {
95 G4cout << "G4VProcess::StartTracking() - [" << theProcessName << "]"
96 << G4endl;
97 }
98#endif
99}

References G4VProcess::currentInteractionLength, G4cout, G4endl, G4VProcess::theInitialNumberOfInteractionLength, G4VProcess::theNumberOfInteractionLengthLeft, G4VProcess::theProcessName, and G4VProcess::verboseLevel.

Referenced by G4DNASecondOrderReaction::StartTracking(), G4WrapperProcess::StartTracking(), G4AdjointProcessEquivalentToDirectProcess::StartTracking(), G4DNAElectronHoleRecombination::StartTracking(), G4DNAScavengerProcess::StartTracking(), G4ITTransportation::StartTracking(), G4Transportation::StartTracking(), G4BiasingProcessInterface::StartTracking(), and G4VPhononProcess::StartTracking().

◆ StorePhysicsTable()

virtual G4bool G4VProcess::StorePhysicsTable ( const G4ParticleDefinition ,
const G4String ,
G4bool   
)
inlinevirtualinherited

◆ SubtractNumberOfInteractionLengthLeft()

void G4VProcess::SubtractNumberOfInteractionLengthLeft ( G4double  prevStepSize)
inlineprotectedinherited

Definition at line 524 of file G4VProcess.hh.

525{
527 {
530 {
532 }
533 }
534 else
535 {
536#ifdef G4VERBOSE
537 if (verboseLevel>0)
538 {
539 G4cerr << "G4VProcess::SubtractNumberOfInteractionLengthLeft()";
540 G4cerr << " [" << theProcessName << "]" <<G4endl;
541 G4cerr << " currentInteractionLength = "
542 << currentInteractionLength << " [mm]";
543 G4cerr << " previousStepSize = " << prevStepSize << " [mm]";
544 G4cerr << G4endl;
545 }
546#endif
547 G4String msg = "Negative currentInteractionLength for ";
548 msg += theProcessName;
549 G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft()",
550 "ProcMan201", EventMustBeAborted, msg);
551 }
552}
static constexpr double perMillion

References G4VProcess::currentInteractionLength, EventMustBeAborted, G4cerr, G4endl, G4Exception(), CLHEP::perMillion, G4VProcess::theNumberOfInteractionLengthLeft, G4VProcess::theProcessName, and G4VProcess::verboseLevel.

Referenced by G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), and G4Decay::PostStepGetPhysicalInteractionLength().

◆ XBiasSecondaryWeight()

G4double G4HadronicProcess::XBiasSecondaryWeight ( )
privateinherited

Definition at line 372 of file G4HadronicProcess.cc.

373{
375 G4double result =
376 1./aScaleFactor*G4Exp(-nLTraversed/aScaleFactor*(1-1./aScaleFactor));
377 return result;
378}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double GetTotalNumberOfInteractionLengthTraversed() const
Definition: G4VProcess.hh:437

References G4HadronicProcess::aScaleFactor, G4Exp(), and G4VProcess::GetTotalNumberOfInteractionLengthTraversed().

◆ XBiasSurvivalProbability()

G4double G4HadronicProcess::XBiasSurvivalProbability ( )
privateinherited

Definition at line 363 of file G4HadronicProcess.cc.

364{
366 G4double biasedProbability = 1.-G4Exp(-nLTraversed);
367 G4double realProbability = 1-G4Exp(-nLTraversed/aScaleFactor);
368 G4double result = (biasedProbability-realProbability)/biasedProbability;
369 return result;
370}

References G4HadronicProcess::aScaleFactor, G4Exp(), and G4VProcess::GetTotalNumberOfInteractionLengthTraversed().

Field Documentation

◆ aParticleChange

G4ParticleChange G4VProcess::aParticleChange
protectedinherited

◆ aProcessManager

const G4ProcessManager* G4VProcess::aProcessManager = nullptr
protectedinherited

Definition at line 319 of file G4VProcess.hh.

Referenced by G4VProcess::GetProcessManager(), and G4VProcess::SetProcessManager().

◆ aScaleFactor

G4double G4HadronicProcess::aScaleFactor
privateinherited

◆ currentInteractionLength

G4double G4VProcess::currentInteractionLength = -1.0
protectedinherited

◆ dioID

G4int G4HadronStoppingProcess::dioID
private

Definition at line 114 of file G4HadronStoppingProcess.hh.

Referenced by AtRestDoIt(), and PreparePhysicsTable().

◆ emcID

G4int G4HadronStoppingProcess::emcID
private

Definition at line 112 of file G4HadronStoppingProcess.hh.

Referenced by AtRestDoIt(), and PreparePhysicsTable().

◆ enableAlongStepDoIt

G4bool G4VProcess::enableAlongStepDoIt = true
protectedinherited

◆ enableAtRestDoIt

G4bool G4VProcess::enableAtRestDoIt = true
protectedinherited

◆ enablePostStepDoIt

G4bool G4VProcess::enablePostStepDoIt = true
protectedinherited

◆ epCheckLevels

std::pair<G4double, G4double> G4HadronicProcess::epCheckLevels
privateinherited

◆ epReportLevel

G4int G4HadronicProcess::epReportLevel
protectedinherited

◆ fBoundDecay

G4HadronicInteraction* G4HadronStoppingProcess::fBoundDecay
private

Definition at line 110 of file G4HadronStoppingProcess.hh.

Referenced by AtRestDoIt(), and SetBoundDecay().

◆ fElementSelector

G4ElementSelector* G4HadronStoppingProcess::fElementSelector
private

◆ fEmCascade

G4HadronicInteraction* G4HadronStoppingProcess::fEmCascade
private

Definition at line 109 of file G4HadronStoppingProcess.hh.

Referenced by AtRestDoIt(), and SetEmCascade().

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

Referenced by G4VProcess::G4VProcess(), and G4VProcess::~G4VProcess().

◆ fWeight

G4double G4HadronicProcess::fWeight
protectedinherited

◆ G4HadronicProcess_debug_flag

bool G4HadronicProcess::G4HadronicProcess_debug_flag
privateinherited

◆ levelsSetByProcess

G4bool G4HadronicProcess::levelsSetByProcess
privateinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

Referenced by G4VProcess::GetMasterProcess(), and G4VProcess::SetMasterProcess().

◆ ncID

G4int G4HadronStoppingProcess::ncID
private

Definition at line 113 of file G4HadronStoppingProcess.hh.

Referenced by AtRestDoIt(), and PreparePhysicsTable().

◆ nICelectrons

G4int G4HadronicProcess::nICelectrons
privateinherited

◆ nKaonWarn

G4int G4HadronicProcess::nKaonWarn
privateinherited

◆ nMatWarn

G4int G4HadronicProcess::nMatWarn
privateinherited

◆ pParticleChange

G4VParticleChange* G4VProcess::pParticleChange = nullptr
protectedinherited

Definition at line 321 of file G4VProcess.hh.

Referenced by G4VMultipleScattering::AddEmModel(), G4VEmProcess::AddEmModel(), G4VEnergyLossProcess::AddEmModel(), G4ImportanceProcess::AlongStepDoIt(), G4WeightCutOffProcess::AlongStepDoIt(), G4WeightWindowProcess::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepDoIt(), G4VContinuousProcess::AlongStepDoIt(), G4VRestContinuousDiscreteProcess::AlongStepDoIt(), G4VRestContinuousProcess::AlongStepDoIt(), G4ParallelWorldProcess::AlongStepDoIt(), G4ParallelWorldScoringProcess::AlongStepDoIt(), G4VITRestProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestDoIt(), G4VRestContinuousProcess::AtRestDoIt(), G4VRestDiscreteProcess::AtRestDoIt(), G4VRestProcess::AtRestDoIt(), G4ParallelWorldProcess::AtRestDoIt(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4ScoreSplittingProcess::AtRestDoIt(), G4VITRestDiscreteProcess::AtRestDoIt(), G4eplusAnnihilation::AtRestDoIt(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VEnergyLossProcess::FillSecondariesAlongStep(), G4Decay::G4Decay(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4ITTransportation::G4ITTransportation(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4RadioactiveDecay::G4RadioactiveDecay(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4Transportation::G4Transportation(), G4UnknownDecay::G4UnknownDecay(), G4VEmProcess::G4VEmProcess(), G4VEnergyLossProcess::G4VEnergyLossProcess(), G4VMultipleScattering::G4VMultipleScattering(), G4VProcess::G4VProcess(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VITDiscreteProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepDoIt(), G4VDiscreteProcess::PostStepDoIt(), G4VRestContinuousDiscreteProcess::PostStepDoIt(), G4VRestDiscreteProcess::PostStepDoIt(), G4ParallelWorldProcess::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4NeutronKiller::PostStepDoIt(), G4VITRestDiscreteProcess::PostStepDoIt(), G4LowECapture::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), and G4VTransitionRadiation::PostStepDoIt().

◆ targetNucleus

G4Nucleus G4HadronicProcess::targetNucleus
privateinherited

◆ theBias

std::vector<G4VLeadingParticleBiasing*> G4HadronicProcess::theBias
privateinherited

Definition at line 248 of file G4HadronicProcess.hh.

◆ theCrossSectionDataStore

G4CrossSectionDataStore* G4HadronicProcess::theCrossSectionDataStore
privateinherited

◆ theEnergyRangeManager

G4EnergyRangeManager G4HadronicProcess::theEnergyRangeManager
privateinherited

◆ theInitialNumberOfInteractionLength

G4double G4HadronicProcess::theInitialNumberOfInteractionLength
privateinherited

Definition at line 250 of file G4HadronicProcess.hh.

Referenced by G4HadronicProcess::InitialiseLocal().

◆ theInteraction

G4HadronicInteraction* G4HadronicProcess::theInteraction
privateinherited

◆ theLastCrossSection

G4double G4HadronicProcess::theLastCrossSection
privateinherited

◆ theNumberOfInteractionLengthLeft

G4double G4VProcess::theNumberOfInteractionLengthLeft = -1.0
protectedinherited

Definition at line 331 of file G4VProcess.hh.

Referenced by G4AdjointForcedInteractionForGamma::AlongStepDoIt(), G4MuonicAtomDecay::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4Decay::AtRestGetPhysicalInteractionLength(), G4VProcess::ClearNumberOfInteractionLengthLeft(), G4MuonicAtomDecay::DecayIt(), G4VProcess::EndTracking(), G4VProcess::GetNumberOfInteractionLengthLeft(), G4VProcess::GetTotalNumberOfInteractionLengthTraversed(), G4GammaGeneralProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4GammaGeneralProcess::PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4AdjointForcedInteractionForGamma::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::StartTracking(), G4GammaGeneralProcess::StartTracking(), G4VEmProcess::StartTracking(), G4VEnergyLossProcess::StartTracking(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ thePhysicsTableFileName

G4String G4VProcess::thePhysicsTableFileName
protectedinherited

Definition at line 344 of file G4VProcess.hh.

Referenced by G4VProcess::GetPhysicsTableFileName().

◆ thePILfactor

G4double G4VProcess::thePILfactor = 1.0
protectedinherited

◆ thePro

G4HadProjectile G4HadronicProcess::thePro
protectedinherited

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessStore

G4HadronicProcessStore* G4HadronicProcess::theProcessStore
privateinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ theTotalResult

G4ParticleChange* G4HadronicProcess::theTotalResult
protectedinherited

◆ useIntegralXS

bool G4HadronicProcess::useIntegralXS
privateinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4LowECapture::AddRegion(), G4CoupledTransportation::AlongStepDoIt(), G4Transportation::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), G4Transportation::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4hImpactIonisation::AntiProtonParametrisedDEDX(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VXTRenergyLoss::BuildAngleTable(), G4VEnergyLossProcess::BuildDEDXTable(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::BuildGlobalAngleTable(), G4VEmProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLossTable(), G4DNABrownianTransportation::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4LowECapture::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4SynchrotronRadiation::BuildPhysicsTable(), G4VXTRenergyLoss::BuildPhysicsTable(), G4hImpactIonisation::BuildPhysicsTable(), G4ChargeExchangeProcess::BuildPhysicsTable(), G4OpRayleigh::CalculateRayleighMeanFreePaths(), G4PolarizedAnnihilation::ComputeSaturationFactor(), G4PolarizedCompton::ComputeSaturationFactor(), G4PolarizedIonisation::ComputeSaturationFactor(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VPhononProcess::CreateSecondary(), G4VProcess::EndTracking(), G4VEmProcess::FindLambdaMax(), G4Cerenkov::G4Cerenkov(), G4ChargeExchangeProcess::G4ChargeExchangeProcess(), G4CoupledTransportation::G4CoupledTransportation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GaussXTRadiator::G4GaussXTRadiator(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4PolarizedIonisation::G4PolarizedIonisation(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4TransparentRegXTRadiator::G4TransparentRegXTRadiator(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VXTRenergyLoss::GetAngleVector(), G4ChargeExchangeProcess::GetElementCrossSection(), G4VXTRenergyLoss::GetGasZmuProduct(), G4PhononDownconversion::GetMeanFreePath(), G4PhononScattering::GetMeanFreePath(), G4PolarizedCompton::GetMeanFreePath(), G4VXTRenergyLoss::GetMeanFreePath(), G4UCNAbsorption::GetMeanFreePath(), G4PolarizedAnnihilation::GetMeanFreePath(), G4PolarizedIonisation::GetMeanFreePath(), G4SynchrotronRadiation::GetMeanFreePath(), G4VXTRenergyLoss::GetNumberOfPhotons(), G4VXTRenergyLoss::GetPlateZmuProduct(), G4SynchrotronRadiation::GetRandomEnergySR(), G4VProcess::GetVerboseLevel(), G4hhIonisation::InitialiseEnergyLossProcess(), G4eeToHadrons::InitialiseProcess(), G4hImpactIonisation::InitializeMe(), G4UCNBoundaryProcess::MRreflect(), G4UCNBoundaryProcess::MRreflectHigh(), G4DNASecondOrderReaction::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4DNAScavengerProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4UCNAbsorption::PostStepDoIt(), G4UCNBoundaryProcess::PostStepDoIt(), G4UCNLoss::PostStepDoIt(), G4UCNMultiScattering::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), G4Scintillation::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4OpAbsorption::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4OpMieHG::PostStepDoIt(), G4OpRayleigh::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4CoupledTransportation::PostStepDoIt(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNAScavengerProcess::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4GammaGeneralProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4hImpactIonisation::ProtonParametrisedDEDX(), G4UCNBoundaryProcess::Reflect(), G4CoupledTransportation::ReportInexactEnergy(), G4CoupledTransportation::ReportMissingLogger(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4CoupledTransportation::SetHighLooperThresholds(), G4Transportation::SetHighLooperThresholds(), G4VEnergyLossProcess::SetInverseRangeTable(), G4LowECapture::SetKinEnergyLimit(), G4NeutronKiller::SetKinEnergyLimit(), G4VEnergyLossProcess::SetLambdaTable(), G4CoupledTransportation::SetLowLooperThresholds(), G4Transportation::SetLowLooperThresholds(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4NeutronKiller::SetTimeLimit(), G4VProcess::SetVerboseLevel(), G4Cerenkov::SetVerboseLevel(), G4Scintillation::SetVerboseLevel(), G4OpAbsorption::SetVerboseLevel(), G4OpBoundaryProcess::SetVerboseLevel(), G4OpMieHG::SetVerboseLevel(), G4OpRayleigh::SetVerboseLevel(), G4OpWLS::SetVerboseLevel(), G4OpWLS2::SetVerboseLevel(), G4FastSimulationManagerProcess::SetWorldVolume(), G4GaussXTRadiator::SpectralXTRdEdx(), G4RegularXTRadiator::SpectralXTRdEdx(), G4TransparentRegXTRadiator::SpectralXTRdEdx(), G4XTRRegularRadModel::SpectralXTRdEdx(), G4VProcess::StartTracking(), G4CoupledTransportation::StartTracking(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StoreTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4VITProcess::SubtractNumberOfInteractionLengthLeft(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().


The documentation for this class was generated from the following files: