X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=PWG4%2Fmacros%2Felectrons%2FmakeCombinedData.C;fp=PWG4%2Fmacros%2Felectrons%2FmakeCombinedData.C;h=0000000000000000000000000000000000000000;hb=0ce3960d353b2ed8f01daf3a1be6486efa0bb2a9;hp=9da100d65c14b2a7b02a34e1189ecda12403c8a2;hpb=80fb326798b2bde07e5ba340aa54cae2fda4f025;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG4/macros/electrons/makeCombinedData.C b/PWG4/macros/electrons/makeCombinedData.C deleted file mode 100644 index 9da100d65c1..00000000000 --- a/PWG4/macros/electrons/makeCombinedData.C +++ /dev/null @@ -1,803 +0,0 @@ -///////////////////////////////////////// -// A set of plotting utilities for the -// electron chapter of the PPR -// -// J.L.Klay (Cal Poly) -// 28-Oct-2009 -//////////////////////////////////////// - -TH1F *alltte, *alltrk, *allemc; -TH1F *sumtte, *sumtrk, *sumemc; //all but misid'ed hadrons -TH1F *btte, *btrk, *bemc; -TH1F *ctte, *ctrk, *cemc; -TH1F *cbtte, *cbtrk, *cbemc; -TH1F *convtte, *convtrk, *convemc; -TH1F *daltte, *daltrk, *dalemc; -TH1F *wztte, *wztrk, *wzemc; -TH1F *htte, *htrk, *hemc; - -TH1F *allMC; -TH1F *bMC, *cMC, *cbMC; -TH1F *convMC, *dalMC, *wzMC; -TH1F *mchad; -TH1F *allheratio, *behratio; - -TF1* fpow; - -void makeData(char* jjfname = "data/scaled25Oct09/TOTALhistosscaled-LHC09b2-0.root", - char* bfname = "data/scaled25Oct09/histosscaledLHC09b4AODc.root", - char* wfname = "data/scaled25Oct09/histosWboson.root") { - - //TO AVOID DOUBLE-COUNTING ELECTRONS: - //NOTE: Jet-Jet events are "minimum bias" which means that there - //are B-Jets included and for the higher pThard bins the B-jets will - //play a more important role. So to AVOID DOUBLE-COUNTING - //B-electrons, we will suppress the electrons in the Jet-Jet events - //that come from B->e or B->C->e when we combine the productions - //into the total histograms - - //TO AVOID DOUBLE-COUNTING HADRONS: - //For the hadron yields, we need to use only the yields from the - //Jet-Jet events + W events and NOT USE the hadrons from the B-Jet events - - //For bjet and jet-jet events - double pyscale = (1.E6)*0.5*208*208*100/360; //seconds*lumi*Pb*Pb*acceptance - double bscale = pyscale; //Do we need to scale by Branching ratio - //for forced semi-leptonic decays? - double wscale = pyscale; - - TFile* jjfile = new TFile(jjfname); - if(!jjfile) { printf("NO JET-JET FILE\n"); return; } - TH2F* jjtte = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleTTEScaled"); - TH2F* jjemc = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleEMCALScaled"); - TH2F* jjtrk = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleTPCTRDScaled"); - TH1F* jjmult = (TH1F*)jjfile->Get("AnaElectron_hRefMultScaled"); - Int_t nEvtJJ = jjmult->GetEntries(); - jjtte->Scale(pyscale); - jjemc->Scale(pyscale); - jjtrk->Scale(pyscale); - TH2F* jjmcele = (TH2F*)jjfile->Get("AnaElectron_hPtMCElectronScaled"); - TH1F* jjmchad = (TH1F*)jjfile->Get("AnaElectron_hPtMCHadronScaled"); - jjmcele->Scale(pyscale); - jjmchad->Scale(pyscale); - - TFile* bfile = new TFile(bfname); - if(!bfile) { printf("NO B-JET FILE\n"); return; } - TH2F* bjtte = (TH2F*)bfile->Get("AnaElectron_hPtNPEleTTEScaled"); - TH2F* bjemc = (TH2F*)bfile->Get("AnaElectron_hPtNPEleEMCALScaled"); - TH2F* bjtrk = (TH2F*)bfile->Get("AnaElectron_hPtNPEleTPCTRDScaled"); - TH1F* bjmult = (TH1F*)bfile->Get("AnaElectron_hRefMultScaled"); - Int_t nEvtB = bjmult->GetEntries(); - bjtte->Scale(bscale); - bjemc->Scale(bscale); - bjtrk->Scale(bscale); - TH2F* bjmcele = (TH2F*)bfile->Get("AnaElectron_hPtMCElectronScaled"); - TH1F* bjmchad = (TH1F*)bfile->Get("AnaElectron_hPtMCHadronScaled"); - bjmcele->Scale(bscale); - bjmchad->Scale(bscale); - - TFile* wfile = new TFile(wfname); - if(!wfile) { printf("NO W-BOSON FILE\n"); return; } - TH2F* wjtte = (TH2F*)wfile->Get("AnaElectron_hPtNPEleTTE"); - TH2F* wjemc = (TH2F*)wfile->Get("AnaElectron_hPtNPEleEMCAL"); - TH2F* wjtrk = (TH2F*)wfile->Get("AnaElectron_hPtNPEleTPCTRD"); - TH1F* wjmult = (TH1F*)wfile->Get("AnaElectron_hRefMult"); - Int_t nEvtW = wjmult->GetEntries(); - wjtte->Scale(wscale); //already scaled by evts - wjemc->Scale(wscale); //already scaled by evts - wjtrk->Scale(wscale); //already scaled by evts - TH2F* wjmcele = (TH2F*)wfile->Get("AnaElectron_hPtMCElectron"); - TH1F* wjmchad = (TH1F*)wfile->Get("AnaElectron_hPtMCHadron"); - wjmcele->Scale(wscale); - wjmchad->Scale(wscale); - - printf("Event statistics: %d (JET-JET) %d (B-JET) %d (W-Boson)\n",nEvtJJ,nEvtB,nEvtW); - - makeMCElectrons(jjmcele,bjmcele,wjmcele,jjmchad,wjmchad); - makeTTEElectrons(jjtte,bjtte,wjtte); - makeEMCElectrons(jjemc,bjemc,wjemc); - makeTRKElectrons(jjtrk,bjtrk,wjtrk); - - TFile* fout = new TFile("CombinedCocktailHistograms.root","RECREATE"); - fout->cd(); - alltte->Write(); - alltrk->Write(); - allemc->Write(); - - sumtte->Write(); - sumtrk->Write(); - sumemc->Write(); - - btte->Write(); - btrk->Write(); - bemc->Write(); - - ctte->Write(); - ctrk->Write(); - cemc->Write(); - - cbtte->Write(); - cbtrk->Write(); - cbemc->Write(); - - convtte->Write(); - convtrk->Write(); - convemc->Write(); - - daltte->Write(); - daltrk->Write(); - dalemc->Write(); - - wztte->Write(); - wztrk->Write(); - wzemc->Write(); - - htte->Write(); - htrk->Write(); - hemc->Write(); - - allMC->Write(); - bMC->Write(); - cMC->Write(); - cbMC->Write(); - convMC->Write(); - dalMC->Write(); - wzMC->Write(); - mchad->Write(); - - allheratio->Write(); - behratio->Write(); - - fout->Close(); - -} - - -void ScaleAndConfigure(TH1F* hist,Double_t scale, Int_t color,Bool_t keepErr) -{ - hist->Scale(scale); - hist->SetLineColor(color); - hist->SetMarkerColor(color); - hist->SetLineWidth(2); - if(keepErr == kFALSE) { - //remove the error bars - useful for MC rates - for(Int_t i = 1; i <= hist->GetNbinsX(); i++) { - if(hist->GetBinContent(i) > 0.) { - if(hist->GetBinError(i)/hist->GetBinContent(i) > 0.5) { - Double_t avg = 0.; - if(i > 1 && i < hist->GetNbinsX()) - avg = (hist->GetBinContent(i-1) + hist->GetBinContent(i+1))/2.; - hist->SetBinContent(i,avg); - } - } - hist->SetBinError(i,0.); - } - } else { - //Set the error bars to statistics of the bin content - for(Int_t i = 1; i <= hist->GetNbinsX(); i++) { - if(hist->GetBinContent(i) > 0.) { - if(hist->GetBinError(i)/hist->GetBinContent(i) > 0.5) { - Double_t avg = 0; - if(i > 1 && i < hist->GetNbinsX()) - avg = (hist->GetBinContent(i-1) + hist->GetBinContent(i+1))/2.; - hist->SetBinContent(i,avg); - } - } - hist->SetBinError(i,TMath::Sqrt(hist->GetBinContent(i))); - } - } -} - -TH1F* GetPtCutHisto(TH1F* input) -{ - //Given a rate histogram vs pt, return the histogram with yield - //above a given pTcut - - TH1F* result = (TH1F*)input->Clone(); - char name[100]; - sprintf(name,"%s_ptCut",result->GetName()); - // printf("####### %s #########\n",name); - result->SetNameTitle(name,name); - for(Int_t i = 1; i <= result->GetNbinsX(); i++) { - Double_t val = input->Integral(i,result->GetNbinsX()); - //printf(" value %.2f integral above %.2f\n",i,input->GetBinContent(i),val); - result->SetBinContent(i,val); - result->SetBinError(i,0.); - } - //printf("################\n"); - return result; - -} - -void makeMCElectrons(TH2F* jjmcele, TH2F* bjmcele, TH2F* wjmcele, TH1F* jjmchad, TH1F* wjmchad) { - - //Jet-Jet MC electrons - TH1F* jjallmc = (TH1F*)jjmcele->ProjectionX("jjallmc",1,1); - TH1F* jjbmc = (TH1F*)jjmcele->ProjectionX("jjbmc",2,2); - TH1F* jjcmc = (TH1F*)jjmcele->ProjectionX("jjcmc",3,3); - TH1F* jjcandbmc = (TH1F*)jjmcele->ProjectionX("jjcandbmc",4,4); - TH1F* jjconvmc = (TH1F*)jjmcele->ProjectionX("jjconvmc",5,5); - TH1F* jjdalmc = (TH1F*)jjmcele->ProjectionX("jjdalmc",6,6); - - //Bottom-Jet MC electrons - TH1F* bjallmc = (TH1F*)bjmcele->ProjectionX("bjallmc",1,1); - TH1F* bjbmc = (TH1F*)bjmcele->ProjectionX("bjbmc",2,2); - TH1F* bjcmc = (TH1F*)bjmcele->ProjectionX("bjcmc",3,3); - TH1F* bjcandbmc = (TH1F*)bjmcele->ProjectionX("bjcandbmc",4,4); - TH1F* bjconvmc = (TH1F*)bjmcele->ProjectionX("bjconvmc",5,5); - TH1F* bjdalmc = (TH1F*)bjmcele->ProjectionX("bjdalmc",6,6); - - //W-Jet MC electrons - TH1F* wjallmc = (TH1F*)wjmcele->ProjectionX("wjallmc",1,1); - TH1F* wjbmc = (TH1F*)wjmcele->ProjectionX("wjbmc",2,2); - TH1F* wjcmc = (TH1F*)wjmcele->ProjectionX("wjcmc",3,3); - TH1F* wjcandbmc = (TH1F*)wjmcele->ProjectionX("wjcandbmc",4,4); - TH1F* wjconvmc = (TH1F*)wjmcele->ProjectionX("wjconvmc",5,5); - TH1F* wjdalmc = (TH1F*)wjmcele->ProjectionX("wjdalmc",6,6); - TH1F* wjwzmc = (TH1F*)wjmcele->ProjectionX("wjwzmc",7,7); - - //MC Hadrons (from jj events only) - TCanvas *ctemp = new TCanvas("ctemp"); - ctemp->Divide(2,3); - ctemp->cd(1); gPad->SetLogy(); jjmchad->Draw(); - mchad = (TH1F*)jjmchad->Clone(); mchad->SetName("mchad"); - TH1F* temphad = (TH1F*)mchad->Clone(); temphad->SetName("temphad"); - smoothWithFit(temphad,1e5,-3,10,60,100); - for(Int_t i = 10; i<= mchad->GetNbinsX(); i++) { - Double_t pt = mchad->GetBinCenter(i); - mchad->SetBinContent(i,temphad->GetFunction("fpow")->Eval(pt)); - } - jjmchad->Draw(); - temphad->Draw("same"); - mchad->Draw("same"); - mchad->SetTitle("MC hadrons in Pb+Pb in EMCAL acceptance"); - mchad->SetName("mchad"); - mchad->SetXTitle("p_T (GeV/c)"); - - bMC = (TH1F*)bjbmc->Clone(); bMC->SetName("bMC"); //B-Jet + W-jet - bMC->Add(wjbmc); - ctemp->cd(2); gPad->SetLogy(); bMC->Draw(); - TH1F* foob = (TH1F*)bMC->Clone(); foob->SetName("foob"); - smoothWithFit(foob,1e6,-3,15,50,100); - for(Int_t i = 10; i<= bMC->GetNbinsX(); i++) bMC->SetBinContent(i,foob->GetBinContent(i)); - bMC->Draw(); - foob->Draw("same"); - - cMC = (TH1F*)jjcmc->Clone(); cMC->SetName("cMC"); //Jet-Jet + W-jet - cMC->Add(wjcmc); - ctemp->cd(3); gPad->SetLogy(); cMC->Draw(); - TH1F* fooc = (TH1F*)cMC->Clone(); fooc->SetName("fooc"); - smoothWithFit(fooc,1e6,-3,5,30,100); - for(Int_t i = 5; i<= cMC->GetNbinsX(); i++) cMC->SetBinContent(i,fooc->GetBinContent(i)); - cMC->Draw(); - fooc->Draw("same"); - - cbMC = (TH1F*)bjcandbmc->Clone(); cbMC->SetName("cbMC"); //B-Jet + W-jet - cbMC->Add(wjcandbmc); - ctemp->cd(4); gPad->SetLogy(); cbMC->Draw(); - TH1F* foocb = (TH1F*)cbMC->Clone(); foocb->SetName("foocb"); - smoothWithFit(foocb,1e6,-3,8,35,100); - for(Int_t i = 8; i<= cbMC->GetNbinsX(); i++) cbMC->SetBinContent(i,foocb->GetBinContent(i)); - cbMC->Draw(); - foocb->Draw("same"); - - convMC = (TH1F*)jjconvmc->Clone(); convMC->SetName("convMC"); //Jet-Jet + W-jet - convMC->Add(wjconvmc); - ctemp->cd(5); gPad->SetLogy(); convMC->Draw(); - TH1F* fooconv = (TH1F*)convMC->Clone(); fooconv->SetName("fooconv"); - smoothWithFit(fooconv,1e6,-3,6,40,100); - // for(Int_t i = 6; i<= convMC->GetNbinsX(); i++) convMC->SetBinContent(i,fooconv->GetBinContent(i)); - convMC->Draw(); - fooconv->Draw("same"); - - dalMC = (TH1F*)jjdalmc->Clone(); dalMC->SetName("dalMC"); //Jet-Jet + W-jet - dalMC->Add(wjdalmc); - ctemp->cd(6); gPad->SetLogy(); dalMC->Draw(); - TH1F* foodal = (TH1F*)dalMC->Clone(); foodal->SetName("foodal"); - smoothWithFit(foodal,1e6,-3,3,20,100); - for(Int_t i = 3; i<= dalMC->GetNbinsX(); i++) dalMC->SetBinContent(i,foodal->GetBinContent(i)); - dalMC->Draw(); - foodal->Draw("same"); - - wzMC = (TH1F*)wjwzmc->Clone(); wzMC->SetName("wzMC"); //W-jet only - TCanvas* cw= new TCanvas("cw"); - cw->cd(); gPad->SetLogy(); wzMC->GetYaxis()->SetRangeUser(1,1e3); wzMC->Draw(); - TH1F* foowz = (TH1F*)wzMC->Clone(); foowz->SetName("foowz"); - TF1* fws = new TF1("fws","[0]*(1+exp((x-[1])/[2]))^-1",39,100); - fws->SetParameters(100,30,5); - foowz->Fit(fws,"R"); - TF1* fwzexp = new TF1("fwzexp","[0]+[1]*log(x/[2])^2",4,40); - fwzexp->SetParameters(100,10,3); - foowz->Fit(fwzexp,"R"); - for(Int_t i = 8; i<= wzMC->GetNbinsX(); i++) { - Double_t pt = wzMC->GetBinCenter(i); - if(pt < 40) wzMC->SetBinContent(i,fwzexp->Eval(pt)); - if(pt > 40) wzMC->SetBinContent(i,fws->Eval(pt)); - } - wzMC->GetYaxis()->SetRangeUser(1,1e3); - wzMC->Draw(); - fws->Draw("same"); - foowz->Draw("same"); - - //All mc electrons is the sum of - //Jet-Jet: conversions + direct charm + dalitz - //Bottom-Jet: direct bottom + indirect bottom - //W-Jet: all (because these events are exclusive of the others) - allMC = (TH1F*)wzMC->Clone(); allMC->SetNameTitle("allMC","All MC Electrons"); - allMC->Add(convMC); allMC->Add(cMC); allMC->Add(dalMC); - allMC->Add(bMC); allMC->Add(cbMC); - - //Hadron/electron ratios - allheratio = (TH1F*)allMC->Clone(); allheratio->SetName("allheratio"); - behratio = (TH1F*)bMC->Clone(); behratio->SetName("behratio"); - allheratio->SetTitle("MC hadrons and electrons in Pb+Pb, 5.5 TeV"); - allheratio->SetXTitle("p_{T} (GeV/c)"); - allheratio->SetYTitle("Hadrons/Electrons"); - for(Int_t i = 1; i <= allheratio->GetNbinsX(); i++) { - Double_t vale = allMC->GetBinContent(i); - Double_t valb = bMC->GetBinContent(i); - Double_t valh = mchad->GetBinContent(i); - //printf("pT %.2f, Hadron %.1f, Electron %.1f, B-electron - //%.1f\n",all->GetBinCenter(i),valh,vale,valb); - if(vale>0) allheratio->SetBinContent(i,valh/vale); - else allheratio->SetBinContent(i,0.); - - if(valb>0) behratio->SetBinContent(i,valh/valb); - else behratio->SetBinContent(i,0.); - - allheratio->SetBinError(i,0.); - behratio->SetBinError(i,0.); - } - - double myscale = 1.; //we already scaled them - ScaleAndConfigure(allMC,myscale,kBlack,kFALSE); - ScaleAndConfigure(bMC,myscale,kRed,kFALSE); - ScaleAndConfigure(cMC,myscale,kBlue,kFALSE); - ScaleAndConfigure(cbMC,myscale,kViolet,kFALSE); - ScaleAndConfigure(convMC,myscale,kOrange-3,kFALSE); - ScaleAndConfigure(dalMC,myscale,kGreen-3,kFALSE); - ScaleAndConfigure(wzMC,myscale,kOrange-7,kFALSE); - ScaleAndConfigure(mchad,myscale,kGreen+2,kFALSE); - - return; -} - -void makeTTEElectrons(TH2F* jjtte, TH2F* bjtte, TH2F* wjtte) { - - //Jet-Jet TTE Electrons - TH1F* jjalltte = (TH1F*)jjtte->ProjectionX("jjalltte",1,1); - TH1F* jjbtte = (TH1F*)jjtte->ProjectionX("jjbtte",2,2); - TH1F* jjctte = (TH1F*)jjtte->ProjectionX("jjctte",3,3); - TH1F* jjcbtte = (TH1F*)jjtte->ProjectionX("jjcbtte",4,4); - TH1F* jjconvtte = (TH1F*)jjtte->ProjectionX("jjconvtte",5,5); - TH1F* jjdaltte = (TH1F*)jjtte->ProjectionX("jjdaltte",6,6); - TH1F* jjwztte = (TH1F*)jjtte->ProjectionX("jjwztte",7,7); - TH1F* jjhtte = (TH1F*)jjtte->ProjectionX("jjhtte",9,9); - - //B-Jet TTE Electrons - TH1F* bjalltte = (TH1F*)bjtte->ProjectionX("bjalltte",1,1); - TH1F* bjbtte = (TH1F*)bjtte->ProjectionX("bjbtte",2,2); - TH1F* bjctte = (TH1F*)bjtte->ProjectionX("bjctte",3,3); - TH1F* bjcbtte = (TH1F*)bjtte->ProjectionX("bjcbtte",4,4); - TH1F* bjconvtte = (TH1F*)bjtte->ProjectionX("bjconvtte",5,5); - TH1F* bjdaltte = (TH1F*)bjtte->ProjectionX("bjdaltte",6,6); - TH1F* bjwztte = (TH1F*)bjtte->ProjectionX("bjwztte",7,7); - TH1F* bjhtte = (TH1F*)bjtte->ProjectionX("bjhtte",9,9); - - //W-Jet TTE Electrons - TH1F* wjalltte = (TH1F*)wjtte->ProjectionX("wjalltte",1,1); - TH1F* wjbtte = (TH1F*)wjtte->ProjectionX("wjbtte",2,2); - TH1F* wjctte = (TH1F*)wjtte->ProjectionX("wjctte",3,3); - TH1F* wjcbtte = (TH1F*)wjtte->ProjectionX("wjcbtte",4,4); - TH1F* wjconvtte = (TH1F*)wjtte->ProjectionX("wjconvtte",5,5); - TH1F* wjdaltte = (TH1F*)wjtte->ProjectionX("wjdaltte",6,6); - TH1F* wjwztte = (TH1F*)wjtte->ProjectionX("wjwztte",7,7); - TH1F* wjhtte = (TH1F*)wjtte->ProjectionX("wjhtte",9,9); - - btte = (TH1F*)bjbtte->Clone(); btte->SetName("btte"); //B-Jet + W-jet - btte->Add(wjbtte) - TCanvas * ctemptte = new TCanvas("ctemptte"); - ctemptte->Divide(2,3); - ctemptte->cd(1); gPad->SetLogy(); btte->Draw(); - TH1F* foobtte = (TH1F*)btte->Clone(); foobtte->SetName("foobtte"); - smoothWithFit(foobtte,1e5,-3,8,40,100); - btte->Draw(); foobtte->Draw("same"); - - ctte = (TH1F*)jjctte->Clone(); ctte->SetName("ctte"); //Jet-Jet + W-jet - ctte->Add(wjctte); - ctemptte->cd(2); gPad->SetLogy(); ctte->Draw(); - TH1F* fooctte = (TH1F*)ctte->Clone(); fooctte->SetName("fooctte"); - smoothWithFit(fooctte,1e5,-3,3,12,100); - ctte->Draw(); fooctte->Draw("same"); - - cbtte = (TH1F*)bjcbtte->Clone(); cbtte->SetName("cbtte"); //B-Jet + W-jet - cbtte->Add(wjcbtte); - ctemptte->cd(3); gPad->SetLogy(); cbtte->Draw(); - TH1F* foocbtte = (TH1F*)cbtte->Clone(); foocbtte->SetName("foocbtte"); - smoothWithFit(foocbtte,1e5,-3,5,20,100); - cbtte->Draw(); foocbtte->Draw("same"); - - convtte = (TH1F*)jjconvtte->Clone(); convtte->SetName("convtte"); //Jet-Jet + W-jet - convtte->Add(wjconvtte); - ctemptte->cd(4); gPad->SetLogy(); convtte->Draw(); - TH1F* fooconvtte = (TH1F*)convtte->Clone(); fooconvtte->SetName("fooconvtte"); - smoothWithFit(fooconvtte,1e5,-3,6,13,100); - convtte->Draw(); fooconvtte->Draw("same"); - - daltte = (TH1F*)jjdaltte->Clone(); daltte->SetName("daltte"); //Jet-Jet + W-jet - daltte->Add(wjdaltte); - ctemptte->cd(5); gPad->SetLogy(); daltte->Draw(); - TH1F* foodaltte = (TH1F*)daltte->Clone(); foodaltte->SetName("foodaltte"); - smoothWithFit(foodaltte,1e2,-5,2,10,100); - daltte->Draw(); foodaltte->Draw("same"); - - htte = (TH1F*)jjhtte->Clone(); htte->SetName("htte"); - htte->Add(wjhtte); - ctemptte->cd(6); gPad->SetLogy(); htte->Draw(); - TH1F* foohtte = (TH1F*)htte->Clone(); foohtte->SetName("foohtte"); - smoothWithFit(foohtte,1e5,-3,10,40,100); - htte->Draw(); foohtte->Draw("same"); - - wztte = (TH1F*)wjwztte->Clone(); wztte->SetName("wztte"); //W-jet only - TCanvas* ctempwztte = new TCanvas("ctempwztte"); - ctempwztte->cd(); gPad->SetLogy(); wztte->Draw(); - TH1F* foowztte = (TH1F*)wztte->Clone(); foowztte->SetName("foowztte"); - smoothWithFit(foowztte,1e5,-3,10,40,100); - wztte->Draw(); foowztte->Draw("same"); - - //All TTE electrons is the sum of - //Jet-Jet: conversions + direct charm + dalitz + misid - //Bottom-Jet: direct bottom + indirect bottom - //W-Jet: all (because these events are exclusive of the others) - alltte = (TH1F*)wjalltte->Clone(); alltte->SetName("alltte"); - alltte->Add(jjconvtte); alltte->Add(jjctte); alltte->Add(jjdaltte); alltte->Add(jjhtte); - alltte->Add(bjbtte); alltte->Add(bjcbtte); - sumtte = (TH1F*)wjalltte->Clone(); sumtte->SetName("sumtte"); - sumtte->Add(jjconvtte); sumtte->Add(jjctte); sumtte->Add(jjdaltte); - sumtte->Add(bjbtte); sumtte->Add(bjcbtte); - - double myscale = 1.; //we already scaled them - ScaleAndConfigure(alltte,myscale,kBlack,kFALSE); - ScaleAndConfigure(sumtte,myscale,kBlack,kFALSE); - ScaleAndConfigure(btte,myscale,kRed,kFALSE); - ScaleAndConfigure(ctte,myscale,kBlue,kFALSE); - ScaleAndConfigure(cbtte,myscale,kViolet,kFALSE); - ScaleAndConfigure(convtte,myscale,kOrange-3,kFALSE); - ScaleAndConfigure(daltte,myscale,kGreen-3,kFALSE); - ScaleAndConfigure(htte,myscale,kGreen+2,kFALSE); - ScaleAndConfigure(wztte,myscale,kOrange-7,kFALSE); - - return; -} - -void makeEMCElectrons(TH2F* jjemc, TH2F* bjemc, TH2F* wjemc) { - - //Jet-Jet EMC Electrons - TH1F* jjallemc = (TH1F*)jjemc->ProjectionX("jjallemc",1,1); - TH1F* jjbemc = (TH1F*)jjemc->ProjectionX("jjbemc",2,2); - TH1F* jjcemc = (TH1F*)jjemc->ProjectionX("jjcemc",3,3); - TH1F* jjcbemc = (TH1F*)jjemc->ProjectionX("jjcbemc",4,4); - TH1F* jjconvemc = (TH1F*)jjemc->ProjectionX("jjconvemc",5,5); - TH1F* jjdalemc = (TH1F*)jjemc->ProjectionX("jjdalemc",6,6); - TH1F* jjwzemc = (TH1F*)jjemc->ProjectionX("jjwzemc",7,7); - TH1F* jjhemc = (TH1F*)jjemc->ProjectionX("jjhemc",9,9); - - //B-Jet EMC Electrons - TH1F* bjallemc = (TH1F*)bjemc->ProjectionX("bjallemc",1,1); - TH1F* bjbemc = (TH1F*)bjemc->ProjectionX("bjbemc",2,2); - TH1F* bjcemc = (TH1F*)bjemc->ProjectionX("bjcemc",3,3); - TH1F* bjcbemc = (TH1F*)bjemc->ProjectionX("bjcbemc",4,4); - TH1F* bjconvemc = (TH1F*)bjemc->ProjectionX("bjconvemc",5,5); - TH1F* bjdalemc = (TH1F*)bjemc->ProjectionX("bjdalemc",6,6); - TH1F* bjwzemc = (TH1F*)bjemc->ProjectionX("bjwzemc",7,7); - TH1F* bjhemc = (TH1F*)bjemc->ProjectionX("bjhemc",9,9); - - //W-Jet EMC Electrons - TH1F* wjallemc = (TH1F*)wjemc->ProjectionX("wjallemc",1,1); - TH1F* wjbemc = (TH1F*)wjemc->ProjectionX("wjbemc",2,2); - TH1F* wjcemc = (TH1F*)wjemc->ProjectionX("wjcemc",3,3); - TH1F* wjcbemc = (TH1F*)wjemc->ProjectionX("wjcbemc",4,4); - TH1F* wjconvemc = (TH1F*)wjemc->ProjectionX("wjconvemc",5,5); - TH1F* wjdalemc = (TH1F*)wjemc->ProjectionX("wjdalemc",6,6); - TH1F* wjwzemc = (TH1F*)wjemc->ProjectionX("wjwzemc",7,7); - TH1F* wjhemc = (TH1F*)wjemc->ProjectionX("wjhemc",9,9); - - bemc = (TH1F*)bjbemc->Clone(); bemc->SetName("bemc"); //B-Jet + W-jet - bemc->Add(wjbemc); - TCanvas * ctempemc = new TCanvas("ctempemc","",0,0,800,800); - ctempemc->Divide(2,3); - ctempemc->cd(1); gPad->SetLogy(); bemc->Draw(); - TH1F* foobemc = (TH1F*)bemc->Clone(); foobemc->SetName("foobemc"); - smoothWithFit(foobemc,1e5,-3,8,40,100); - TRandom rand; - for(Int_t i = 8; i<= bemc->GetNbinsX(); i++) { - Double_t dither = rand.Gaus(0.,foobemc->GetBinContent(i)/2.); - if(dither + foobemc->GetBinContent(i) < foobemc->GetBinContent(i)/100.) dither = 0.; - bemc->SetBinContent(i,foobemc->GetBinContent(i)+dither); - bemc->SetBinError(i,sqrt(foobemc->GetBinContent(i))); - } - bemc->Draw(); foobemc->Draw("same"); - - cemc = (TH1F*)jjcemc->Clone(); cemc->SetName("cemc"); //Jet-Jet + W-jet - cemc->Add(wjcemc); - ctempemc->cd(2); gPad->SetLogy(); cemc->Draw(); - TH1F* foocemc = (TH1F*)cemc->Clone(); foocemc->SetName("foocemc"); - smoothWithFit(foocemc,1e5,-3,5,14,100); - for(Int_t i = 5; i<= cemc->GetNbinsX(); i++) { - Double_t dither = rand.Gaus(0.,foocemc->GetBinContent(i)/2.); - if(dither + foocemc->GetBinContent(i) < foocemc->GetBinContent(i)/100.) dither = 0.; - cemc->SetBinContent(i,foocemc->GetBinContent(i)+dither); - cemc->SetBinError(i,sqrt(foocemc->GetBinContent(i))); - } - cemc->Draw(); foocemc->Draw("same"); - - cbemc = (TH1F*)bjcbemc->Clone(); cbemc->SetName("cbemc"); //B-Jet + W-jet - cbemc->Add(wjcbemc); - ctempemc->cd(3); gPad->SetLogy(); cbemc->Draw(); - TH1F* foocbemc = (TH1F*)cbemc->Clone(); foocbemc->SetName("foocbemc"); - smoothWithFit(foocbemc,1e5,-3,8,20,100); - for(Int_t i = 8; i<= cbemc->GetNbinsX(); i++) { - Double_t dither = rand.Gaus(0.,foocbemc->GetBinContent(i)/2.); - if(dither + foocbemc->GetBinContent(i) < foocbemc->GetBinContent(i)/100.) dither = 0.; - cbemc->SetBinContent(i,foocbemc->GetBinContent(i)+dither); - cbemc->SetBinError(i,sqrt(foocbemc->GetBinContent(i))); - } - cbemc->Draw(); foocbemc->Draw("same"); - - convemc = (TH1F*)jjconvemc->Clone(); convemc->SetName("convemc"); //Jet-Jet + W-jet - convemc->Add(wjconvemc); - ctempemc->cd(4); gPad->SetLogy(); convemc->Draw(); - TH1F* fooconvemc = (TH1F*)convemc->Clone(); fooconvemc->SetName("fooconvemc"); - smoothWithFit(fooconvemc,1e6,-3,5,15,100); - for(Int_t i = 5; i<= convemc->GetNbinsX(); i++) { - Double_t dither = rand.Gaus(0.,fooconvemc->GetBinContent(i)/2.); - if(dither + fooconvemc->GetBinContent(i) < fooconvemc->GetBinContent(i)/100.) dither = 0.; - convemc->SetBinContent(i,fooconvemc->GetBinContent(i)+dither); - convemc->SetBinError(i,sqrt(fooconvemc->GetBinContent(i))); - } - convemc->Draw(); fooconvemc->Draw("same"); - - dalemc = (TH1F*)jjdalemc->Clone(); dalemc->SetName("dalemc"); //Jet-Jet + W-jet - dalemc->Add(wjdalemc); - ctempemc->cd(5); gPad->SetLogy(); dalemc->Draw(); - TH1F* foodalemc = (TH1F*)dalemc->Clone(); foodalemc->SetName("foodalemc"); - for(Int_t i = 18; i <= dalemc->GetNbinsX(); i++) { - dalemc->SetBinContent(i,0); - dalemc->SetBinError(i,0); - foodalemc->SetBinContent(i,0); - foodalemc->SetBinError(i,0); - } - // smoothWithFit(foodalemc,1e6,-3,8.,12.,100); - dalemc->Draw(); //foodalemc->Draw("same"); - - hemc = (TH1F*)jjhemc->Clone(); hemc->SetName("hemc"); - hemc->Add(wjhemc); - ctempemc->cd(6); gPad->SetLogy(); hemc->Draw(); - TH1F* foohemc = (TH1F*)hemc->Clone(); foohemc->SetName("foohemc"); - smoothWithFit(foohemc,1e5,-3,10,40,100); - for(Int_t i = 10; i<= hemc->GetNbinsX(); i++) { - Double_t dither = rand.Gaus(0.,foohemc->GetBinContent(i)/2.); - if(dither + foohemc->GetBinContent(i) < foohemc->GetBinContent(i)/100.) dither = 0.; - hemc->SetBinContent(i,foohemc->GetBinContent(i)+dither); - hemc->SetBinError(i,sqrt(foohemc->GetBinContent(i))); - } - hemc->Draw(); foohemc->Draw("same"); - - wzemc = (TH1F*)wjwzemc->Clone(); wzemc->SetName("wzemc"); //W-jet only - TCanvas* ctempwzemc = new TCanvas("ctempwzemc"); - ctempwzemc->cd(); gPad->SetLogy(); wzemc->Draw(); - TH1F* foowzemc = (TH1F*)wzemc->Clone(); foowzemc->SetName("foowzemc"); - TF1* fwsemc = new TF1("fwsemc","[0]*(1+exp((x-[1])/[2]))^-1",30,50); - fwsemc->SetParameters(10,30,3); - foowzemc->Fit(fwsemc,"R"); - TF1* fwzexpemc = new TF1("fwzexpemc","[0]+[1]*log(x/[2])^2",5,20); - fwzexpemc->SetParameters(10,10,3); - // foowzemc->Fit(fwzexpemc,"R"); - /* - for(Int_t i = 8; i<= wzMC->GetNbinsX(); i++) { - Double_t pt = wzMC->GetBinCenter(i); - if(pt < 40) wzMC->SetBinContent(i,fwzexp->Eval(pt)); - if(pt > 40) wzMC->SetBinContent(i,fws->Eval(pt)); - } - */ - wzemc->Draw(); foowzemc->Draw("same"); - fwzexpemc->Draw("same"); - - //All EMC electrons is the sum of - //Jet-Jet: conversions + direct charm + dalitz + misid - //Bottom-Jet: direct bottom + indirect bottom - //W-Jet: all (because these events are exclusive of the others) - allemc = (TH1F*)wjallemc->Clone(); allemc->SetName("allemc"); - allemc->Add(jjconvemc); allemc->Add(jjcemc); allemc->Add(jjdalemc); allemc->Add(jjhemc); - allemc->Add(bjbemc); allemc->Add(bjcbemc); - sumemc = (TH1F*)wjallemc->Clone(); sumemc->SetName("sumemc"); - sumemc->Add(jjconvemc); sumemc->Add(jjcemc); sumemc->Add(jjdalemc); - sumemc->Add(bjbemc); sumemc->Add(bjcbemc); - - double myscale = 1.; //we already scaled them - ScaleAndConfigure(allemc,myscale,kBlack,kFALSE); - ScaleAndConfigure(sumemc,myscale,kBlack,kFALSE); - ScaleAndConfigure(bemc,myscale,kRed,kFALSE); - ScaleAndConfigure(cemc,myscale,kBlue,kFALSE); - ScaleAndConfigure(cbemc,myscale,kViolet,kFALSE); - ScaleAndConfigure(convemc,myscale,kOrange-3,kFALSE); - ScaleAndConfigure(dalemc,myscale,kGreen-3,kFALSE); - ScaleAndConfigure(hemc,myscale,kGreen+2,kFALSE); - ScaleAndConfigure(wzemc,myscale,kOrange-7,kFALSE); - - return; -} - -void makeTRKElectrons(TH2F* jjtrk, TH2F* bjtrk, TH2F* wjtrk) { - - //Jet-Jet TRK Electrons - TH1F* jjalltrk = (TH1F*)jjtrk->ProjectionX("jjalltrk",1,1); - TH1F* jjbtrk = (TH1F*)jjtrk->ProjectionX("jjbtrk",2,2); - TH1F* jjctrk = (TH1F*)jjtrk->ProjectionX("jjctrk",3,3); - TH1F* jjcbtrk = (TH1F*)jjtrk->ProjectionX("jjcbtrk",4,4); - TH1F* jjconvtrk = (TH1F*)jjtrk->ProjectionX("jjconvtrk",5,5); - TH1F* jjdaltrk = (TH1F*)jjtrk->ProjectionX("jjdaltrk",6,6); - TH1F* jjwztrk = (TH1F*)jjtrk->ProjectionX("jjwztrk",7,7); - TH1F* jjhtrk = (TH1F*)jjtrk->ProjectionX("jjhtrk",9,9); - - //B-Jet TRK Electrons - TH1F* bjalltrk = (TH1F*)bjtrk->ProjectionX("bjalltrk",1,1); - TH1F* bjbtrk = (TH1F*)bjtrk->ProjectionX("bjbtrk",2,2); - TH1F* bjctrk = (TH1F*)bjtrk->ProjectionX("bjctrk",3,3); - TH1F* bjcbtrk = (TH1F*)bjtrk->ProjectionX("bjcbtrk",4,4); - TH1F* bjconvtrk = (TH1F*)bjtrk->ProjectionX("bjconvtrk",5,5); - TH1F* bjdaltrk = (TH1F*)bjtrk->ProjectionX("bjdaltrk",6,6); - TH1F* bjwztrk = (TH1F*)bjtrk->ProjectionX("bjwztrk",7,7); - TH1F* bjhtrk = (TH1F*)bjtrk->ProjectionX("bjhtrk",9,9); - - //W-Jet TRK Electrons - TH1F* wjalltrk = (TH1F*)wjtrk->ProjectionX("wjalltrk",1,1); - TH1F* wjbtrk = (TH1F*)wjtrk->ProjectionX("wjbtrk",2,2); - TH1F* wjctrk = (TH1F*)wjtrk->ProjectionX("wjctrk",3,3); - TH1F* wjcbtrk = (TH1F*)wjtrk->ProjectionX("wjcbtrk",4,4); - TH1F* wjconvtrk = (TH1F*)wjtrk->ProjectionX("wjconvtrk",5,5); - TH1F* wjdaltrk = (TH1F*)wjtrk->ProjectionX("wjdaltrk",6,6); - TH1F* wjwztrk = (TH1F*)wjtrk->ProjectionX("wjwztrk",7,7); - TH1F* wjhtrk = (TH1F*)wjtrk->ProjectionX("wjhtrk",9,9); - - btrk = (TH1F*)bjbtrk->Clone(); btrk->SetName("btrk"); //B-Jet + W-jet - btrk->Add(wjbtrk); - TCanvas * ctemptrk = new TCanvas("ctemptrk","",0,0,800,800); - ctemptrk->Divide(2,3); - ctemptrk->cd(1); gPad->SetLogy(); btrk->Draw(); - TH1F* foobtrk = (TH1F*)btrk->Clone(); foobtrk->SetName("foobtrk"); - smoothWithFit(foobtrk,1e5,-3,8,40,100); - TRandom rand2; - for(Int_t i = 8; i<= btrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,foobtrk->GetBinContent(i)/2.); - if(dither + foobtrk->GetBinContent(i) < foobtrk->GetBinContent(i)/100.) dither = 0.; - btrk->SetBinContent(i,foobtrk->GetBinContent(i)+dither); - btrk->SetBinError(i,sqrt(foobtrk->GetBinContent(i))); - } - btrk->Draw(); foobtrk->Draw("same"); - - ctrk = (TH1F*)jjctrk->Clone(); ctrk->SetName("ctrk"); //Jet-Jet + W-jet - ctrk->Add(wjctrk); - ctemptrk->cd(2); gPad->SetLogy(); ctrk->Draw(); - TH1F* fooctrk = (TH1F*)ctrk->Clone(); fooctrk->SetName("fooctrk"); - smoothWithFit(fooctrk,1e5,-3,5,20,100); - for(Int_t i = 5; i<= ctrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,fooctrk->GetBinContent(i)/2.); - if(dither + fooctrk->GetBinContent(i) < fooctrk->GetBinContent(i)/100.) dither = 0.; - ctrk->SetBinContent(i,fooctrk->GetBinContent(i)+dither); - ctrk->SetBinError(i,sqrt(fooctrk->GetBinContent(i))); - } - ctrk->Draw(); fooctrk->Draw("same"); - - cbtrk = (TH1F*)bjcbtrk->Clone(); cbtrk->SetName("cbtrk"); //B-Jet + W-jet - cbtrk->Add(wjcbtrk); - ctemptrk->cd(3); gPad->SetLogy(); cbtrk->Draw(); - TH1F* foocbtrk = (TH1F*)cbtrk->Clone(); foocbtrk->SetName("foocbtrk"); - smoothWithFit(foocbtrk,1e5,-3,5,20,100); - for(Int_t i = 5; i<= cbtrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,foocbtrk->GetBinContent(i)/2.); - if(dither + foocbtrk->GetBinContent(i) < foocbtrk->GetBinContent(i)/100.) dither = 0.; - cbtrk->SetBinContent(i,foocbtrk->GetBinContent(i)+dither); - cbtrk->SetBinError(i,sqrt(foocbtrk->GetBinContent(i))); - } - cbtrk->Draw(); foocbtrk->Draw("same"); - - convtrk = (TH1F*)jjconvtrk->Clone(); convtrk->SetName("convtrk"); //Jet-Jet + W-jet - convtrk->Add(wjconvtrk); - ctemptrk->cd(4); gPad->SetLogy(); convtrk->Draw(); - TH1F* fooconvtrk = (TH1F*)convtrk->Clone(); fooconvtrk->SetName("fooconvtrk"); - smoothWithFit(fooconvtrk,1e6,-3,5,20,100); - for(Int_t i = 5; i<= convtrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,fooconvtrk->GetBinContent(i)/2.); - if(dither + fooconvtrk->GetBinContent(i) < fooconvtrk->GetBinContent(i)/100.) dither = 0.; - convtrk->SetBinContent(i,fooconvtrk->GetBinContent(i)+dither); - convtrk->SetBinError(i,sqrt(fooconvtrk->GetBinContent(i))); - } - convtrk->Draw(); fooconvtrk->Draw("same"); - - daltrk = (TH1F*)jjdaltrk->Clone(); daltrk->SetName("daltrk"); //Jet-Jet + W-jet - daltrk->Add(wjdaltrk); - ctemptrk->cd(5); gPad->SetLogy(); daltrk->Draw(); - TH1F* foodaltrk = (TH1F*)daltrk->Clone(); foodaltrk->SetName("foodaltrk"); - smoothWithFit(foodaltrk,1e6,-3,5.,40.,100); - for(Int_t i = 5; i<= daltrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,foodaltrk->GetBinContent(i)/2.); - if(dither + foodaltrk->GetBinContent(i) < foodaltrk->GetBinContent(i)/100.) dither = 0.; - daltrk->SetBinContent(i,foodaltrk->GetBinContent(i)+dither); - daltrk->SetBinError(i,sqrt(foodaltrk->GetBinContent(i))); - } - daltrk->Draw(); foodaltrk->Draw("same"); - - htrk = (TH1F*)jjhtrk->Clone(); htrk->SetName("htrk"); - htrk->Add(wjhtrk); - ctemptrk->cd(6); gPad->SetLogy(); htrk->Draw(); - TH1F* foohtrk = (TH1F*)htrk->Clone(); foohtrk->SetName("foohtrk"); - smoothWithFit(foohtrk,1e5,-3,5,80,100); - for(Int_t i = 5; i<= htrk->GetNbinsX(); i++) { - Double_t dither = rand2.Gaus(0.,foohtrk->GetBinContent(i)/2.); - if(dither + foohtrk->GetBinContent(i) < foohtrk->GetBinContent(i)/100.) dither = 0.; - htrk->SetBinContent(i,foohtrk->GetBinContent(i)+dither); - htrk->SetBinError(i,sqrt(foohtrk->GetBinContent(i))); - } - htrk->Draw(); foohtrk->Draw("same"); - - wztrk = (TH1F*)wjwztrk->Clone(); wztrk->SetName("wztrk"); //W-jet only - TCanvas* ctempwztrk = new TCanvas("ctempwztrk"); - ctempwztrk->cd(); gPad->SetLogy(); wztrk->Draw(); - TH1F* foowztrk = (TH1F*)wztrk->Clone(); foowztrk->SetName("foowztrk"); - TF1* fwstrk = new TF1("fwstrk","[0]*(1+exp((x-[1])/[2]))^-1",30,50); - fwstrk->SetParameters(10,30,3); - foowztrk->Fit(fwstrk,"R"); - TF1* fwzexptrk = new TF1("fwzexptrk","[0]+[1]*log(x/[2])^2",8,40); - fwzexptrk->SetParameters(10,10,3); - // foowztrk->Fit(fwzexptrk,"R"); - /* - for(Int_t i = 8; i<= wzMC->GetNbinsX(); i++) { - Double_t pt = wzMC->GetBinCenter(i); - if(pt < 40) wzMC->SetBinContent(i,fwzexp->Eval(pt)); - if(pt > 40) wzMC->SetBinContent(i,fws->Eval(pt)); - } - */ - wztrk->Draw(); foowztrk->Draw("same"); - - //All TRK electrons is the sum of - //Jet-Jet: conversions + direct charm + dalitz + misid - //Bottom-Jet: direct bottom + indirect bottom - //W-Jet: all (because these events are exclusive of the others) - alltrk = (TH1F*)wjalltrk->Clone(); alltrk->SetName("alltrk"); - alltrk->Add(jjconvtrk); alltrk->Add(jjctrk); alltrk->Add(jjdaltrk); alltrk->Add(jjhtrk); - alltrk->Add(bjbtrk); alltrk->Add(bjcbtrk); - sumtrk = (TH1F*)wjalltrk->Clone(); sumtrk->SetName("sumtrk"); - sumtrk->Add(jjconvtrk); sumtrk->Add(jjctrk); sumtrk->Add(jjdaltrk); - sumtrk->Add(bjbtrk); sumtrk->Add(bjcbtrk); - - double myscale = 1.; //we already scaled them - ScaleAndConfigure(alltrk,myscale,kBlack,kFALSE); - ScaleAndConfigure(sumtrk,myscale,kBlack,kFALSE); - ScaleAndConfigure(btrk,myscale,kRed,kFALSE); - ScaleAndConfigure(ctrk,myscale,kBlue,kFALSE); - ScaleAndConfigure(cbtrk,myscale,kViolet,kFALSE); - ScaleAndConfigure(convtrk,myscale,kOrange-3,kFALSE); - ScaleAndConfigure(daltrk,myscale,kGreen-3,kFALSE); - ScaleAndConfigure(htrk,myscale,kGreen+2,kFALSE); - ScaleAndConfigure(wztrk,myscale,kOrange-7,kFALSE); - - return; -} - -void smoothWithFit(TH1F* hist, Double_t p0, Double_t p1, Double_t min, Double_t max,Double_t remax) { - - fpow = new TF1("fpow","[0]*pow(x,[1])",min,max); - fpow->SetParameters(p0,p1); - hist->Fit(fpow,"R"); - for(Int_t i = (Int_t)min; i <= (Int_t)remax; i++) { - Double_t pt = hist->GetBinCenter(i); - Double_t val = fpow->Eval(pt); - hist->SetBinContent(i,val); - hist->SetBinError(i,sqrt(val)); - } - - return; -} - -