{ // // This is an example of a simple histograming macro //Begin_Html /* Here is the output */ //End_Html // #include gSystem.Load("libTMCFast.so"); TFile f("test.rdt"); TTree *tree = (TTree*)f.Get("T"); TBranch *b1 = tree->GetBranch("hepevt"); TBranch *b2 = tree->GetBranch("tof_trace"); TBranch *b3 = tree->GetBranch("offtrk"); TMCFastHepEvt *hepevt=0; TMCFastTOF *trace=0; TMCFastOfflineTrack *offtrk=0; hepevt = new TMCFastHepEvt(); trace = new TMCFastTOF(); offtrk = new TMCFastOfflineTrack(); b1->SetAddress(&hepevt); b2->SetAddress(&trace); b3->SetAddress(&offtrk); // create some histograms TH1F *h1 = new TH1F("h1", "particle #1 Px",100,-1.0,1.0); TH1F *h2 = new TH1F("h2", "particle #2 Px",100,-1.0,1.0); TH1F *h3 = new TH1F("h3", "particle #3 Px",100,-1.0,1.0); TH1F *h4 = new TH1F("h4", "particle #4 Px",100,-1.0,1.0); // now create some pads to put the histo's TCanvas *c1; c1 = new TCanvas("c1","The FillRandom example",200,10,700,900); c1->SetFillColor(18); TPad *pad1,pad2,pad3,pad4; pad1 = new TPad("pad1","The pad for particle #1",0.05,0.55,0.45,0.95,21); pad2 = new TPad("pad2","The pad for particle #2",0.05,0.05,0.45,0.45,21); pad3 = new TPad("pad3","The pad for particle #3",0.55,0.55,0.95,0.95,21); pad4 = new TPad("pad4","The pad for particle #4",0.55,0.05,0.95,0.45,21); pad1->Draw(); pad2->Draw(); pad3->Draw(); pad4->Draw(); Int_t nentries = (Int_t)tree->GetEntries(); cout<<"this data file has "<GetEvent(ev); //read event in memory // fill the histos TIter next(hepevt->GetHepParticles()); TMCFastHepParticle *particle = (TMCFastHepParticle *)next(); h1->Fill(particle->GetPx()); particle = (TMCFastHepParticle *)next(); h2->Fill(particle->GetPx()); particle = (TMCFastHepParticle *)next(); h3->Fill(particle->GetPx()); particle = (TMCFastHepParticle *)next(); h4->Fill(particle->GetPx()); /* if(ev == 1){ cout << "\nDumping one event:" << endl ; cout << "\nhepevt->Dump()\n"; hepevt->Dump(); cout << "\nparticle->Dump()\n"; particle->Dump(); cout << "\ntrace->Dump()\n"; trace->Dump(); cout << "\nofftrk->Dump()\n"; offtrk->Dump(); } */ hepevt->Clear(); trace->Clear(); offtrk->Clear(); } // draw the histos pad1->cd(); h1->Draw(); pad2->cd(); h2->Draw(); pad3->cd(); h3->Draw(); pad4->cd(); h4->Draw(); return 0; }