Esempio n. 1
0
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);
}
Esempio n. 2
0
// 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 

}
Esempio n. 3
0
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();
}
Esempio n. 4
0
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;");


}