circular.C: Example of a circular Tree | Trees I/O, Queries, Graphics | copytree.C: Example of Root macro to copy a subset of a Tree to a new Tree |
// Example to write & read a Tree built with a complex class inheritance tree. // It demonstrates usage of inheritance and TClonesArrays // This is simplied / stripped extract of an event structure used within the // Marabou project (http://www.bl.physik.uni-muenchen.de/marabou/html/) // //to run this example, do: // root > .x clonesA_Event.C void clonesA_Event_w() { // protect against old ROOT versions if ( gROOT->GetVersionInt() < 30503 ) { cout << "Works only with ROOT version >= 3.05/03" << endl; return; } if ( gROOT->GetVersionDate() < 20030406 ) { cout << "Works only with ROOT CVS version after 5. 4. 2003" << endl; return; } //write a Tree TFile *hfile = new TFile("clonesA_Event.root","RECREATE","Test TClonesArray"); TTree *tree = new TTree("clonesA_Event","An example of a ROOT tree"); TUsrSevtData1 *event1 = new TUsrSevtData1(); TUsrSevtData2 *event2 = new TUsrSevtData2(); tree->Branch("top1","TUsrSevtData1",&event1,8000,99); tree->Branch("top2","TUsrSevtData2",&event2,8000,99); for (Int_t ev = 0; ev < 10; ev++) { cout << "event " << ev << endl; event1->SetEvent(ev); event2->SetEvent(ev); tree->Fill(); if (ev <3) tree->Show(ev); } tree->Write(); tree->Print(); delete hfile; } void clonesA_Event_r() { //read the Tree TFile * hfile = new TFile("clonesA_Event.root"); TTree *tree = (TTree*)hfile->Get("clonesA_Event"); TUsrSevtData1 * event1 = 0; TUsrSevtData2 * event2 = 0; tree->SetBranchAddress("top1",&event1); tree->SetBranchAddress("top2",&event2); for (Int_t ev = 0; ev < 8; ev++) { tree->Show(ev); cout << "Pileup event1: " << event1->GetPileup() << endl; cout << "Pileup event2: " << event2->GetPileup() << endl; event1->Clear(); event2->Clear(); // gObjectTable->Print(); // detect possible memory leaks } delete hfile; } void clonesA_Event() { gROOT->ProcessLine(".L clonesA_Event.cxx+"); // compile shared lib clonesA_Event_w(); // write the tree clonesA_Event_r(); // read back the tree } clonesA_Event.C:1 clonesA_Event.C:2 clonesA_Event.C:3 clonesA_Event.C:4 clonesA_Event.C:5 clonesA_Event.C:6 clonesA_Event.C:7 clonesA_Event.C:8 clonesA_Event.C:9 clonesA_Event.C:10 clonesA_Event.C:11 clonesA_Event.C:12 clonesA_Event.C:13 clonesA_Event.C:14 clonesA_Event.C:15 clonesA_Event.C:16 clonesA_Event.C:17 clonesA_Event.C:18 clonesA_Event.C:19 clonesA_Event.C:20 clonesA_Event.C:21 clonesA_Event.C:22 clonesA_Event.C:23 clonesA_Event.C:24 clonesA_Event.C:25 clonesA_Event.C:26 clonesA_Event.C:27 clonesA_Event.C:28 clonesA_Event.C:29 clonesA_Event.C:30 clonesA_Event.C:31 clonesA_Event.C:32 clonesA_Event.C:33 clonesA_Event.C:34 clonesA_Event.C:35 clonesA_Event.C:36 clonesA_Event.C:37 clonesA_Event.C:38 clonesA_Event.C:39 clonesA_Event.C:40 clonesA_Event.C:41 clonesA_Event.C:42 clonesA_Event.C:43 clonesA_Event.C:44 clonesA_Event.C:45 clonesA_Event.C:46 clonesA_Event.C:47 clonesA_Event.C:48 clonesA_Event.C:49 clonesA_Event.C:50 clonesA_Event.C:51 clonesA_Event.C:52 clonesA_Event.C:53 clonesA_Event.C:54 clonesA_Event.C:55 clonesA_Event.C:56 clonesA_Event.C:57 clonesA_Event.C:58 clonesA_Event.C:59 clonesA_Event.C:60 clonesA_Event.C:61 clonesA_Event.C:62 clonesA_Event.C:63 clonesA_Event.C:64 clonesA_Event.C:65 clonesA_Event.C:66 |
|