# Absolute coordinate and world coordinate

Hi,

I am trying to understand better the coordinate systems used in ROOT, so that I can read and understand the implementations for zooming.

In the manual, I can see the definitions of three coordinate systems:

1. User coordinate system
2. NDC coordinate system
3. Pixel coordinate system

However, when I try to read the source for TPad, I see two other coordinate systems used:

AbsolutePixel (AbsPixel) and World coordinate system.

I think the world-coordinates actually means the user-coordinates,
but I can’t figure the difference between Absolute Pixel and Pixel.

When is Absolute pixel coordinate used?

Thanks

for example, one inline method in TPad.h

{
if (fAbsCoord) return fAbsPixeltoXk + pxfPixeltoX;
else return fPixeltoXk + px
fPixeltoX;
}

1 Like

The diffierence is the pxlow factor:

``````  fXtoAbsPixelk = rounding + pxlow - pxrange*fX1/xrange;
fXtoPixelk = rounding +  -pxrange*fX1/xrange;``````

Which is computed as follow:

``````  Double_t wh = (Double_t)gPad->GetWh();
Double_t pxlow   = fAbsXlowNDC*ww;``````

fAbsXlowNDC is nul in case of a single pad but is not in case of multiple pads (Divide()). So you should one method or the other depending if you want to convert in pixels in “Canvas pixel coordinates” or in the current “pad pixel coordinates”. I would suggest you create a canvas with multiple subpads and make yourself some tries to understand the difference.

[quote=“timtran”]Hi,
I am trying to understand better the coordinate systems used in ROOT, so that I can read and understand the implementations for zooming.