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

#include <G4BiasingProcessInterface.hh>

Inheritance diagram for G4BiasingProcessInterface:
G4VProcess

Public Member Functions

virtual G4VParticleChangeAlongStepDoIt (const G4Track &track, const G4Step &step)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
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)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &pd)
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &pd)
 
virtual void DumpInfo () const
 
void EndTracking ()
 
 G4BiasingProcessInterface (G4String name="biasWrapper(0)")
 
 G4BiasingProcessInterface (G4VProcess *wrappedProcess, G4bool wrappedIsAtRest, G4bool wrappedIsAlongStep, G4bool wrappedIsPostStep, G4String useThisName="")
 
G4double GetAlongStepGPIL () const
 
const std::vector< const G4BiasingProcessInterface * > & GetBiasingProcessInterfaces () const
 
G4VBiasingOperatorGetCurrentBiasingOperator () const
 
G4VBiasingOperationGetCurrentFinalStateBiasingOperation () const
 
G4double GetCurrentInteractionLength () const
 
G4double GetCurrentMinimumStep () const
 
G4VBiasingOperationGetCurrentNonPhysicsBiasingOperation () const
 
G4VBiasingOperationGetCurrentOccurenceBiasingOperation () const
 
G4bool GetIsFirstPostStepDoItInterface (G4bool physOnly=true) const
 
G4bool GetIsFirstPostStepGPILInterface (G4bool physOnly=true) const
 
G4bool GetIsLastPostStepDoItInterface (G4bool physOnly=true) const
 
G4bool GetIsLastPostStepGPILInterface (G4bool physOnly=true) const
 
const G4VProcessGetMasterProcess () const
 
const std::vector< const G4BiasingProcessInterface * > & GetNonPhysicsBiasingProcessInterfaces () const
 
G4double GetNumberOfInteractionLengthLeft () const
 
const std::vector< const G4BiasingProcessInterface * > & GetPhysicsBiasingProcessInterfaces () const
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
G4double GetPostStepGPIL () const
 
G4VBiasingOperatorGetPreviousBiasingOperator () const
 
G4VBiasingOperationGetPreviousFinalStateBiasingOperation () const
 
G4VBiasingOperationGetPreviousNonPhysicsBiasingOperation () const
 
G4VBiasingOperationGetPreviousOccurenceBiasingOperation () const
 
G4double GetPreviousStepSize () const
 
virtual const G4ProcessManagerGetProcessManager ()
 
const G4StringGetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
G4double GetProposedSafety () const
 
const G4BiasingProcessSharedDataGetSharedData () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4VProcessGetWrappedProcess () const
 
G4bool GetWrappedProcessIsAlong () const
 
G4bool GetWrappedProcessIsAtRest () const
 
G4bool GetWrappedProcessIsPost () const
 
G4bool isAlongStepDoItIsEnabled () const
 
virtual G4bool IsApplicable (const G4ParticleDefinition &pd)
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool IsFirstPostStepDoItInterface (G4bool physOnly=true) const
 
G4bool IsFirstPostStepGPILInterface (G4bool physOnly=true) const
 
G4bool IsLastPostStepDoItInterface (G4bool physOnly=true) const
 
G4bool IsLastPostStepGPILInterface (G4bool physOnly=true) const
 
G4bool isPostStepDoItIsEnabled () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4bool operator== (const G4VProcess &right) const
 
virtual G4VParticleChangePostStepDoIt (const G4Track &track, const G4Step &step)
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &pd)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &pd)
 
virtual void ProcessDescription (std::ostream &outfile) const
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *pd, const G4String &s, G4bool f)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetProposedSafety (G4double sft)
 
void SetVerboseLevel (G4int value)
 
void StartTracking (G4Track *track)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *pd, const G4String &s, G4bool f)
 
 ~G4BiasingProcessInterface ()
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 
static const G4BiasingProcessSharedDataGetSharedData (const G4ProcessManager *)
 

Protected Member Functions

void ClearNumberOfInteractionLengthLeft ()
 
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 

Protected Attributes

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

Private Member Functions

G4int IdxFirstLast (G4int firstLast, G4int GPILDoIt, G4int physAll) const
 
void InvokeWrappedProcessPostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void ReorderBiasingVectorAsGPIL ()
 
void ResetForUnbiasedTracking ()
 
void SetUpFirstLastFlags ()
 

Private Attributes

G4double fBiasingAlongStepGPIL
 
G4ForceCondition fBiasingForceCondition
 
G4GPILSelection fBiasingGPILSelection
 
const G4VBiasingInteractionLawfBiasingInteractionLaw
 
G4double fBiasingPostStepGPIL
 
G4double fCurrentMinimumStep
 
G4TrackfCurrentTrack
 
G4ParticleChangeForNothingfDummyParticleChange
 
G4VBiasingOperationfFinalStateBiasingOperation
 
G4bool fFirstLastFlags [8]
 
G4bool fIamFirstGPIL
 
const G4bool fIsPhysicsBasedBiasing
 
G4VBiasingOperationfNonPhysicsBiasingOperation
 
G4VBiasingOperationfOccurenceBiasingOperation
 
G4ParticleChangeForOccurenceBiasingfOccurenceBiasingParticleChange
 
G4InteractionLawPhysicalfPhysicalInteractionLaw
 
const G4VBiasingInteractionLawfPreviousBiasingInteractionLaw
 
G4VBiasingOperationfPreviousFinalStateBiasingOperation
 
G4VBiasingOperationfPreviousNonPhysicsBiasingOperation
 
G4VBiasingOperationfPreviousOccurenceBiasingOperation
 
G4double fPreviousStepSize
 
const G4ProcessManagerfProcessManager
 
G4ProcessTablefProcessTable = nullptr
 
G4double fProposedSafety
 
G4bool fResetWrappedProcessInteractionLength
 
G4BiasingProcessSharedDatafSharedData
 
G4VProcessfWrappedProcess
 
G4double fWrappedProcessAlongStepGPIL
 
G4ForceCondition fWrappedProcessForceCondition
 
G4GPILSelection fWrappedProcessGPILSelection
 
G4double fWrappedProcessInteractionLength
 
const G4bool fWrappedProcessIsAlong
 
const G4bool fWrappedProcessIsAtRest
 
const G4bool fWrappedProcessIsPost
 
G4double fWrappedProcessPostStepGPIL
 
G4VProcessmasterProcessShadow = nullptr
 

Static Private Attributes

static G4Cache< G4boolfCommonEnd
 
static G4Cache< G4boolfCommonStart
 
static G4Cache< G4boolfDoCommonConfigure
 
static G4Cache< G4boolfResetInteractionLaws
 

Detailed Description

Definition at line 69 of file G4BiasingProcessInterface.hh.

Constructor & Destructor Documentation

◆ G4BiasingProcessInterface() [1/2]

G4BiasingProcessInterface::G4BiasingProcessInterface ( G4String  name = "biasWrapper(0)")

Definition at line 42 of file G4BiasingProcessInterface.cc.

43 : G4VProcess ( name ),
44 fCurrentTrack ( nullptr ),
49 fWrappedProcess ( nullptr ),
50 fIsPhysicsBasedBiasing ( false ),
52 fWrappedProcessIsAlong ( false ),
53 fWrappedProcessIsPost ( false ),
55 fBiasingPostStepGPIL ( -1.0 ),
60 fBiasingAlongStepGPIL ( -1.0 ),
63 fBiasingInteractionLaw ( nullptr ),
65 fPhysicalInteractionLaw ( nullptr ),
67 fDummyParticleChange ( nullptr ),
68 fIamFirstGPIL ( false ),
69 fProcessManager ( nullptr ),
70 fSharedData ( nullptr )
71{
72 for (G4int i = 0 ; i < 8 ; i++) fFirstLastFlags[i] = false;
74 fCommonStart .Put( true );
75 fCommonEnd .Put( true );
76 fDoCommonConfigure .Put( true );
77}
@ NotForced
@ NotCandidateForSelection
int G4int
Definition: G4Types.hh:85
static G4Cache< G4bool > fCommonStart
static G4Cache< G4bool > fResetInteractionLaws
G4BiasingProcessSharedData * fSharedData
const G4VBiasingInteractionLaw * fPreviousBiasingInteractionLaw
static G4Cache< G4bool > fDoCommonConfigure
const G4ProcessManager * fProcessManager
G4ParticleChangeForNothing * fDummyParticleChange
G4VBiasingOperation * fPreviousOccurenceBiasingOperation
static G4Cache< G4bool > fCommonEnd
G4VBiasingOperation * fFinalStateBiasingOperation
G4VBiasingOperation * fNonPhysicsBiasingOperation
G4VBiasingOperation * fPreviousNonPhysicsBiasingOperation
G4ParticleChangeForOccurenceBiasing * fOccurenceBiasingParticleChange
G4InteractionLawPhysical * fPhysicalInteractionLaw
const G4VBiasingInteractionLaw * fBiasingInteractionLaw
G4VBiasingOperation * fOccurenceBiasingOperation
G4VBiasingOperation * fPreviousFinalStateBiasingOperation
void Put(const value_type &val) const
Definition: G4Cache.hh:321
const char * name(G4int ptype)

References fCommonEnd, fCommonStart, fDoCommonConfigure, fFirstLastFlags, fResetInteractionLaws, and G4Cache< VALTYPE >::Put().

◆ G4BiasingProcessInterface() [2/2]

G4BiasingProcessInterface::G4BiasingProcessInterface ( G4VProcess wrappedProcess,
G4bool  wrappedIsAtRest,
G4bool  wrappedIsAlongStep,
G4bool  wrappedIsPostStep,
G4String  useThisName = "" 
)

Definition at line 80 of file G4BiasingProcessInterface.cc.

83 : G4VProcess( useThisName != "" ? useThisName : "biasWrapper("+wrappedProcess->GetProcessName()+")",
84 wrappedProcess->GetProcessType()),
85 fCurrentTrack ( nullptr ),
90 fWrappedProcess ( wrappedProcess ),
92 fWrappedProcessIsAtRest ( wrappedIsAtRest ),
93 fWrappedProcessIsAlong ( wrappedIsAlongStep ),
94 fWrappedProcessIsPost ( wrappedIsPostStep ),
96 fBiasingPostStepGPIL ( -1.0 ),
101 fBiasingAlongStepGPIL ( -1.0 ),
104 fBiasingInteractionLaw ( nullptr ),
106 fPhysicalInteractionLaw ( nullptr ),
108 fIamFirstGPIL ( false ),
109 fProcessManager ( nullptr ),
110 fSharedData ( nullptr )
111{
112 for (G4int i = 0 ; i < 8 ; i++) fFirstLastFlags[i] = false;
114 fCommonStart.Put(true);
115 fCommonEnd.Put(true);
117
119
120 // -- create physical interaction law:
121 fPhysicalInteractionLaw = new G4InteractionLawPhysical("PhysicalInteractionLawFor("+GetProcessName()+")");
122 // -- instantiate particle change wrapper for occurrence biaising:
124 // -- instantiate a "do nothing" particle change:
126}
G4ProcessType GetProcessType() const
Definition: G4VProcess.hh:388
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406
G4int GetProcessSubType() const
Definition: G4VProcess.hh:400
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

References fCommonEnd, fCommonStart, fDoCommonConfigure, fDummyParticleChange, fFirstLastFlags, fOccurenceBiasingParticleChange, fPhysicalInteractionLaw, fResetInteractionLaws, fWrappedProcess, G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4Cache< VALTYPE >::Put(), and G4VProcess::SetProcessSubType().

◆ ~G4BiasingProcessInterface()

G4BiasingProcessInterface::~G4BiasingProcessInterface ( )

Member Function Documentation

◆ AlongStepDoIt()

G4VParticleChange * G4BiasingProcessInterface::AlongStepDoIt ( const G4Track track,
const G4Step step 
)
virtual

Implements G4VProcess.

Definition at line 648 of file G4BiasingProcessInterface.cc.

650{
651
652 // ---------------------------------------
653 // -- case outside of volume with biasing:
654 // ---------------------------------------
656 {
657 if ( fWrappedProcessIsAlong ) return fWrappedProcess->AlongStepDoIt(track, step);
658 else
659 {
662 }
663 }
664
665 // -----------------------------------
666 // -- case inside volume with biasing:
667 // -----------------------------------
669 else
670 {
673 }
674 G4double weightForNonInteraction (1.0);
675 if ( fBiasingInteractionLaw != 0 )
676 {
677 weightForNonInteraction =
680
681 fOccurenceBiasingOperation->AlongMoveBy( this, &step, weightForNonInteraction );
682
683 if ( weightForNonInteraction <= 0. )
684 {
686 ed << " Negative non interaction weight : w_NI = " << weightForNonInteraction <<
689 " step length = " << step.GetStepLength() <<
690 " biasing interaction law = `" << fBiasingInteractionLaw->GetName() << "'" << G4endl;
691 G4Exception(" G4BiasingProcessInterface::AlongStepDoIt(...)",
692 "BIAS.GEN.04",
694 ed);
695 }
696
697 }
698
700
702
703}
@ 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
double G4double
Definition: G4Types.hh:83
#define G4endl
Definition: G4ios.hh:57
G4VBiasingOperator * fCurrentBiasingOperator
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const
virtual void Initialize(const G4Track &track)
G4double GetStepLength() const
G4TrackStatus GetTrackStatus() const
const G4String & GetName() const
virtual G4double ComputeNonInteractionProbabilityAt(G4double length) const =0
virtual void AlongMoveBy(const G4BiasingProcessInterface *, const G4Step *, G4double)
void ProposeTrackStatus(G4TrackStatus status)
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)=0

References G4VBiasingOperation::AlongMoveBy(), G4VProcess::AlongStepDoIt(), G4InteractionLawPhysical::ComputeNonInteractionProbabilityAt(), G4VBiasingInteractionLaw::ComputeNonInteractionProbabilityAt(), fBiasingInteractionLaw, G4BiasingProcessSharedData::fCurrentBiasingOperator, fDummyParticleChange, fOccurenceBiasingOperation, fOccurenceBiasingParticleChange, fPhysicalInteractionLaw, fSharedData, fWrappedProcess, fWrappedProcessIsAlong, G4endl, G4Exception(), G4VBiasingInteractionLaw::GetName(), G4Step::GetStepLength(), G4Track::GetTrackStatus(), G4ParticleChangeForNothing::Initialize(), JustWarning, G4VParticleChange::ProposeTrackStatus(), G4ParticleChangeForOccurenceBiasing::SetOccurenceWeightForNonInteraction(), and G4ParticleChangeForOccurenceBiasing::SetWrappedParticleChange().

◆ AlongStepGetPhysicalInteractionLength()

G4double G4BiasingProcessInterface::AlongStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double proposedSafety,
G4GPILSelection selection 
)
virtual

Implements G4VProcess.

Definition at line 569 of file G4BiasingProcessInterface.cc.

574{
575
576 // -- for helper methods:
577 fCurrentMinimumStep = currentMinimumStep;
578 fProposedSafety = proposedSafety;
579
580
581 // -- initialization default case:
583 *selection = NotCandidateForSelection;
584 // ---------------------------------------
585 // -- case outside of volume with biasing:
586 // ---------------------------------------
588 {
591 previousStepSize,
592 currentMinimumStep,
593 proposedSafety,
594 selection);
596 }
597
598 // --------------------------------------------------------------------
599 // -- non-physics based biasing: no along operation expected (for now):
600 // --------------------------------------------------------------------
602
603 // ----------------------
604 // -- physics-based case:
605 // ----------------------
607 {
610 previousStepSize,
611 currentMinimumStep,
612 proposedSafety,
613 selection);
615 }
616
617
618 // -----------------------------------------------------------
619 // -- From here we have an valid occurrence biasing operation:
620 // -----------------------------------------------------------
621 // -- Give operation opportunity to shorten step proposed by physics process:
623 G4double minimumStep = fBiasingAlongStepGPIL < currentMinimumStep ? fBiasingAlongStepGPIL : currentMinimumStep ;
624 // -- wrapped process is called with minimum step ( <= currentMinimumStep passed ) : an along process can not
625 // -- have its operation stretched over what it expects:
627 {
629 previousStepSize,
630 minimumStep,
631 proposedSafety,
632 selection);
633 fWrappedProcessGPILSelection = *selection;
635 }
636 else
637 {
640 }
641
642 *selection = fBiasingGPILSelection;
643
645
646}
virtual G4GPILSelection ProposeGPILSelection(const G4GPILSelection wrappedProcessSelection)
virtual G4double ProposeAlongStepLimit(const G4BiasingProcessInterface *)
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0
#define DBL_MAX
Definition: templates.hh:62

References G4VProcess::AlongStepGetPhysicalInteractionLength(), DBL_MAX, fBiasingAlongStepGPIL, fBiasingGPILSelection, G4BiasingProcessSharedData::fCurrentBiasingOperator, fCurrentMinimumStep, fIsPhysicsBasedBiasing, fOccurenceBiasingOperation, fProposedSafety, fSharedData, fWrappedProcess, fWrappedProcessAlongStepGPIL, fWrappedProcessGPILSelection, fWrappedProcessIsAlong, NotCandidateForSelection, G4VBiasingOperation::ProposeAlongStepLimit(), and G4VBiasingOperation::ProposeGPILSelection().

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

References G4VProcess::AlongStepGetPhysicalInteractionLength().

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

◆ AtRestDoIt()

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

Implements G4VProcess.

Definition at line 711 of file G4BiasingProcessInterface.cc.

713{
714 return fWrappedProcess->AtRestDoIt(track, step);
715}
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)=0

References G4VProcess::AtRestDoIt(), and fWrappedProcess.

◆ AtRestGetPhysicalInteractionLength()

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

Implements G4VProcess.

Definition at line 706 of file G4BiasingProcessInterface.cc.

708{
710}
G4double condition(const G4ErrorSymMatrix &m)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)=0

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

◆ AtRestGPIL()

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

◆ BuildPhysicsTable()

void G4BiasingProcessInterface::BuildPhysicsTable ( const G4ParticleDefinition pd)
virtual

Reimplemented from G4VProcess.

Definition at line 741 of file G4BiasingProcessInterface.cc.

742{
743 // -- Sequential mode : called second (after PreparePhysicsTable(..))
744 // -- MT mode : called second (after PreparePhysicsTable(..)) by master thread.
745 // -- Corresponding process instance not used then by tracking.
746 // -- PreparePhysicsTable(...) has been called first for all processes,
747 // -- so the first/last flags and G4BiasingProcessInterface vector of processes have
748 // -- been properly setup, fIamFirstGPIL is valid.
749 if ( fWrappedProcess != 0 )
750 {
752 }
753
754 if ( fIamFirstGPIL )
755 {
756 // -- Re-order vector of processes to match that of the GPIL
757 // -- (made for fIamFirstGPIL, but important is to have it made once):
759 // -- Let operators to configure themselves for the master thread or for sequential mode.
760 // -- Intended here is in particular the registration to physics model catalog.
761 // -- The fDoCommonConfigure is to ensure that this Configure is made by only one process (othewise each first process makes the call):
762 if ( fDoCommonConfigure.Get() )
763 {
764 for ( size_t optr = 0 ; optr < ( G4VBiasingOperator::GetBiasingOperators() ).size() ; optr ++)
766 fDoCommonConfigure.Put(false);
767 }
768
769 }
770}
value_type & Get() const
Definition: G4Cache.hh:315
static const std::vector< G4VBiasingOperator * > & GetBiasingOperators()
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:187
def Configure()
Definition: demo.py:20

References G4VProcess::BuildPhysicsTable(), demo::Configure(), fDoCommonConfigure, fIamFirstGPIL, fWrappedProcess, G4Cache< VALTYPE >::Get(), G4VBiasingOperator::GetBiasingOperators(), G4Cache< VALTYPE >::Put(), and ReorderBiasingVectorAsGPIL().

◆ BuildWorkerPhysicsTable()

void G4BiasingProcessInterface::BuildWorkerPhysicsTable ( const G4ParticleDefinition pd)
virtual

Reimplemented from G4VProcess.

Definition at line 838 of file G4BiasingProcessInterface.cc.

839{
840 // -- Sequential mode : not called
841 // -- MT mode : called after PrepareWorkerPhysicsTable(..)
842 // -- PrepareWorkerPhysicsTable(...) has been called first for all processes,
843 // -- so the first/last flags and G4BiasingProcessInterface vector of processes have
844 // -- been properly setup, fIamFirstGPIL is valid.
845 if ( fWrappedProcess != 0 )
846 {
848 }
849
850 if ( fIamFirstGPIL )
851 {
852 // -- Re-order vector of processes to match that of the GPIL
853 // -- (made for fIamFirstGPIL, but important is to have it made once):
855 // -- Let operators to configure themselves for the worker thread, if needed.
856 // -- Registration to physics model catalog **IS NOT** to be made here, but in Configure().
857 // -- The fDoCommonConfigure is to ensure that this Configure is made by only one process (othewise each first process makes the call):
858 if ( fDoCommonConfigure.Get() )
859 {
860 for ( size_t optr = 0 ; optr < ( G4VBiasingOperator::GetBiasingOperators() ).size() ; optr ++)
861 ( G4VBiasingOperator::GetBiasingOperators() )[optr]->ConfigureForWorker( );
862 fDoCommonConfigure.Put(false);
863 }
864 }
865}
virtual void BuildWorkerPhysicsTable(const G4ParticleDefinition &part)
Definition: G4VProcess.cc:200

References G4VProcess::BuildWorkerPhysicsTable(), fDoCommonConfigure, fIamFirstGPIL, fWrappedProcess, G4Cache< VALTYPE >::Get(), G4VBiasingOperator::GetBiasingOperators(), G4Cache< VALTYPE >::Put(), and ReorderBiasingVectorAsGPIL().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ 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}
G4GLOB_DLL std::ostream G4cout
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().

◆ EndTracking()

void G4BiasingProcessInterface::EndTracking ( )
virtual

Reimplemented from G4VProcess.

Definition at line 184 of file G4BiasingProcessInterface.cc.

185{
189
190 // -- Inform operators of end of tracking:
191 if ( fCommonEnd.Get() )
192 {
193 fCommonEnd .Put( false );// = false;
194 fCommonStart.Put( true );// = true;
195
196 for ( size_t optr = 0 ; optr < ( G4VBiasingOperator::GetBiasingOperators() ).size() ; optr ++)
198
199 // -- §§ for above loop, do as in StartTracking.
200 }
201}
virtual void EndTracking()
Definition: G4VProcess.cc:102

References EndTracking(), G4VProcess::EndTracking(), fBiasingInteractionLaw, fCommonEnd, fCommonStart, G4BiasingProcessSharedData::fCurrentBiasingOperator, fCurrentTrack, fIsPhysicsBasedBiasing, fSharedData, fWrappedProcess, G4Cache< VALTYPE >::Get(), G4VBiasingOperator::GetBiasingOperators(), and G4Cache< VALTYPE >::Put().

Referenced by EndTracking().

◆ GetAlongStepGPIL()

G4double G4BiasingProcessInterface::GetAlongStepGPIL ( ) const
inline

◆ GetBiasingProcessInterfaces()

const std::vector< const G4BiasingProcessInterface * > & G4BiasingProcessInterface::GetBiasingProcessInterfaces ( ) const
inline

Definition at line 106 of file G4BiasingProcessInterface.hh.

107 {return fSharedData-> fPublicBiasingProcessInterfaces;}

References fSharedData.

◆ GetCurrentBiasingOperator()

G4VBiasingOperator * G4BiasingProcessInterface::GetCurrentBiasingOperator ( ) const
inline

Definition at line 92 of file G4BiasingProcessInterface.hh.

92{return fSharedData-> fCurrentBiasingOperator; }

References fSharedData.

◆ GetCurrentFinalStateBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetCurrentFinalStateBiasingOperation ( ) const
inline

Definition at line 99 of file G4BiasingProcessInterface.hh.

References fFinalStateBiasingOperation.

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetCurrentMinimumStep()

G4double G4BiasingProcessInterface::GetCurrentMinimumStep ( ) const
inline

Definition at line 148 of file G4BiasingProcessInterface.hh.

148{ return fCurrentMinimumStep;}

References fCurrentMinimumStep.

◆ GetCurrentNonPhysicsBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetCurrentNonPhysicsBiasingOperation ( ) const
inline

Definition at line 95 of file G4BiasingProcessInterface.hh.

References fNonPhysicsBiasingOperation.

◆ GetCurrentOccurenceBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetCurrentOccurenceBiasingOperation ( ) const
inline

◆ GetIsFirstPostStepDoItInterface()

G4bool G4BiasingProcessInterface::GetIsFirstPostStepDoItInterface ( G4bool  physOnly = true) const

Definition at line 902 of file G4BiasingProcessInterface.cc.

903{
904 G4int iPhys = ( physOnly ) ? 1 : 0;
905 return fFirstLastFlags[IdxFirstLast( 1, 0, iPhys)];
906}
G4int IdxFirstLast(G4int firstLast, G4int GPILDoIt, G4int physAll) const

References fFirstLastFlags, and IdxFirstLast().

Referenced by G4BOptnForceFreeFlight::ApplyFinalStateBiasing().

◆ GetIsFirstPostStepGPILInterface()

G4bool G4BiasingProcessInterface::GetIsFirstPostStepGPILInterface ( G4bool  physOnly = true) const

Definition at line 888 of file G4BiasingProcessInterface.cc.

889{
890 G4int iPhys = ( physOnly ) ? 1 : 0;
891 return fFirstLastFlags[IdxFirstLast( 1, 1, iPhys)];
892}

References fFirstLastFlags, and IdxFirstLast().

Referenced by SetUpFirstLastFlags().

◆ GetIsLastPostStepDoItInterface()

G4bool G4BiasingProcessInterface::GetIsLastPostStepDoItInterface ( G4bool  physOnly = true) const

Definition at line 909 of file G4BiasingProcessInterface.cc.

910{
911 G4int iPhys = ( physOnly ) ? 1 : 0;
912 return fFirstLastFlags[IdxFirstLast( 0, 0, iPhys)];
913}

References fFirstLastFlags, and IdxFirstLast().

◆ GetIsLastPostStepGPILInterface()

G4bool G4BiasingProcessInterface::GetIsLastPostStepGPILInterface ( G4bool  physOnly = true) const

Definition at line 895 of file G4BiasingProcessInterface.cc.

896{
897 G4int iPhys = ( physOnly ) ? 1 : 0;
898 return fFirstLastFlags[IdxFirstLast( 0, 1, iPhys)];
899}

References fFirstLastFlags, and IdxFirstLast().

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetNonPhysicsBiasingProcessInterfaces()

const std::vector< const G4BiasingProcessInterface * > & G4BiasingProcessInterface::GetNonPhysicsBiasingProcessInterfaces ( ) const
inline

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetPhysicsBiasingProcessInterfaces()

const std::vector< const G4BiasingProcessInterface * > & G4BiasingProcessInterface::GetPhysicsBiasingProcessInterfaces ( ) const
inline

Definition at line 108 of file G4BiasingProcessInterface.hh.

109 {return fSharedData-> fPublicPhysicsBiasingProcessInterfaces;}

References fSharedData.

◆ 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}
const G4String & GetParticleName() const
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().

◆ GetPostStepGPIL()

G4double G4BiasingProcessInterface::GetPostStepGPIL ( ) const
inline

◆ GetPreviousBiasingOperator()

G4VBiasingOperator * G4BiasingProcessInterface::GetPreviousBiasingOperator ( ) const
inline

◆ GetPreviousFinalStateBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetPreviousFinalStateBiasingOperation ( ) const
inline

◆ GetPreviousNonPhysicsBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetPreviousNonPhysicsBiasingOperation ( ) const
inline

◆ GetPreviousOccurenceBiasingOperation()

G4VBiasingOperation * G4BiasingProcessInterface::GetPreviousOccurenceBiasingOperation ( ) const
inline

◆ GetPreviousStepSize()

G4double G4BiasingProcessInterface::GetPreviousStepSize ( ) const
inline

◆ GetProcessManager()

const G4ProcessManager * G4BiasingProcessInterface::GetProcessManager ( )
virtual

Reimplemented from G4VProcess.

Definition at line 831 of file G4BiasingProcessInterface.cc.

832{
834 else return G4VProcess::GetProcessManager();
835}
virtual const G4ProcessManager * GetProcessManager()
Definition: G4VProcess.hh:494

References fWrappedProcess, and G4VProcess::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(), 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().

◆ GetProposedSafety()

G4double G4BiasingProcessInterface::GetProposedSafety ( ) const
inline

Definition at line 149 of file G4BiasingProcessInterface.hh.

149{ return fProposedSafety;}

References fProposedSafety.

◆ GetSharedData() [1/2]

const G4BiasingProcessSharedData * G4BiasingProcessInterface::GetSharedData ( ) const
inline

◆ GetSharedData() [2/2]

const G4BiasingProcessSharedData * G4BiasingProcessInterface::GetSharedData ( const G4ProcessManager mgr)
static

Definition at line 138 of file G4BiasingProcessInterface.cc.

139{
143 {
144 return (*itr).second;
145 }
146 else return 0;
147}
static G4MapCache< const G4ProcessManager *, G4BiasingProcessSharedData * > fSharedDataMap
iterator Find(const key_type &k)
Definition: G4Cache.hh:459

References G4MapCache< KEYTYPE, VALTYPE >::Find(), and G4BiasingProcessSharedData::fSharedDataMap.

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ GetWrappedProcess()

G4VProcess * G4BiasingProcessInterface::GetWrappedProcess ( ) const
inline

◆ GetWrappedProcessIsAlong()

G4bool G4BiasingProcessInterface::GetWrappedProcessIsAlong ( ) const
inline

Definition at line 142 of file G4BiasingProcessInterface.hh.

142{ return fWrappedProcessIsAlong; }

References fWrappedProcessIsAlong.

◆ GetWrappedProcessIsAtRest()

G4bool G4BiasingProcessInterface::GetWrappedProcessIsAtRest ( ) const
inline

Definition at line 141 of file G4BiasingProcessInterface.hh.

141{ return fWrappedProcessIsAtRest; }

References fWrappedProcessIsAtRest.

◆ GetWrappedProcessIsPost()

G4bool G4BiasingProcessInterface::GetWrappedProcessIsPost ( ) const
inline

Definition at line 143 of file G4BiasingProcessInterface.hh.

143{ return fWrappedProcessIsPost; }

References fWrappedProcessIsPost.

◆ IdxFirstLast()

G4int G4BiasingProcessInterface::IdxFirstLast ( G4int  firstLast,
G4int  GPILDoIt,
G4int  physAll 
) const
inlineprivate

Definition at line 248 of file G4BiasingProcessInterface.hh.

249 {
250 // -- be careful : all arguments are *assumed* to be 0 or 1. No check
251 // -- for that is provided. Should be of pure internal usage.
252 return 4*firstLast + 2*GPILDoIt + physAll;
253 }

Referenced by GetIsFirstPostStepDoItInterface(), GetIsFirstPostStepGPILInterface(), GetIsLastPostStepDoItInterface(), GetIsLastPostStepGPILInterface(), and SetUpFirstLastFlags().

◆ InvokeWrappedProcessPostStepGPIL()

void G4BiasingProcessInterface::InvokeWrappedProcessPostStepGPIL ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
private

Definition at line 1049 of file G4BiasingProcessInterface.cc.

1052{
1053 G4double usedPreviousStepSize = previousStepSize;
1054 // -- if the physics process has been under occurrence biasing in the previous step
1055 // -- we reset it, as we don't know if it will be biased again or not in this
1056 // -- step. The pity is that PostStepGPIL and interaction length (cross-section)
1057 // -- calculations are done both in the PostStepGPIL of the process, while here we
1058 // -- are just interested in the calculation of the cross-section. This is a pity
1059 // -- as this forces to re-generated a random number for nothing.
1061 {
1064 // -- We set "previous step size" as 0.0, to let the process believe this is first step:
1065 usedPreviousStepSize = 0.0;
1066 }
1067 // -- GPIL response:
1070 // -- and (inverse) cross-section:
1072}
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0
virtual void ResetNumberOfInteractionLengthLeft()
Definition: G4VProcess.cc:80
G4double GetCurrentInteractionLength() const
Definition: G4VProcess.hh:443

References condition(), fResetWrappedProcessInteractionLength, fWrappedProcess, fWrappedProcessForceCondition, fWrappedProcessInteractionLength, fWrappedProcessPostStepGPIL, G4VProcess::GetCurrentInteractionLength(), G4VProcess::PostStepGetPhysicalInteractionLength(), and G4VProcess::ResetNumberOfInteractionLengthLeft().

◆ isAlongStepDoItIsEnabled()

G4bool G4VProcess::isAlongStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 506 of file G4VProcess.hh.

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

References G4VProcess::enableAlongStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsApplicable()

G4bool G4BiasingProcessInterface::IsApplicable ( const G4ParticleDefinition pd)
virtual

Reimplemented from G4VProcess.

Definition at line 718 of file G4BiasingProcessInterface.cc.

719{
720 if ( fWrappedProcess != 0 ) return fWrappedProcess->IsApplicable(pd);
721 else return true;
722}
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:182

References fWrappedProcess, and G4VProcess::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().

◆ IsFirstPostStepDoItInterface()

G4bool G4BiasingProcessInterface::IsFirstPostStepDoItInterface ( G4bool  physOnly = true) const

Definition at line 970 of file G4BiasingProcessInterface.cc.

971{
972 G4bool isFirst = true;
974 G4int thisIdx(-1);
975 for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; }
976 if ( thisIdx < 0 ) return false; // -- to ignore pure along processes
977 for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i )
978 {
979 if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly )
980 {
981 G4int thatIdx(-1);
982 for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; }
983 if ( thatIdx >= 0 ) // -- to ignore pure along processes
984 {
985 if ( thisIdx > thatIdx )
986 {
987 isFirst = false;
988 break;
989 }
990 }
991 }
992 }
993 return isFirst;
994}
@ typeDoIt
bool G4bool
Definition: G4Types.hh:86
std::vector< G4BiasingProcessInterface * > fBiasingProcessInterfaces
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
std::size_t size() const

References G4BiasingProcessSharedData::fBiasingProcessInterfaces, fProcessManager, fSharedData, G4ProcessManager::GetPostStepProcessVector(), G4ProcessVector::size(), and typeDoIt.

Referenced by SetUpFirstLastFlags().

◆ IsFirstPostStepGPILInterface()

G4bool G4BiasingProcessInterface::IsFirstPostStepGPILInterface ( G4bool  physOnly = true) const

Definition at line 916 of file G4BiasingProcessInterface.cc.

917{
918 G4bool isFirst = true;
920 G4int thisIdx(-1);
921 for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; }
922 if ( thisIdx < 0 ) return false; // -- to ignore pure along processes
923 for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i )
924 {
925 if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly )
926 {
927 G4int thatIdx(-1);
928 for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; }
929 if ( thatIdx >= 0 ) // -- to ignore pure along processes
930 {
931 if ( thisIdx > thatIdx )
932 {
933 isFirst = false;
934 break;
935 }
936 }
937 }
938 }
939 return isFirst;
940}
@ typeGPIL

References G4BiasingProcessSharedData::fBiasingProcessInterfaces, fProcessManager, fSharedData, G4ProcessManager::GetPostStepProcessVector(), G4ProcessVector::size(), and typeGPIL.

Referenced by SetUpFirstLastFlags().

◆ IsLastPostStepDoItInterface()

G4bool G4BiasingProcessInterface::IsLastPostStepDoItInterface ( G4bool  physOnly = true) const

Definition at line 997 of file G4BiasingProcessInterface.cc.

998{
999 G4bool isLast = true;
1001 G4int thisIdx(-1);
1002 for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; }
1003 if ( thisIdx < 0 ) return false; // -- to ignore pure along processes
1004 for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i )
1005 {
1006 if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly )
1007 {
1008 G4int thatIdx(-1);
1009 for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; }
1010 if ( thatIdx >= 0 ) // -- to ignore pure along processes
1011 {
1012 if ( thisIdx < thatIdx )
1013 {
1014 isLast = false;
1015 break;
1016 }
1017 }
1018 }
1019 }
1020 return isLast;
1021}

References G4BiasingProcessSharedData::fBiasingProcessInterfaces, fProcessManager, fSharedData, G4ProcessManager::GetPostStepProcessVector(), G4ProcessVector::size(), and typeDoIt.

Referenced by SetUpFirstLastFlags().

◆ IsLastPostStepGPILInterface()

G4bool G4BiasingProcessInterface::IsLastPostStepGPILInterface ( G4bool  physOnly = true) const

Definition at line 943 of file G4BiasingProcessInterface.cc.

944{
945 G4bool isLast = true;
947 G4int thisIdx(-1);
948 for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; }
949 if ( thisIdx < 0 ) return false; // -- to ignore pure along processes
950 for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i )
951 {
952 if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly )
953 {
954 G4int thatIdx(-1);
955 for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; }
956 if ( thatIdx >= 0 ) // -- to ignore pure along processes
957 {
958 if ( thisIdx < thatIdx )
959 {
960 isLast = false;
961 break;
962 }
963 }
964 }
965 }
966 return isLast;
967}

References G4BiasingProcessSharedData::fBiasingProcessInterfaces, fProcessManager, fSharedData, G4ProcessManager::GetPostStepProcessVector(), G4ProcessVector::size(), and typeGPIL.

Referenced by SetUpFirstLastFlags().

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

◆ operator!=()

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

Definition at line 161 of file G4VProcess.cc.

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

◆ 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 * G4BiasingProcessInterface::PostStepDoIt ( const G4Track track,
const G4Step step 
)
virtual

Implements G4VProcess.

Definition at line 447 of file G4BiasingProcessInterface.cc.

449{
450 // ---------------------------------------
451 // -- case outside of volume with biasing:
452 // ---------------------------------------
453 if ( fSharedData->fCurrentBiasingOperator == 0 ) return fWrappedProcess->PostStepDoIt(track, step);
454
455 // ----------------------------
456 // -- non-physics biasing case:
457 // ----------------------------
459 {
461 (fSharedData->fCurrentBiasingOperator)->ReportOperationApplied( this, BAC_NonPhysics, fNonPhysicsBiasingOperation, particleChange );
462 return particleChange;
463 }
464
465 // -- physics biasing case:
466 // ------------------------
467 // -- It proceeds with the following logic:
468 // -- 1) Obtain the final state
469 // -- This final state may be analog or biased.
470 // -- The biased final state is obtained through a biasing operator
471 // -- returned by the operator.
472 // -- 2) The biased final state may be asked to be "force as it is"
473 // -- in what case the particle change is returned as is to the
474 // -- stepping.
475 // -- In all other cases (analog final state or biased final but
476 // -- not forced) the final state weight may be modified by the
477 // -- occurrence biasing, if such an occurrence biasing is at play.
478
479 // -- Get final state, biased or analog:
480 G4VParticleChange* finalStateParticleChange;
482 fFinalStateBiasingOperation = (fSharedData->fCurrentBiasingOperator)->GetProposedFinalStateBiasingOperation( &track, this );
483 // -- Flag below is to force the biased generated particle change to be returned "as is" to the stepping, disregarding there
484 // -- was or not a occurrence biasing that would apply. Weight relevance under full responsibility of the biasing operation.
485 G4bool forceBiasedFinalState = false;
487 {
488 finalStateParticleChange = fFinalStateBiasingOperation->ApplyFinalStateBiasing( this, &track, &step, forceBiasedFinalState );
489 BAC = BAC_FinalState;
490 }
491 else
492 {
493 finalStateParticleChange = fWrappedProcess->PostStepDoIt(track, step);
494 BAC = BAC_None ;
495 }
496
497 // -- if no occurrence biasing operation, we're done:
499 {
500 (fSharedData->fCurrentBiasingOperator)->ReportOperationApplied( this, BAC, fFinalStateBiasingOperation, finalStateParticleChange );
501 return finalStateParticleChange;
502 }
503
504 // -- if biased final state has been asked to be forced, we're done:
505 if ( forceBiasedFinalState )
506 {
507 (fSharedData->fCurrentBiasingOperator)->ReportOperationApplied( this, BAC, fFinalStateBiasingOperation, finalStateParticleChange );
508 return finalStateParticleChange;
509 }
510
511
512 // -- If occurrence biasing, applies the occurrence biasing weight correction on top of final state (biased or not):
513 G4double weightForInteraction = 1.0;
514 if ( !fBiasingInteractionLaw->IsSingular() ) weightForInteraction =
516 fBiasingInteractionLaw ->ComputeEffectiveCrossSectionAt(step.GetStepLength());
517 else
518 {
519 // -- at this point effective XS can only be infinite, if not, there is a logic problem
521 {
523 ed << "Internal inconsistency in cross-section handling. Please report !" << G4endl;
524 G4Exception(" G4BiasingProcessInterface::PostStepDoIt(...)",
525 "BIAS.GEN.02",
527 ed);
528 // -- if XS is infinite, weight is zero (and will stay zero), but we'll do differently.
529 // -- Should foresee in addition something to remember that in case of singular
530 // -- distribution, weight can only be partly calculated
531 }
532 }
533
534 if ( weightForInteraction <= 0. )
535 {
537 ed << " Negative interaction weight : w_I = "
538 << weightForInteraction <<
541 " step length = " << step.GetStepLength() <<
542 " Interaction law = `" << fBiasingInteractionLaw << "'" <<
543 G4endl;
544 G4Exception(" G4BiasingProcessInterface::PostStepDoIt(...)",
545 "BIAS.GEN.03",
547 ed);
548
549 }
550
551 (fSharedData->fCurrentBiasingOperator)->ReportOperationApplied( this, BAC,
552 fOccurenceBiasingOperation, weightForInteraction,
553 fFinalStateBiasingOperation, finalStateParticleChange );
554
555
560 fOccurenceBiasingParticleChange->StealSecondaries(); // -- this also makes weightForInteraction applied to secondaries stolen
561
562 // -- finish:
564
565}
G4BiasingAppliedCase
@ BAC_FinalState
@ BAC_NonPhysics
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const
virtual G4bool IsEffectiveCrossSectionInfinite() const
virtual G4bool IsSingular() const
virtual G4double ComputeEffectiveCrossSectionAt(G4double length) const =0
virtual G4VParticleChange * ApplyFinalStateBiasing(const G4BiasingProcessInterface *, const G4Track *, const G4Step *, G4bool &)=0
virtual G4VParticleChange * GenerateBiasingFinalState(const G4Track *, const G4Step *)=0
void SetSecondaryWeightByProcess(G4bool)
G4TrackStatus GetTrackStatus() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0

References G4VBiasingOperation::ApplyFinalStateBiasing(), BAC_FinalState, BAC_None, BAC_NonPhysics, G4InteractionLawPhysical::ComputeEffectiveCrossSectionAt(), G4VBiasingInteractionLaw::ComputeEffectiveCrossSectionAt(), fBiasingInteractionLaw, G4BiasingProcessSharedData::fCurrentBiasingOperator, fFinalStateBiasingOperation, fIsPhysicsBasedBiasing, fNonPhysicsBiasingOperation, fOccurenceBiasingOperation, fOccurenceBiasingParticleChange, fPhysicalInteractionLaw, fSharedData, fWrappedProcess, G4endl, G4Exception(), G4VBiasingOperation::GenerateBiasingFinalState(), G4Step::GetStepLength(), G4VParticleChange::GetTrackStatus(), G4VBiasingInteractionLaw::IsEffectiveCrossSectionInfinite(), G4VBiasingInteractionLaw::IsSingular(), JustWarning, G4VProcess::PostStepDoIt(), G4VParticleChange::ProposeTrackStatus(), G4ParticleChangeForOccurenceBiasing::SetOccurenceWeightForInteraction(), G4VParticleChange::SetSecondaryWeightByProcess(), G4ParticleChangeForOccurenceBiasing::SetWrappedParticleChange(), and G4ParticleChangeForOccurenceBiasing::StealSecondaries().

◆ PostStepGetPhysicalInteractionLength()

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

Implements G4VProcess.

Definition at line 205 of file G4BiasingProcessInterface.cc.

208{
209
210 // ---------------------------------------------------------------------------------------------------
211 // -- The "biasing process master" takes care of updating the biasing operator, and for all biasing
212 // -- processes it invokes the PostStepGPIL of physical wrapped processes (anticipate stepping manager
213 // -- call ! ) to make all cross-sections updated with current step, and hence available before the
214 // -- first call to the biasing operator.
215 // ---------------------------------------------------------------------------------------------------
216 if ( fIamFirstGPIL )
217 {
218 // -- Update previous biasing operator, and assume the operator stays the same by
219 // -- default and that it is not left at the beginning of this step. These
220 // -- assumptions might be wrong if there is a volume change (in paralllel or
221 // -- mass geometries) in what case the flags will be updated.
225 // -- If new volume, either in mass or parallel geometries, get possible new biasing operator:
226 // -------------------------------------------------------------------------------------------
227 // -- Get biasing operator in parallel geometries:
228 G4bool firstStepInParallelVolume = false;
230 {
231 G4VBiasingOperator* newParallelOperator( nullptr );
232 G4bool firstStep = ( track.GetCurrentStepNumber() == 1 );
233 size_t iParallel = 0;
235 {
236 if ( firstStep || wasLimiting )
237 {
238 firstStepInParallelVolume = true;
239
241 ->GetLogicalVolume() );
242 if ( newParallelOperator )
243 {
244 if ( tmpParallelOperator )
245 {
247 ed << " Several biasing operators are defined at the same place in parallel geometries ! Found:\n";
248 ed << " - `" << newParallelOperator->GetName() << "' and \n";
249 ed << " - `" << tmpParallelOperator->GetName() << "'.\n";
250 ed << " Keeping `" << newParallelOperator->GetName() << "'. Behavior not guaranteed ! Please consider having only one operator at a place. " << G4endl;
251 G4Exception(" G4BiasingProcessInterface::PostStepGetPhysicalInteractionLength(...)",
252 "BIAS.GEN.30",
254 ed);
255 }
256 }
257 else newParallelOperator = tmpParallelOperator;
258 }
259 iParallel++;
260 }
261 fSharedData->fParallelGeometryOperator = newParallelOperator;
262 } // -- end of " if ( fSharedData->fParallelGeometriesLimiterProcess )"
263
264 // -- Get biasing operator in mass geometry:
265 // -- [§§ Note : bug with this first step ? Does not work if previous step was concurrently limited with geometry. Might make use of safety at last point ?]
266 G4bool firstStepInVolume = ( (track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) || (track.GetCurrentStepNumber() == 1) );
267 // fSharedData->fIsNewOperator = false;
268 // fSharedData->fLeavingPreviousOperator = false;
269 if ( firstStepInVolume )
270 {
272 fSharedData->fMassGeometryOperator = newOperator;
273 if ( ( newOperator != nullptr ) && ( fSharedData->fParallelGeometryOperator != nullptr ) )
274 {
276 ed << " Biasing operators are defined at the same place in mass and parallel geometries ! Found:\n";
277 ed << " - `" << fSharedData->fParallelGeometryOperator->GetName() << "' in parallel geometry and \n";
278 ed << " - `" << newOperator->GetName() << "' in mass geometry.\n";
279 ed << " Keeping `" << fSharedData->fParallelGeometryOperator->GetName() << "'. Behavior not guaranteed ! Please consider having only one operator at a place. " << G4endl;
280 G4Exception(" G4BiasingProcessInterface::PostStepGetPhysicalInteractionLength(...)",
281 "BIAS.GEN.31",
283 ed);
284 }
285 }
286
287 // -- conclude the operator selection, giving priority to parallel geometry (as told in exception message BIAS.GEN.30):
288 if ( firstStepInVolume || firstStepInParallelVolume )
289 {
291 if ( newOperator == nullptr ) newOperator = fSharedData->fMassGeometryOperator;
292
293 fSharedData->fCurrentBiasingOperator = newOperator ;
294
295 if ( newOperator != fSharedData->fPreviousBiasingOperator )
296 {
298 fSharedData->fIsNewOperator = ( newOperator != nullptr );
299 }
300 }
301
302
303 // -- calls to wrapped process PostStepGPIL's:
304 // -------------------------------------------
305 // -- Each physics wrapper process has its
306 // -- fWrappedProcessPostStepGPIL ,
307 // -- fWrappedProcessForceCondition ,
308 // -- fWrappedProcessInteractionLength
309 // -- updated.
310 if ( fSharedData->fCurrentBiasingOperator != nullptr )
311 {
312 for ( size_t i = 0 ; i < (fSharedData->fPhysicsBiasingProcessInterfaces).size(); i++ )
313 (fSharedData->fPhysicsBiasingProcessInterfaces)[i]->InvokeWrappedProcessPostStepGPIL( track, previousStepSize, condition );
314 }
315 } // -- end of "if ( fIamFirstGPIL )"
316
317
318
319 // -- Remember previous operator and proposed operations, if any, and reset:
320 // -------------------------------------------------------------------------
321 // -- remember only in case some biasing might be called
322 if ( ( fSharedData->fPreviousBiasingOperator != 0 ) ||
324 {
329 // -- reset:
334 // -- Physics PostStep and AlongStep GPIL
335 // fWrappedProcessPostStepGPIL : updated by InvokeWrappedProcessPostStepGPIL(...) above
337 // fWrappedProcessInteractionLength : updated by InvokeWrappedProcessPostStepGPIL(...) above; inverse of analog cross-section.
338 // fWrappedProcessForceCondition : updated by InvokeWrappedProcessPostStepGPIL(...) above
344 // -- for helper:
345 fPreviousStepSize = previousStepSize;
346 }
347
348
349 // -- previous step size value; it is switched to zero if resetting a wrapped process:
350 // -- (same trick used than in InvokedWrappedProcessPostStepGPIL )
351 G4double usedPreviousStepSize = previousStepSize;
352
353 // ----------------------------------------------
354 // -- If leaving a biasing operator, let it know:
355 // ----------------------------------------------
357 {
358 (fSharedData->fPreviousBiasingOperator)->ExitingBiasing( &track, this );
359 // -- if no further biasing operator, reset process behavior to standard tracking:
361 {
364 {
365 // -- if the physics process has been under occurrence biasing, reset it:
367 {
370 // -- We set "previous step size" as 0.0, to let the process believe this is first step:
371 usedPreviousStepSize = 0.0;
372 }
373 }
374 }
375 }
376
377
378 // --------------------------------------------------------------
379 // -- no operator : analog tracking if physics-based, or nothing:
380 // --------------------------------------------------------------
382 {
383 // -- take note of the "usedPreviousStepSize" value:
385 else
386 {
388 return DBL_MAX;
389 }
390 }
391
392 // --------------------------------------------------
393 // -- A biasing operator exists. Proceed with
394 // -- treating non-physics and physics biasing cases:
395 //---------------------------------------------------
396
397 // -- non-physics-based biasing case:
398 // ----------------------------------
400 {
401 fNonPhysicsBiasingOperation = (fSharedData->fCurrentBiasingOperator)->GetProposedNonPhysicsBiasingOperation( &track, this );
403 {
405 return DBL_MAX;
406 }
407 return fNonPhysicsBiasingOperation->DistanceToApplyOperation(&track, previousStepSize, condition);
408 }
409
410
411 // -- Physics based biasing case:
412 // ------------------------------
413 // -- Ask for possible GPIL biasing operation:
414 fOccurenceBiasingOperation = (fSharedData->fCurrentBiasingOperator)->GetProposedOccurenceBiasingOperation( &track, this );
415
416
417 // -- no operation for occurrence biasing, analog GPIL returns the wrapped process GPIL and condition values
419 {
422 }
423
424 // -- A valid GPIL biasing operation has been proposed:
425 // -- 0) remember wrapped process will need to be reset on biasing exit, if particle survives:
427 // -- 1) update process interaction length for reference analog interaction law ( fWrappedProcessInteractionLength updated/collected above):
429 // -- 2) Collect biasing interaction law:
430 // -- The interaction law pointer is collected as a const pointer to the interaction law object.
431 // -- This interaction law will be kept under control of the biasing operation, which is the only
432 // -- entity that will change the state of the biasing interaction law.
433 // -- The force condition for biasing is asked at the same time, passing the analog one as default:
436 // -- 3) Ask operation to sample the biasing interaction law:
438
439 // -- finish
442
443}
@ fGeomBoundary
Definition: G4StepStatus.hh:43
G4ParallelGeometriesLimiterProcess * fParallelGeometriesLimiterProcess
std::vector< G4BiasingProcessInterface * > fPhysicsBiasingProcessInterfaces
G4VBiasingOperator * fParallelGeometryOperator
void SetPhysicalCrossSection(G4double crossSection)
const std::vector< const G4VPhysicalVolume * > & GetCurrentVolumes() const
const std::vector< G4bool > & GetWasLimiting() const
G4StepStatus GetStepStatus() const
G4StepPoint * GetPreStepPoint() const
G4VPhysicalVolume * GetVolume() const
G4int GetCurrentStepNumber() const
const G4Step * GetStep() const
G4double GetSampledInteractionLength() const
virtual G4double DistanceToApplyOperation(const G4Track *, G4double, G4ForceCondition *)=0
virtual const G4VBiasingInteractionLaw * ProvideOccurenceBiasingInteractionLaw(const G4BiasingProcessInterface *, G4ForceCondition &)=0
const G4String GetName() const
static G4VBiasingOperator * GetBiasingOperator(const G4LogicalVolume *)
G4LogicalVolume * GetLogicalVolume() const

References condition(), DBL_MAX, G4VBiasingOperation::DistanceToApplyOperation(), fBiasingAlongStepGPIL, fBiasingForceCondition, fBiasingGPILSelection, fBiasingInteractionLaw, fBiasingPostStepGPIL, G4BiasingProcessSharedData::fCurrentBiasingOperator, fFinalStateBiasingOperation, fGeomBoundary, fIamFirstGPIL, G4BiasingProcessSharedData::fIsNewOperator, fIsPhysicsBasedBiasing, G4BiasingProcessSharedData::fLeavingPreviousOperator, G4BiasingProcessSharedData::fMassGeometryOperator, fNonPhysicsBiasingOperation, fOccurenceBiasingOperation, G4BiasingProcessSharedData::fParallelGeometriesLimiterProcess, G4BiasingProcessSharedData::fParallelGeometryOperator, fPhysicalInteractionLaw, G4BiasingProcessSharedData::fPhysicsBiasingProcessInterfaces, fPreviousBiasingInteractionLaw, G4BiasingProcessSharedData::fPreviousBiasingOperator, fPreviousFinalStateBiasingOperation, fPreviousNonPhysicsBiasingOperation, fPreviousOccurenceBiasingOperation, fPreviousStepSize, fResetWrappedProcessInteractionLength, fSharedData, fWrappedProcess, fWrappedProcessAlongStepGPIL, fWrappedProcessForceCondition, fWrappedProcessGPILSelection, fWrappedProcessInteractionLength, fWrappedProcessPostStepGPIL, G4endl, G4Exception(), G4VBiasingOperator::GetBiasingOperator(), G4Track::GetCurrentStepNumber(), G4ParallelGeometriesLimiterProcess::GetCurrentVolumes(), G4VPhysicalVolume::GetLogicalVolume(), G4VBiasingOperator::GetName(), G4Step::GetPreStepPoint(), G4VBiasingInteractionLaw::GetSampledInteractionLength(), G4Track::GetStep(), G4StepPoint::GetStepStatus(), G4Track::GetVolume(), G4ParallelGeometriesLimiterProcess::GetWasLimiting(), JustWarning, NotCandidateForSelection, NotForced, G4VProcess::PostStepGetPhysicalInteractionLength(), G4VBiasingOperation::ProvideOccurenceBiasingInteractionLaw(), ResetForUnbiasedTracking(), G4VProcess::ResetNumberOfInteractionLengthLeft(), and G4InteractionLawPhysical::SetPhysicalCrossSection().

◆ PostStepGPIL()

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

◆ PreparePhysicsTable()

void G4BiasingProcessInterface::PreparePhysicsTable ( const G4ParticleDefinition pd)
virtual

Reimplemented from G4VProcess.

Definition at line 773 of file G4BiasingProcessInterface.cc.

774{
775 // -- Sequential mode : called first (before BuildPhysicsTable(..))
776 // -- MT mode : called first (before BuildPhysicsTable(..)) by master thread.
777 // -- Corresponding process instance not used then by tracking.
778 // -- Let process finding its first/last position in the process manager:
780 if ( fWrappedProcess != 0 )
781 {
783 }
784}
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:194

References fWrappedProcess, G4VProcess::PreparePhysicsTable(), and SetUpFirstLastFlags().

◆ PrepareWorkerPhysicsTable()

void G4BiasingProcessInterface::PrepareWorkerPhysicsTable ( const G4ParticleDefinition pd)
virtual

Reimplemented from G4VProcess.

Definition at line 868 of file G4BiasingProcessInterface.cc.

869{
870 // -- Sequential mode : not called
871 // -- MT mode : called first, before BuildWorkerPhysicsTable(..)
872 // -- Let process finding its first/last position in the process manager:
874
875 if ( fWrappedProcess != 0 )
876 {
878 }
879}
virtual void PrepareWorkerPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.cc:206

References fWrappedProcess, G4VProcess::PrepareWorkerPhysicsTable(), and SetUpFirstLastFlags().

◆ ProcessDescription()

void G4VProcess::ProcessDescription ( std::ostream &  outfile) const
virtualinherited

Reimplemented in G4AdjointAlongStepWeightCorrection, G4AdjointForcedInteractionForGamma, G4AdjointhMultipleScattering, G4ContinuousGainOfEnergy, G4eAdjointMultipleScattering, G4eInverseBremsstrahlung, G4eInverseCompton, G4eInverseIonisation, G4InversePEEffect, G4IonInverseIonisation, G4eeToHadrons, G4hBremsstrahlung, G4hhIonisation, G4hPairProduction, G4mplIonisation, G4RayleighScattering, G4ePairProduction, G4MuBremsstrahlung, G4MuIonisation, G4MuMultipleScattering, G4MuPairProduction, G4PolarizedAnnihilation, G4PolarizedBremsstrahlung, G4PolarizedCompton, G4PolarizedGammaConversion, G4PolarizedIonisation, G4PolarizedPhotoElectric, G4ComptonScattering, G4CoulombScattering, G4eBremsstrahlung, G4eIonisation, G4eMultipleScattering, G4eplusAnnihilation, G4GammaConversion, G4hIonisation, G4hMultipleScattering, G4ionIonisation, G4NuclearStopping, G4PhotoElectricEffect, G4ForwardXrayTR, G4GammaXTRadiator, G4GaussXTRadiator, G4RegularXTRadiator, G4Scintillation, G4StrawTubeXTRadiator, G4SynchrotronRadiation, G4TransitionRadiation, G4TransparentRegXTRadiator, G4VTransitionRadiation, G4VXTRenergyLoss, G4XTRGammaRadModel, G4XTRRegularRadModel, G4XTRTransparentRegRadModel, G4Cerenkov, G4Radioactivation, G4RadioactiveDecay, G4ElectronNuclearProcess, G4MuonNuclearProcess, G4NeutrinoElectronProcess, G4NeutronFissionProcess, G4PositronNuclearProcess, G4HadronicAbsorptionBertini, G4HadronicAbsorptionFritiof, G4HadronicAbsorptionFritiofWithBinaryCascade, G4HadronStoppingProcess, G4MuonicAtomDecay, G4MuonMinusAtomicCapture, G4MuonMinusCapture, G4Transportation, G4NeutronCaptureProcess, G4GammaGeneralProcess, G4Decay, G4DecayWithSpin, G4PionDecayMakeSpin, G4UnknownDecay, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4HadronicProcess, G4ElNeutrinoNucleusProcess, G4HadronElasticProcess, and G4MuNeutrinoNucleusProcess.

Definition at line 175 of file G4VProcess.cc.

176{
177 outFile << "This process has not yet been described\n";
178}

Referenced by G4LossTableManager::DumpHtml(), G4HadronicProcessStore::PrintHtml(), and G4GammaGeneralProcess::ProcessDescription().

◆ ReorderBiasingVectorAsGPIL()

void G4BiasingProcessInterface::ReorderBiasingVectorAsGPIL ( )
private

Definition at line 1075 of file G4BiasingProcessInterface.cc.

1076{
1077 // -- re-order vector of processes to match that of the GPIL:
1078 std::vector < G4BiasingProcessInterface* > tmpProcess ( fSharedData->fBiasingProcessInterfaces );
1079 ( fSharedData -> fBiasingProcessInterfaces ) . clear();
1080 ( fSharedData -> fPhysicsBiasingProcessInterfaces ) . clear();
1081 ( fSharedData -> fNonPhysicsBiasingProcessInterfaces ) . clear();
1082 ( fSharedData -> fPublicBiasingProcessInterfaces ) . clear();
1083 ( fSharedData -> fPublicPhysicsBiasingProcessInterfaces ) . clear();
1084 ( fSharedData -> fPublicNonPhysicsBiasingProcessInterfaces ) . clear();
1085
1087 for (std::size_t i = 0; i < pv->size(); ++i )
1088 {
1089 for ( std::size_t j = 0; j < tmpProcess.size(); ++j )
1090 {
1091 if ( (*pv)(i) == tmpProcess[j] )
1092 {
1093 ( fSharedData -> fBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1094 ( fSharedData -> fPublicBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1095 if ( tmpProcess[j] -> fIsPhysicsBasedBiasing )
1096 {
1097 ( fSharedData -> fPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1098 ( fSharedData -> fPublicPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1099 }
1100 else
1101 {
1102 ( fSharedData -> fNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1103 ( fSharedData -> fPublicNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] );
1104 }
1105 break;
1106 }
1107 }
1108 }
1109}

References G4BiasingProcessSharedData::fBiasingProcessInterfaces, fIsPhysicsBasedBiasing, fProcessManager, fSharedData, G4ProcessManager::GetPostStepProcessVector(), G4ProcessVector::size(), and typeGPIL.

Referenced by BuildPhysicsTable(), and BuildWorkerPhysicsTable().

◆ ResetForUnbiasedTracking()

void G4BiasingProcessInterface::ResetForUnbiasedTracking ( )
private

◆ ResetNumberOfInteractionLengthLeft()

void G4BiasingProcessInterface::ResetNumberOfInteractionLengthLeft ( )
virtual

◆ RetrievePhysicsTable()

G4bool G4BiasingProcessInterface::RetrievePhysicsTable ( const G4ParticleDefinition pd,
const G4String s,
G4bool  f 
)
virtual

Reimplemented from G4VProcess.

Definition at line 794 of file G4BiasingProcessInterface.cc.

795{
796 if ( fWrappedProcess != 0 ) return fWrappedProcess->RetrievePhysicsTable(pd, s, f);
797 else return false;
798}
static constexpr double s
Definition: G4SIunits.hh:154
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
Definition: G4VProcess.hh:211

References fWrappedProcess, G4VProcess::RetrievePhysicsTable(), and s.

◆ SetMasterProcess()

void G4BiasingProcessInterface::SetMasterProcess ( G4VProcess masterP)
virtual

Reimplemented from G4VProcess.

Definition at line 725 of file G4BiasingProcessInterface.cc.

726{
727 // -- Master for this process:
729 // -- Master for wrapped process:
730 if ( fWrappedProcess != 0 )
731 {
732 const G4BiasingProcessInterface* thisWrapperMaster = (const G4BiasingProcessInterface *)GetMasterProcess();
733 // -- paranoia check: (?)
734 G4VProcess* wrappedMaster = 0;
735 wrappedMaster = thisWrapperMaster->GetWrappedProcess();
736 fWrappedProcess->SetMasterProcess( wrappedMaster );
737 }
738}
G4VProcess * GetWrappedProcess() const
const G4VProcess * GetMasterProcess() const
Definition: G4VProcess.hh:518
virtual void SetMasterProcess(G4VProcess *masterP)
Definition: G4VProcess.cc:212

References fWrappedProcess, G4VProcess::GetMasterProcess(), GetWrappedProcess(), and G4VProcess::SetMasterProcess().

◆ 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 G4BiasingProcessInterface::SetProcessManager ( const G4ProcessManager mgr)
virtual

Reimplemented from G4VProcess.

Definition at line 801 of file G4BiasingProcessInterface.cc.

802{
805
806 // -- initialize fSharedData pointer:
808 {
811 }
813 // -- augment list of co-operating processes:
814 fSharedData-> fBiasingProcessInterfaces.push_back( this );
815 fSharedData-> fPublicBiasingProcessInterfaces.push_back( this );
817 {
818 fSharedData-> fPhysicsBiasingProcessInterfaces.push_back( this );
819 fSharedData-> fPublicPhysicsBiasingProcessInterfaces.push_back( this );
820 }
821 else
822 {
823 fSharedData-> fNonPhysicsBiasingProcessInterfaces.push_back( this );
824 fSharedData-> fPublicNonPhysicsBiasingProcessInterfaces.push_back( this );
825 }
826 // -- remember process manager:
827 fProcessManager = mgr;
828}
virtual void SetProcessManager(const G4ProcessManager *)
Definition: G4VProcess.hh:488

References fIsPhysicsBasedBiasing, fProcessManager, fSharedData, G4BiasingProcessSharedData::fSharedDataMap, fWrappedProcess, and G4VProcess::SetProcessManager().

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

◆ SetProposedSafety()

void G4BiasingProcessInterface::SetProposedSafety ( G4double  sft)
inline

Definition at line 150 of file G4BiasingProcessInterface.hh.

150{ fProposedSafety = sft;}

References fProposedSafety.

◆ SetUpFirstLastFlags()

void G4BiasingProcessInterface::SetUpFirstLastFlags ( )
private

Definition at line 1024 of file G4BiasingProcessInterface.cc.

1025{
1026 for ( G4int iPhys = 0; iPhys < 2; iPhys++ )
1027 {
1028 G4bool physOnly = ( iPhys == 1 );
1030 fFirstLastFlags[IdxFirstLast( 0, 1, iPhys)] = IsLastPostStepGPILInterface(physOnly);
1032 fFirstLastFlags[IdxFirstLast( 0, 0, iPhys)] = IsLastPostStepDoItInterface(physOnly);
1033 }
1034
1035 // -- for itself, for optimization:
1037}
G4bool GetIsFirstPostStepGPILInterface(G4bool physOnly=true) const
G4bool IsLastPostStepGPILInterface(G4bool physOnly=true) const
G4bool IsFirstPostStepDoItInterface(G4bool physOnly=true) const
G4bool IsLastPostStepDoItInterface(G4bool physOnly=true) const
G4bool IsFirstPostStepGPILInterface(G4bool physOnly=true) const

References fFirstLastFlags, fIamFirstGPIL, GetIsFirstPostStepGPILInterface(), IdxFirstLast(), IsFirstPostStepDoItInterface(), IsFirstPostStepGPILInterface(), IsLastPostStepDoItInterface(), and IsLastPostStepGPILInterface().

Referenced by PreparePhysicsTable(), and PrepareWorkerPhysicsTable().

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ StartTracking()

void G4BiasingProcessInterface::StartTracking ( G4Track track)
virtual

Reimplemented from G4VProcess.

Definition at line 150 of file G4BiasingProcessInterface.cc.

151{
152 fCurrentTrack = track;
162
163 fPreviousStepSize = -1.0;
164
166
167 if ( fCommonStart.Get() )
168 {
169 fCommonStart.Put( false );// = false;
170 fCommonEnd .Put( true );// = true;
171
172 fSharedData-> fCurrentBiasingOperator = 0;
174
175 // -- §§ Add a "fSharedData->nStarting" here and outside bracket "fSharedData->nStarting++" and " if (fSharedData->nStarting) == fSharedData->(vector interface length)"
176 // -- §§ call to the loop "StartTracking" of operators"
177
178 for ( size_t optr = 0 ; optr < ( G4VBiasingOperator::GetBiasingOperators() ).size() ; optr ++)
180 }
181}
virtual void StartTracking(G4Track *)
Definition: G4VProcess.cc:87

References fBiasingInteractionLaw, fCommonEnd, fCommonStart, fCurrentTrack, fFinalStateBiasingOperation, fIsPhysicsBasedBiasing, fNonPhysicsBiasingOperation, fOccurenceBiasingOperation, fPreviousBiasingInteractionLaw, G4BiasingProcessSharedData::fPreviousBiasingOperator, fPreviousFinalStateBiasingOperation, fPreviousNonPhysicsBiasingOperation, fPreviousOccurenceBiasingOperation, fPreviousStepSize, fResetWrappedProcessInteractionLength, fSharedData, fWrappedProcess, G4Cache< VALTYPE >::Get(), G4VBiasingOperator::GetBiasingOperators(), G4Cache< VALTYPE >::Put(), G4VProcess::StartTracking(), and StartTracking().

Referenced by StartTracking().

◆ StorePhysicsTable()

G4bool G4BiasingProcessInterface::StorePhysicsTable ( const G4ParticleDefinition pd,
const G4String s,
G4bool  f 
)
virtual

Reimplemented from G4VProcess.

Definition at line 787 of file G4BiasingProcessInterface.cc.

788{
789 if ( fWrappedProcess != 0 ) return fWrappedProcess->StorePhysicsTable(pd, s, f);
790 else return false;
791}
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
Definition: G4VProcess.hh:206

References fWrappedProcess, s, and G4VProcess::StorePhysicsTable().

◆ 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}
@ EventMustBeAborted
G4GLOB_DLL std::ostream G4cerr
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().

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

◆ 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

◆ fBiasingAlongStepGPIL

G4double G4BiasingProcessInterface::fBiasingAlongStepGPIL
private

◆ fBiasingForceCondition

G4ForceCondition G4BiasingProcessInterface::fBiasingForceCondition
private

Definition at line 236 of file G4BiasingProcessInterface.hh.

Referenced by PostStepGetPhysicalInteractionLength().

◆ fBiasingGPILSelection

G4GPILSelection G4BiasingProcessInterface::fBiasingGPILSelection
private

◆ fBiasingInteractionLaw

const G4VBiasingInteractionLaw* G4BiasingProcessInterface::fBiasingInteractionLaw
private

◆ fBiasingPostStepGPIL

G4double G4BiasingProcessInterface::fBiasingPostStepGPIL
private

◆ fCommonEnd

G4Cache< G4bool > G4BiasingProcessInterface::fCommonEnd
staticprivate

◆ fCommonStart

G4Cache< G4bool > G4BiasingProcessInterface::fCommonStart
staticprivate

◆ fCurrentMinimumStep

G4double G4BiasingProcessInterface::fCurrentMinimumStep
private

◆ fCurrentTrack

G4Track* G4BiasingProcessInterface::fCurrentTrack
private

Definition at line 211 of file G4BiasingProcessInterface.hh.

Referenced by EndTracking(), and StartTracking().

◆ fDoCommonConfigure

G4Cache< G4bool > G4BiasingProcessInterface::fDoCommonConfigure
staticprivate

◆ fDummyParticleChange

G4ParticleChangeForNothing* G4BiasingProcessInterface::fDummyParticleChange
private

◆ fFinalStateBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fFinalStateBiasingOperation
private

◆ fFirstLastFlags

G4bool G4BiasingProcessInterface::fFirstLastFlags[8]
private

◆ fIamFirstGPIL

G4bool G4BiasingProcessInterface::fIamFirstGPIL
private

◆ fIsPhysicsBasedBiasing

const G4bool G4BiasingProcessInterface::fIsPhysicsBasedBiasing
private

◆ fNonPhysicsBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fNonPhysicsBiasingOperation
private

◆ fOccurenceBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fOccurenceBiasingOperation
private

◆ fOccurenceBiasingParticleChange

G4ParticleChangeForOccurenceBiasing* G4BiasingProcessInterface::fOccurenceBiasingParticleChange
private

◆ fPhysicalInteractionLaw

G4InteractionLawPhysical* G4BiasingProcessInterface::fPhysicalInteractionLaw
private

◆ fPreviousBiasingInteractionLaw

const G4VBiasingInteractionLaw* G4BiasingProcessInterface::fPreviousBiasingInteractionLaw
private

◆ fPreviousFinalStateBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fPreviousFinalStateBiasingOperation
private

◆ fPreviousNonPhysicsBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fPreviousNonPhysicsBiasingOperation
private

◆ fPreviousOccurenceBiasingOperation

G4VBiasingOperation* G4BiasingProcessInterface::fPreviousOccurenceBiasingOperation
private

◆ fPreviousStepSize

G4double G4BiasingProcessInterface::fPreviousStepSize
private

◆ fProcessManager

const G4ProcessManager* G4BiasingProcessInterface::fProcessManager
private

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fProposedSafety

G4double G4BiasingProcessInterface::fProposedSafety
private

◆ fResetInteractionLaws

G4Cache< G4bool > G4BiasingProcessInterface::fResetInteractionLaws
staticprivate

Definition at line 265 of file G4BiasingProcessInterface.hh.

Referenced by G4BiasingProcessInterface().

◆ fResetWrappedProcessInteractionLength

G4bool G4BiasingProcessInterface::fResetWrappedProcessInteractionLength
private

◆ fSharedData

G4BiasingProcessSharedData* G4BiasingProcessInterface::fSharedData
private

◆ fWrappedProcess

G4VProcess* G4BiasingProcessInterface::fWrappedProcess
private

◆ fWrappedProcessAlongStepGPIL

G4double G4BiasingProcessInterface::fWrappedProcessAlongStepGPIL
private

◆ fWrappedProcessForceCondition

G4ForceCondition G4BiasingProcessInterface::fWrappedProcessForceCondition
private

◆ fWrappedProcessGPILSelection

G4GPILSelection G4BiasingProcessInterface::fWrappedProcessGPILSelection
private

◆ fWrappedProcessInteractionLength

G4double G4BiasingProcessInterface::fWrappedProcessInteractionLength
private

◆ fWrappedProcessIsAlong

const G4bool G4BiasingProcessInterface::fWrappedProcessIsAlong
private

◆ fWrappedProcessIsAtRest

const G4bool G4BiasingProcessInterface::fWrappedProcessIsAtRest
private

Definition at line 227 of file G4BiasingProcessInterface.hh.

Referenced by GetWrappedProcessIsAtRest().

◆ fWrappedProcessIsPost

const G4bool G4BiasingProcessInterface::fWrappedProcessIsPost
private

Definition at line 229 of file G4BiasingProcessInterface.hh.

Referenced by GetWrappedProcessIsPost().

◆ fWrappedProcessPostStepGPIL

G4double G4BiasingProcessInterface::fWrappedProcessPostStepGPIL
private

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

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

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

◆ theInitialNumberOfInteractionLength

G4double G4VProcess::theInitialNumberOfInteractionLength = -1.0
protectedinherited

◆ 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

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

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


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