ステップ操作したい(G4Step)
G4Stepはステップ情報を管理するクラスです。
1// G4Step *aStep
2
3// ステップの始点
4auto pre_step = aStep->GetPreStepPoint()
5
6// ステップの終点
7auto post_step = aStep->GetPostStepPoint()
ステップ はGeant4が粒子輸送のシミュレーションを進行する基本単位で、このステップを進める処理をステッピングと呼びます。
ステップは
始点(PreStepPoint)と
終点(PostStepPoint)で構成されていて、
ステッピングすると前のステップの終点が、次のステップの始点になります。
始点と終点はそれぞれG4StepPointクラスのオブジェクトになっています。
現在のステップの情報は、基本的に始点(PreStepPoint)から取得できます。
次のステップの情報は終点(PostStepPoint)から取得できます。
注釈
ステップの終点は、 そのステップの粒子輸送が終わったとき、もしくは、 ジオメトリの境界に到達したときに作成されます。
始点/終点ともにG4StepPointオブジェクトなので、
同じ名前のメソッドが使えますが、取得できる情報が異なることがあるため留意が必要です。
ユーザーアクション設定の UserSteppingActionや SensitiveDetectorのProcessHitsなどで 以下のようなステップおよびステップポイントに紐づいた物理量を取得したいときに使います。
- ステップのエネルギー損失をしりたい(
G4Step::GetTotalEnergyDeposit) - ステップのトラックをしりたい(
G4Step::GetTrack) - ステップの長さをしりたい(
G4Step::StepLength) - ステップの二次粒子数をしりたい(
G4Step::GetNumberOfSecondariesInCurrentStep) - ステップポイントしたい(
G4Step::GetPreStepPoint) - ステップポイントの境界判断したい(
G4StepPoint::GetStepStatus) - ステップポイントの境界判断したい(
G4StepPoint::IsFirstStepInVolume) - ステップポイントのボリュームをしりたい(
G4StepPoint::GetPhysicalVolume) - ステップポイントの質量をしりたい(
G4StepPoint::GetMass) - ステップポイントの座標をしりたい(
G4StepPoint::GetPosition) - ステップポイントのグローバル時刻をしりたい(
G4StepPoint::GetGlobalTime) - ステップポイントの運動量をしりたい(
G4StepPoint::GetMomentum) - ステップポイントの速度をしりたい(
G4StepPoint::GetVelocity) - ステップポイントの電荷をしりたい(
G4StepPoint::GetCharge) - ステップポイントのエネルギーをしりたい(
G4StepPoint::GetTotalEnergy) - ステップポイントのタッチャブルしたい(
G4StepPoint::GetTouchableHandle)
ヒント
「ステップを制するものは、Geant4を制す」 ・・・とは言われていませんが、それくらい重要なコンセプトだと思っています。
参考