91 fpRichPointsContainer =
new RichTrajectoryPointsContainer;
98 fpInitialVolume = right.fpInitialVolume;
99 fpInitialNextVolume = right.fpInitialNextVolume;
100 fpCreatorProcess = right.fpCreatorProcess;
101 fCreatorModelID = right.fCreatorModelID;
102 fpFinalVolume = right.fpFinalVolume;
103 fpFinalNextVolume = right.fpFinalNextVolume;
104 fpEndingProcess = right.fpEndingProcess;
105 fFinalKineticEnergy = right.fFinalKineticEnergy;
106 fpRichPointsContainer =
new RichTrajectoryPointsContainer;
107 for(std::size_t i=0; i<right.fpRichPointsContainer->size(); ++i)
117 if (fpRichPointsContainer)
119 for(std::size_t i=0; i<fpRichPointsContainer->size(); ++i)
121 delete (*fpRichPointsContainer)[i];
123 fpRichPointsContainer->clear();
124 delete fpRichPointsContainer;
149 if(secondTrajectory ==
nullptr)
return;
153 for(
G4int i=1; i<ent; ++i)
157 fpRichPointsContainer->push_back((*(seco->fpRichPointsContainer))[i]);
159 delete (*seco->fpRichPointsContainer)[0];
160 seco->fpRichPointsContainer->clear();
184 std::map<G4String,G4AttDef>* store
195 (*store)[ID] =
G4AttDef(ID,
"Initial Volume Path",
196 "Physics",
"",
"G4String");
199 (*store)[ID] =
G4AttDef(ID,
"Initial Next Volume Path",
200 "Physics",
"",
"G4String");
203 (*store)[ID] =
G4AttDef(ID,
"Creator Process Name",
204 "Physics",
"",
"G4String");
207 (*store)[ID] =
G4AttDef(ID,
"Creator Process Type Name",
208 "Physics",
"",
"G4String");
211 (*store)[ID] =
G4AttDef(ID,
"Creator Model ID",
212 "Physics",
"",
"G4int");
215 (*store)[ID] =
G4AttDef(ID,
"Creator Model Name",
216 "Physics",
"",
"G4String");
219 (*store)[ID] =
G4AttDef(ID,
"Final Volume Path",
220 "Physics",
"",
"G4String");
223 (*store)[ID] =
G4AttDef(ID,
"Final Next Volume Path",
224 "Physics",
"",
"G4String");
227 (*store)[ID] =
G4AttDef(ID,
"Ending Process Name",
228 "Physics",
"",
"G4String");
231 (*store)[ID] =
G4AttDef(ID,
"Ending Process Type Name",
232 "Physics",
"",
"G4String");
235 (*store)[ID] =
G4AttDef(ID,
"Final kinetic energy",
236 "Physics",
"G4BestUnit",
"G4double");
244 std::ostringstream oss;
246 for (
G4int i = depth; i >= 0; --i)
250 if (i != 0) oss <<
'/';
260 if (fpInitialVolume && fpInitialVolume->
GetVolume())
262 values->push_back(
G4AttValue(
"IVPath",Path(fpInitialVolume),
""));
266 values->push_back(
G4AttValue(
"IVPath",
"None",
""));
269 if (fpInitialNextVolume && fpInitialNextVolume->
GetVolume())
271 values->push_back(
G4AttValue(
"INVPath",Path(fpInitialNextVolume),
""));
275 values->push_back(
G4AttValue(
"INVPath",
"None",
""));
278 if (fpCreatorProcess !=
nullptr)
289 values->push_back(
G4AttValue(
"CMN",creatorModelName,
""));
293 values->push_back(
G4AttValue(
"CPN",
"None",
""));
294 values->push_back(
G4AttValue(
"CPTN",
"None",
""));
295 values->push_back(
G4AttValue(
"CMID",
"None",
""));
296 values->push_back(
G4AttValue(
"CMN",
"None",
""));
299 if (fpFinalVolume && fpFinalVolume->
GetVolume())
301 values->push_back(
G4AttValue(
"FVPath",Path(fpFinalVolume),
""));
305 values->push_back(
G4AttValue(
"FVPath",
"None",
""));
308 if (fpFinalNextVolume && fpFinalNextVolume->
GetVolume())
310 values->push_back(
G4AttValue(
"FNVPath",Path(fpFinalNextVolume),
""));
314 values->push_back(
G4AttValue(
"FNVPath",
"None",
""));
317 if (fpEndingProcess !=
nullptr)
325 values->push_back(
G4AttValue(
"EPN",
"None",
""));
326 values->push_back(
G4AttValue(
"EPTN",
"None",
""));
G4Allocator< G4RichTrajectory > *& aRichTrajectoryAllocator()
G4GLOB_DLL std::ostream G4cout
static const G4String GetModelNameFromID(const G4int modelID)
virtual ~G4RichTrajectory()
void ShowTrajectory(std::ostream &os=G4cout) const
void AppendStep(const G4Step *aStep)
virtual std::vector< G4AttValue > * CreateAttValues() const
void DrawTrajectory() const
void MergeTrajectory(G4VTrajectory *secondTrajectory)
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
G4int GetPointEntries() const
const G4VProcess * GetProcessDefinedStep() const
G4double GetKineticEnergy() const
G4Track * GetTrack() const
G4StepPoint * GetPreStepPoint() const
G4double GetTotalEnergyDeposit() const
G4StepPoint * GetPostStepPoint() const
const G4TouchableHandle & GetNextTouchableHandle() const
const G4VProcess * GetCreatorProcess() const
G4int GetCreatorModelID() const
G4int GetCurrentStepNumber() const
const G4TouchableHandle & GetTouchableHandle() const
G4double GetKineticEnergy() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
virtual std::vector< G4AttValue > * CreateAttValues() const
static G4String ConvertToString(G4bool boolVal)
const G4String & GetName() const
static const G4String & GetProcessTypeName(G4ProcessType)
G4ProcessType GetProcessType() const
const G4String & GetProcessName() const
G4int GetCopyNumber(G4int depth=0) const
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
virtual G4int GetHistoryDepth() const
virtual void ShowTrajectory(std::ostream &os=G4cout) const
virtual void DrawTrajectory() const
std::map< G4String, G4AttDef > * GetInstance(const G4String &storeKey, G4bool &isNew)
#define G4ThreadLocalStatic