void minuit2FitBench2D(int n = 100000) { TH1::AddDirectory(kFALSE); TCanvas *c1 = new TCanvas("c1","Fitting Demo",10,10,900,900); c1->Divide(2,2); // create a TF1 with the range from 0 to 3 and 6 parameters fitFcn = new TF2("fitFcn",fitFunction,-10,10,-10,10,5); //fitFcn->SetNpx(200); gStyle->SetOptFit(); gStyle->SetStatY(0.6); histo = new TH2D("h2","2D Gauss",100,-10,10,100,-10,10); fillHisto(n); int npass=0; //with Minuit c1->cd(1); DoFit("Minuit",gPad,npass); //with Fumili c1->cd(2); DoFit("Fumili",gPad,npass); //with Minuit2 c1->cd(3); DoFit("Minuit2",gPad,npass); //with Fumili2 c1->cd(4); DoFit("Fumili2",gPad,npass); }
// plot void controlRegion() { fillHisto(); std::cout << "lumi " << lumi <<" nb-1"<< std::endl; // number of events #ifdef CONTROLREGION #ifdef DATA cout << "TOTAL data contribution: " << histo_data->Integral() << endl; #endif cout << "TOTAL QCD contribution: " << histo_qcd_total->Integral() << endl; Double_t nbin_content = 0; Double_t nbin_content_data_qcd = 0; std::cout <<"CR : data : data qcd : "; #ifdef JX std::cout <<"qcd :"; #endif #ifdef WJETS std::cout <<"wjets :"; #endif #ifdef ZJETS std::cout <<" zjets :"; #endif #ifdef DY std::cout <<" drellyan :"; #endif #ifdef SU4 std::cout <<" su4: "; #endif #ifdef TTBAR std::cout <<" ttbar:"; #endif #ifdef DIBOSON std::cout <<" diboson:"; #endif #ifdef SIGNALREGION std::cout <<"S/sqrt(B)"<<std::endl; #else std::cout <<"NORM"<<std::endl; #endif for (int cf = 0; cf < 15; cf++) { #ifdef DATA nbin_content = histo_data ->GetBinContent(cf+1); #endif #ifdef QCDFROMDATA nbin_content_data_qcd = histo_qcd_data ->GetBinContent(cf+1); #endif Double_t nbin_mc = 0; #ifdef JX Double_t nbin_content_qcd = histo_qcd_total ->GetBinContent(cf+1); nbin_mc += nbin_content_qcd; #endif #ifdef WJETS Double_t nbin_content_wjets = histo_wjets ->GetBinContent(cf+1); nbin_mc += nbin_content_wjets; #endif #ifdef ZJETS Double_t nbin_content_zjets = histo_zjets ->GetBinContent(cf+1); nbin_mc += nbin_content_zjets; #endif #ifdef DY Double_t nbin_content_drellyan = histo_drellyan ->GetBinContent(cf+1); nbin_mc += nbin_content_drellyan; #endif #ifdef SU4 Double_t nbin_content_su4 = histo_su4 ->GetBinContent(cf+1); nbin_mc += nbin_content_su4; #endif #ifdef TTBAR Double_t nbin_content_ttbar = histo_ttbar ->GetBinContent(cf+1); nbin_mc += nbin_content_ttbar; #endif #ifdef DIBOSON Double_t nbin_content_diboson = histo_diboson ->GetBinContent(cf+1); nbin_mc += nbin_content_diboson; #endif std::cout << cf << " : " << (int)nbin_content << " : " << (int)nbin_content_data_qcd; if (nbin_mc == 0.) nbin_mc = 0.000000000000001; #ifdef JX std::cout<< " : " << nbin_content_qcd<< " (" << 100.*nbin_content_qcd/nbin_mc <<" %)"; #endif #ifdef WJETS std::cout<< " : " << nbin_content_wjets << " (" << 100.*nbin_content_wjets/nbin_mc <<" %)"; #endif #ifdef ZJETS std::cout<< " : " << nbin_content_zjets << " (" << 100.*nbin_content_zjets/nbin_mc <<" %)"; #endif #ifdef DY std::cout<< " : " << nbin_content_drellyan << " (" << 100.*nbin_content_drellyan/nbin_mc <<" %)"; #endif #ifdef TTBAR std::cout<< " : " << nbin_content_ttbar << " (" << 100.*nbin_content_ttbar/nbin_mc <<" %)"; #endif #ifdef SU4 std::cout<< " : " << nbin_content_su4 << " (" << 100.*nbin_content_su4/nbin_mc <<" %)"; #endif #ifdef DIBOSON std::cout<< " : " << nbin_content_diboson << " (" << 100.*nbin_content_diboson/nbin_mc <<" %)"; #endif #ifdef SIGNALREGION double sign = nbin_content_su4/sqrt(nbin_mc); std::cout << " : "<< sign; std::cout << " : "<< name_signalregion[cf]; #else Double_t norm = nbin_content/nbin_content_data_qcd; Double_t norm_err = sqrt( nbin_content /nbin_content_data_qcd /nbin_content_data_qcd + nbin_content *nbin_content/nbin_content_data_qcd/nbin_content_data_qcd/nbin_content_data_qcd ); std::cout << " : "<<norm <<" +/- "<<norm_err<<std::endl; std::cout << " : "<< name_controlregion[cf]; #endif std::cout<<std::endl; } #endif #ifdef CUTFLOW #ifdef DATA cout << endl<<" DATA "<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_data->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << (int)nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef MC cout << endl<<" MC "<< " lumi " << lumi<<endl<<endl; #ifdef JX cout << endl<<" qcd Jx "<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_qcd->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef JXMUON cout << endl<<" qcd Jx muon "<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_qcd_mu->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef WJETS cout << endl<<" Wjets "<< " lumi (nb-1):" << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_wjets->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef ZJETS cout << endl<<" Zjets "<< " lumi (nb-1):" << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_zjets->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef TTBAR cout << endl<<" ttbar "<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_ttbar->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef DIBOSON cout << endl<<" diboson"<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_diboson->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef SU4 cout << endl<<" SU4 "<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = histo_su4->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #ifdef MSUGRA cout << endl<<" MSUGRA "<< " lumi (nb-1): " << lumi<<endl<<endl; for (int cf = 0; cf < 25; cf++) { Double_t nbin_content = h1_114013->GetBinContent(cf+1); std::cout << "cut "<< cf <<" : " << nbin_content<< " "<< name_cutflow[cf]<<std::endl; } #endif #endif #endif }
diffLcpMuDst_Geant(int cut=2){ // f=TFile("./MC7777,tree.root"); // f->ls(); // return; //TH1F *h=f->Get("hpx"); // h->Draw(); TString histF="mcLcp_cut"; histF+=cut; histF+=".hist.root"; initHisto(histF); TString fItem="recoEffStudy/G2032.tree.root"; TString evePath="/star/data04/sim/balewski/LcpRun2/MCrcf1200/"; int subSet; for(subSet=2032;subSet<=2167;subSet++) { fItem=evePath+"G"; fItem+=subSet; fItem+=".tree.root"; chainG->AddFile(fItem, -1); fItem.ReplaceAll("G","R"); chainR->AddFile(fItem, -1); } #if 0 fItem=evePath+"G2033.tree.root"; chainG->AddFile(fItem, -1); fItem.ReplaceAll("G","R"); chainR->AddFile(fItem, -1); #endif chainG->ls(); chainR->ls(); chainR->SetBranchAddress("nPrim",&nPrimR); chainR->SetBranchAddress("vz",&vzR); chainR->SetBranchAddress("q",&qR); chainG->SetBranchAddress("pt",&ptG); chainR->SetBranchAddress("pt",&ptR); chainG->SetBranchAddress("id",&idG); chainR->SetBranchAddress("id",&idR); chainG->SetBranchAddress("phi",&phiG); chainR->SetBranchAddress("phi",&phiR); chainG->SetBranchAddress("eta",&etaG); chainR->SetBranchAddress("eta",&etaR); int N=chainG->GetEntries(); printf("N=%d\n",N); system("date"); int k; for(k=0;k<N;k++) { int ret=-1; ret=chainG->GetEntry(k); assert(ret); ret=chainR->GetEntry(k); assert(ret); assert(idG==idR); // if(k>30) break; if(nPrimR<=2) continue; if(fabs(vzR)>100.) continue; if(ptR>5.) continue; if(k%1000==0) printf("%d ptG=%f ptR=%f phi %f=%f eta %f=%f\n",k,ptG,ptR,phiG,phiR,etaG,etaR); //printf("nPrim=%d vz=%f q=%d\n",nPrimR,vzR,qR); if(cut==1 & ptR>=1) continue; else if(cut==2 && (ptR<1. || ptR>=2)) continue; else if(cut==3 && (ptR<2. || ptR>=3)) continue; else if(cut==4 && (ptR<3. || ptR>=4)) continue; else if(cut==11 && (etaR<0. || etaR>0.5)) continue; else if(cut==12 && (etaR<0.5 || etaR>1.0)) continue; else if(cut==21 &qR!=1) continue; else if(cut==22 &qR!=-1) continue; fillHisto(); } system("date"); gStyle->SetPalette(1,0); gStyle->SetOptStat(1111111); c=new TCanvas(); c->Divide(2,2); int i; for(i=1;i<4;i++){ c->cd(i+1); hr[i]->Draw(); //h2[i]->Draw("colz"); gPad->SetLogz(); } fd->Write(); fd->ls(); }
void MakePlotsMuNuSub() { // -------- PF --------- TString lumi = "152.8" ; TString cut_data = "(Pt_muon1>35)*(MET_pf>45.0)"; cut_data += "*(Pt_muon2<30)"; //// TString cut_data = "(Pt_muon1>30)*(Pt_muon2>30)"; //// cut_data += "*(Pt_W<40)*(Pt_W>0)"; // cut_data += "*(Pt_ele1<-99999.0)"; cut_data += "*(Pt_pfjet1>30)*(Pt_pfjet2>30)"; cut_data += "*(abs(Eta_muon1)<2.1)"; cut_data += "*(ST_pf_munu>250.0)"; cut_data += "*(abs(deltaPhi_pfjet1pfMET)>.5)"; //// cut_data += "*(deltaPhi_pfjet2pfMET>.5)"; //// cut_data += "*(deltaPhi_pfjet1pfMET<2.65)"; cut_data += "*(abs(deltaPhi_muon1pfMET)>.8)"; // cut_data += "*(Phi_muon1>.3)"; // cut_data += "*(Phi_muon1>.3)"; // cut_data += "*(NGlobalMuons<2.5)"; // cut_data += "*(Eta_pfjet1<0.0)"; // cut_data += "*(Eta_pfjet2<0.0)"; // cut_data += "&&(deltaPhi_muon1pfMET>2.10)"; // cut_data += "*(Pt_Clusters_muon1<1.0)"; // cut_data += "*(abs(MET_pf-Pt_muon1)/(MET_pf)>0.2)"; // cut_data += "*(PFJetCount<3.5)"; // cut_data += "*(1.0 - (EcalIso_muon1>0.1)*(HcalIso_muon1>0.1) )"; // cut_data += "*(BpfJetCount<1.5)"; // cut_data += "*((N_Vertices>2.5)||(N_Vertices<1.5))"; // cut_data += "*(ST_pf_munu>340.0)"; // cut_data += "*(Pt_muon1>85)*(MET_pf>85.0)"; // cut_data += "*(MT_muon1pfMET>125.0)"; // cut_data +="*(deltaR_muon1closestPFJet>.7)"; // cut_data += "*(deltaPhi_muon1caloMET<2.85)"; // cut_data += "*(BpfJetCount>1.5)"; // cut_data += "*(MT_muon1pfMET>125.0)"; // cut_data += "*(MT_muon1pfMET<110.0)"; // cut_data += "*(MT_muon1pfMET>50.0)"; TString cut_mc = lumi+ "*weight*("+cut_data+")"; TString filetag = "2011Data_Preselection"; TString xtag = "[No PU]"; float WNormalization = 1.36; // gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); // fillHisto(cut_mc, cut_data, true, 4000,0,4000, "MT_muon1pfMET", false, "","M^{T}_{#mu#nu}(GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data ,true,27,.-.5,9.5, "N_Vertices", false, "","N_{Vertices} " +xtag,lumi,10000,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 40,0,400, "MT_muon1pfMET", false, "","M^{T}_{#mu#nu}(GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,5, "EcalIso_muon1", false, "","ECAL Iso_{#mu} (GeV) " +xtag,lumi,10,WNormalization,filetag+"Large"); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,30, "HcalIso_muon1", false, "","HCAL Iso (#mu) " +xtag,lumi,10,WNormalization,filetag+"Large"); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 40,0,40, "TrkIso_muon1", false, "","Track Iso (#mu) " +xtag,lumi,10,WNormalization,filetag+"Large"); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,5, "EcalIso_muon1", false, "","ECAL Iso_{#mu} (GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,3, "HcalIso_muon1", false, "","HCAL Iso (#mu) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,10, "TrkIso_muon1", false, "","Track Iso (#mu) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,500, "MET_pf", false, "","E_{T}^{miss}(GeV) " +xtag ,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 42,-2.1,2.1, "Eta_muon1", false, "","#eta (#mu) " +xtag,lumi,100,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true,20,-3.141593,3.141593, "Phi_muon1", false, "","#phi (#mu) " +xtag,lumi,200,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 20,.8,3.15,"deltaPhi_muon1pfMET", false, "","#Delta #phi (#mu,E_{T}^{miss}) " +xtag,lumi,100,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 40,200,1000, "ST_pf_munu", false, "","S_{T} (GeV)" +xtag,lumi,50,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 40,0,400, "Pt_muon1", false, "","p_{T} (#mu) (GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,500, "Pt_pfjet1", false, "","p_{T} (jet_{1}) (GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 50,0,500, "Pt_pfjet2", false, "","p_{T} (jet_{2}) (GeV) " +xtag,lumi,10,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 60,-3.0,3.0, "Eta_pfjet1", false, "","#eta (jet_{1}) " +xtag,lumi,100,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 60,-3.0,3.0, "Eta_pfjet2", false, "","#eta (jet_{2}) " +xtag,lumi,100,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mc, cut_data, true, 40,0,800, "M_bestmupfjet_munu", false, "","M_{#mu jet} " +xtag,lumi,100,WNormalization,filetag); filetag = "2011Data_FullSelection"; TString cut_mass_data = cut_data + "*(MT_muon1pfMET>125.0)*(Pt_muon1>85)*(MET_pf>85.0)*(ST_pf_munu>485)"; TString cut_mass_mc = lumi+ "*weight*("+cut_mass_data+")"; TString cut_st_data = cut_data + "*(MT_muon1pfMET>125.0)*(Pt_muon1>85)*(MET_pf>85.0)*(ST_pf_munu>250)"; TString cut_st_mc = lumi+ "*weight*("+cut_st_data+")"; gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_mass_mc, cut_mass_data, true, 20,0.0,800.0, "M_bestmupfjet_munu", false, "","M_{#mu j} " +xtag,lumi,40,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".x LoadLocal.C"); fillHisto(cut_st_mc, cut_st_data, true, 20,0,1000, "ST_pf_munu", false, "","S_{T} (GeV)" +xtag,lumi,50,WNormalization,filetag); gROOT->Reset(); gROOT->ProcessLine(".q;"); }