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

#include <G4ElNeutrinoNucleusProcess.hh>

Inheritance diagram for G4ElNeutrinoNucleusProcess:
G4HadronicProcess G4VDiscreteProcess G4VProcess

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 &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
void BiasCrossSectionByFactor (G4double aScale)
 
void BuildPhysicsTable (const G4ParticleDefinition &) override
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
G4double CrossSectionFactor () const
 
virtual void DumpInfo () const
 
void DumpPhysicsTable (const G4ParticleDefinition &p)
 
virtual void EndTracking ()
 
 G4ElNeutrinoNucleusProcess (G4String anEnvelopeName, const G4String &procName="mu-neutrino-nucleus")
 
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)
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
void ProcessDescription (std::ostream &outFile) const override
 
void RegisterMe (G4HadronicInteraction *a)
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
void SetBiasingFactor (G4double bf)
 
void SetBiasingFactors (G4double bfCc, G4double bfNc)
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
void SetEpReportLevel (G4int level)
 
void SetIntegral (G4bool val)
 
virtual void SetLowestEnergy (G4double)
 
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 ~G4ElNeutrinoNucleusProcess ()
 

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 ()
 
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

 G4ElNeutrinoNucleusProcess (const G4ElNeutrinoNucleusProcess &)
 
void GetEnergyMomentumCheckEnvvars ()
 
void InitialiseLocal ()
 
G4ElNeutrinoNucleusProcessoperator= (const G4ElNeutrinoNucleusProcess &right)
 
G4double XBiasSecondaryWeight ()
 
G4double XBiasSurvivalProbability ()
 

Private Attributes

G4double aScaleFactor
 
std::pair< G4double, G4doubleepCheckLevels
 
G4bool fBiased
 
G4LogicalVolumefEnvelope
 
G4String fEnvelopeName
 
G4double fNuNuclCcBias
 
G4double fNuNuclNcBias
 
G4double fNuNuclTotXscBias
 
G4ProcessTablefProcessTable = nullptr
 
G4ElNeutrinoNucleusTotXscfTotXsc
 
bool G4HadronicProcess_debug_flag
 
G4bool isInitialised
 
G4bool levelsSetByProcess
 
G4double lowestEnergy
 
G4VProcessmasterProcessShadow = nullptr
 
G4int nICelectrons
 
G4int nKaonWarn
 
G4int nMatWarn
 
G4SafetyHelpersafetyHelper
 
G4Nucleus targetNucleus
 
std::vector< G4VLeadingParticleBiasing * > theBias
 
G4CrossSectionDataStoretheCrossSectionDataStore
 
G4EnergyRangeManager theEnergyRangeManager
 
G4double theInitialNumberOfInteractionLength
 
G4HadronicInteractiontheInteraction
 
G4double theLastCrossSection
 
G4HadronicProcessStoretheProcessStore
 
bool useIntegralXS
 

Detailed Description

Definition at line 52 of file G4ElNeutrinoNucleusProcess.hh.

Constructor & Destructor Documentation

◆ G4ElNeutrinoNucleusProcess() [1/2]

G4ElNeutrinoNucleusProcess::G4ElNeutrinoNucleusProcess ( G4String  anEnvelopeName,
const G4String procName = "mu-neutrino-nucleus" 
)

Definition at line 67 of file G4ElNeutrinoNucleusProcess.cc.

68 : G4HadronicProcess( pName, fHadronInelastic ), isInitialised(false), fBiased(true) // fHadronElastic???
69{
70 lowestEnergy = 1.*keV;
71 fEnvelope = nullptr;
72 fEnvelopeName = anEnvelopeName;
73 fTotXsc = nullptr; // new G4ElNeutrinoNucleusTotXsc();
79}
@ fHadronInelastic
static constexpr double keV
Definition: G4SIunits.hh:202
G4ElNeutrinoNucleusTotXsc * fTotXsc
G4HadronicProcess(const G4String &processName="Hadronic", G4ProcessType procType=fHadronic)
void InitialiseHelper()
static G4TransportationManager * GetTransportationManager()
G4SafetyHelper * GetSafetyHelper() const

References fEnvelope, fEnvelopeName, fNuNuclCcBias, fNuNuclNcBias, fNuNuclTotXscBias, fTotXsc, G4TransportationManager::GetSafetyHelper(), G4TransportationManager::GetTransportationManager(), G4SafetyHelper::InitialiseHelper(), keV, lowestEnergy, and safetyHelper.

◆ ~G4ElNeutrinoNucleusProcess()

G4ElNeutrinoNucleusProcess::~G4ElNeutrinoNucleusProcess ( )
virtual

Definition at line 81 of file G4ElNeutrinoNucleusProcess.cc.

82{
83 if( fTotXsc ) delete fTotXsc;
84}

References fTotXsc.

◆ G4ElNeutrinoNucleusProcess() [2/2]

G4ElNeutrinoNucleusProcess::G4ElNeutrinoNucleusProcess ( const G4ElNeutrinoNucleusProcess )
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()

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

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 85 of file G4VDiscreteProcess.hh.

88 { return 0; }

◆ AtRestGetPhysicalInteractionLength()

virtual G4double G4VDiscreteProcess::AtRestGetPhysicalInteractionLength ( const G4Track ,
G4ForceCondition  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 78 of file G4VDiscreteProcess.hh.

81 { return -1.0; }

◆ AtRestGPIL()

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

Definition at line 472 of file G4VProcess.hh.

474{
476}
G4double condition(const G4ErrorSymMatrix &m)
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
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

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

Referenced by G4HadronicProcess::MultiplyCrossSectionBy().

◆ BuildPhysicsTable()

void G4HadronicProcess::BuildPhysicsTable ( const G4ParticleDefinition p)
overridevirtualinherited

◆ 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
@ fStopAndKill
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
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
const G4String & GetModelName() const
G4HadronicInteraction * GetHadronicInteraction() const
G4ParticleChange * theTotalResult
std::pair< G4double, G4double > epCheckLevels
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4int GetA_asInt() const
Definition: G4Nucleus.hh:99
G4int GetZ_asInt() const
Definition: G4Nucleus.hh:105
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 G4HadronStoppingProcess::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
@ stopAndKill
G4double GetMass() const
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetEnergyChange() const
G4HadFinalStateStatus GetStatusChange() const
G4double GetLocalEnergyDeposit() const
std::size_t GetNumberOfSecondaries() const
G4HadSecondary * GetSecondary(size_t i)
G4DynamicParticle * GetParticle()
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 G4HadronStoppingProcess::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

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

Referenced by G4HadronStoppingProcess::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 & GetPosition() const
G4Material * GetMaterial() 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 G4HadronStoppingProcess::AtRestDoIt(), G4HadronicProcess::FillResult(), G4NeutrinoElectronProcess::GetMeanFreePath(), G4NeutrinoElectronProcess::PostStepDoIt(), G4HadronicProcess::PostStepDoIt(), 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
G4double GetWeight() const
G4double GetTime() const
G4int GetCreatorModelID() const
void DumpState(const G4Track &, const G4String &, G4ExceptionDescription &)
void AddSecondary(G4Track *aSecondary)
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
void SetWeight(G4double aValue)
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
const G4TouchableHandle & GetTouchableHandle() const
void SetCreatorModelID(const G4int id)
void ProposeTrackStatus(G4TrackStatus status)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)
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(), 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 G4ElNeutrinoNucleusProcess::GetMeanFreePath ( const G4Track aTrack,
G4double  ,
G4ForceCondition  
)
overridevirtual

Reimplemented from G4HadronicProcess.

Definition at line 109 of file G4ElNeutrinoNucleusProcess.cc.

111{
112 //G4cout << "GetMeanFreePath " << aTrack.GetDefinition()->GetParticleName()
113 // << " Ekin= " << aTrack.GetKineticEnergy() << G4endl;
115 G4double totxsc(0.);
116
117 if( rName == fEnvelopeName && fNuNuclTotXscBias > 1.)
118 {
119 totxsc = fNuNuclTotXscBias*
121 aTrack.GetMaterial());
122 }
123 else
124 {
126 aTrack.GetMaterial());
127 }
128 G4double res = (totxsc>0.0) ? 1.0/totxsc : DBL_MAX;
129 //G4cout << " xsection= " << totxsc << G4endl;
130 return res;
131}
G4double ComputeCrossSection(const G4DynamicParticle *, const G4Material *)
G4CrossSectionDataStore * GetCrossSectionDataStore()
G4Region * GetRegion() const
const G4String & GetName() const
G4VPhysicalVolume * GetPhysicalVolume() const
G4StepPoint * GetPreStepPoint() const
const G4Step * GetStep() const
G4LogicalVolume * GetLogicalVolume() const

References G4CrossSectionDataStore::ComputeCrossSection(), DBL_MAX, fEnvelopeName, fNuNuclTotXscBias, G4HadronicProcess::GetCrossSectionDataStore(), G4Track::GetDynamicParticle(), G4VPhysicalVolume::GetLogicalVolume(), G4Track::GetMaterial(), G4Region::GetName(), G4StepPoint::GetPhysicalVolume(), G4Step::GetPreStepPoint(), G4LogicalVolume::GetRegion(), and G4Track::GetStep().

◆ 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(), G4HadronStoppingProcess::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()

virtual G4bool G4VProcess::IsApplicable ( const G4ParticleDefinition )
inlinevirtualinherited

Reimplemented in G4DNAAttachment, G4DNAChargeDecrease, G4DNAChargeIncrease, G4DNADissociation, G4DNAElastic, G4DNAElectronSolvation, G4DNAExcitation, G4DNAIonisation, G4DNAPlasmonExcitation, G4DNAPositronium, G4DNARotExcitation, G4DNAVibExcitation, G4hImpactIonisation, G4RadioactiveDecay, G4HadronicAbsorptionBertini, G4HadronicAbsorptionFritiof, G4HadronicAbsorptionFritiofWithBinaryCascade, G4HadronStoppingProcess, G4MuonicAtomDecay, G4MuonMinusAtomicCapture, G4MuonMinusCapture, G4WrapperProcess, G4PhononDownconversion, G4NeutronKiller, G4ComptonScattering, G4GammaConversion, G4PhotoElectricEffect, G4GammaGeneralProcess, G4Decay, G4UnknownDecay, G4AdjointProcessEquivalentToDirectProcess, G4DNAElectronHoleRecombination, G4DNAMolecularDissociation, G4AnnihiToMuPair, G4GammaConversionToMuons, G4JAEAElasticScattering, G4LowECapture, G4MicroElecElastic, G4MicroElecInelastic, G4MicroElecLOPhononScattering, G4RayleighScattering, G4PolarizedCompton, G4PolarizedGammaConversion, G4PolarizedPhotoElectric, G4SynchrotronRadiation, G4SynchrotronRadiationInMat, G4VXTRenergyLoss, G4HadronInelasticProcess, G4NoProcess, G4ChargeExchangeProcess, G4MuonNuclearProcess, G4UCNAbsorption, G4UCNBoundaryProcess, G4UCNLoss, G4UCNMultiScattering, G4NeutronCaptureProcess, G4MicroElecSurface, G4ErrorEnergyLoss, G4Cerenkov, G4Scintillation, G4TransitionRadiation, G4VTransitionRadiation, G4OpAbsorption, G4OpBoundaryProcess, G4OpMieHG, G4OpRayleigh, G4OpWLS, G4OpWLS2, G4Channeling, G4VPhononProcess, G4NeutronFissionProcess, G4CoulombScattering, G4eBremsstrahlung, G4eIonisation, G4eMultipleScattering, G4eplusAnnihilation, G4hMultipleScattering, G4ionIonisation, G4NuclearStopping, G4AdjointhMultipleScattering, G4eAdjointMultipleScattering, G4eeToHadrons, G4hBremsstrahlung, G4hhIonisation, G4hPairProduction, G4mplIonisation, G4ePairProduction, G4MuBremsstrahlung, G4MuIonisation, G4MuMultipleScattering, G4MuPairProduction, G4PolarizedIonisation, G4hIonisation, G4VEmProcess, and G4BiasingProcessInterface.

Definition at line 182 of file G4VProcess.hh.

182{ return true; }

Referenced by G4ProcessManager::AddProcess(), export_G4VProcess(), G4WrapperProcess::IsApplicable(), G4AdjointProcessEquivalentToDirectProcess::IsApplicable(), and G4BiasingProcessInterface::IsApplicable().

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

501{
502 return enableAtRestDoIt;
503}
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:359

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}
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:361

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=()

G4ElNeutrinoNucleusProcess & G4ElNeutrinoNucleusProcess::operator= ( const G4ElNeutrinoNucleusProcess 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 * G4ElNeutrinoNucleusProcess::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
overridevirtual

! is not needed for models inheriting G4ElNeutrinoNucleus

Reimplemented from G4HadronicProcess.

Definition at line 147 of file G4ElNeutrinoNucleusProcess.cc.

148{
149 // track.GetVolume()->GetLogicalVolume()->GetName()
150 // if( track.GetVolume()->GetLogicalVolume() != fEnvelope )
151
152 G4String rName = track.GetStep()->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetRegion()->GetName();
153
154 if( rName != fEnvelopeName )
155 {
156 if( verboseLevel > 0 )
157 {
158 G4cout<<"Go out from G4ElNeutrinoNucleusProcess::PostStepDoIt: wrong volume "<<G4endl;
159 }
160 return G4VDiscreteProcess::PostStepDoIt( track, step );
161 }
164 G4double weight = track.GetWeight();
166
167 if( track.GetTrackStatus() != fAlive )
168 {
169 return theTotalResult;
170 }
171 // Next check for illegal track status
172 //
173 if (track.GetTrackStatus() != fAlive &&
174 track.GetTrackStatus() != fSuspend)
175 {
176 if (track.GetTrackStatus() == fStopAndKill ||
177 track.GetTrackStatus() == fKillTrackAndSecondaries ||
178 track.GetTrackStatus() == fPostponeToNextEvent)
179 {
181 ed << "G4HadronicProcess: track in unusable state - "
182 << track.GetTrackStatus() << G4endl;
183 ed << "G4HadronicProcess: returning unchanged track " << G4endl;
184 DumpState(track,"PostStepDoIt",ed);
185 G4Exception("G4HadronicProcess::PostStepDoIt", "had004", JustWarning, ed);
186 }
187 // No warning for fStopButAlive which is a legal status here
188 return theTotalResult;
189 }
190
191 // For elastic scattering, _any_ result is considered an interaction
193
194 G4double kineticEnergy = track.GetKineticEnergy();
195 const G4DynamicParticle* dynParticle = track.GetDynamicParticle();
196 const G4ParticleDefinition* part = dynParticle->GetDefinition();
197 const G4String pName = part->GetParticleName();
198
199 // NOTE: Very low energy scatters were causing numerical (FPE) errors
200 // in earlier releases; these limits have not been changed since.
201
202 if ( kineticEnergy <= lowestEnergy ) return theTotalResult;
203
204 const G4Material* material = track.GetMaterial();
205 G4Nucleus* targNucleus = GetTargetNucleusPointer();
206
208
209 const G4StepPoint* pPostStepPoint = step.GetPostStepPoint();
210 const G4DynamicParticle* aParticle = track.GetDynamicParticle();
211 G4ThreeVector position = pPostStepPoint->GetPosition(), newPosition=position;
212 G4ParticleMomentum direction = aParticle->GetMomentumDirection();
213
214 if( fNuNuclCcBias > 1.0 || fNuNuclNcBias > 1.0) // = true, if fBiasingfactor != 1., i.e. xsc is biased
215 {
216 const G4RotationMatrix* rotM = pPostStepPoint->GetTouchable()->GetRotation();
217 G4ThreeVector transl = pPostStepPoint->GetTouchable()->GetTranslation();
219 transform.Invert();
220
221 G4ThreeVector localP = transform.TransformPoint(position);
222 G4ThreeVector localV = transform.TransformAxis(direction);
223
224 G4double forward = track.GetVolume()->GetLogicalVolume()->GetSolid()->DistanceToOut(localP, localV);
225 G4double backward = track.GetVolume()->GetLogicalVolume()->GetSolid()->DistanceToOut(localP, -localV);
226
227 G4double distance = forward+backward;
228
229 // G4cout<<distance/cm<<", ";
230
231 // uniform sampling of nu-e interaction point
232 // along neutrino direction in current volume
233
234 G4double range = -backward+G4UniformRand()*distance;
235
236 newPosition = position + range*direction;
237
239
240 theTotalResult->ProposePosition(newPosition); // G4Exception : GeomNav1002
241 }
242 G4HadProjectile theProj( track );
243 G4HadronicInteraction* hadi = nullptr;
244 G4HadFinalState* result = nullptr;
245
246 G4double ccTotRatio = fTotXsc->GetCcTotRatio();
247
248 if( G4UniformRand() < ccTotRatio ) // Cc-model
249 {
250 // Initialize the hadronic projectile from the track
251 thePro.Initialise(track);
252
253 if (pName == "nu_e" ) hadi = (GetHadronicInteractionList())[0];
254 else hadi = (GetHadronicInteractionList())[2];
255
256 result = hadi->ApplyYourself( thePro, *targNucleus);
257
259
261
262 FillResult(result, track);
263 }
264 else // Nc-model
265 {
266
267 if (pName == "nu_e" ) hadi = (GetHadronicInteractionList())[1];
268 else hadi = (GetHadronicInteractionList())[3];
269
270 size_t idx = track.GetMaterialCutsCouple()->GetIndex();
271
273
274 hadi->SetRecoilEnergyThreshold(tcut);
275
276 if( verboseLevel > 1 )
277 {
278 G4cout << "G4ElNeutrinoNucleusProcess::PostStepDoIt for "
279 << part->GetParticleName()
280 << " in " << material->GetName()
281 << " Target Z= " << targNucleus->GetZ_asInt()
282 << " A= " << targNucleus->GetA_asInt() << G4endl;
283 }
284 try
285 {
286 result = hadi->ApplyYourself( theProj, *targNucleus);
287 }
288 catch(G4HadronicException & aR)
289 {
291 aR.Report(ed);
292 ed << "Call for " << hadi->GetModelName() << G4endl;
293 ed << " Z= "
294 << targNucleus->GetZ_asInt()
295 << " A= " << targNucleus->GetA_asInt() << G4endl;
296 DumpState(track,"ApplyYourself",ed);
297 ed << " ApplyYourself failed" << G4endl;
298 G4Exception("G4ElNeutrinoNucleusProcess::PostStepDoIt", "had006",
299 FatalException, ed);
300 }
301 // directions
302
303 G4ThreeVector indir = track.GetMomentumDirection();
305 G4ThreeVector it(0., 0., 1.);
306 G4ThreeVector outdir = result->GetMomentumChange();
307
308 if(verboseLevel>1)
309 {
310 G4cout << "Efin= " << result->GetEnergyChange()
311 << " de= " << result->GetLocalEnergyDeposit()
312 << " nsec= " << result->GetNumberOfSecondaries()
313 << " dir= " << outdir
314 << G4endl;
315 }
316 // energies
317
318 G4double edep = result->GetLocalEnergyDeposit();
319 G4double efinal = result->GetEnergyChange();
320
321 if(efinal < 0.0) { efinal = 0.0; }
322 if(edep < 0.0) { edep = 0.0; }
323
324 // NOTE: Very low energy scatters were causing numerical (FPE) errors
325 // in earlier releases; these limits have not been changed since.
326
327 if(efinal <= lowestEnergy)
328 {
329 edep += efinal;
330 efinal = 0.0;
331 }
332 // primary change
333
335
336 G4TrackStatus status = track.GetTrackStatus();
337
338 if(efinal > 0.0)
339 {
340 outdir.rotate(phi, it);
341 outdir.rotateUz(indir);
343 }
344 else
345 {
346 if( part->GetProcessManager()->GetAtRestProcessVector()->size() > 0)
347 {
348 status = fStopButAlive;
349 }
350 else
351 {
352 status = fStopAndKill;
353 }
355 }
356 //G4cout << "Efinal= " << efinal << " TrackStatus= " << status << G4endl;
357
359
360 // recoil
361
362 if( result->GetNumberOfSecondaries() > 0 )
363 {
364 G4DynamicParticle* p = result->GetSecondary(0)->GetParticle();
365
366 if(p->GetKineticEnergy() > tcut)
367 {
370
371 // G4cout << "recoil " << pdir << G4endl;
373
374 pdir.rotate(phi, it);
375 pdir.rotateUz(indir);
376
377 // G4cout << "recoil rotated " << pdir << G4endl;
378
379 p->SetMomentumDirection(pdir);
380
381 // in elastic scattering time and weight are not changed
382
383 G4Track* t = new G4Track(p, track.GetGlobalTime(),
384 track.GetPosition());
385 t->SetWeight(weight);
386 t->SetTouchableHandle(track.GetTouchableHandle());
388 }
389 else
390 {
391 edep += p->GetKineticEnergy();
392 delete p;
393 }
394 }
397 result->Clear();
398 }
399 return theTotalResult;
400}
@ FatalException
G4TrackStatus
@ fKillTrackAndSecondaries
@ fSuspend
@ fPostponeToNextEvent
#define G4UniformRand()
Definition: Randomize.hh:52
Hep3Vector & rotate(double, const Hep3Vector &)
Definition: ThreeVectorR.cc:24
void SetTrafoToLab(const G4LorentzRotation &aT)
void Initialise(const G4Track &aT)
G4LorentzRotation & GetTrafoToLab()
void Report(std::ostream &aS) const
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
void SetRecoilEnergyThreshold(G4double val)
void FillResult(G4HadFinalState *aR, const G4Track &aT)
G4HadProjectile thePro
G4Nucleus * GetTargetNucleusPointer()
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList()
void ProposePosition(G4double x, G4double y, G4double z)
virtual void Initialize(const G4Track &)
const std::vector< G4double > * GetEnergyCutsVector(std::size_t pcIdx) const
static G4ProductionCutsTable * GetProductionCutsTable()
void ReLocateWithinVolume(const G4ThreeVector &pGlobalPoint)
const G4VTouchable * GetTouchable() const
const G4ThreeVector & GetPosition() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart)
void ProposeWeight(G4double finalWeight)
void ClearNumberOfInteractionLengthLeft()
Definition: G4VProcess.hh:424
virtual const G4ThreeVector & GetTranslation(G4int depth=0) const =0
virtual const G4RotationMatrix * GetRotation(G4int depth=0) const =0
static constexpr double twopi
Definition: SystemOfUnits.h:56
G4bool transform(G4String &input, const G4String &type)
string material
Definition: eplot.py:19
#define position
Definition: xmlparse.cc:622

References G4ParticleChange::AddSecondary(), G4HadronicInteraction::ApplyYourself(), G4HadFinalState::Clear(), G4VParticleChange::Clear(), G4VProcess::ClearNumberOfInteractionLengthLeft(), G4VSolid::DistanceToOut(), G4HadronicProcess::DumpState(), fAlive, FatalException, fEnvelopeName, G4HadronicProcess::FillResult(), fKillTrackAndSecondaries, fNuNuclCcBias, fNuNuclNcBias, fPostponeToNextEvent, fStopAndKill, fStopButAlive, fSuspend, fTotXsc, G4cout, G4endl, G4Exception(), G4UniformRand, G4Nucleus::GetA_asInt(), G4ProcessManager::GetAtRestProcessVector(), G4ElNeutrinoNucleusTotXsc::GetCcTotRatio(), G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4HadFinalState::GetEnergyChange(), G4ProductionCutsTable::GetEnergyCutsVector(), G4Track::GetGlobalTime(), G4HadronicProcess::GetHadronicInteractionList(), G4MaterialCutsCouple::GetIndex(), G4DynamicParticle::GetKineticEnergy(), G4Track::GetKineticEnergy(), G4HadFinalState::GetLocalEnergyDeposit(), G4VPhysicalVolume::GetLogicalVolume(), G4Track::GetMaterial(), G4Track::GetMaterialCutsCouple(), G4HadronicInteraction::GetModelName(), G4HadFinalState::GetMomentumChange(), G4DynamicParticle::GetMomentumDirection(), G4Track::GetMomentumDirection(), G4Region::GetName(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4ParticleDefinition::GetParticleName(), G4StepPoint::GetPhysicalVolume(), G4StepPoint::GetPosition(), G4Track::GetPosition(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4ParticleDefinition::GetProcessManager(), G4ProductionCutsTable::GetProductionCutsTable(), G4LogicalVolume::GetRegion(), G4VTouchable::GetRotation(), G4HadFinalState::GetSecondary(), G4LogicalVolume::GetSolid(), G4Track::GetStep(), G4HadronicProcess::GetTargetNucleusPointer(), G4StepPoint::GetTouchable(), G4Track::GetTouchableHandle(), G4Track::GetTrackStatus(), G4HadProjectile::GetTrafoToLab(), G4VTouchable::GetTranslation(), G4Track::GetVolume(), G4Track::GetWeight(), G4Nucleus::GetZ_asInt(), G4HadProjectile::Initialise(), G4ParticleChange::Initialize(), JustWarning, lowestEnergy, eplot::material, position, G4VDiscreteProcess::PostStepDoIt(), G4ParticleChange::ProposeEnergy(), G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChange::ProposeMomentumDirection(), G4VParticleChange::ProposeNonIonizingEnergyDeposit(), G4ParticleChange::ProposePosition(), G4VParticleChange::ProposeTrackStatus(), G4VParticleChange::ProposeWeight(), G4SafetyHelper::ReLocateWithinVolume(), G4HadronicException::Report(), CLHEP::Hep3Vector::rotate(), CLHEP::Hep3Vector::rotateUz(), safetyHelper, G4DynamicParticle::SetMomentumDirection(), G4VParticleChange::SetNumberOfSecondaries(), G4HadronicInteraction::SetRecoilEnergyThreshold(), G4Track::SetTouchableHandle(), G4HadFinalState::SetTrafoToLab(), G4Track::SetWeight(), G4ProcessVector::size(), G4HadronicProcess::thePro, G4HadronicProcess::theTotalResult, G4coutFormatters::anonymous_namespace{G4coutFormatters.cc}::transform(), CLHEP::twopi, and G4VProcess::verboseLevel.

◆ PostStepGetPhysicalInteractionLength()

G4double G4VDiscreteProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
virtualinherited

Implements G4VProcess.

Reimplemented in G4ErrorMagFieldLimitProcess, G4ErrorStepLengthLimitProcess, G4ErrorTrackLengthTarget, G4HadronStoppingProcess, G4NeutronKiller, G4GammaGeneralProcess, G4UnknownDecay, G4PolarizedAnnihilation, G4PolarizedCompton, G4VEmProcess, G4VErrorLimitProcess, and G4LowECapture.

Definition at line 70 of file G4VDiscreteProcess.cc.

74{
75 if ( (previousStepSize < 0.0) || (theNumberOfInteractionLengthLeft<=0.0))
76 {
77 // beginning of tracking (or just after DoIt() of this process)
79 }
80 else if ( previousStepSize > 0.0)
81 {
82 // subtract NumberOfInteractionLengthLeft
84 }
85 else
86 {
87 // zero step
88 // DO NOTHING
89 }
90
91 // condition is set to "Not Forced"
93
94 // get mean free path
95 currentInteractionLength = GetMeanFreePath(track, previousStepSize, condition);
96
97 G4double value;
99 {
101 }
102 else
103 {
104 value = DBL_MAX;
105 }
106#ifdef G4VERBOSE
107 if (verboseLevel>1)
108 {
109 G4cout << "G4VDiscreteProcess::PostStepGetPhysicalInteractionLength() - ";
110 G4cout << "[ " << GetProcessName() << "]" <<G4endl;
111 track.GetDynamicParticle()->DumpInfo();
112 G4cout << " in Material " << track.GetMaterial()->GetName() <<G4endl;
113 G4cout << "InteractionLength= " << value/cm <<"[cm] " <<G4endl;
114 }
115#endif
116 return value;
117}
@ NotForced
static constexpr double cm
Definition: G4SIunits.hh:99
void DumpInfo(G4int mode=0) const
virtual G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)=0
void SubtractNumberOfInteractionLengthLeft(G4double prevStepSize)
Definition: G4VProcess.hh:524
virtual void ResetNumberOfInteractionLengthLeft()
Definition: G4VProcess.cc:80

References cm, condition(), G4VProcess::currentInteractionLength, DBL_MAX, G4DynamicParticle::DumpInfo(), G4cout, G4endl, G4Track::GetDynamicParticle(), G4Track::GetMaterial(), G4VDiscreteProcess::GetMeanFreePath(), G4Material::GetName(), G4VProcess::GetProcessName(), NotForced, G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::SubtractNumberOfInteractionLengthLeft(), G4VProcess::theNumberOfInteractionLengthLeft, and G4VProcess::verboseLevel.

◆ 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 G4ElNeutrinoNucleusProcess::PreparePhysicsTable ( const G4ParticleDefinition part)
overridevirtual

Reimplemented from G4HadronicProcess.

Definition at line 403 of file G4ElNeutrinoNucleusProcess.cc.

404{
405 if(!isInitialised) {
406 isInitialised = true;
407 // if(G4Neutron::Neutron() == &part) { lowestEnergy = 1.e-6*eV; }
408 }
410}
void PreparePhysicsTable(const G4ParticleDefinition &) override

References isInitialised, and G4HadronicProcess::PreparePhysicsTable().

◆ 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 G4ElNeutrinoNucleusProcess::ProcessDescription ( std::ostream &  outFile) const
overridevirtual

Reimplemented from G4HadronicProcess.

Definition at line 135 of file G4ElNeutrinoNucleusProcess.cc.

136{
137
138 outFile << "G4ElNeutrinoNucleusProcess handles the scattering of \n"
139 << "neutrino on electrons by invoking the following model(s) and \n"
140 << "cross section(s).\n";
141
142}

◆ 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

◆ SetBiasingFactor()

void G4ElNeutrinoNucleusProcess::SetBiasingFactor ( G4double  bf)

◆ SetBiasingFactors()

void G4ElNeutrinoNucleusProcess::SetBiasingFactors ( G4double  bfCc,
G4double  bfNc 
)

Definition at line 98 of file G4ElNeutrinoNucleusProcess.cc.

99{
100 fNuNuclCcBias=bfCc;
101 fNuNuclNcBias=bfNc;
102
104 // fTotXsc->SetBiasingFactors(bfCc, bfNc);
105}

References fNuNuclCcBias, fNuNuclNcBias, and fTotXsc.

◆ 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.

◆ SetLowestEnergy()

void G4ElNeutrinoNucleusProcess::SetLowestEnergy ( G4double  val)
virtual

Definition at line 413 of file G4ElNeutrinoNucleusProcess.cc.

414{
415 lowestEnergy = val;
416}

References lowestEnergy.

◆ 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

◆ 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

◆ fBiased

G4bool G4ElNeutrinoNucleusProcess::fBiased
private

Definition at line 82 of file G4ElNeutrinoNucleusProcess.hh.

◆ fEnvelope

G4LogicalVolume* G4ElNeutrinoNucleusProcess::fEnvelope
private

Definition at line 83 of file G4ElNeutrinoNucleusProcess.hh.

Referenced by G4ElNeutrinoNucleusProcess().

◆ fEnvelopeName

G4String G4ElNeutrinoNucleusProcess::fEnvelopeName
private

◆ fNuNuclCcBias

G4double G4ElNeutrinoNucleusProcess::fNuNuclCcBias
private

◆ fNuNuclNcBias

G4double G4ElNeutrinoNucleusProcess::fNuNuclNcBias
private

◆ fNuNuclTotXscBias

G4double G4ElNeutrinoNucleusProcess::fNuNuclTotXscBias
private

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fTotXsc

G4ElNeutrinoNucleusTotXsc* G4ElNeutrinoNucleusProcess::fTotXsc
private

◆ fWeight

G4double G4HadronicProcess::fWeight
protectedinherited

◆ G4HadronicProcess_debug_flag

bool G4HadronicProcess::G4HadronicProcess_debug_flag
privateinherited

◆ isInitialised

G4bool G4ElNeutrinoNucleusProcess::isInitialised
private

Definition at line 82 of file G4ElNeutrinoNucleusProcess.hh.

Referenced by PreparePhysicsTable().

◆ levelsSetByProcess

G4bool G4HadronicProcess::levelsSetByProcess
privateinherited

◆ lowestEnergy

G4double G4ElNeutrinoNucleusProcess::lowestEnergy
private

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

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

◆ 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().

◆ safetyHelper

G4SafetyHelper* G4ElNeutrinoNucleusProcess::safetyHelper
private

Definition at line 87 of file G4ElNeutrinoNucleusProcess.hh.

Referenced by G4ElNeutrinoNucleusProcess(), and 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(), 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: