Normalize to SM higgs XS and BR

hi
im trying to normalize my samples to the standard model higgs xs and BR
though i dont think im doing it right

i produced the samples privately using MG5
firstly
for both signal and background i produced 25k events
i then times the signal stregth BR to 1/3 (this is wrong because i just followd the atlas paper on likelihood)
i got something like this as u can see minimal background

so i increased the background to 500k events
and for signal i times the BR to 0.01 as CL upper limit BR for the process according to atlas paper

but then it kinda killed eveything
i think im getting it wrong, can you help me;
this is my code

void SigBckStack(){
    
  gStyle->SetOptStat(1111);// untk print no of events

 // root file
  TFile *f_sig20 = new TFile("/Users/applestudio/Desktop/rootFILES/4LAnalyzer_h125_4e_zd20.root");
  TFile *f_sig40 = new TFile("/Users/applestudio/Desktop/rootFILES/4LAnalyzer_h125_4e_zd40.root");
  TFile *f_sig60 = new TFile("/Users/applestudio/Desktop/rootFILES/4LAnalyzer_h125_4e_zd60.root");
  TFile *f_bkg_zz4lep = new TFile("/Users/applestudio/Desktop/rootFILES/4LAnalyzer_Background_ZZ4LEP500k.root");
  TFile *f_bkg_pph4l = new TFile("/Users/applestudio/Desktop/rootFILES/4LAnalyzer_Background_pph4l500k.root");
    
 // get branch in tree
  TH1F *h_sig20 = (TH1F*)f_sig20->Get("mZb_4e")->Clone("h_sig20");
  TH1F *h_sig40 = (TH1F*)f_sig40->Get("mZb_4e")->Clone("h_sig40");
  TH1F *h_sig60 = (TH1F*)f_sig60->Get("mZb_4e")->Clone("h_sig60");
  TH1F *h_bkg_zz4lep = (TH1F*)f_bkg_zz4lep->Get("mZb_4e")->Clone("h_bkg_zz4lep");
  TH1F *h_bkg_pph4l = (TH1F*)f_bkg_pph4l->Get("mZb_4e")->Clone("h_bkg_pph4l");
    
    //250fb = 250000pb
    float lumi = 250000;
    double nevents = 25000;
    double backevents = 500000;
    double BR_SMHiggs = 1.25e-4;
    double xs = 48.58;
    double ATLASUP = 0.01;
    //based on ATLAS CL upper limit = 10e-3
    
  
 // normalize using scale to SM Higgs crossection & BR 
  
  
  TCanvas *c = new TCanvas("c","c");
    h_sig20->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_sig40->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_sig60->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_bkg_zz4lep->Scale(xs*BR_SMHiggs*lumi/backevents);
  h_bkg_pph4l->Scale(xs*BR_SMHiggs*lumi/backevents);
     
  //stack normalized samples
  h_sig20->SetFillColor(kMagenta-9);
  h_sig40->SetFillColor(kCyan-9);
  h_sig60->SetFillColor(kYellow-9);
  h_bkg_zz4lep->SetFillColor(kBlue+2);
  h_bkg_pph4l->SetFillColor(kRed+1);
    
  THStack *hs = new THStack("hs", "z_{b} mass");
  hs->Add(h_sig20);
  hs->Add(h_sig40);
  hs->Add(h_sig60);
  hs->Add(h_bkg_zz4lep);
  hs->Add(h_bkg_pph4l);
  hs->Draw("HIST, nostack");
  hs->GetXaxis()->SetTitle("mass of z_{b} (4e channel)");
  hs->GetYaxis()->SetTitle("Number of Events");


  
  hs->GetXaxis()->SetRangeUser(12,80);


  TLegend *leg = new TLegend(0.9,0.7,0.7,0.9);
  //(plg hujung x dekat 0,lebar dekat xaxis dr 0,lebar dekat yaxis dr 0,atasbawah on y axis)
  // dia count dr 0-1
  leg->SetHeader("Sample");
  leg->AddEntry("h_sig20","mZ_{b} = 20GeV","f");
  leg->AddEntry("h_sig40","mZ_{b} = 40GeV","f");
  leg->AddEntry("h_sig60","mZ_{b} = 60GeV","f");
  leg->AddEntry("h_bkg_zz4lep","zz4l","f");
  leg->AddEntry("h_bkg_pph4l","pph4l","f");
  leg->Draw();
    

  c->SaveAs("cuba500k.eps");
}

thanks

Please read tips for efficient and successful posting and posting code

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


Have you checked the values you are using to scale the histograms ? in the following code are they correct ? (ie: check with a simple cout)

   h_sig20->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_sig40->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_sig60->Scale(xs*ATLASUP*BR_SMHiggs*lumi/nevents);
  h_bkg_zz4lep->Scale(xs*BR_SMHiggs*lumi/backevents);
  h_bkg_pph4l->Scale(xs*BR_SMHiggs*lumi/backevents);

the numbers are correct,

of is it that my formula is wrong?

weight = XS x BR x Luminosity / total events generated?

This I can’t tell, that’s your code. You should know.