00001 #include <TROOT.h>
00002 #include <TFile.h>
00003 #include <TTree.h>
00004 #include "pmt_waveform.hh"
00005
00006 int main(){
00007
00008
00009
00010
00011
00012
00013 int event_id=1234;
00014
00015
00016
00017
00018
00019
00020 pmt_wf_collection* data=new pmt_wf_collection();
00021 data->set_event_id(event_id);
00022
00023
00024 TFile *fout=TFile::Open("tmp.root","RECREATE");
00025 TTree *tree=new TTree("tmp_tree",Form("Tree For %s",data->GetName()));
00026 tree->Branch(data->GetName(),data->GetName(),&data);
00027 tree->Fill();
00028 tree->Write();
00029 fout->Close();
00030
00031 std::cout
00032 << "Saved Tree..." << std::endl
00033 << "Setting the in-memory event id to something else..." << std::endl;
00034 data->set_event_id(4321);
00035
00036
00037
00038
00039
00040 TFile *fin=TFile::Open("tmp.root","READ");
00041 tree = (TTree*)(fin->Get("tmp_tree"));
00042 tree->SetBranchAddress(data->GetName(),&data);
00043 tree->GetEntry(0);
00044
00045 std::cout
00046 << Form("Reading event id from tree: %d", data->event_id())
00047 << std::endl;
00048
00049 int return_val=0;
00050 if(data->event_id()==event_id) {
00051 std::cout << "SUCCESS!" << std::endl;
00052 return_val=0;
00053 }else{
00054 std::cout << "FAILURE!" << std::endl;
00055 return_val=1;
00056 }
00057
00058 std::cout<<"Removing a tmporary file..."<<std::endl;
00059 gROOT->ProcessLine(".! rm tmp.root;");
00060
00061 return return_val;
00062 }
00063
00064