Dear Roottalk, is there anbody who created a TTree containing an STL container? I am trying to store a simple vector<double>, following an example that I found among the tutorials. When I try to put in a TTree that vector I get a lot of different errors, depending on strange parameters, e.g. whether I put or not a line like: cout << "---------------------------------------" << endl; in the code. There should be something fundamental that I'm forgetting, does anybody know what should I do? Thanks in advance pietro PS follows my little code: #include "TFile.h" #include "TTree.h" #include <vector> // // to run the example, do: // .x temperature.cpp to execute with the CINT interpreter // void temperature_w() { TFile f("treeTemperature.root","recreate"); // create the file TTree tempo("tempo","tentativo"); // create a new tree vector <double> Temperature; // create a vector for (int i=0; i< 40; ++i) Temperature.push_back(0.); // initialize it cout << Temperature.size() << endl; tempo.Branch("Temperature",&Temperature,"temperatura 40 sonde (V)"); for (int i=0; i<3; ++i) { int j = 0; for (vector<double>::iterator it = Temperature.begin(); it != Temperature.end(); ++it) { *it = 10 * i + (++j); cout << *it << '\t'; } cout << Temperature.size() << endl; tempo.Fill(); } f.Write(); } void temperature_r() { TFile f("treeTemperature.root"); TTree *tempo = (TTree*)f->Get("tempo"); // si puo' fare in altro modo?? tempo->Print(); vector <double> Temperature; for (int i=0; i< 40; ++i) Temperature.push_back(0.); // (1) cout << "ole " << Temperature.size() << endl; // (2) TBranch *b_Temperature = tempo->GetBranch("Temperature"); b_Temperature->SetAddress(&Temperature); Int_t nentries = (Int_t)tempo->GetEntries(); cout << nentries << endl; for (Int_t i=0; i<nentries; ++i) { b_Temperature->GetEntry(i); cout << Temperature.size() << endl; /* for (vector<double>::iterator it = Temperature.begin(); it != Temperature.end(); ++it) { cout << *it << '\t'; } */ cout << endl; } delete tempo; } void temperature() { temperature_w(); temperature_r(); }
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET