ステップポイントの座標をしりたい(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で割っています。