using namespace std; void Normalize(TH1F* hist) { // Normalizes a 1-d histogram to its bin width and number of events if (hist->GetSumw2N() == 0) hist->Sumw2(kTRUE);//hist->Sumw2(); hist->Scale(1.0 / hist->Integral(),"width"); } void PlotsN() { gSystem->cd("/home/saumyen/Desktop/Histograms"); const char *inputFile0 = "/home/saumyen/Desktop/Histograms/ttjj.root"; const char *inputFile1 = "/home/saumyen/Desktop/Histograms/twjj.root"; std::vector inputFiles = {inputFile0, inputFile1}; Int_t ii = inputFiles.size(); //Booking the Canvases TCanvas *c1 = new TCanvas("LeadM","Leading Jet Mass",800,600); TCanvas *c2 = new TCanvas("SubleadM","Subleading Jet Mass",800,600); TCanvas *c[2] = {c1,c2}; //Booking the Stacks THStack *M0 = new THStack("h7",""); THStack *M1 = new THStack("h8",""); THStack *Stacks[2] = {M0, M1}; //Booking the Histograms TH1F *histM0[ii], *histM1[ii]; for(Int_t f=0; fGet("event"); int entries = event_tree->GetEntries(); cout<SetBranchAddress("var7",&jetM0); event_tree->SetBranchAddress("var8",&jetM1); histM0[f] = new TH1F(Form("J0_Mass%d",f), "J0 Mass", 40, 0.0, 200.0); histM1[f] = new TH1F(Form("J1_Mass%d",f), "J1 Mass", 40, 0.0, 200.0); std::vector histos = {histM0[f], histM1[f]}; int hh = histos.size(); for(int i = 0; i < entries; i++) { event_tree->GetEntry(i); //cout<< jetM0 << "\t" << jetM1< Fill(jetM0); histM1[f] -> Fill(jetM1); } for(int h=0; hSetLineColor(2); Normalize(histos[h]); Stacks[h] -> Add(histos[h]); } infile->Close(); } for(int j=0; j<2; j++) { c[j]->cd(); Stacks[j]->Draw("hist nostack"); c[j]->Modified(); c[j]->Update(); TString fname(c[j]->GetName()); fname += TString::Format(".png"); c[j]->Print(fname,"png"); } } //main function