Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #497: Fix check on WRAILBOT for TARGET leaves. #520

Merged
merged 1 commit into from
Jan 13, 2020

Conversation

blakewalters
Copy link
Contributor

Previously, in both SYNCVMLC and DYNVMLC, input would
fail if, for target leaves:

width of bottom of support rail (WRAILBOT) <
width of groove (WGROOVE) + width of leaf tip (WTIP)

This restriction is incorrect, based on VARIAN's specs for
the Millenium and HD 120 MLCs. Moreover, it is inconsistent
with the (fixed) check in SYNCHMDMLC. Thus, the check has been
changed so that input fails if:

WRAILBOT>WGROOVE+WTIP

Also, added a check on WTIP for QUARTER/HALF TARGET leaves
in SYNCHDMLC.

@ojalaj
Copy link

ojalaj commented Aug 1, 2019

Hi @blakewalters & @marenaud et al. I have now spent couple of days with TrueBeam "big blue book" with engineering drawings. I have never realized that at least in the versions of the book for the earlier TrueBeams, there is lots of information, e.g., on MLCs. It seems that many of the Varian MC data package dimensions are derived from the blue book (drawings with some numerical data). However, of course some confidential information has been omitted in the them.

Now, if I have interpreted the drawings correctly, and I try to run a BEAM simulation with SYNCHDMLC CM in it, I get many errors from geometry checks. To make all widths to be defined at ZMIN (as required by BEAM), my interpretation includes many projections, since if I understand correctly, different widths in the blue book are defined at different distances in Z direction. Before making any changes to the code, I have some fundamental questions, which would help to proceed:

  • For TARGET leaves, why WBS can't be larger than (WG+WTIP) (I know - this contradicts with this PR Fix #497: Fix check on WRAILBOT for TARGET leaves. #520 )?
    ***ERROR IN CM 5 (MLC) in HALF TARGET leaf definition:
    WRAILBOT_MLC(2) > WGROOVE_MLC(2)+WTIP_MLC(2).
    Lower rail too wide.
    ***ERROR IN CM 5 (MLC) in QTR TARGET leaf definition:
    WRAILBOT_MLC(4)>WGROOVE_MLC(4)+WTIP_MLC(4).
    Lowerrail too wide.

  • For TARGET leaves, why WTS can't be larger than WBS (so that it wouldn't overlap with the tip of next ISOCENTER leaf)?
    ***ERROR IN CM 5 (MLC) in HALF TARGET leaf definition:
    WRAILTOP_MLC(2)>WRAILBOT_MLC(2). Top rail too wide.
    ***ERROR IN CM 5 (MLC) in QTR TARGET leaf definition:
    WRAILTOP_MLC(4)>WRAILBOT_MLC(4). Top rail too wide.

  • For (HALF) ISOCENTER leaves, why WBS can't be larger than WTS (so that it wouldn't overlap with the tip of next ISOCENTER leaf)?
    ***ERROR IN CM 5 (MLC) in HALF ISO leaf definition:
    WRAILBOT_MLC(3)>WRAILTOP_MLC(3). Bottom of rail too wide.

  • For QTR ISOCENTER leaves, after double-triple-checking I interpreted so that zg > zt (see issue SYNCHDMLC geometry check - issue #393 and PR #406 #446). One reason for confusion by people not using EGSnrc might be that the dimensions for EGSnrc are from ZTIP/ZMIN "downwards", but e.g. in the TB blue book the distances are from the bottom of the leaf "upwards". For the numerical values I got exactly the same, but opposite ones as in the Varian MC data table.
    ***ERROR IN CM 5 (MLC) in QTR ISO leaf definition:
    ZGROOVE_MLC(5)>ZTONGUE_MLC(5).

@blakewalters
Copy link
Contributor Author

Hi @ojalaj: I'm glad you've had a chance to take a look at this! Indeed, there has been a rather lengthy iteration down to a "correct" version of SYNCHDMLC, and I'm willing to concede that we may not quite be there yet. In almost all cases, where there have been questions about geometric restrictions, I've ended up referring to the TrueBeam Monte Carlo Data Package. Regarding the first 3 checks that you refer to, does your info indicate the contrary (i.e. WBS is actually >= WG+WTIP for TARGET leaves, etc), or are you asking why these restrictions have to exist in the first place? If it's the latter then I can say that some structural restrictions in the leaf geometry are required because of the way that the HOWFAR routine represents the leaf cross-section. It would be possible to relax selected restrictions, but this would require an additional input indicating that the cross-section is to be represented in a different, but fixed, way. As for your question 4, this is something that @marenaud and myself mulled over for some time, ultimately seeking some input from Varian. The drawings in the MC Data Package are not very clear, but the actual dimensions given there do indicate that ZT>ZG for QUARTER ISOCENTER leaves. Does the info you have indicate that this isn't the case?

@ojalaj
Copy link

ojalaj commented Aug 5, 2019

Hi @blakewalters and thanks to getting back to this. Yes, Varian MC data package has been my "golden standard" too so far, but as we have noticed, it leaves some questions and some drawings are not clear, so I wanted to have a look to the Varian drawings in the "big blue book" (Varian Data Book P1002125-001), which is used by the service staff and comes with every linac. I don't have any confirmation on this, but I believe that the Varian MC data package has been derived from the drawings/numerical values in the "big blue book", including some roundings and omission/inclusion of some information.

So, here are my findings in short (I hope that I've interpreted the values correctly, i.e., projecting the dimensions to the level of ZMIN - without the projection, comparing just the numerical values, the results could be different though):

For HD MLC:

  • HALF TARGET: WBS > WG+WTIP

  • HALF ISOCENTER: WBS > WG+WTIP

  • QUARTER TARGET: WBS > WG+WTIP

  • QUARTER ISOCENTER: WBS > WG+WTIP

  • HALF TARGET: WTS > WBS

  • HALF ISOCENTER: WTS < WBS (<-- only one of these that is different)

  • QUARTER TARGET: WTS > WBS

  • QUARTER ISOCENTER: WTS > WBS

  • QUARTER ISOCENTER: when measuring from the ZTIP, as required by BEAM CM, yes - ZG > ZT (and here I believe that the mistake so far has been that the distances have been derived from the WBS end of the leaf, when ZG < ZT, and what makes this confusing is that the lines in the Varian MC package are really drawn from the ZTIP end)

For Millennium 120 MLC:

  • FULL: WBS < WG+WTIP (<-- only one of these that is different)

  • HALF TARGET: WBS > WG+WTIP

  • HALF ISOCENTER: WBS > WG+WTIP

  • FULL: WTS > WBS

  • HALF TARGET: WTS > WBS

  • HALF ISOCENTER: WTS < WBS (<-- only one of these that is different)

@rtownson rtownson self-requested a review August 20, 2019 15:41
@rtownson
Copy link
Collaborator

This PR can sit here for discussion until Blake has come up with a solution, e.g. two different CMs that handles all the cases. Then I imagine this PR will be closed instead of merged, since the changes will go into a new PR.

@ojalaj
Copy link

ojalaj commented Aug 20, 2019

We have had some active discussion through e-mail for past couple weeks and hopefully this will converge to some solution in the near future. Some confirmations from Varian take some time as well, so don't hold you breath for this.

@ojalaj
Copy link

ojalaj commented Nov 20, 2019

@blakewalters has implemented several changes that I have tested to work couple of months ago, so there is still some work left for GUI/documentation to get this PR forward/closed and changes for your review.

@ftessier
Copy link
Member

Squashed the whitespace commit, and adjusted the commit text slightly. @blakewalters, is this ready to merge, or is there pending work on gui and documentation?

@ojalaj
Copy link

ojalaj commented Nov 21, 2019

@ftessier I believe the final commits are not even here yet - right @blakewalters ?

Reverse the following failure condition in both SYNCVMLC and DYNVMLC
component modules, for target leaves:

width of bottom of support rail (WRAILBOT) <
width of groove (WGROOVE) + width of leaf tip (WTIP)

This restriction is incorrect, based on Varian's specs for the Millenium
and HD 120 multi-leaf collimators (MLC). Moreover, it is inconsistent
with the (fixed) check in SYNCHMDMLC. Thus, the failure condition has
been reversed to read:

WRAILBOT > WGROOVE + WTIP

Also add a check on WTIP for QUARTER/HALF TARGET leaves in SYNCHDMLC.
@ftessier
Copy link
Member

Rebased on develop.

@blakewalters
Copy link
Contributor Author

blakewalters commented Dec 7, 2019

@ftessier: Let's go ahead and merge this--pending approving reviews, of course. @ojalaj: I think it's best to submit the version of SYNCHDMLC with relaxed restrictions on cross-section dimensions, along with documentation, in a separate pull request.

@ojalaj
Copy link

ojalaj commented Dec 7, 2019

@blakewalters sound great!

@ftessier ftessier added this to the Release 2020 milestone Jan 13, 2020
@ftessier ftessier merged commit 1094ce6 into develop Jan 13, 2020
@ftessier ftessier deleted the fix-wrailbot_length branch January 13, 2020 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants