47 #ifndef G4VITProcess_H
48 #define G4VITProcess_H
77 #define InitProcessState(destinationType,source) \
78 reference_cast<destinationType>(source)
80 #define DowncastProcessState(destinationType) \
81 G4dynamic_pointer_cast<destinationType>(G4VITProcess::fpState)
83 #define UpcastProcessState(destinationType) \
84 G4dynamic_pointer_cast<destinationType>(G4VITProcess::fpState)
86 #define DowncastState(destinationType,source) \
87 G4dynamic_pointer_cast<destinationType>(source)
89 #define UpcastState(destinationType,source) \
90 G4dynamic_pointer_cast<destinationType>(source)
184 return "G4ProcessState";
200 return dynamic_cast<T*
>(
this);
218 return typeid(T).
name();
242 fInstantiateProcessState = flag;
247 return fInstantiateProcessState;
259 staticsize_t *fNbProcess;
261 G4bool fInstantiateProcessState;
264 G4double* theNumberOfInteractionLengthLeft;
271 fpState->theInteractionTimeLeft = -1.0;
276 fpState->theNumberOfInteractionLengthLeft = -1.0;
298 if (!fNbProcess) fNbProcess =
new size_t(0);
305 if (
fpState->currentInteractionLength > 0.0)
307 fpState->theNumberOfInteractionLengthLeft -= previousStepSize
308 /
fpState->currentInteractionLength;
309 if (
fpState->theNumberOfInteractionLengthLeft < 0.)
320 G4cerr <<
"G4VITProcess::SubtractNumberOfInteractionLengthLeft()";
322 G4cerr <<
" currentInteractionLength = "
323 <<
fpState->currentInteractionLength <<
" [mm]";
324 G4cerr <<
" previousStepSize = " << previousStepSize <<
" [mm]";
328 G4String msg =
"Negative currentInteractionLength for ";
330 G4Exception(
"G4VITProcess::SubtractNumberOfInteractionLengthLeft()",
335 #endif // G4VITProcess_H
#define DowncastState(destinationType, source)
virtual void ClearNumberOfInteractionLengthLeft()
virtual ~G4ProcessStateBase()
static const size_t & GetMaxProcessIndex()
void RetrieveProcessInfo()
G4double currentInteractionLength
#define G4IT_TO_BE_CLONED(parent_class)
virtual G4String GetType()
virtual void ResetNumberOfInteractionLengthLeft()
G4VITProcess(const G4String &name, G4ProcessType type=fNotDefined)
#define UpcastProcessState(destinationType)
G4double theInteractionTimeLeft
void SetInstantiateProcessState(G4bool flag)
virtual void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
virtual void ClearInteractionTimeLeft()
G4int operator==(const G4VITProcess &right) const
G4shared_ptr< G4ProcessState_Lock > GetProcessState()
G4VITProcess & operator=(const G4VITProcess &other)
virtual ~G4ProcessState_Lock()
virtual ~G4ProcessState()
virtual void StartTracking(G4Track *)
G4shared_ptr< G4ProcessState > fpState
static constexpr double perMillion
G4double GetInteractionTimeLeft()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void SetProcessState(G4shared_ptr< G4ProcessState_Lock > aProcInfo)
G4bool InstantiateProcessState()
G4int operator!=(const G4VITProcess &right) const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4bool ProposesTimeStep() const
size_t GetProcessID() const
virtual G4String GetType()
G4double theNumberOfInteractionLengthLeft
G4GLOB_DLL std::ostream G4cerr