Translation method


I have a dilemma :slight_smile:

Lets assume i have a physical volume placed in G4ThreeVector(x, 0, 0) in the world volume.
If now i want to make a translation operation like
physVol->SetTranslation(G4ThreeVector(0, 0, 0))
my new coordinates for this volume will be (0, 0, 0) or (x, 0, 0)?

I believe ‘No’.

This is setmethod of base class G4VPhysicalVolume.

unless you add
G4RunManager::GetRunManager() → GeometryHasBeenModified();


So what do you mean by “no”?

SetTranslation method will modify my coordinates by G4ThreeVector(0, 0, 0) (in my particular example) amount or the new coordinates in the mother volume of translated volume will become those mentioned in SetTranslation(G4ThreeVector(0, 0, 0))?

Very good !! But what the purpose of redinition of position vectors when already defined.
In general this method is called under G4messenger class to update the geometry via macro.


Ok, thanks for the answers!