ステップポイントの座標をしりたい(G4StepPoint::GetPosition

 1auto pre_step = aStep->GetPreStepPoint();
 2G4ThreeVector position = pre_step->GetPosition();
 3
 4G4debug << position << G4endl;
 5// (2.83459,1.19586,5)
 6
 7G4debug << G4BestUnit{position, "Length"} << G4endl;
 8// 2.83459 1.19586 0.5 cm
 9
10G4debug << position.getX() / cm << " [cm]" << G4endl;
11G4debug << position.getY() / cm << " [cm]" << G4endl;
12G4debug << position.getZ() / cm << " [cm]" << G4endl;
13// 2.83459 [cm]
14// 1.19586 [cm]
15// 0.5 [cm]

GetPositionでステップポイントの座標を取得できます。 この座標は世界座標と呼ぶそうで、ワールドボリュームの中心が原点になっています。

注釈

座標はG4ThreeVectorクラスのオブジェクトですが、そのまま単位操作できました。

1// メートルに変換
2G4debug << position / m << G4endl;
3// (0.0283459,0.0119586,0.005)

ステップポイントの座標の中点したい

1auto pre_step = aStep->GetPreStepPoint();
2auto post_step = aStep->GetPostStepPoint();
3
4G4ThreeVector position = pre_step->GetPosition() + post_step->GetPosition();
5position /= 2.;

ステップの中点を、粒子の座標としたい場合の計算方法です。 始点と終点の座標を取得し、2で割っています。