00001
00002
00003
00004
00005
00006
00007
00008
00009 void clonesA_Event_w()
00010 {
00011
00012 if ( gROOT->GetVersionInt() < 30503 ) {
00013 cout << "Works only with ROOT version >= 3.05/03" << endl;
00014 return;
00015 }
00016 if ( gROOT->GetVersionDate() < 20030406 ) {
00017 cout << "Works only with ROOT CVS version after 5. 4. 2003" << endl;
00018 return;
00019 }
00020
00021
00022 TFile *hfile = new TFile("clonesA_Event.root","RECREATE","Test TClonesArray");
00023 TTree *tree = new TTree("clonesA_Event","An example of a ROOT tree");
00024 TUsrSevtData1 *event1 = new TUsrSevtData1();
00025 TUsrSevtData2 *event2 = new TUsrSevtData2();
00026 tree->Branch("top1","TUsrSevtData1",&event1,8000,99);
00027 tree->Branch("top2","TUsrSevtData2",&event2,8000,99);
00028 for (Int_t ev = 0; ev < 10; ev++) {
00029 cout << "event " << ev << endl;
00030 event1->SetEvent(ev);
00031 event2->SetEvent(ev);
00032 tree->Fill();
00033 if (ev <3) tree->Show(ev);
00034 }
00035 tree->Write();
00036 tree->Print();
00037 delete hfile;
00038 }
00039
00040 void clonesA_Event_r()
00041 {
00042
00043 TFile * hfile = new TFile("clonesA_Event.root");
00044 TTree *tree = (TTree*)hfile->Get("clonesA_Event");
00045
00046 TUsrSevtData1 * event1 = 0;
00047 TUsrSevtData2 * event2 = 0;
00048 tree->SetBranchAddress("top1",&event1);
00049 tree->SetBranchAddress("top2",&event2);
00050 for (Int_t ev = 0; ev < 8; ev++) {
00051 tree->Show(ev);
00052 cout << "Pileup event1: " << event1->GetPileup() << endl;
00053 cout << "Pileup event2: " << event2->GetPileup() << endl;
00054 event1->Clear();
00055 event2->Clear();
00056
00057 }
00058 delete hfile;
00059 }
00060
00061 void clonesA_Event() {
00062 gROOT->ProcessLine(".L clonesA_Event.cxx+");
00063 clonesA_Event_w();
00064 clonesA_Event_r();
00065 }