Home | News | Documentation | Download

String on a ttree

Dear all,

I’m using a ttree to read a csv file in which a column is composed by strings. I need those strings to make some if statements. However, the tree reads only 9 characters and the required string has 12 characters. There is some way to increased the number os characters on the tree?


void dataRead(){ //TString chamber, int numDate, TString datemeas
    // Tree for read date from a csc file.
    TTree *tree = new TTree("Data for scan","Data from csv file"); 
    // Method to read the file .csv with two variables.
    // Variables to put on the tree branch.
    double current, voltage;
    char chamb, date;
    // Setting the branch address with those variables.
    tree->SetBranchAddress("CHAMBER_NAME_CMSSW", &chamb);
    tree->SetBranchAddress("d1", &date);
    tree->SetBranchAddress("imon", &current);
    tree->SetBranchAddress("vmon", &voltage);

kind regards,

_ROOT Version: 6.19/01
Platform: Ubuntu 20.04
Compiler: gcc 9.3.0

You need something like: char chamb[100], date[100];

And use “:” (not “,”) to separate the branch elements in ReadFile:


Hi guys,

thank you for the response, but I got the same result =/

Attach your “.csv” file for inspection.

Current_Scan_AllData_2019_03_13.zip (420 Bytes)

I don’t get any problem (except for the first line of your “.csv” file which you should remove or add a “#” character in the beginning).

That’s weird, I can fill the tree but the names are cutted.

e.g: The name “RE+4_R2_CH04” appears as RE+4_R2_C when I do tree->Scan().


tree->Scan("*", "", "colsize=20");