#include "TCanvas.h" #include "TROOT.h" #include "TFile.h" #include "TTree.h" #include "TBrowser.h" #include "TH2.h" #include "TRandom.h" void tree1r() { // Read Selected_All_EEM.root file //Root file TFile *f = new TFile("Selected_All_EEM.root"); // Signal events TTree *sig = (TTree*)f->Get("WZSignal"); Double_t pt1, eta1, phi1, E1; Double_t pt2, eta2, phi2, E2; Double_t pt3, eta3, phi3, E3; Double_t MZ, MET, trackd0cutWMu, TrackIsoWmu; Double_t Weight; //get some variables for SIGNAL EVENTS sig->SetBranchAddress("pt1",&pt1); sig->SetBranchAddress("eta1",&eta1); sig->SetBranchAddress("phi1",&phi1); sig->SetBranchAddress("E1",&E1); sig->SetBranchAddress("MZ",&MZ); sig->SetBranchAddress("Weight",&Weight); // add other variables ... ////get some variables for BACKGROUND EVENTS TTree *ttbar = (TTree*)f->Get("ttbar"); Double_t pt1_bkg, eta1_bkg, phi1_bkg, E1_bkg; Double_t MZ_bkg; Double_t Weight_bkg; //get some variables for ttbar ttbar->SetBranchAddress("pt1",&pt1_bkg); ttbar->SetBranchAddress("eta1",&eta1_bkg); ttbar->SetBranchAddress("phi1",&phi1_bkg); ttbar->SetBranchAddress("E1",&E1_bkg); ttbar->SetBranchAddress("MZ",&MZ_bkg); ttbar->SetBranchAddress("Weight",&Weight_bkg); // add other variables ... //create two histograms (for sig and ttbar) TH1F *h_MZ = new TH1F("h_MZ","MZ distribution All events",40,65,115); TH1F *h_MZ_bkg = new TH1F("h_MZ_bkg","MZ distribution BKG",40,65,115); TH1F *h_MZ_sig = new TH1F("h_MZ_sig","MZ distribution SIG",40,65,115); //read all SIGNAL entries and fill the histograms Int_t nentries = (Int_t)sig->GetEntries(); for (Int_t i=0;iGetEntry(i); h_MZ->Fill(MZ,Weight); h_MZ_sig->Fill(MZ,Weight); } //read all ttbar entries and fill the histograms Int_t nentries_bkg = (Int_t)ttbar->GetEntries(); for (Int_t i=0;iGetEntry(i); h_MZ_bkg->Fill(MZ_bkg,Weight_bkg); h_MZ->Fill(MZ_bkg,Weight); } // example how Draw and save histograms TCanvas *c = new TCanvas(); c->cd(); h_MZ_sig->Draw(); h_MZ_bkg->SetLineColor(kRed); h_MZ_bkg->Draw("same"); c->Print("test_MZ.eps"); } void macro() { tree1r(); }