We have an old and conservative simulation framework where we write out extremely simple TTrees: no objects, no class dictionaries, just branches of single or array simple data types. This includes a number of old-style “strings” of the form
char procname; ... hittree->Branch("Process", procname, "Process/C");
These all work fine, except for one which is declared very large:
char config; ... dettree->Branch("Config", config, "Config/C");
The char array is filled here using strncpy, just like all of our other “strings.” But when I look at the TTree in a ROOT session, that branch reports that it contains integer 0 values, not strings (and not even empty strings!). The other “string” branches properly report the character strings that were saved to them in the job.
Does ROOT have a limit on the size of an old-style char-array “string” that can be stored in a simple TBranch?
ROOT Version: 6.12 or later