|Message: Re: Question about assembly||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)|
I too have had to face this problem. G4AsemblyVolume generates its own names and copy nos. And as you say, if you change the geometry the name can change. Originally I thought the copy nos would be unique but for assemblies of assemblies they are not (is this a bug?). In the end, for any given geometry, I just made a map of name and a local integer id. I can send the code if you think it would help.
In the documentation (Application Developers Guide) it says:
It is however possible to access the constituent physical volumes of an assembly and eventually customise ID and copy-number.
I take this to mean that you can navigate the geometry hierachy and give the volumes your own name and copy number. I have not tried this. Then you could use the step to find the volume name and copy number, but, *not* as you suggest:
It is better to use the navigation history as described in Section 4.1.8, "The Geometry Navigator":
// Given aStep, a pointer to the step object ... // ... retrieve the 'pre-step' point G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); // ... retrieve a touchable handle and access to the information G4TouchableHandle theTouchable = preStepPoint->GetTouchableHandle(); G4int copyNo = theTouchable->GetCopyNumber(); G4VPhysicalVolume* pv = theTouchable->GetVolume(); G4String volName = pv->GetName();
|Inline Depth:||Outline Depth:||Add message:|