ROOT と Python array の型の一覧
PyROOT から TTree の Branch を設定するときに混乱するので、まとめ。大文字と小文字が入れ替わっていて、ややこしい。
C type | ROOT typedef | ROOT TTree | Python array | NumPy | FITS |
---|---|---|---|---|---|
signed char | Char_t | 'B' | 'b' | int8 | A or S |
unsigned char | UChar_t | 'b' | 'B' | uint8 | B |
signed short | Short_t | 'S' | 'h' or 'i' | int16 | I |
unsigned short | UShort_t | 's' | 'H' or 'I' | uint16 | U |
signed int (32 bit) | Int_t | 'I' (大文字のアイ) | 'l' (小文字のエル) | int32 | J |
unsigned int (32 bit) | UInt_t | 'i' | 'L' | uint32 | V |
signed int (64 bit) | Long64_t | 'L' | N/A | int64 | K |
unsigned int (64 bit) | ULong64_t | 'l'(小文字のエル) | N/A | uint64 | N/A |
float | Float_t | 'F' | 'f' | float32 | E |
double | Double_t | 'D' | 'd' | float64 | D |
boolean | Bool_t | 'O' | N/A | bool_ | X |
使うときはこういう感じで。
tree = ROOT.TTree("tree", "title") arr = array.array("i", [0, 0]) tree.Branch("var1", arr, "var1/S")