ステップ情報したい(G4Step

1aStep->GetTotalEnergyDeposit();

G4Stepはステップ情報を管理するクラスです。 ユーザーアクション設定のSteppingActionでステップ情報を取得したいときに使います。

ステップはGeant4シミュレーションの基本単位で、 始点PreStepPoint)と 終点PostStepPoint)で構成されています。

始点と終点はG4StepPointクラスのオブジェクトになっており、それぞれの点での粒子の状態を取り出すことができます。

座標をしりたい(GetPosition

1G4ThreeVector position = aStep->GetPreStepPoint()->GetPosition();
2G4ThreeVector position = aStep->GetPreStepPoint()->GetPosition();

ステップ点の座標を取得できます。 座標の原点はワールドボリュームの中心です。

時刻をしりたい(GetLocalTime

1G4double local_time = aStep->GetPreStepPoint()->GetLocalTime();
2G4double global_time = aStep->GetPreStepPoint()->GetGlobalTime();
3G4double proper_time = aStep->GetPreStepPoint()->GetProperTime();

GetLocalTimeでトラックが生成されてからの経過時間、 GetGlobalTimeでトラックが含まれるイベントが生成されてからの経過時間、 GetProperTimeで固有時間(トラックが生成されてからの経過時間の静止系の時刻)を取得できます。

運動量をしりたい(GetMomentum

1G4ThreeVector momentum = aStep->GetPreStepPoint()->GetMomentumDirection();
2G4double total_momentum = aStep->GetPreStepPoint()->GetMomentum();

GetMomentumDirectionで運動量の単位ベクトル成分、 GetMomentumで運動量の合計を取得できます。

エネルギーをしりたい(GetTotalEnergy

1G4double energy = aStep->GetPreStepPoint()->GetTotalEnergy();
2G4double kinetic_energy = aStep->GetPreStepPoint()->GetKineticEnergy();

GetTotalEnergyでエネルギーの合計、 GetKineticEnergyで運動エネルギーの合計を取得できます。

速度をしりたい(GetVelocity

1G4double velocity = aStep->GetPreStepPoint()->GetVelocity();
2G4double beta = aStep->GetPreStepPoint()->GetBeta();
3G4double gamma = aStep->GetPreStepPoint()->GetGamma();

GetVelocityで速度、 GetBetaでβ、 GetGammaでγファクターを取得できます。

電荷をしりたい(GetCharge

1G4double charge = aStep->GetPreStepPoint()->GetCharge();

GetChargeで電荷を取得できます。

ボリュームをしりたい(GetPhysicalVolume

1G4VPhysicalVolume *physical_volume = aStep->GetPhysicalVolume();
2G4int copy_number = physical_volume->GetCopyNumber();
3G4String name = physical_volume->GetName();
4G4LogicalVolume *logical_volume = physical_volume->GetLogicalVolume();
5G4Material *material = logical_volume->GetMaterial();

GetPhysicalVolumeでステップ点の物理ボリュームを取得できます。 論理ボリュームは物理ボリュームを介して取得できます。

ステップの状態をしりたい(GetStepStatus

1G4StepStatus status = aStep->GetPreStepPoint()->GetStepStatus();
2G4StepStatus status = aStep->GetPostStepPoint()->GetStepStatus();

GetStepStatusで、ステップ点の境界の状態を取得できます。 fWorldBoundaryはステップ点がワールド境界に到達した状態、 fGeomBoundaryはステップ点が物質の境界に到達した状態です。 他の状態はenum G4StepStatusで確認できます。