67 fpAuxiliaryPointVector(0),
73 fPreStepPointGlobalTime(0),
74 fPostStepPointGlobalTime(0),
75 fPreStepPointWeight(1.),
76 fPostStepPointWeight(1.)
81 fpAuxiliaryPointVector(0),
83 fRemainingEnergy(aTrack->GetKineticEnergy()),
87 fPreStepPointGlobalTime(aTrack->GetGlobalTime()),
88 fPostStepPointGlobalTime(aTrack->GetGlobalTime()),
89 fpPreStepPointVolume(aTrack->GetTouchableHandle()),
90 fpPostStepPointVolume(aTrack->GetNextTouchableHandle()),
91 fPreStepPointWeight(aTrack->GetWeight()),
92 fPostStepPointWeight(aTrack->GetWeight())
97 fpAuxiliaryPointVector(aStep->GetPointerToVectorOfAuxiliaryPoints()),
98 fTotEDep(aStep->GetTotalEnergyDeposit())
114 fPreStepPointWeight = preStepPoint->
GetWeight();
115 fPostStepPointWeight = postStepPoint->
GetWeight();
121 fpAuxiliaryPointVector(right.fpAuxiliaryPointVector),
122 fTotEDep(right.fTotEDep),
123 fRemainingEnergy(right.fRemainingEnergy),
124 fpProcess(right.fpProcess),
125 fPreStepPointStatus(right.fPreStepPointStatus),
126 fPostStepPointStatus(right.fPostStepPointStatus),
127 fPreStepPointGlobalTime(right.fPreStepPointGlobalTime),
128 fPostStepPointGlobalTime(right.fPostStepPointGlobalTime),
129 fpPreStepPointVolume(right.fpPreStepPointVolume),
130 fpPostStepPointVolume(right.fpPostStepPointVolume),
131 fPreStepPointWeight(right.fPreStepPointWeight),
132 fPostStepPointWeight(right.fPostStepPointWeight)
137 if(fpAuxiliaryPointVector) {
143 delete fpAuxiliaryPointVector;
147 const std::map<G4String,G4AttDef>*
151 std::map<G4String,G4AttDef>* store
161 (*store)[ID] =
G4AttDef(ID,
"Auxiliary Point Position",
162 "Physics",
"G4BestUnit",
"G4ThreeVector");
164 (*store)[ID] =
G4AttDef(ID,
"Total Energy Deposit",
165 "Physics",
"G4BestUnit",
"G4double");
167 (*store)[ID] =
G4AttDef(ID,
"Remaining Energy",
168 "Physics",
"G4BestUnit",
"G4double");
170 (*store)[ID] =
G4AttDef(ID,
"Process Defined Step",
171 "Physics",
"",
"G4String");
173 (*store)[ID] =
G4AttDef(ID,
"Process Type Defined Step",
174 "Physics",
"",
"G4String");
176 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point status",
177 "Physics",
"",
"G4String");
179 (*store)[ID] =
G4AttDef(ID,
"Post-step-point status",
180 "Physics",
"",
"G4String");
182 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point global time",
183 "Physics",
"G4BestUnit",
"G4double");
185 (*store)[ID] =
G4AttDef(ID,
"Post-step-point global time",
186 "Physics",
"G4BestUnit",
"G4double");
188 (*store)[ID] =
G4AttDef(ID,
"Pre-step Volume Path",
189 "Physics",
"",
"G4String");
191 (*store)[ID] =
G4AttDef(ID,
"Post-step Volume Path",
192 "Physics",
"",
"G4String");
194 (*store)[ID] =
G4AttDef(ID,
"Pre-step-point weight",
195 "Physics",
"",
"G4double");
197 (*store)[ID] =
G4AttDef(ID,
"Post-step-point weight",
198 "Physics",
"",
"G4double");
214 case fUndefined: status =
"fUndefined";
break;
215 default: status =
"Not recognised";
break;
222 std::ostringstream oss;
224 for (
G4int i = depth; i >= 0; --i) {
227 if (i != 0) oss <<
'/';
237 if (fpAuxiliaryPointVector) {
238 std::vector<G4ThreeVector>::iterator iAux;
239 for (iAux = fpAuxiliaryPointVector->begin();
240 iAux != fpAuxiliaryPointVector->end(); ++iAux) {
257 values->push_back(
G4AttValue(
"PDS",
"None",
""));
258 values->push_back(
G4AttValue(
"PTDS",
"None",
""));
262 (
G4AttValue(
"PreStatus",Status(fPreStepPointStatus),
""));
265 (
G4AttValue(
"PostStatus",Status(fPostStepPointStatus),
""));
273 if (fpPreStepPointVolume && fpPreStepPointVolume->
GetVolume()) {
274 values->push_back(
G4AttValue(
"PreVPath",Path(fpPreStepPointVolume),
""));
276 values->push_back(
G4AttValue(
"PreVPath",
"None",
""));
279 if (fpPostStepPointVolume && fpPostStepPointVolume->
GetVolume()) {
280 values->push_back(
G4AttValue(
"PostVPath",Path(fpPostStepPointVolume),
""));
282 values->push_back(
G4AttValue(
"PostVPath",
"None",
""));
286 std::ostringstream oss;
287 oss << fPreStepPointWeight;
293 std::ostringstream oss;
294 oss << fPostStepPointWeight;
static const G4String & GetProcessTypeName(G4ProcessType)
G4double GetWeight() const
G4StepStatus GetStepStatus() const
virtual std::vector< G4AttValue > * CreateAttValues() const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4ProcessType GetProcessType() const
G4int GetCopyNumber(G4int depth=0) const
G4StepPoint * GetPreStepPoint() const
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4int GetCurrentStepNumber() const
const G4String & GetName() const
virtual std::vector< G4AttValue > * CreateAttValues() const
virtual G4int GetHistoryDepth() const
const G4String & GetProcessName() const
const G4VProcess * GetProcessDefinedStep() const
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
virtual ~G4RichTrajectoryPoint()
G4StepPoint * GetPostStepPoint() const
G4double GetGlobalTime() const
G4double GetKineticEnergy() const
G4Track * GetTrack() const
G4TRACKING_DLL G4ThreadLocal G4Allocator< G4RichTrajectoryPoint > * aRichTrajectoryPointAllocator
std::map< G4String, G4AttDef > * GetInstance(G4String storeKey, G4bool &isNew)
const G4TouchableHandle & GetTouchableHandle() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const