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

#include <G4CoupledTransportation.hh>

Inheritance diagram for G4CoupledTransportation:
G4VProcess

Public Member Functions

G4VParticleChangeAlongStepDoIt (const G4Track &track, const G4Step &stepData)
 
G4double AlongStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &currentSafety, G4GPILSelection *selection)
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
virtual void DumpInfo () const
 
void EndTracking ()
 
 G4CoupledTransportation (G4int verbosityLevel=0)
 
G4double GetCurrentInteractionLength () const
 
const G4VProcessGetMasterProcess () const
 
G4double GetMaxEnergyKilled () const
 
G4double GetNumberOfInteractionLengthLeft () const
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
virtual const G4ProcessManagerGetProcessManager ()
 
const G4StringGetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
G4PropagatorInFieldGetPropagatorInField ()
 
G4double GetSumEnergyKilled () const
 
G4double GetThresholdImportantEnergy () const
 
G4int GetThresholdTrials () const
 
G4double GetThresholdWarningEnergy () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4bool isAlongStepDoItIsEnabled () const
 
virtual G4bool IsApplicable (const G4ParticleDefinition &)
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool IsFirstStepInAnyVolume () const
 
G4bool IsFirstStepInMassVolume () const
 
G4bool IsLastStepInAnyVolume () const
 
G4bool IsLastStepInMassVolume () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4bool operator== (const G4VProcess &right) const
 
G4VParticleChangePostStepDoIt (const G4Track &track, const G4Step &stepData)
 
G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4ForceCondition *pForceCond)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
void PrintStatistics (std::ostream &outStr) const
 
virtual void ProcessDescription (std::ostream &outfile) const
 
void PushThresholdsToLogger ()
 
void ReportLooperThresholds ()
 
void ResetKilledStatistics (G4int report=1)
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
void SetHighLooperThresholds ()
 
void SetLowLooperThresholds ()
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetPropagatorInField (G4PropagatorInField *pFieldPropagator)
 
void SetThresholdImportantEnergy (G4double newEnImp)
 
void SetThresholdTrials (G4int newMaxTrials)
 
void SetThresholdWarningEnergy (G4double newEnWarn)
 
void SetVerboseLevel (G4int value)
 
void StartTracking (G4Track *aTrack)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
 ~G4CoupledTransportation ()
 

Static Public Member Functions

static G4bool EnableGravity (G4bool useGravity)
 
static G4bool EnableMagneticMoment (G4bool useMoment=true)
 
static G4bool EnableUseMagneticMoment (G4bool useMoment=true)
 
static const G4StringGetProcessTypeName (G4ProcessType)
 
static G4bool GetSignifyStepsInAnyVolume ()
 
static G4bool GetSilenceLooperWarnings ()
 
static void SetSignifyStepsInAnyVolume (G4bool anyVol)
 
static void SetSilenceLooperWarnings (G4bool val)
 

Protected Member Functions

void ClearNumberOfInteractionLengthLeft ()
 
G4bool DoesAnyFieldExist ()
 
void ReportInexactEnergy (G4double startEnergy, G4double endEnergy)
 
void ReportMissingLogger (const char *methodName)
 
void ReportMove (G4ThreeVector OldVector, G4ThreeVector NewVector, const G4String &Quantity)
 
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 Attributes

G4bool fAnyFieldExists
 
G4bool fAnyGeometryLimitedStep
 
G4double fCandidateEndGlobalTime
 
G4TouchableHandle fCurrentTouchableHandle
 
G4bool fEndGlobalTimeComputed
 
G4double fEndpointDistance
 
G4PropagatorInFieldfFieldPropagator
 
G4bool fFirstStepInAnyVolume
 
G4bool fFirstStepInMassVolume
 
G4bool fMassGeometryLimitedStep
 
G4NavigatorfMassNavigator
 
G4double fMaxEnergyKilled = -1.0
 
G4int fMaxEnergyKilled_NonElecPDG = 0
 
G4double fMaxEnergyKilled_NonElectron = -1.0
 
G4int fMaxEnergyKilledPDG = 0
 
G4double fMaxEnergySaved = -1.0
 
G4bool fMomentumChanged
 
G4int fNavigatorId
 
G4bool fNewTrack
 
G4int fNoLooperTrials =0
 
unsigned long fNumLoopersKilled = 0
 
unsigned long fNumLoopersKilled_NonElectron = 0
 
G4ParticleChangeForTransport fParticleChange
 
G4bool fParticleIsLooping
 
G4PathFinderfPathFinder
 
G4TransportationLoggerfpLogger
 
G4double fPreviousFullSafety
 
G4double fPreviousMassSafety
 
G4ThreeVector fPreviousSftOrigin
 
G4ProcessTablefProcessTable = nullptr
 
G4SafetyHelperfpSafetyHelper
 
G4double fSumEnergyKilled = 0.0
 
G4double fSumEnergyKilled_NonElectron = 0.0
 
G4double fSumEnergySaved = 0.0
 
G4double fSumEnergyUnstableSaved = 0.0
 
G4double fSumEnerSqKilled = 0.0
 
G4double fSumEnerSqKilled_NonElectron = 0.0
 
G4double fThreshold_Important_Energy = 1.0 * CLHEP::MeV
 
G4double fThreshold_Warning_Energy = 1.0 * CLHEP::keV
 
G4int fThresholdTrials = 10
 
G4double fTransportEndKineticEnergy
 
G4ThreeVector fTransportEndMomentumDir
 
G4ThreeVector fTransportEndPosition
 
G4ThreeVector fTransportEndSpin
 
G4VProcessmasterProcessShadow = nullptr
 

Static Private Attributes

static G4bool fSignifyStepInAnyVolume = false
 
static G4bool fSilenceLooperWarnings = false
 
static G4bool fUseGravity = false
 
static G4bool fUseMagneticMoment =false
 

Friends

class G4Transportation
 

Detailed Description

Definition at line 65 of file G4CoupledTransportation.hh.

Constructor & Destructor Documentation

◆ G4CoupledTransportation()

G4CoupledTransportation::G4CoupledTransportation ( G4int  verbosityLevel = 0)

Definition at line 62 of file G4CoupledTransportation.cc.

63 : G4VProcess( G4String("CoupledTransportation"), fTransportation ),
64 fTransportEndPosition(0.0, 0.0, 0.0),
65 fTransportEndMomentumDir(0.0, 0.0, 0.0),
67 fTransportEndSpin(0.0, 0.0, 0.0),
68 fMomentumChanged(false),
71 fParticleIsLooping( false ),
72 fNewTrack( true ),
73 fPreviousSftOrigin( 0.,0.,0. ),
78 fEndpointDistance( -1.0 ),
79 fSumEnergyKilled( 0.0 ), fMaxEnergyKilled( 0.0 ),
82{
84 SetVerboseLevel(verbosity);
85
86 G4TransportationManager* transportMgr ;
87
89
90 fMassNavigator = transportMgr->GetNavigatorForTracking() ;
91 fFieldPropagator = transportMgr->GetPropagatorInField() ;
92 // fGlobalFieldMgr = transportMgr->GetFieldManager() ;
94 if( verboseLevel > 0 )
95 {
96 G4cout << " G4CoupledTransportation constructor: ----- " << G4endl;
97 G4cout << " Verbose level is " << verboseLevel << G4endl;
98 G4cout << " Navigator Id obtained in G4CoupledTransportation constructor "
99 << fNavigatorId << G4endl;
100 G4cout << " Reports First/Last in "
101 << (fSignifyStepInAnyVolume ? " any " : " mass " )
102 << " geometry " << G4endl;
103 }
105 fpSafetyHelper = transportMgr->GetSafetyHelper(); // New
106
107 fpLogger = new G4TransportationLogger("G4Transportation", verbosity);
108
110 // Use the old defaults: Warning = 100 MeV, Important = 250 MeV, No Trials = 10;
111
113 // Should be done by Set methods in SetHighLooperThresholds -- making sure
114
115 static G4ThreadLocal G4TouchableHandle* pNullTouchableHandle = 0;
116 if ( !pNullTouchableHandle) { pNullTouchableHandle = new G4TouchableHandle; }
117 fCurrentTouchableHandle = *pNullTouchableHandle;
118 // Points to (G4VTouchable*) 0
119
121}
@ fTransportation
G4ReferenceCountedHandle< G4VTouchable > G4TouchableHandle
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4TransportationLogger * fpLogger
G4TouchableHandle fCurrentTouchableHandle
G4PropagatorInField * fFieldPropagator
static G4PathFinder * GetInstance()
Definition: G4PathFinder.cc:52
static G4TransportationManager * GetTransportationManager()
G4PropagatorInField * GetPropagatorInField() const
G4SafetyHelper * GetSafetyHelper() const
G4Navigator * GetNavigatorForTracking() const
G4int ActivateNavigator(G4Navigator *aNavigator)
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:412
G4int verboseLevel
Definition: G4VProcess.hh:356
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406
#define G4ThreadLocal
Definition: tls.hh:77

References G4TransportationManager::ActivateNavigator(), COUPLED_TRANSPORTATION, DoesAnyFieldExist(), fAnyFieldExists, fCurrentTouchableHandle, fFieldPropagator, fMassNavigator, fNavigatorId, fPathFinder, fpLogger, fpSafetyHelper, fSignifyStepInAnyVolume, G4cout, G4endl, G4ThreadLocal, G4PathFinder::GetInstance(), G4TransportationManager::GetNavigatorForTracking(), G4TransportationManager::GetPropagatorInField(), G4TransportationManager::GetSafetyHelper(), G4TransportationManager::GetTransportationManager(), PushThresholdsToLogger(), SetHighLooperThresholds(), G4VProcess::SetProcessSubType(), G4VProcess::SetVerboseLevel(), and G4VProcess::verboseLevel.

◆ ~G4CoupledTransportation()

G4CoupledTransportation::~G4CoupledTransportation ( )

Definition at line 125 of file G4CoupledTransportation.cc.

126{
127 if( fSumEnergyKilled > 0.0 )
128 {
130 }
131 delete fpLogger;
132}
void PrintStatistics(std::ostream &outStr) const

References fpLogger, fSumEnergyKilled, G4cout, and PrintStatistics().

Member Function Documentation

◆ AlongStepDoIt()

G4VParticleChange * G4CoupledTransportation::AlongStepDoIt ( const G4Track track,
const G4Step stepData 
)
virtual

Implements G4VProcess.

Definition at line 563 of file G4CoupledTransportation.cc.

565{
566 static G4ThreadLocal G4long noCallsCT_ASDI=0;
567 const char *methodName= "AlongStepDoIt";
568
569 noCallsCT_ASDI++;
570
572 // sets all its members to the value of corresponding members in G4Track
573
574 // Code specific for Transport
575 //
580
582
583 G4double deltaTime = 0.0 ;
584
585 // Calculate Lab Time of Flight (ONLY if field Equations used it!)
586 // G4double endTime = fCandidateEndGlobalTime;
587 // G4double delta_time = endTime - startTime;
588
589 G4double startTime = track.GetGlobalTime() ;
590
592 {
593 G4double finalInverseVel= DBL_MAX, initialInverseVel=DBL_MAX;
594
595 // The time was not integrated .. make the best estimate possible
596 //
597 G4double finalVelocity = track.GetVelocity() ;
598 if( finalVelocity > 0.0 ) { finalInverseVel= 1.0 / finalVelocity; }
599 G4double initialVelocity = stepData.GetPreStepPoint()->GetVelocity() ;
600 if( initialVelocity > 0.0 ) { initialInverseVel= 1.0 / initialVelocity; }
601 G4double stepLength = track.GetStepLength() ;
602
603 if (finalVelocity > 0.0)
604 {
605 // deltaTime = stepLength/finalVelocity ;
606 G4double meanInverseVelocity = 0.5
607 * (initialInverseVel + finalInverseVel);
608 deltaTime = stepLength * meanInverseVelocity ;
609 }
610 else
611 {
612 deltaTime = stepLength * initialInverseVel ;
613 } // Could do with better estimate for final step (finalVelocity = 0) ?
614
615 fCandidateEndGlobalTime = startTime + deltaTime ;
616 fParticleChange.ProposeLocalTime( track.GetLocalTime() + deltaTime) ;
617 }
618 else
619 {
620 deltaTime = fCandidateEndGlobalTime - startTime ;
622 }
623
624 // Now Correct by Lorentz factor to get "proper" deltaTime
625
626 G4double restMass = track.GetDynamicParticle()->GetMass() ;
627 G4double deltaProperTime = deltaTime*( restMass/track.GetTotalEnergy() ) ;
628
629 fParticleChange.ProposeProperTime(track.GetProperTime() + deltaProperTime) ;
630 // fParticleChange. ProposeTrueStepLength( track.GetStepLength() ) ;
631
632 // If the particle is caught looping or is stuck (in very difficult
633 // boundaries) in a magnetic field (doing many steps) THEN this kills it ...
634 //
635 if ( fParticleIsLooping )
636 {
638
639 const G4ParticleDefinition* particleType=
640 track.GetDynamicParticle() -> GetParticleDefinition();
641 G4bool stable = particleType->GetPDGStable();
642
643 G4bool candidateForEnd = (endEnergy < fThreshold_Important_Energy)
645
646 if( candidateForEnd && stable )
647 {
648 const G4int electronPDG= 11; // G4Electron::G4Electron()->GetPDGEncoding();
649 G4int particlePDG= particleType->GetPDGEncoding();
650
651 // Kill the looping particle
652 //
654
655 // Simple statistics
656 fSumEnergyKilled += endEnergy;
657 fSumEnerSqKilled = endEnergy * endEnergy;
659
660 if( endEnergy > fMaxEnergyKilled ) {
661 fMaxEnergyKilled = endEnergy;
662 fMaxEnergyKilledPDG = particlePDG;
663 }
664
665 if( particleType->GetPDGEncoding() != electronPDG )
666 {
667 fSumEnergyKilled_NonElectron += endEnergy;
668 fSumEnerSqKilled_NonElectron += endEnergy * endEnergy;
670
671 if( endEnergy > fMaxEnergyKilled_NonElectron )
672 {
674 fMaxEnergyKilled_NonElecPDG = particlePDG;
675 }
676 }
677
679 {
681 noCallsCT_ASDI, methodName );
682 }
683
685 }
686 else
687 {
689
691 if( fNoLooperTrials == 1 ) {
692 fSumEnergySaved += endEnergy;
693 if ( !stable )
694 fSumEnergyUnstableSaved += endEnergy;
695 }
696#ifdef G4VERBOSE
698 {
699 G4cout << " ** G4CoupledTransportation::AlongStepDoIt():"
700 << " Particle is looping but is saved ..." << G4endl
701 << " Number of trials (this track) = " << fNoLooperTrials
702 << G4endl
703 << " Steps by this track: " << track.GetCurrentStepNumber()
704 << G4endl
705 << " Total no of calls to this method (all tracks) = "
706 << noCallsCT_ASDI << G4endl;
707 }
708#endif
709 }
710 }
711 else
712 {
714 }
715
716 // Another (sometimes better way) is to use a user-limit maximum Step size
717 // to alleviate this problem ..
718
719 // Introduce smooth curved trajectories to particle-change
720 //
723
724 return &fParticleChange ;
725}
@ fStopAndKill
double G4double
Definition: G4Types.hh:83
long G4long
Definition: G4Types.hh:87
bool G4bool
Definition: G4Types.hh:86
G4ParticleChangeForTransport fParticleChange
G4double GetMass() const
void SetPointerToVectorOfAuxiliaryPoints(std::vector< G4ThreeVector > *vec)
virtual void Initialize(const G4Track &)
void SetMomentumChanged(G4bool b)
void ProposePolarization(G4double Px, G4double Py, G4double Pz)
void ProposePosition(G4double x, G4double y, G4double z)
void ProposeLocalTime(G4double t)
void ProposeProperTime(G4double finalProperTime)
void ProposeEnergy(G4double finalEnergy)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
void ProposeGlobalTime(G4double t)
G4bool GetPDGStable() const
std::vector< G4ThreeVector > * GimmeTrajectoryVectorAndForgetIt() const
G4double GetVelocity() const
G4StepPoint * GetPreStepPoint() const
G4double GetVelocity() const
G4double GetGlobalTime() const
G4double GetProperTime() const
G4int GetCurrentStepNumber() const
G4double GetLocalTime() const
const G4DynamicParticle * GetDynamicParticle() const
G4double GetStepLength() const
G4double GetTotalEnergy() const
void ReportLoopingTrack(const G4Track &track, const G4Step &stepInfo, G4int numTrials, G4long noCalls, const char *methodName) const
void ProposeTrackStatus(G4TrackStatus status)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, fCandidateEndGlobalTime, fEndGlobalTimeComputed, fFieldPropagator, fMaxEnergyKilled, fMaxEnergyKilled_NonElecPDG, fMaxEnergyKilled_NonElectron, fMaxEnergyKilledPDG, fMaxEnergySaved, fMomentumChanged, fNoLooperTrials, fNumLoopersKilled, fNumLoopersKilled_NonElectron, fParticleChange, fParticleIsLooping, fpLogger, fSilenceLooperWarnings, fStopAndKill, fSumEnergyKilled, fSumEnergyKilled_NonElectron, fSumEnergySaved, fSumEnergyUnstableSaved, fSumEnerSqKilled, fSumEnerSqKilled_NonElectron, fThreshold_Important_Energy, fThreshold_Warning_Energy, fThresholdTrials, fTransportEndKineticEnergy, fTransportEndMomentumDir, fTransportEndPosition, fTransportEndSpin, G4cout, G4endl, G4ThreadLocal, G4Track::GetCurrentStepNumber(), G4Track::GetDynamicParticle(), G4Track::GetGlobalTime(), G4Track::GetLocalTime(), G4DynamicParticle::GetMass(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetPDGStable(), G4Step::GetPreStepPoint(), G4Track::GetProperTime(), G4Track::GetStepLength(), G4Track::GetTotalEnergy(), G4StepPoint::GetVelocity(), G4Track::GetVelocity(), G4PropagatorInField::GimmeTrajectoryVectorAndForgetIt(), G4ParticleChangeForTransport::Initialize(), G4INCL::Math::max(), G4ParticleChange::ProposeEnergy(), G4ParticleChange::ProposeGlobalTime(), G4ParticleChange::ProposeLocalTime(), G4ParticleChange::ProposeMomentumDirection(), G4ParticleChange::ProposePolarization(), G4ParticleChange::ProposePosition(), G4ParticleChange::ProposeProperTime(), G4VParticleChange::ProposeTrackStatus(), G4TransportationLogger::ReportLoopingTrack(), G4ParticleChangeForTransport::SetMomentumChanged(), G4ParticleChangeForTransport::SetPointerToVectorOfAuxiliaryPoints(), and G4VProcess::verboseLevel.

◆ AlongStepGetPhysicalInteractionLength()

G4double G4CoupledTransportation::AlongStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double currentSafety,
G4GPILSelection selection 
)
virtual

Implements G4VProcess.

Definition at line 164 of file G4CoupledTransportation.cc.

170{
171 G4double geometryStepLength;
172 G4double startMassSafety= 0.0; // estimated safety for start point (mass geometry)
173 G4double startFullSafety= 0.0; // estimated safety for start point (all geometries)
174 G4double safetyProposal= -1.0; // local copy of proposal
175
176 G4ThreeVector EndUnitMomentum ;
177 G4double lengthAlongCurve = 0.0 ;
178
179 fParticleIsLooping = false ;
180
181 // Initial actions moved to StartTrack()
182 // --------------------------------------
183 // Note: in case another process changes touchable handle
184 // it will be necessary to add here (for all steps)
185 // fCurrentTouchableHandle = aTrack->GetTouchableHandle();
186
187 // GPILSelection is set to defaule value of CandidateForSelection
188 // It is a return value
189 //
190 *selection = CandidateForSelection ;
191
194
195#ifdef G4DEBUG_TRANSPORT
196 G4cout << " CoupledTransport::AlongStep GPIL: "
197 << " 1st-step: any= " <<fFirstStepInAnyVolume << " ( geom= "
198 << fAnyGeometryLimitedStep << " ) "
199 << " mass= " << fFirstStepInMassVolume << " ( geom= "
200 << fMassGeometryLimitedStep << " ) "
201 << " newTrack= " << fNewTrack << G4endl;
202#endif
203
204 // fLastStepInVolume= false;
205 fNewTrack = false;
206
207 // Get initial Energy/Momentum of the track
208 //
209 const G4DynamicParticle* pParticle = track.GetDynamicParticle() ;
210 const G4ParticleDefinition* pParticleDef = pParticle->GetDefinition() ;
211 G4ThreeVector startMomentumDir = pParticle->GetMomentumDirection() ;
212 G4ThreeVector startPosition = track.GetPosition() ;
213 G4VPhysicalVolume* currentVolume= track.GetVolume();
214
215#ifdef G4DEBUG_TRANSPORT
216 if( verboseLevel > 1 )
217 {
218 G4cout << "G4CoupledTransportation::AlongStepGPIL> called in volume "
219 << currentVolume->GetName() << G4endl;
220 }
221#endif
222 // G4double theTime = track.GetGlobalTime() ;
223
224 // The Step Point safety can be limited by other geometries and/or the
225 // assumptions of any process - it's not always the geometrical safety.
226 // We calculate the starting point's isotropic safety here.
227 //
228 G4ThreeVector OriginShift = startPosition - fPreviousSftOrigin ;
229 G4double MagSqShift = OriginShift.mag2() ;
230 startMassSafety = 0.0;
231 startFullSafety= 0.0;
232
233 // Recall that FullSafety <= MassSafety
234 // Original: if( MagSqShift < sqr(fPreviousMassSafety) ) {
235 if( MagSqShift < sqr(fPreviousFullSafety) )
236 {
237 G4double mag_shift= std::sqrt(MagSqShift);
238 startMassSafety = std::max( (fPreviousMassSafety - mag_shift), 0.0);
239 startFullSafety = std::max( (fPreviousFullSafety - mag_shift), 0.0);
240 // Need to be consistent between full safety with Mass safety
241 // in order reproduce results in simple case
242 // --> use same calculation method
243
244 // Only compute full safety if massSafety > 0. Else it remains 0
245 // startFullSafety = fPathFinder->ComputeSafety( startPosition );
246 }
247
248 // Is the particle charged or has it a magnetic moment?
249 //
250 G4double particleCharge = pParticle->GetCharge() ;
251 G4double magneticMoment = pParticle->GetMagneticMoment() ;
252 G4double restMass = pParticle->GetMass() ;
253
254 fMassGeometryLimitedStep = false ; // Set default - alex
256
257 // There is no need to locate the current volume. It is Done elsewhere:
258 // On track construction
259 // By the tracking, after all AlongStepDoIts, in "Relocation"
260
261 // Check if the particle has a force, EM or gravitational, exerted on it
262 //
263 G4FieldManager* fieldMgr= nullptr;
264 G4bool fieldExertsForce = false ;
265
266 const G4Field* ptrField= nullptr;
267
269 G4bool eligibleEM = (particleCharge != 0.0)
270 || ( fUseMagneticMoment && (magneticMoment != 0.0) );
271 G4bool eligibleGrav = fUseGravity && (restMass != 0.0) ;
272
273 if( (fieldMgr!=nullptr) && (eligibleEM||eligibleGrav) )
274 {
275 // Message the field Manager, to configure it for this track
276 //
277 fieldMgr->ConfigureForTrack( &track );
278
279 // The above call can transition from a null field-ptr oto a finite field.
280 // If the field manager has no field ptr, the field is zero
281 // by definition ( = there is no field ! )
282 //
283 ptrField= fieldMgr->GetDetectorField();
284
285 if( ptrField != nullptr)
286 {
287 fieldExertsForce = eligibleEM
288 || ( eligibleGrav && ptrField->IsGravityActive() );
289 }
290 }
291 G4double momentumMagnitude = pParticle->GetTotalMomentum() ;
292
293 if( fieldExertsForce )
294 {
295 auto equationOfMotion= fFieldPropagator->GetCurrentEquationOfMotion();
296
297 G4ChargeState chargeState(particleCharge, // Charge can change (dynamic)
298 magneticMoment,
299 pParticleDef->GetPDGSpin() );
300 if( equationOfMotion )
301 {
302 equationOfMotion->SetChargeMomentumMass( chargeState,
303 momentumMagnitude,
304 restMass );
305 }
306#ifdef G4DEBUG_TRANSPORT
307 else
308 {
309 G4cerr << " ERROR in G4CoupledTransportation> "
310 << "Cannot find valid Equation of motion: " << G4endl;
311 << " Unable to pass Charge, Momentum and Mass " << G4endl;
312 }
313#endif
314 }
315
316 G4ThreeVector polarizationVec = track.GetPolarization() ;
317 G4FieldTrack aFieldTrack = G4FieldTrack(startPosition,
318 track.GetGlobalTime(), // Lab.
319 track.GetMomentumDirection(),
320 track.GetKineticEnergy(),
321 restMass,
322 particleCharge,
323 polarizationVec,
324 pParticleDef->GetPDGMagneticMoment(),
325 0.0, // Length along track
326 pParticleDef->GetPDGSpin() ) ;
327 G4int stepNo= track.GetCurrentStepNumber();
328
329 ELimited limitedStep;
330 G4FieldTrack endTrackState('a'); // Default values
331
332 fMassGeometryLimitedStep = false ; // default
334 if( currentMinimumStep > 0 )
335 {
336 G4double newMassSafety= 0.0; // temp. for recalculation
337
338 // Do the Transport in the field (non recti-linear)
339 //
340 lengthAlongCurve = fPathFinder->ComputeStep( aFieldTrack,
341 currentMinimumStep,
343 stepNo,
344 newMassSafety,
345 limitedStep,
346 endTrackState,
347 currentVolume ) ;
348
349 G4double newFullSafety= fPathFinder->GetCurrentSafety();
350 // this was estimated already in step above
351
352 if( limitedStep == kUnique || limitedStep == kSharedTransport )
353 {
355 }
356
358
359#ifdef G4DEBUG_TRANSPORT
361 {
362 std::ostringstream message;
363 message << " ERROR in determining geometries limiting the step" << G4endl;
364 message << " Limiting: mass=" << fMassGeometryLimitedStep
365 << " any= " << fAnyGeometryLimitedStep << G4endl;
366 message << "Incompatible conditions - by which geometries was it limited ?";
367 G4Exception("G4CoupledTransportation::AlongStepGetPhysicalInteractionLength()",
368 "PathFinderConfused", FatalException, message);
369 }
370#endif
371
372 geometryStepLength = std::min( lengthAlongCurve, currentMinimumStep);
373
374 // Momentum: Magnitude and direction can be changed too now ...
375 //
376 fMomentumChanged = true ;
377 fTransportEndMomentumDir = endTrackState.GetMomentumDir() ;
378
379 // Remember last safety origin & value.
380 fPreviousSftOrigin = startPosition ;
381 fPreviousMassSafety = newMassSafety ;
382 fPreviousFullSafety = newFullSafety ;
383 // fpSafetyHelper->SetCurrentSafety( newFullSafety, startPosition);
384
385#ifdef G4DEBUG_TRANSPORT
386 if( verboseLevel > 1 )
387 {
388 G4cout << "G4Transport:CompStep> "
389 << " called the pathfinder for a new step at " << startPosition
390 << " and obtained step = " << lengthAlongCurve << G4endl;
391 G4cout << " New safety (preStep) = " << newMassSafety
392 << " versus precalculated = " << startMassSafety << G4endl;
393 }
394#endif
395
396 // Store as best estimate value
397 startMassSafety = newMassSafety ;
398 startFullSafety = newFullSafety ;
399
400 // Get the End-Position and End-Momentum (Dir-ection)
401 fTransportEndPosition = endTrackState.GetPosition() ;
402 fTransportEndKineticEnergy = endTrackState.GetKineticEnergy() ;
403 }
404 else
405 {
406 geometryStepLength = lengthAlongCurve= 0.0 ;
407 fMomentumChanged = false ;
408 // fMassGeometryLimitedStep = false ; // --- ???
409 // fAnyGeometryLimitedStep = true;
412
413 fTransportEndPosition = startPosition;
414
415 endTrackState= aFieldTrack; // Ensures that time is updated
416
417 // If the step length requested is 0, and we are on a boundary
418 // then a boundary will also limit the step.
419 if( startMassSafety == 0.0 )
420 {
423 }
424 // TODO: Add explicit logical status for being at a boundary
425 }
426 // G4FieldTrack aTrackState(endTrackState);
427
428 if( !fieldExertsForce )
429 {
430 fParticleIsLooping = false ;
431 fMomentumChanged = false ;
432 fEndGlobalTimeComputed = false ;
433 }
434 else
435 {
437
438#ifdef G4DEBUG_TRANSPORT
439 if( verboseLevel > 1 )
440 {
441 G4cout << " G4CT::CS End Position = "
443 G4cout << " G4CT::CS End Direction = "
445 }
446#endif
448 {
449 // If the field can change energy, then the time must be integrated
450 // - so this should have been updated
451 //
452 fCandidateEndGlobalTime = endTrackState.GetLabTimeOfFlight();
454
455 // was ( fCandidateEndGlobalTime != track.GetGlobalTime() );
456 // a cleaner way is to have FieldTrack knowing whether time
457 // is updated
458 }
459 else
460 {
461 // The energy should be unchanged by field transport,
462 // - so the time changed will be calculated elsewhere
463 //
465
466 // Check that the integration preserved the energy
467 // - and if not correct this!
468 G4double startEnergy= track.GetKineticEnergy();
470
471 static G4ThreadLocal G4int no_inexact_steps=0; // , no_large_ediff;
472 G4double absEdiff = std::fabs(startEnergy- endEnergy);
473 if( absEdiff > perMillion * endEnergy )
474 {
475 no_inexact_steps++;
476 // Possible statistics keeping here ...
477 }
478#ifdef G4VERBOSE
479 if( (verboseLevel > 1) && ( absEdiff > perThousand * endEnergy) )
480 {
481 ReportInexactEnergy(startEnergy, endEnergy);
482 } // end of if (verboseLevel)
483#endif
484 // Correct the energy for fields that conserve it
485 // This - hides the integration error
486 // - but gives a better physical answer
488 }
489 }
490
491 fEndpointDistance = (fTransportEndPosition - startPosition).mag() ;
492 fTransportEndSpin = endTrackState.GetSpin();
493
494 // Calculate the safety
495
496 safetyProposal= startFullSafety; // used to be startMassSafety
497 // Changed to accomodate processes that cannot update the safety
498
499 // Update safety for the end-point, if becomes negative at the end-point.
500
501 if( (startFullSafety < fEndpointDistance )
502 && ( particleCharge != 0.0 ) ) // Only needed to prepare for MSC
503 // && !fAnyGeometryLimitedStep ) // To-Try: No safety update if at boundary
504 {
505 G4double endFullSafety =
507 // Expected mission -- only mass geometry's safety
508 // fMassNavigator->ComputeSafety( fTransportEndPosition) ;
509 // Yet discrete processes only have poststep -- and this cannot
510 // currently revise the safety
511 // ==> so we use the all-geometry safety as a precaution
512
514 // Pushing safety to Helper avoids recalculation at this point
515
516 G4ThreeVector centerPt= G4ThreeVector(0.0, 0.0, 0.0); // Used for return value
517 G4double endMassSafety= fPathFinder->ObtainSafety( fNavigatorId, centerPt);
518 // Retrieves the mass value from PathFinder (it calculated it)
519
520 fPreviousMassSafety = endMassSafety ;
521 fPreviousFullSafety = endFullSafety;
523
524 // The convention (Stepping Manager's) is safety from the start point
525 //
526 safetyProposal = endFullSafety + fEndpointDistance;
527 // --> was endMassSafety
528 // Changed to accomodate processes that cannot update the safety
529
530#ifdef G4DEBUG_TRANSPORT
531 G4int prec= G4cout.precision(12) ;
532 G4cout << "***CoupledTransportation::AlongStepGPIL ** " << G4endl ;
533 G4cout << " Revised Safety at endpoint " << fTransportEndPosition
534 << " give safety values: Mass= " << endMassSafety
535 << " All= " << endFullSafety << G4endl ;
536 G4cout << " Adding endpoint distance " << fEndpointDistance
537 << " to obtain pseudo-safety= " << safetyProposal << G4endl ;
538 G4cout.precision(prec);
539 }
540 else
541 {
542 G4int prec= G4cout.precision(12) ;
543 G4cout << "***CoupledTransportation::AlongStepGPIL ** " << G4endl ;
544 G4cout << " Quick Safety estimate at endpoint "
546 << " gives safety endpoint value = "
547 << startFullSafety - fEndpointDistance
548 << " using start-point value " << startFullSafety
549 << " and endpointDistance " << fEndpointDistance << G4endl;
550 G4cout.precision(prec);
551#endif
552 }
553
554 proposedSafetyForStart= safetyProposal;
555 fParticleChange.ProposeTrueStepLength(geometryStepLength) ;
556
557 return geometryStepLength ;
558}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
@ CandidateForSelection
ELimited
@ kUnique
@ kSharedTransport
static constexpr double perMillion
Definition: G4SIunits.hh:327
static constexpr double perThousand
Definition: G4SIunits.hh:326
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cerr
double mag2() const
void ReportInexactEnergy(G4double startEnergy, G4double endEnergy)
const G4ThreeVector & GetMomentumDirection() const
G4double GetCharge() const
G4ParticleDefinition * GetDefinition() const
G4double GetMagneticMoment() const
G4double GetTotalMomentum() const
G4bool DoesFieldChangeEnergy() const
virtual void ConfigureForTrack(const G4Track *)
const G4Field * GetDetectorField() const
G4bool IsGravityActive() const
Definition: G4Field.hh:101
G4double GetPDGMagneticMoment() const
G4double ComputeSafety(const G4ThreeVector &globalPoint)
unsigned int GetNumberGeometriesLimitingStep() const
G4double ObtainSafety(G4int navId, G4ThreeVector &globalCenterPoint)
G4double ComputeStep(const G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4int navigatorId, G4int stepNo, G4double &pNewSafety, ELimited &limitedStep, G4FieldTrack &EndState, G4VPhysicalVolume *currentVolume)
G4double GetCurrentSafety() const
G4FieldManager * FindAndSetFieldManager(G4VPhysicalVolume *pCurrentPhysVol)
G4FieldManager * GetCurrentFieldManager()
G4bool IsParticleLooping() const
G4EquationOfMotion * GetCurrentEquationOfMotion()
void SetCurrentSafety(G4double val, const G4ThreeVector &pos)
G4VPhysicalVolume * GetVolume() const
const G4ThreeVector & GetPosition() const
const G4ThreeVector & GetMomentumDirection() const
G4double GetKineticEnergy() const
const G4ThreeVector & GetPolarization() const
void ProposeTrueStepLength(G4double truePathLength)
const G4String & GetName() const
static const double prec
Definition: RanecuEngine.cc:61
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
T sqr(const T &x)
Definition: templates.hh:128

References CandidateForSelection, G4PathFinder::ComputeSafety(), G4PathFinder::ComputeStep(), G4FieldManager::ConfigureForTrack(), G4FieldManager::DoesFieldChangeEnergy(), fAnyGeometryLimitedStep, FatalException, fCandidateEndGlobalTime, fEndGlobalTimeComputed, fEndpointDistance, fFieldPropagator, fFirstStepInAnyVolume, fFirstStepInMassVolume, G4PropagatorInField::FindAndSetFieldManager(), fMassGeometryLimitedStep, fMomentumChanged, fNavigatorId, fNewTrack, fParticleChange, fParticleIsLooping, fPathFinder, fPreviousFullSafety, fPreviousMassSafety, fPreviousSftOrigin, fpSafetyHelper, fTransportEndKineticEnergy, fTransportEndMomentumDir, fTransportEndPosition, fTransportEndSpin, fUseGravity, fUseMagneticMoment, G4cerr, G4cout, G4endl, G4Exception(), G4ThreadLocal, G4DynamicParticle::GetCharge(), G4PropagatorInField::GetCurrentEquationOfMotion(), G4PropagatorInField::GetCurrentFieldManager(), G4PathFinder::GetCurrentSafety(), G4Track::GetCurrentStepNumber(), G4DynamicParticle::GetDefinition(), G4FieldManager::GetDetectorField(), G4Track::GetDynamicParticle(), G4Track::GetGlobalTime(), G4FieldTrack::GetKineticEnergy(), G4Track::GetKineticEnergy(), G4FieldTrack::GetLabTimeOfFlight(), G4DynamicParticle::GetMagneticMoment(), G4DynamicParticle::GetMass(), G4FieldTrack::GetMomentumDir(), G4DynamicParticle::GetMomentumDirection(), G4Track::GetMomentumDirection(), G4VPhysicalVolume::GetName(), G4PathFinder::GetNumberGeometriesLimitingStep(), G4ParticleDefinition::GetPDGMagneticMoment(), G4ParticleDefinition::GetPDGSpin(), G4Track::GetPolarization(), G4FieldTrack::GetPosition(), G4Track::GetPosition(), G4FieldTrack::GetSpin(), G4DynamicParticle::GetTotalMomentum(), G4Track::GetVolume(), G4Field::IsGravityActive(), G4PropagatorInField::IsParticleLooping(), kSharedTransport, kUnique, CLHEP::Hep3Vector::mag2(), G4INCL::Math::max(), G4INCL::Math::min(), G4PathFinder::ObtainSafety(), perMillion, perThousand, CLHEP::prec, G4VParticleChange::ProposeTrueStepLength(), ReportInexactEnergy(), G4SafetyHelper::SetCurrentSafety(), sqr(), and G4VProcess::verboseLevel.

◆ AlongStepGPIL()

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

Definition at line 461 of file G4VProcess.hh.

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

References G4VProcess::AlongStepGetPhysicalInteractionLength().

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

◆ AtRestDoIt()

G4VParticleChange * G4CoupledTransportation::AtRestDoIt ( const G4Track ,
const G4Step  
)
inlinevirtual

Implements G4VProcess.

Definition at line 167 of file G4CoupledTransportation.hh.

168 { return 0; } // No operation in AtRestDoIt

◆ AtRestGetPhysicalInteractionLength()

G4double G4CoupledTransportation::AtRestGetPhysicalInteractionLength ( const G4Track ,
G4ForceCondition  
)
inlinevirtual

Implements G4VProcess.

Definition at line 163 of file G4CoupledTransportation.hh.

165 { return -1.0; } // No operation in AtRestGPIL

◆ AtRestGPIL()

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

Definition at line 472 of file G4VProcess.hh.

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

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

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

◆ BuildPhysicsTable()

virtual void G4VProcess::BuildPhysicsTable ( const G4ParticleDefinition )
inlinevirtualinherited

◆ BuildWorkerPhysicsTable()

void G4VProcess::BuildWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 200 of file G4VProcess.cc.

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

References G4VProcess::BuildPhysicsTable().

Referenced by G4BiasingProcessInterface::BuildWorkerPhysicsTable().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ DoesAnyFieldExist()

G4bool G4CoupledTransportation::DoesAnyFieldExist ( )
protected

◆ DumpInfo()

void G4VProcess::DumpInfo ( ) const
virtualinherited

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

Definition at line 167 of file G4VProcess.cc.

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

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

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

◆ EnableGravity()

G4bool G4CoupledTransportation::EnableGravity ( G4bool  useGravity)
static

Definition at line 1077 of file G4CoupledTransportation.cc.

1078{
1079 G4bool lastValue= fUseGravity;
1080 fUseGravity= useGravity;
1082 return lastValue;
1083}
static G4bool fUseGravity

References fUseGravity, and G4Transportation::fUseGravity.

◆ EnableMagneticMoment()

G4bool G4CoupledTransportation::EnableMagneticMoment ( G4bool  useMoment = true)
static

Definition at line 1066 of file G4CoupledTransportation.cc.

1067{
1068 G4bool lastValue= fUseMagneticMoment;
1069 fUseMagneticMoment= useMoment;
1071 return lastValue;
1072}
static G4bool fUseMagneticMoment

References fUseMagneticMoment, and G4Transportation::fUseMagneticMoment.

Referenced by EnableUseMagneticMoment().

◆ EnableUseMagneticMoment()

static G4bool G4CoupledTransportation::EnableUseMagneticMoment ( G4bool  useMoment = true)
inlinestatic

Definition at line 159 of file G4CoupledTransportation.hh.

160 { return EnableMagneticMoment(useMoment); }
static G4bool EnableMagneticMoment(G4bool useMoment=true)

References EnableMagneticMoment().

◆ EndTracking()

void G4CoupledTransportation::EndTracking ( )
virtual

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMaxEnergyKilled()

G4double G4CoupledTransportation::GetMaxEnergyKilled ( ) const
inline

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetPhysicsTableFileName()

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

Definition at line 181 of file G4VProcess.cc.

186{
187 G4String thePhysicsTableFileExt;
188 if (ascii) thePhysicsTableFileExt = ".asc";
189 else thePhysicsTableFileExt = ".dat";
190
191 thePhysicsTableFileName = directory + "/";
192 thePhysicsTableFileName += tableName + "." + theProcessName + ".";
194 + thePhysicsTableFileExt;
195
197}
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().

◆ GetProcessManager()

const G4ProcessManager * G4VProcess::GetProcessManager ( )
inlinevirtualinherited

Reimplemented in G4BiasingProcessInterface, and G4WrapperProcess.

Definition at line 494 of file G4VProcess.hh.

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

References G4VProcess::aProcessManager.

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

◆ GetProcessName()

const G4String & G4VProcess::GetProcessName ( ) const
inlineinherited

Definition at line 382 of file G4VProcess.hh.

383{
384 return theProcessName;
385}

References G4VProcess::theProcessName.

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

◆ GetProcessSubType()

G4int G4VProcess::GetProcessSubType ( ) const
inlineinherited

◆ GetProcessType()

G4ProcessType G4VProcess::GetProcessType ( ) const
inlineinherited

◆ GetProcessTypeName()

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

Definition at line 134 of file G4VProcess.cc.

135{
136 switch (aType)
137 {
138 case fNotDefined: return typeNotDefined; break;
139 case fTransportation: return typeTransportation; break;
140 case fElectromagnetic: return typeElectromagnetic; break;
141 case fOptical: return typeOptical; break;
142 case fHadronic: return typeHadronic; break;
144 case fDecay: return typeDecay; break;
145 case fGeneral: return typeGeneral; break;
146 case fParameterisation: return typeParameterisation; break;
147 case fUserDefined: return typeUserDefined; break;
148 case fPhonon: return typePhonon; break;
149 default: ;
150 }
151 return noType;
152}
@ fOptical
@ fPhonon
@ fParameterisation
@ fGeneral
@ fDecay
@ fElectromagnetic
@ fHadronic
@ fUserDefined
@ 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().

◆ GetPropagatorInField()

G4PropagatorInField * G4CoupledTransportation::GetPropagatorInField ( )

◆ GetSignifyStepsInAnyVolume()

static G4bool G4CoupledTransportation::GetSignifyStepsInAnyVolume ( )
inlinestatic

Definition at line 140 of file G4CoupledTransportation.hh.

141 { return fSignifyStepInAnyVolume; }

References fSignifyStepInAnyVolume.

◆ GetSilenceLooperWarnings()

G4bool G4CoupledTransportation::GetSilenceLooperWarnings ( )
static

Definition at line 1097 of file G4CoupledTransportation.cc.

1098{
1099 return fSilenceLooperWarnings;
1100}

References fSilenceLooperWarnings.

◆ GetSumEnergyKilled()

G4double G4CoupledTransportation::GetSumEnergyKilled ( ) const
inline

◆ GetThresholdImportantEnergy()

G4double G4CoupledTransportation::GetThresholdImportantEnergy ( ) const
inline

◆ GetThresholdTrials()

G4int G4CoupledTransportation::GetThresholdTrials ( ) const
inline

◆ GetThresholdWarningEnergy()

G4double G4CoupledTransportation::GetThresholdWarningEnergy ( ) const
inline

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ isAlongStepDoItIsEnabled()

G4bool G4VProcess::isAlongStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 506 of file G4VProcess.hh.

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

References G4VProcess::enableAlongStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsApplicable()

virtual G4bool G4VProcess::IsApplicable ( const G4ParticleDefinition )
inlinevirtualinherited

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

Definition at line 182 of file G4VProcess.hh.

182{ return true; }

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

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

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

References G4VProcess::enableAtRestDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsFirstStepInAnyVolume()

G4bool G4CoupledTransportation::IsFirstStepInAnyVolume ( ) const
inline

Definition at line 149 of file G4CoupledTransportation.hh.

149{ return fFirstStepInAnyVolume; }

References fFirstStepInAnyVolume.

◆ IsFirstStepInMassVolume()

G4bool G4CoupledTransportation::IsFirstStepInMassVolume ( ) const
inline

Definition at line 151 of file G4CoupledTransportation.hh.

151{ return fFirstStepInMassVolume; }

References fFirstStepInMassVolume.

◆ IsLastStepInAnyVolume()

G4bool G4CoupledTransportation::IsLastStepInAnyVolume ( ) const
inline

Definition at line 150 of file G4CoupledTransportation.hh.

150{ return fAnyGeometryLimitedStep; }

References fAnyGeometryLimitedStep.

◆ IsLastStepInMassVolume()

G4bool G4CoupledTransportation::IsLastStepInMassVolume ( ) const
inline

Definition at line 152 of file G4CoupledTransportation.hh.

152{ return fMassGeometryLimitedStep; }

References fMassGeometryLimitedStep.

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

Implements G4VProcess.

Definition at line 765 of file G4CoupledTransportation.cc.

767{
768 G4TouchableHandle retCurrentTouchable ; // The one to return
769
770 // Initialize ParticleChange (by setting all its members equal
771 // to corresponding members in G4Track)
772 // fParticleChange.Initialize(track) ; // To initialise TouchableChange
773
775
777 {
779 }
780 else
781 {
783 }
784
785 // Check that the end position and direction are preserved
786 // since call to AlongStepDoIt
787
788#ifdef G4DEBUG_TRANSPORT
789 if( ( verboseLevel > 0 )
790 && ((fTransportEndPosition - track.GetPosition()).mag2() >= 1.0e-16) )
791 {
793 "End of Step Position" );
794 G4cerr << " Problem in G4CoupledTransportation::PostStepDoIt " << G4endl;
795 }
796
797 // If the Step was determined by the volume boundary, relocate the particle
798 // The pathFinder will know that the geometry limited the step (!?)
799
800 if( verboseLevel > 0 )
801 {
802 G4cout << " Calling PathFinder::Locate() from "
803 << " G4CoupledTransportation::PostStepDoIt " << G4endl;
804 G4cout << " fAnyGeometryLimitedStep is " << fAnyGeometryLimitedStep
805 << G4endl;
806
807 }
808#endif
809
811 {
812 fPathFinder->Locate( track.GetPosition(),
813 track.GetMomentumDirection(),
814 true);
815
816 // fCurrentTouchable will now become the previous touchable,
817 // and what was the previous will be freed.
818 // (Needed because the preStepPoint can point to the previous touchable)
819
822
823#ifdef G4DEBUG_TRANSPORT
824 if( verboseLevel > 0 )
825 {
826 G4cout << "G4CoupledTransportation::PostStepDoIt --- fNavigatorId = "
827 << fNavigatorId << G4endl;
828 }
829 if( verboseLevel > 1 )
830 {
832 G4cout << "CHECK !!!!!!!!!!! fCurrentTouchableHandle->GetVolume() = "
833 << vol;
834 if( vol ) { G4cout << "Name=" << vol->GetName(); }
835 G4cout << G4endl;
836 }
837#endif
838
839 // Check whether the particle is out of the world volume
840 // If so it has exited and must be killed.
841 //
843 {
845 }
846 retCurrentTouchable = fCurrentTouchableHandle ;
847 // fParticleChange.SetTouchableHandle( fCurrentTouchableHandle ) ;
848 }
849 else // fAnyGeometryLimitedStep is false
850 {
851#ifdef G4DEBUG_TRANSPORT
852 if( verboseLevel > 1 )
853 {
854 G4cout << "G4CoupledTransportation::PostStepDoIt -- "
855 << " fAnyGeometryLimitedStep = " << fAnyGeometryLimitedStep
856 << " must be false " << G4endl;
857 }
858#endif
859 // This serves only to move each of the Navigator's location
860 //
861 // fLinearNavigator->LocateGlobalPointWithinVolume( track.GetPosition() ) ;
862
863 fPathFinder->ReLocate( track.GetPosition() );
864 // track.GetMomentumDirection() );
865
866 // Keep the value of the track's current Touchable is retained,
867 // and use it to overwrite the (unset) one in particle change.
868 // Expect this must be fCurrentTouchable too
869 // - could it be different, eg at the start of a step ?
870 //
871 retCurrentTouchable = track.GetTouchableHandle() ;
872 // fParticleChange.SetTouchableHandle( track.GetTouchableHandle() ) ;
873 } // endif ( fAnyGeometryLimitedStep )
874
875#ifdef G4DEBUG_NAVIGATION
876 G4cout << " CoupledTransport::AlongStep GPIL: "
877 << " last-step: any= " << fAnyGeometryLimitedStep
878 << " . ..... x . "
879 << " mass= " << fMassGeometryLimitedStep
880 << G4endl;
881#endif
882
885 else
887
888 const G4VPhysicalVolume* pNewVol = retCurrentTouchable->GetVolume() ;
889 const G4Material* pNewMaterial = 0 ;
890 const G4VSensitiveDetector* pNewSensitiveDetector = 0 ;
891
892 if( pNewVol != 0 )
893 {
894 pNewMaterial= pNewVol->GetLogicalVolume()->GetMaterial();
895 pNewSensitiveDetector= pNewVol->GetLogicalVolume()->GetSensitiveDetector();
896 }
897
898 // ( const_cast<G4Material *> pNewMaterial ) ;
899 // ( const_cast<G4VSensitiveDetetor *> pNewSensitiveDetector) ;
900
903 // "temporarily" until Get/Set Material of ParticleChange,
904 // and StepPoint can be made const.
905
906 const G4MaterialCutsCouple* pNewMaterialCutsCouple = 0;
907 if( pNewVol != 0 )
908 {
909 pNewMaterialCutsCouple=pNewVol->GetLogicalVolume()->GetMaterialCutsCouple();
910 if( pNewMaterialCutsCouple!=0
911 && pNewMaterialCutsCouple->GetMaterial()!=pNewMaterial )
912 {
913 // for parametrized volume
914 //
915 pNewMaterialCutsCouple = G4ProductionCutsTable::GetProductionCutsTable()
916 ->GetMaterialCutsCouple(pNewMaterial,
917 pNewMaterialCutsCouple->GetProductionCuts());
918 }
919 }
920 fParticleChange.SetMaterialCutsCoupleInTouchable( pNewMaterialCutsCouple );
921
922 // Must always set the touchable in ParticleChange, whether relocated or not
923 //
924 fParticleChange.SetTouchableHandle(retCurrentTouchable) ;
925
926 return &fParticleChange ;
927}
void ReportMove(G4ThreeVector OldVector, G4ThreeVector NewVector, const G4String &Quantity)
G4VSensitiveDetector * GetSensitiveDetector() const
G4Material * GetMaterial() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
const G4Material * GetMaterial() const
G4ProductionCuts * GetProductionCuts() const
void SetMaterialInTouchable(G4Material *fMaterial)
void SetTouchableHandle(const G4TouchableHandle &fTouchable)
void SetMaterialCutsCoupleInTouchable(const G4MaterialCutsCouple *fMaterialCutsCouple)
void SetSensitiveDetectorInTouchable(G4VSensitiveDetector *fSensitiveDetector)
void ReLocate(const G4ThreeVector &position)
void Locate(const G4ThreeVector &position, const G4ThreeVector &direction, G4bool relativeSearch=true)
G4TouchableHandle CreateTouchableHandle(G4int navId) const
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
static G4ProductionCutsTable * GetProductionCutsTable()
G4TrackStatus GetTrackStatus() const
const G4TouchableHandle & GetTouchableHandle() const
void ProposeLastStepInVolume(G4bool flag)
void ProposeFirstStepInVolume(G4bool flag)
G4LogicalVolume * GetLogicalVolume() const
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
Definition: G4VTouchable.cc:34

References G4PathFinder::CreateTouchableHandle(), fAnyGeometryLimitedStep, fCurrentTouchableHandle, fFirstStepInAnyVolume, fFirstStepInMassVolume, fMassGeometryLimitedStep, fNavigatorId, fParticleChange, fPathFinder, fSignifyStepInAnyVolume, fStopAndKill, fTransportEndPosition, G4cerr, G4cout, G4endl, G4VPhysicalVolume::GetLogicalVolume(), G4LogicalVolume::GetMaterial(), G4MaterialCutsCouple::GetMaterial(), G4LogicalVolume::GetMaterialCutsCouple(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4Track::GetMomentumDirection(), G4VPhysicalVolume::GetName(), G4Track::GetPosition(), G4MaterialCutsCouple::GetProductionCuts(), G4ProductionCutsTable::GetProductionCutsTable(), G4LogicalVolume::GetSensitiveDetector(), G4Track::GetTouchableHandle(), G4Track::GetTrackStatus(), G4VTouchable::GetVolume(), G4PathFinder::Locate(), G4VParticleChange::ProposeFirstStepInVolume(), G4VParticleChange::ProposeLastStepInVolume(), G4VParticleChange::ProposeTrackStatus(), G4PathFinder::ReLocate(), ReportMove(), G4ParticleChangeForTransport::SetMaterialCutsCoupleInTouchable(), G4ParticleChangeForTransport::SetMaterialInTouchable(), G4ParticleChangeForTransport::SetSensitiveDetectorInTouchable(), G4ParticleChangeForTransport::SetTouchableHandle(), and G4VProcess::verboseLevel.

◆ PostStepGetPhysicalInteractionLength()

G4double G4CoupledTransportation::PostStepGetPhysicalInteractionLength ( const G4Track ,
G4double  previousStepSize,
G4ForceCondition pForceCond 
)
virtual

Implements G4VProcess.

Definition at line 733 of file G4CoupledTransportation.cc.

737{
738 // Must act as PostStep action -- to relocate particle
739 *pForceCond = Forced ;
740 return DBL_MAX ;
741}
@ Forced

References DBL_MAX, and Forced.

◆ PostStepGPIL()

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

Definition at line 479 of file G4VProcess.hh.

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

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

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

◆ PreparePhysicsTable()

virtual void G4VProcess::PreparePhysicsTable ( const G4ParticleDefinition )
inlinevirtualinherited

◆ PrepareWorkerPhysicsTable()

void G4VProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 206 of file G4VProcess.cc.

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

References G4VProcess::PreparePhysicsTable().

Referenced by G4BiasingProcessInterface::PrepareWorkerPhysicsTable().

◆ PrintStatistics()

void G4CoupledTransportation::PrintStatistics ( std::ostream &  outStr) const

Definition at line 137 of file G4CoupledTransportation.cc.

138{
139 if( fSumEnergyKilled > 0.0 )
140 {
141 outStr << " G4CoupledTransportation: Statistics for looping particles "
142 << G4endl;
143 outStr << " Sum of energy of loopers killed: "
144 << fSumEnergyKilled / MeV << " MeV " << G4endl;
145 outStr << " Max energy of loopers killed: "
146 << fMaxEnergyKilled / MeV << " MeV " << G4endl;
147
148
149 outStr << " Max energy of loopers 'saved': " << fMaxEnergySaved << G4endl;
150 outStr << " Sum of energy of loopers 'saved': "
152 outStr << " Sum of energy of unstable loopers 'saved': "
154 }
155}
static constexpr double MeV
Definition: G4SIunits.hh:200

References fMaxEnergyKilled, fMaxEnergySaved, fSumEnergyKilled, fSumEnergySaved, fSumEnergyUnstableSaved, G4endl, and MeV.

Referenced by ~G4CoupledTransportation().

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

◆ PushThresholdsToLogger()

void G4CoupledTransportation::PushThresholdsToLogger ( )

◆ ReportInexactEnergy()

void G4CoupledTransportation::ReportInexactEnergy ( G4double  startEnergy,
G4double  endEnergy 
)
protected

Definition at line 1017 of file G4CoupledTransportation.cc.

1019{
1020 static G4ThreadLocal G4int no_warnings= 0, warnModulo=1,
1021 moduloFactor= 10, no_large_ediff= 0;
1022
1023 if( std::fabs(startEnergy- endEnergy) > perThousand * endEnergy )
1024 {
1025 no_large_ediff ++;
1026 if( (no_large_ediff% warnModulo) == 0 )
1027 {
1028 no_warnings++;
1029 std::ostringstream message;
1030 message << "Energy change in Step is above 1^-3 relative value. "
1031 << G4endl
1032 << " Relative change in 'tracking' step = "
1033 << std::setw(15) << (endEnergy-startEnergy)/startEnergy
1034 << G4endl
1035 << " Starting E= " << std::setw(12) << startEnergy / MeV
1036 << " MeV " << G4endl
1037 << " Ending E= " << std::setw(12) << endEnergy / MeV
1038 << " MeV " << G4endl
1039 << "Energy has been corrected -- however, review"
1040 << " field propagation parameters for accuracy." << G4endl;
1041 if ( (verboseLevel > 2 ) || (no_warnings<4)
1042 || (no_large_ediff == warnModulo * moduloFactor) )
1043 {
1044 message << "These include EpsilonStepMax(/Min) in G4FieldManager,"
1045 << G4endl
1046 << "which determine fractional error per step for integrated quantities."
1047 << G4endl
1048 << "Note also the influence of the permitted number of integration steps."
1049 << G4endl;
1050 }
1051 message << "Bad 'endpoint'. Energy change detected and corrected."
1052 << G4endl
1053 << "Has occurred already " << no_large_ediff << " times.";
1054 G4Exception("G4CoupledTransportation::AlongStepGetPIL()",
1055 "EnergyChange", JustWarning, message);
1056 if( no_large_ediff == warnModulo * moduloFactor )
1057 {
1058 warnModulo *= moduloFactor;
1059 }
1060 }
1061 }
1062}
@ JustWarning

References G4endl, G4Exception(), G4ThreadLocal, JustWarning, MeV, perThousand, and G4VProcess::verboseLevel.

Referenced by AlongStepGetPhysicalInteractionLength().

◆ ReportLooperThresholds()

void G4CoupledTransportation::ReportLooperThresholds ( )

Definition at line 1145 of file G4CoupledTransportation.cc.

1146{
1147 PushThresholdsToLogger(); // To be absolutely certain they are in sync
1148 fpLogger->ReportLooperThresholds("G4CoupledTransportation");
1149}
void ReportLooperThresholds(const char *className)

References fpLogger, PushThresholdsToLogger(), and G4TransportationLogger::ReportLooperThresholds().

Referenced by ReportMissingLogger(), SetHighLooperThresholds(), and SetLowLooperThresholds().

◆ ReportMissingLogger()

void G4CoupledTransportation::ReportMissingLogger ( const char *  methodName)
protected

Definition at line 1133 of file G4CoupledTransportation.cc.

1134{
1135 const char* message= "Logger object missing from G4CoupledTransportation";
1136 G4String classAndMethod= G4String("G4CoupledTransportation") + G4String( methodName );
1137 G4Exception(classAndMethod, "Missing Logger", JustWarning, message);
1138
1140}

References G4Exception(), JustWarning, ReportLooperThresholds(), and G4VProcess::verboseLevel.

◆ ReportMove()

void G4CoupledTransportation::ReportMove ( G4ThreeVector  OldVector,
G4ThreeVector  NewVector,
const G4String Quantity 
)
protected

Definition at line 745 of file G4CoupledTransportation.cc.

748{
749 G4ThreeVector moveVec = ( NewVector - OldVector );
750
751 G4cerr << G4endl
752 << "**************************************************************"
753 << G4endl;
754 G4cerr << "Endpoint has moved between value expected from TransportEndPosition "
755 << " and value from Track in PostStepDoIt. " << G4endl
756 << "Change of " << Quantity << " is " << moveVec.mag() / mm
757 << " mm long, "
758 << " and its vector is " << (1.0/mm) * moveVec << " mm " << G4endl
759 << "Endpoint of ComputeStep was " << OldVector
760 << " and current position to locate is " << NewVector << G4endl;
761}
static constexpr double mm
Definition: G4SIunits.hh:95
double mag() const

References G4cerr, G4endl, CLHEP::Hep3Vector::mag(), and mm.

Referenced by PostStepDoIt().

◆ ResetKilledStatistics()

void G4CoupledTransportation::ResetKilledStatistics ( G4int  report = 1)
inline

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

Reimplemented in G4BiasingProcessInterface, G4VITProcess, G4WrapperProcess, and G4AdjointProcessEquivalentToDirectProcess.

Definition at line 80 of file G4VProcess.cc.

81{
84}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
#define G4UniformRand()
Definition: Randomize.hh:52

References G4Log(), G4UniformRand, G4VProcess::theInitialNumberOfInteractionLength, and G4VProcess::theNumberOfInteractionLengthLeft.

Referenced by G4MuonicAtomDecay::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4BiasingProcessInterface::InvokeWrappedProcessPostStepGPIL(), G4BiasingProcessInterface::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4BiasingProcessInterface::ResetNumberOfInteractionLengthLeft(), G4WrapperProcess::ResetNumberOfInteractionLengthLeft(), G4AdjointProcessEquivalentToDirectProcess::ResetNumberOfInteractionLengthLeft(), and G4Decay::StartTracking().

◆ RetrievePhysicsTable()

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

◆ SetHighLooperThresholds()

void G4CoupledTransportation::SetHighLooperThresholds ( )

Definition at line 1104 of file G4CoupledTransportation.cc.

1105{
1106 // Setting old 'high' values for thresholds - old values, potentially appropriate
1107 // for the energy frontier HEP experiments
1108 SetThresholdWarningEnergy( 100.0 * CLHEP::MeV ); // Warn above this energy
1109 SetThresholdImportantEnergy( 250.0 * CLHEP::MeV ); // Give a few trial above this E);
1110
1111 G4int maxTrials = 10;
1112 SetThresholdTrials( maxTrials );
1113
1115}
void SetThresholdTrials(G4int newMaxTrials)
void SetThresholdImportantEnergy(G4double newEnImp)
void SetThresholdWarningEnergy(G4double newEnWarn)
static constexpr double MeV

References CLHEP::MeV, ReportLooperThresholds(), SetThresholdImportantEnergy(), SetThresholdTrials(), SetThresholdWarningEnergy(), and G4VProcess::verboseLevel.

Referenced by G4CoupledTransportation().

◆ SetLowLooperThresholds()

void G4CoupledTransportation::SetLowLooperThresholds ( )

Definition at line 1118 of file G4CoupledTransportation.cc.

1119{
1120 // These values were the default in Geant4 10.5 - beta
1121 SetThresholdWarningEnergy( 1.0 * CLHEP::keV ); // Warn above this En
1122 SetThresholdImportantEnergy( 1.0 * CLHEP::MeV ); // Extra trials above it
1123
1124 G4int maxTrials = 30; // A new value - was 10
1125 SetThresholdTrials( maxTrials );
1126
1128}
static constexpr double keV

References CLHEP::keV, CLHEP::MeV, ReportLooperThresholds(), SetThresholdImportantEnergy(), SetThresholdTrials(), SetThresholdWarningEnergy(), and G4VProcess::verboseLevel.

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

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

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

Referenced by G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4AnnihiToMuPair::G4AnnihiToMuPair(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ComptonScattering::G4ComptonScattering(), G4CoulombScattering::G4CoulombScattering(), G4CoupledTransportation(), 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().

◆ SetPropagatorInField()

void G4CoupledTransportation::SetPropagatorInField ( G4PropagatorInField pFieldPropagator)

◆ SetSignifyStepsInAnyVolume()

static void G4CoupledTransportation::SetSignifyStepsInAnyVolume ( G4bool  anyVol)
inlinestatic

Definition at line 138 of file G4CoupledTransportation.hh.

139 { fSignifyStepInAnyVolume = anyVol; }

References fSignifyStepInAnyVolume.

◆ SetSilenceLooperWarnings()

void G4CoupledTransportation::SetSilenceLooperWarnings ( G4bool  val)
static

Definition at line 1089 of file G4CoupledTransportation.cc.

1090{
1091 fSilenceLooperWarnings= val; // Flag to *Supress* all 'looper' warnings
1092 // G4CoupledTransportation::fSilenceLooperWarnings= val;
1093}

References fSilenceLooperWarnings.

◆ SetThresholdImportantEnergy()

void G4CoupledTransportation::SetThresholdImportantEnergy ( G4double  newEnImp)
inline

◆ SetThresholdTrials()

void G4CoupledTransportation::SetThresholdTrials ( G4int  newMaxTrials)
inline

◆ SetThresholdWarningEnergy()

void G4CoupledTransportation::SetThresholdWarningEnergy ( G4double  newEnWarn)
inline

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ StartTracking()

void G4CoupledTransportation::StartTracking ( G4Track aTrack)
virtual

Reimplemented from G4VProcess.

Definition at line 936 of file G4CoupledTransportation.cc.

937{
938
939 G4TransportationManager* transportMgr =
941
942 // G4VProcess::StartTracking(aTrack);
943 fNewTrack= true;
944
945 // The 'initialising' actions
946 // once taken in AlongStepGPIL -- if ( track.GetCurrentStepNumber()==1 )
947
948 // fStartedNewTrack= true;
949
950 fMassNavigator = transportMgr->GetNavigatorForTracking() ;
952
954 G4ThreeVector direction = aTrack->GetMomentumDirection();
955
956 fPathFinder->PrepareNewTrack( position, direction);
957 // This implies a call to fPathFinder->Locate( position, direction );
958
959 // Whether field exists should be determined at run level -- TODO
961
962 // reset safety value and center
963 //
964 fPreviousMassSafety = 0.0 ;
965 fPreviousFullSafety = 0.0 ;
967
968 // reset looping counter -- for motion in field
969 fNoLooperTrials= 0;
970
971 // Must clear this state .. else it depends on last track's value
972 // --> a better solution would set this from state of suspended track TODO ?
973 // Was if( aTrack->GetCurrentStepNumber()==1 ) { .. }
974
975 // ChordFinder reset internal state
976 //
978 {
980 // Resets safety values, in case of overlaps.
981
983 if( chordF ) { chordF->ResetStepEstimate(); }
984 }
985
986 // Clear the chord finders of all fields (ie managers) derived objects
987 //
989 fieldMgrStore->ClearAllChordFindersState();
990
991#ifdef G4DEBUG_TRANSPORT
992 if( verboseLevel > 1 )
993 {
994 G4cout << " Returning touchable handle " << fCurrentTouchableHandle
995 << G4endl;
996 }
997#endif
998
999 // Update the current touchable handle (from the track's)
1000 //
1002}
void ResetStepEstimate()
static G4FieldManagerStore * GetInstance()
void PrepareNewTrack(const G4ThreeVector &position, const G4ThreeVector &direction, G4VPhysicalVolume *massStartVol=nullptr)
G4ChordFinder * GetChordFinder()

References G4TransportationManager::ActivateNavigator(), G4FieldManagerStore::ClearAllChordFindersState(), G4PropagatorInField::ClearPropagatorState(), DoesAnyFieldExist(), fAnyFieldExists, fCurrentTouchableHandle, fFieldPropagator, fMassNavigator, fNavigatorId, fNewTrack, fNoLooperTrials, fPathFinder, fPreviousFullSafety, fPreviousMassSafety, fPreviousSftOrigin, G4cout, G4endl, G4PropagatorInField::GetChordFinder(), G4FieldManagerStore::GetInstance(), G4Track::GetMomentumDirection(), G4TransportationManager::GetNavigatorForTracking(), G4Track::GetPosition(), G4Track::GetTouchableHandle(), G4TransportationManager::GetTransportationManager(), G4PathFinder::PrepareNewTrack(), G4ChordFinder::ResetStepEstimate(), and G4VProcess::verboseLevel.

◆ StorePhysicsTable()

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

◆ SubtractNumberOfInteractionLengthLeft()

void G4VProcess::SubtractNumberOfInteractionLengthLeft ( G4double  prevStepSize)
inlineprotectedinherited

Definition at line 524 of file G4VProcess.hh.

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

Friends And Related Function Documentation

◆ G4Transportation

friend class G4Transportation
friend

Definition at line 270 of file G4CoupledTransportation.hh.

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

◆ fAnyFieldExists

G4bool G4CoupledTransportation::fAnyFieldExists
private

Definition at line 198 of file G4CoupledTransportation.hh.

Referenced by G4CoupledTransportation(), and StartTracking().

◆ fAnyGeometryLimitedStep

G4bool G4CoupledTransportation::fAnyGeometryLimitedStep
private

◆ fCandidateEndGlobalTime

G4double G4CoupledTransportation::fCandidateEndGlobalTime
private

◆ fCurrentTouchableHandle

G4TouchableHandle G4CoupledTransportation::fCurrentTouchableHandle
private

◆ fEndGlobalTimeComputed

G4bool G4CoupledTransportation::fEndGlobalTimeComputed
private

◆ fEndpointDistance

G4double G4CoupledTransportation::fEndpointDistance
private

Definition at line 233 of file G4CoupledTransportation.hh.

Referenced by AlongStepGetPhysicalInteractionLength().

◆ fFieldPropagator

G4PropagatorInField* G4CoupledTransportation::fFieldPropagator
private

◆ fFirstStepInAnyVolume

G4bool G4CoupledTransportation::fFirstStepInAnyVolume
private

◆ fFirstStepInMassVolume

G4bool G4CoupledTransportation::fFirstStepInMassVolume
private

◆ fMassGeometryLimitedStep

G4bool G4CoupledTransportation::fMassGeometryLimitedStep
private

◆ fMassNavigator

G4Navigator* G4CoupledTransportation::fMassNavigator
private

Definition at line 188 of file G4CoupledTransportation.hh.

Referenced by G4CoupledTransportation(), and StartTracking().

◆ fMaxEnergyKilled

G4double G4CoupledTransportation::fMaxEnergyKilled = -1.0
private

Definition at line 253 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt(), and PrintStatistics().

◆ fMaxEnergyKilled_NonElecPDG

G4int G4CoupledTransportation::fMaxEnergyKilled_NonElecPDG = 0
private

Definition at line 259 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fMaxEnergyKilled_NonElectron

G4double G4CoupledTransportation::fMaxEnergyKilled_NonElectron = -1.0
private

Definition at line 258 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fMaxEnergyKilledPDG

G4int G4CoupledTransportation::fMaxEnergyKilledPDG = 0
private

Definition at line 254 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fMaxEnergySaved

G4double G4CoupledTransportation::fMaxEnergySaved = -1.0
private

Definition at line 262 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt(), and PrintStatistics().

◆ fMomentumChanged

G4bool G4CoupledTransportation::fMomentumChanged
private

◆ fNavigatorId

G4int G4CoupledTransportation::fNavigatorId
private

◆ fNewTrack

G4bool G4CoupledTransportation::fNewTrack
private

◆ fNoLooperTrials

G4int G4CoupledTransportation::fNoLooperTrials =0
private

Definition at line 247 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt(), and StartTracking().

◆ fNumLoopersKilled

unsigned long G4CoupledTransportation::fNumLoopersKilled = 0
private

Definition at line 255 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fNumLoopersKilled_NonElectron

unsigned long G4CoupledTransportation::fNumLoopersKilled_NonElectron = 0
private

Definition at line 260 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fParticleChange

G4ParticleChangeForTransport G4CoupledTransportation::fParticleChange
private

◆ fParticleIsLooping

G4bool G4CoupledTransportation::fParticleIsLooping
private

◆ fPathFinder

G4PathFinder* G4CoupledTransportation::fPathFinder
private

◆ fpLogger

G4TransportationLogger* G4CoupledTransportation::fpLogger
private

◆ fPreviousFullSafety

G4double G4CoupledTransportation::fPreviousFullSafety
private

◆ fPreviousMassSafety

G4double G4CoupledTransportation::fPreviousMassSafety
private

◆ fPreviousSftOrigin

G4ThreeVector G4CoupledTransportation::fPreviousSftOrigin
private

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fpSafetyHelper

G4SafetyHelper* G4CoupledTransportation::fpSafetyHelper
private

◆ fSignifyStepInAnyVolume

G4bool G4CoupledTransportation::fSignifyStepInAnyVolume = false
staticprivate

◆ fSilenceLooperWarnings

G4bool G4CoupledTransportation::fSilenceLooperWarnings = false
staticprivate

◆ fSumEnergyKilled

G4double G4CoupledTransportation::fSumEnergyKilled = 0.0
private

◆ fSumEnergyKilled_NonElectron

G4double G4CoupledTransportation::fSumEnergyKilled_NonElectron = 0.0
private

Definition at line 256 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fSumEnergySaved

G4double G4CoupledTransportation::fSumEnergySaved = 0.0
private

Definition at line 261 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt(), and PrintStatistics().

◆ fSumEnergyUnstableSaved

G4double G4CoupledTransportation::fSumEnergyUnstableSaved = 0.0
private

Definition at line 263 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt(), and PrintStatistics().

◆ fSumEnerSqKilled

G4double G4CoupledTransportation::fSumEnerSqKilled = 0.0
private

Definition at line 252 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fSumEnerSqKilled_NonElectron

G4double G4CoupledTransportation::fSumEnerSqKilled_NonElectron = 0.0
private

Definition at line 257 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fThreshold_Important_Energy

G4double G4CoupledTransportation::fThreshold_Important_Energy = 1.0 * CLHEP::MeV
private

Definition at line 239 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fThreshold_Warning_Energy

G4double G4CoupledTransportation::fThreshold_Warning_Energy = 1.0 * CLHEP::keV
private

Definition at line 238 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fThresholdTrials

G4int G4CoupledTransportation::fThresholdTrials = 10
private

Definition at line 240 of file G4CoupledTransportation.hh.

Referenced by AlongStepDoIt().

◆ fTransportEndKineticEnergy

G4double G4CoupledTransportation::fTransportEndKineticEnergy
private

◆ fTransportEndMomentumDir

G4ThreeVector G4CoupledTransportation::fTransportEndMomentumDir
private

◆ fTransportEndPosition

G4ThreeVector G4CoupledTransportation::fTransportEndPosition
private

◆ fTransportEndSpin

G4ThreeVector G4CoupledTransportation::fTransportEndSpin
private

◆ fUseGravity

G4bool G4CoupledTransportation::fUseGravity = false
staticprivate

◆ fUseMagneticMoment

G4bool G4CoupledTransportation::fUseMagneticMoment =false
staticprivate

◆ 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(), AlongStepDoIt(), G4Transportation::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), 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(), 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(), 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(), ReportInexactEnergy(), ReportMissingLogger(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), SetHighLooperThresholds(), G4Transportation::SetHighLooperThresholds(), G4VEnergyLossProcess::SetInverseRangeTable(), G4LowECapture::SetKinEnergyLimit(), G4NeutronKiller::SetKinEnergyLimit(), G4VEnergyLossProcess::SetLambdaTable(), 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(), 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: