66 fPreStepPointGlobalTime(aTrack->GetGlobalTime()),
67 fPostStepPointGlobalTime(aTrack->GetGlobalTime()),
68 fpPreStepPointVolume(aTrack->GetTouchableHandle()),
69 fpPostStepPointVolume(aTrack->GetNextTouchableHandle()),
70 fPreStepPointWeight(aTrack->GetWeight()),
71 fPostStepPointWeight(aTrack->GetWeight())
76 fpAuxiliaryPointVector(aStep->GetPointerToVectorOfAuxiliaryPoints()),
77 fTotEDep(aStep->GetTotalEnergyDeposit())
83 fRemainingEnergy = aStep->GetTrack()->GetKineticEnergy();
86 fRemainingEnergy = preStepPoint->GetKineticEnergy() - fTotEDep;
95 fPreStepPointWeight = preStepPoint->
GetWeight();
96 fPostStepPointWeight = postStepPoint->
GetWeight();
118 G4AttDef(ID,
"Auxiliary Point Position",
"Physics",
"G4BestUnit",
"G4ThreeVector");
120 (*store)[ID] =
G4AttDef(ID,
"Total Energy Deposit",
"Physics",
"G4BestUnit",
"G4double");
122 (*store)[ID] =
G4AttDef(ID,
"Remaining Energy",
"Physics",
"G4BestUnit",
"G4double");
124 (*store)[ID] =
G4AttDef(ID,
"Process Defined Step",
"Physics",
"",
"G4String");
126 (*store)[ID] =
G4AttDef(ID,
"Process Type Defined Step",
"Physics",
"",
"G4String");
128 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point status",
"Physics",
"",
"G4String");
130 (*store)[ID] =
G4AttDef(ID,
"Post-step-point status",
"Physics",
"",
"G4String");
132 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point global time",
"Physics",
"G4BestUnit",
"G4double");
134 (*store)[ID] =
G4AttDef(ID,
"Post-step-point global time",
"Physics",
"G4BestUnit",
"G4double");
136 (*store)[ID] =
G4AttDef(ID,
"Pre-step Volume Path",
"Physics",
"",
"G4String");
138 (*store)[ID] =
G4AttDef(ID,
"Post-step Volume Path",
"Physics",
"",
"G4String");
140 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point weight",
"Physics",
"",
"G4double");
142 (*store)[ID] =
G4AttDef(ID,
"Post-step-point weight",
"Physics",
"",
"G4double");
152 status =
"fWorldBoundary";
155 status =
"fGeomBoundary";
158 status =
"fAtRestDoItProc";
161 status =
"fAlongStepDoItProc";
164 status =
"fPostStepDoItProc";
167 status =
"fUserDefinedLimit";
170 status =
"fExclusivelyForcedProc";
173 status =
"fUndefined";
176 status =
"Not recognised";
184 std::ostringstream oss;
186 for (
G4int i = depth; i >= 0; --i) {
188 if (i != 0) oss <<
'/';
199 if (fpAuxiliaryPointVector !=
nullptr) {
200 for (
const auto& iAux : *fpAuxiliaryPointVector) {
208 if (fpProcess !=
nullptr) {
214 values->push_back(
G4AttValue(
"PDS",
"None",
""));
215 values->push_back(
G4AttValue(
"PTDS",
"None",
""));
218 values->push_back(
G4AttValue(
"PreStatus", Status(fPreStepPointStatus),
""));
220 values->push_back(
G4AttValue(
"PostStatus", Status(fPostStepPointStatus),
""));
226 if (fpPreStepPointVolume && (fpPreStepPointVolume->
GetVolume() !=
nullptr)) {
227 values->push_back(
G4AttValue(
"PreVPath", Path(fpPreStepPointVolume),
""));
230 values->push_back(
G4AttValue(
"PreVPath",
"None",
""));
233 if (fpPostStepPointVolume && (fpPostStepPointVolume->
GetVolume() !=
nullptr)) {
234 values->push_back(
G4AttValue(
"PostVPath", Path(fpPostStepPointVolume),
""));
237 values->push_back(
G4AttValue(
"PostVPath",
"None",
""));
240 std::ostringstream oss1;
241 oss1 << fPreStepPointWeight;
242 values->push_back(
G4AttValue(
"PreW", oss1.str(),
""));
244 std::ostringstream oss2;
245 oss2 << fPostStepPointWeight;
246 values->push_back(
G4AttValue(
"PostW", oss2.str(),
""));
G4Allocator< G4RichTrajectoryPoint > *& aRichTrajectoryPointAllocator()
G4GLOB_DLL std::ostream G4cout
const std::map< G4String, G4AttDef > * GetAttDefs() const override
std::vector< G4AttValue > * CreateAttValues() const override
~G4RichTrajectoryPoint() override
G4StepStatus GetStepStatus() const
G4double GetGlobalTime() const
const G4VProcess * GetProcessDefinedStep() const
const G4TouchableHandle & GetTouchableHandle() const
G4double GetWeight() const
G4Track * GetTrack() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const
G4int GetCopyNumber(G4int depth=0) const
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
virtual G4int GetHistoryDepth() const
G4int GetCurrentStepNumber() const
const std::map< G4String, G4AttDef > * GetAttDefs() const override
std::vector< G4AttValue > * CreateAttValues() const override
const G4String & GetName() const
static const G4String & GetProcessTypeName(G4ProcessType)
G4ProcessType GetProcessType() const
const G4String & GetProcessName() const
std::map< G4String, G4AttDef > * GetInstance(const G4String &storeKey, G4bool &isNew)
#define G4ThreadLocalStatic