Long integer

Dear ROOT users,

I’m quite newbie on Root and it’s the first time I post a new topic, so please excuse me if this message is not in the right index.

In the users guide 4.08, it is written (p. 19) that ULong64_t is the type for portable unsigned long integer, 8 bytes. But, on this page: root.cern.ch/root/html/ListOfTypes.html
this type doesn’t exist. Because this page isn’t updated?

Moreover, what is the difference, according to the same link, between an Int_t (signed, 4 bytes) and a Long_t (signed, long but also 4 bytes)?

Finally, according to the p. 217 of the users guide 4.08, what is the symbol used for the type Long64_t (and possibly for the ULong64_t)?
(e.g. the symbol for Int_t is /I)

Thanks in advance for your responses,
Aurelien Vasseur

Long_t is actually the same length as ‘long’ and hence on some platform is 8 bytes.
The page root.cern.ch/root/html/ListOfTypes.html does seem to list ULong64_t for me.
We recently added /L and /l to allow the creation of Long64_t and ULong64_t leaves in a TTree.

Cheers,
Philippe.

[quote]In the users guide 4.08, it is written (p. 19) that ULong64_t is the type for portable unsigned long integer, 8 bytes. But, on this page: root.cern.ch/root/html/ListOfTypes.html
this type doesn’t exist. Because this page isn’t updated? [/quote]

Thanks for this remark. The doc will be updated.

Long_t is not a portable type. It is 32 bits on 32 bits machine and 64 bits on 64 bits machine.

[quote]Finally, according to the p. 217 of the users guide 4.08, what is the symbol used for the type Long64_t (and possibly for the ULong64_t)?
(e.g. the symbol for Int_t is /I) [/quote]

The list is described in TTree::Branch:

* leaflist is the concatenation of all the variable names and types separated by a colon character : The variable name and the variable type are separated by a slash (/). The variable type may be 0,1 or 2 characters. If no type is given, the type of the variable is assumed to be the same as the previous variable. If the first variable does not have a type, it is assumed of type F by default. The list of currently supported types is given below: - C : a character string terminated by the 0 character - B : an 8 bit signed integer (Char_t) - b : an 8 bit unsigned integer (UChar_t) - S : a 16 bit signed integer (Short_t) - s : a 16 bit unsigned integer (UShort_t) - I : a 32 bit signed integer (Int_t) - i : a 32 bit unsigned integer (UInt_t) - F : a 32 bit floating point (Float_t) - D : a 64 bit floating point (Double_t) - L : a 64 bit signed integer (Long64_t) - l : a 64 bit unsigned integer (ULong64_t) - O : a boolean (Bool_t)

:smiley: Thank you very much for your fast and clear explainations.

Best regards,