|Message: Re: Rotation convention using GDML?||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
when GDML Geant4 reader parses the following line:
<rotation name="V" unit="degree" x="10" y="20" z="30" />
rotation.setX(10*deg); rotation.setY(20*deg); rotation.setZ(30*deg);
The 'rotation' object is then available for the 'future use' when parsing the geometry.
In particular, for the physical volumes it is used in the following way (I am extracting only the relevant lines from Geant4 code):
- first, in G4GDMLReadStructure we construct G4Transform3D out of it:
and then, ignoring scaling and/or reflection, we go to
new G4PVPlacement(transform, LV, name, ...)
which calls the Physical Volume constructor:
So, you end up with the original rotation (it is inversed twice).
If you look at the PhysicalVolume constructor you see the comment below:
G4VPhysicalVolume(G4RotationMatrix *pRot, const G4ThreeVector &tlate, const G4String &pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother); // Initialise volume, positioned in a frame which is rotated by *pRot, // relative to the coordinate system of the mother volume pMother. // The center of the object is then placed at tlate in the new // coordinates.
I hope this helps. Cheers, Witek
|Inline Depth:||Outline Depth:||Add message:|