ステップポイントのグローバル時刻をしりたい(G4StepPoint::GetGlobalTime

 1// G4Step *aStep
 2G4StepPoint *pre_step = aStep->GetPreStepPoint();
 3G4StepPoint *post_step = aStep->GetPostStepPoint();
 4G4Track *track = aStep->GetTrack();
 5
 6G4double pre_time = pre_step->GetGlobalTime();
 7G4double post_time = post_step->GetGlobalTime();
 8G4double track_time = track->GetGlobalTime();
 9
10G4debug << "[PreStep]  GlobalTime=" << G4BestUnit{pre_time, "Time"} >> G4endl;
11G4debug << "[PostStep] GlobalTime=" << G4BestUnit{post_time, "Time"} >> G4endl;
12G4debug << "[Track]    GlobalTime=" << G4BestUnit{track_time, "Time"} >> G4endl;
13
14// [PreStep]  GlobalTime=532.954 ps
15// [PostStep] GlobalTime=567.787 ps
16// [Track]    GlobalTime=567.787 ps

ステップの時刻を取得するメソッドは3種類あります。 GetGlobalTimeで、トラックが含まれるイベントが生成されてからの経過時間が取得できます。

トラックのグローバル時刻はステップ終点の時刻と一致します。

ローカル時刻をしりたい(G4StepPoint::GetLocalTime

 1// G4Step *aStep
 2G4StepPoint *pre_step = aStep->GetPreStepPoint();
 3G4StepPoint *post_step = aStep->GetPostStepPoint();
 4G4Track *track = aStep->GetTrack();
 5
 6G4double pre_time = pre_step->GetLocalTime();
 7G4double post_time = post_step->GetLocalTime();
 8G4double track_time = track->GetLocalTime();
 9
10G4debug << "[PreStep]  LocalTime=" << G4BestUnit{pre_time, "Time"} >> G4endl;
11G4debug << "[PostStep] LocalTime=" << G4BestUnit{post_time, "Time"} >> G4endl;
12G4debug << "[Track]    LocalTime=" << G4BestUnit{track_time, "Time"} >> G4endl;
13
14// [PreStep]  LocalTime=356.027 ps
15// [PostStep] LocalTime=390.86 ps
16// [Track]    LocalTime=390.86 ps

GetLocalTimeで、トラックが生成されてからの経過時間が取得できます。 トラックのローカル時刻はステップ終点の時刻と一致します。

固有時刻をしりたい(G4StepPoint::GetProperTime

 1// G4Step *aStep
 2G4StepPoint *pre_step = aStep->GetPreStepPoint();
 3G4StepPoint *post_step = aStep->GetPostStepPoint();
 4G4Track *track = aStep->GetTrack();
 5
 6G4double pre_time = pre_step->GetProperTime();
 7G4double post_time = post_step->GetProperTime();
 8G4double track_time = track->GetProperTime();
 9
10G4debug << "[PreStep]  ProperTime=" << G4BestUnit{pre_time, "Time"} >> G4endl;
11G4debug << "[PostStep] ProperTime=" << G4BestUnit{post_time, "Time"} >> G4endl;
12G4debug << "[Track]    ProperTime=" << G4BestUnit{track_time, "Time"} >> G4endl;
13
14// [PreStep]  ProperTime=0 ps
15// [PostStep] ProperTime=0 ps
16// [Track]    ProperTime=0 ps

GetProperTimeで固有時間(トラックが生成されてからの経過時間の静止系の時刻)が取得できます。

参考