|Message: Re: Example B1 scoring volumes||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)|
Ok - I haven't really tested this out, but here is how I would go about it:
The scoring volume is stored as a pointer in B1DetectorConstruction, and also in B1SteppingAction. You would need to make a few changes to the header files and cc files for both of these. In B1DetectorConstruction.hh, you would have to make two pointer members, and you would have to add another "getter" method. In B1DetectorConstruction.cc, you would need to set the pointer to the logical volumes in B1DetectorConstruction::Construct.
In B1SteppingAction.hh, you would need to add another pointer member for the second logical volume, you would need to modify the constructor definition, and I added some changes to B1SteppingAction::UserSteppingAction(const G4Step*) - specifically to check for volume 1 or volume 2. You then add energy to a new member in B1EventAction.
In B1EventAction, you need to add another double value to hold the energy stored in volume 1 and for the energy stored in volume 2. You need to add another method to increment the energy as well. I changed AddEdep to AddEdep1 and AddEdep2.
Lastly, you would need to take care of the two different volumes that energy is tracked for in B1RunAction::EndOfRunAction, namely, that since the energy is stored for two volumes, you need to add up the mass of the two volumes for the dose calculation.
I could post a patch file to show you - but it is a complete hack job, and all I can guarantee is that it compiled without error on my machine.