6 #include <G4VProcess.hh> 7 #include <G4StepStatus.hh> 8 #include <G4ProcessType.hh> 10 #include <G4AttDefStore.hh> 11 #include <G4AttDef.hh> 12 #include <G4AttValue.hh> 13 #include <G4UnitsTable.hh> 15 #include <TGeoManager.h> 22 : fTime(0.), fMomentum(0.,0.,0.),
23 fStepStatus(fUndefined),
24 fProcessType(fNotDefined), fProcessSubType(0),
25 fProcessName(
"NotDefined"), fPhysVolName(
"OutofWorld"),
26 fPrevPosition(0,0,0) { }
29 : G4TrajectoryPoint(aStep->GetPostStepPoint()->GetPosition()) {
30 fTime = aStep->GetPostStepPoint()->GetGlobalTime();
31 fMomentum = aStep->GetPostStepPoint()->GetMomentum();
32 fStepStatus = aStep->GetPostStepPoint()->GetStepStatus();
33 if (aStep->GetPostStepPoint()->GetPhysicalVolume()) {
35 = aStep->GetPostStepPoint()->GetPhysicalVolume()->GetName();
44 if (aStep->GetPostStepPoint()->GetProcessDefinedStep()) {
46 GetProcessDefinedStep()->GetProcessType();
48 GetProcessDefinedStep()->GetProcessSubType();
50 GetProcessDefinedStep()->GetProcessName();
56 : G4TrajectoryPoint(aTrack->GetPosition()) {
57 fTime = aTrack->GetGlobalTime();
60 if (aTrack->GetVolume()) {
67 const G4VProcess* proc = aTrack->GetCreatorProcess();
77 : G4TrajectoryPoint(right) {
94 std::map<G4String,G4AttDef>* store
95 = G4AttDefStore::GetInstance(
"EDepSim::TrajectoryPoint",isNew);
99 G4String Time(
"Time");
101 G4AttDef(Time,
"Time",
"Physics",
"G4BestUnit",
"G4double");
105 G4AttDef(Momentum,
"Momentum",
"Physics",
106 "G4BestUnit",
"G4ThreeVector");
108 G4String StepStatus(
"StepStatus");
109 (*store)[StepStatus] =
110 G4AttDef(StepStatus,
"StepStatus",
"Physics",
"",
"G4StepStatus");
112 G4String VolumeName(
"VolumeName");
113 (*store)[VolumeName] =
114 G4AttDef(VolumeName,
"VolumeName",
"Physics",
"",
"G4String");
116 G4String VolumeNode(
"VolumeNode");
117 (*store)[VolumeNode] =
118 G4AttDef(VolumeNode,
"VolumeNode",
"Physics",
"",
"G4int");
125 std::vector<G4AttValue>*
values =
new std::vector<G4AttValue>;
127 values->push_back(G4AttValue(
"Time",G4BestUnit(
fTime,
"Time"),
""));
129 values->push_back(G4AttValue(
"Momentum",
131 values->push_back(G4AttValue(
"StepStatus",
fStepStatus,
""));
133 values->push_back(G4AttValue(
"PhysVolName",
fPhysVolName,
""));
143 gGeoManager->PushPath();
147 gGeoManager->PopPath();
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
G4Allocator< EDepSim::TrajectoryPoint > aTrajPointAllocator
#define EDepSimInfo(outStream)
G4ThreeVector fPrevPosition
G4ProcessType fProcessType
virtual ~TrajectoryPoint()
int GetVolumeNode() const
int GetNodeId(const G4ThreeVector &pos)
Get a volume ID base on the volume position.
virtual std::vector< G4AttValue > * CreateAttValues() const
static EDepSim::RootGeometryManager * Get(void)
If a persistency manager has not been created, create one.