Coordinate confusions and drawing order

Hi All,

I am wondering if there is no method in TPad to convert NDC to user coordinates. I am trying to draw some TArrows parallel to the x-axis where I have the x-coordinates in user space and the y-coordinates in NDC. Since TArrow only seems to support user space I try to convert NDC to pixel and pixel to user with something like:

but this gives some really strange behaviour. Perhaps I also have to mention that I am using log-scales for both axes. Am I missing something really basic? Is there nothing like a VtoY()- or NDCtoUser()-method?

I am also trying to draw some TBoxes in my graph to mark some special regions on the x-axis. The boxes should cover the whole y-range but only a particular x-range. I am doing this with

This works perfectly on version 4.04/02b but shows nothing at all on 4.02/00. Well, Im am not too much confused of that since it works on the new release. Nevertheless I try to understand how the coord-system of root works internally. Could someone please comment on that or point me to a location where I can find more infos than in the common user guide?

Last but not least here is another question concerning the drawing order of objects in pads. To do the above thing with the TBox I have to draw my TGraph (or at least its axes) to get the Ux/ymin/max-methods returning valid values. Then I have to draw the boxes which are then covering the graph and the inlying parts of the axes like the tics. So I have to redraw my axes and my graph once again. Is there an easier way to do that? Can I somehow control the drawing order of objects after I have added them to the drawing-list of my pad? Can I determine the user range of a pad before it has drawn the graph, i.e. including all margins which are added to the graphs-range when drawing on a pad?

Sorry for the somehow long contribution and thanks in advance for any comment.



To redraw the axis use: gPad->RedrawAxis(); (user guide page 32)