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.
[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)